Какой контроллер получает данные из БД, когда мы кладем товар в корзину?
Добрый день, уважаемое сообщество!
Подскажите, пожалуйста, какой именно контроллер получает данные из базы, когда пользователь нажимает на кнопку "Добавить в корзину" для товара?
(к сожалению, документация довольно скудна на данный момент!)
Такой вопрос возник при выполнении следующей задачи: необходимо было корректировать $product['price'] (цену товара) в зависимости от передаваемого параметра (статуса пользователя: 1- обычный, 2-оптовый. Для пользователей с разным статусом должны выводится цены соответствующих артикулов вместо основной цены). Для карточки товара все решилось добавкой условия в wa-apps\shop\lib\classes\shopProduct.class, для коллекции товаров в категории магазина условие было добавлено в shopProductsCollection.class. При этом, если добавить товар в корзину, то он добавляется со стандартной ценой, хранящейся в столбце price таблице shop_product. А нужно, чтобы система искала артикул с флагом статуса пользователя и брала цену из соответствующей записи из таблицы shop_product_skus.
7 ответов
1. А не проще использовать один из плагинов множественных цен?
2. Построение логично идёт: приложение(Shop) - витрина(frontend) - корзина(cart) - добавление(add) и получаем /wa-apps/shop/lib/actions/frontend/shopFrontendCartAdd.controller.php
1. А есть хорошие бесплатные решения?
2. Спасибо, сейчас посмотрю
Спасибо за наводку, а каким образом можно вывести значение переменных из shopFrontendCartAdd.controller.php если обычный var_dump() не работает?
Это waJsonController и он запускается когда вы что-то кладёте в корзину и формируется ответ.
Все ответы можете увидеть через консоль браузера.
и всегда можно выполнить waLog::log(var_export($var), true); чтобы получить значение $var в лог ошибок wa-log/error.log
"Это waJsonController и он запускается когда вы что-то кладёте в корзину и формируется ответ." Это понятно.
Но в консоль браузера ничего не выводится, при этом само всплывающее окно корзины не появляется. Однако товар добавляется в корзину.
Вызов "waLog::log(var_export($var), true); чтобы получить значение $var в лог ошибок wa-log/error.log" внутри функции execute() shopFrontendCartAddController новую запись в логе не создал.
Посмотрите ответы сервера через сетевой монитор.
Возможно не исполнялся блок в который вы добавили запись лога.
"Посмотрите ответы сервера через сетевой монитор." Да, через монитор сети в ответе на POST запросы увидел выводимую var_dump() информацию.
А вот в лог все равно не пишется.