Какой контроллер получает данные из БД, когда мы кладем товар в корзину?

Добрый день, уважаемое сообщество!

Подскажите, пожалуйста, какой именно контроллер получает данные из базы, когда пользователь нажимает на кнопку "Добавить в корзину" для товара?


(к сожалению, документация довольно скудна на данный момент!)


Такой вопрос возник при выполнении следующей задачи: необходимо было корректировать $product['price'] (цену товара) в зависимости от передаваемого параметра (статуса пользователя: 1- обычный, 2-оптовый. Для пользователей с разным статусом должны выводится цены соответствующих артикулов вместо основной цены). Для карточки товара все решилось добавкой условия в wa-apps\shop\lib\classes\shopProduct.class, для коллекции товаров в категории магазина условие было добавлено в shopProductsCollection.class. При этом, если добавить товар в корзину, то он добавляется со стандартной ценой, хранящейся в столбце price таблице shop_product. А нужно, чтобы система искала артикул с флагом статуса пользователя и брала цену из соответствующей записи из таблицы shop_product_skus.

7 ответов

  • 1
    Алексей Webasyst 26 октября 2016 15:21 #

    1. А не проще использовать один из плагинов множественных цен?
    2. Построение логично идёт: приложение(Shop) - витрина(frontend) - корзина(cart) - добавление(add) и получаем /wa-apps/shop/lib/actions/frontend/shopFrontendCartAdd.controller.php

    • +1
      Sergey Sergey 26 октября 2016 15:28 #

      1. А есть хорошие бесплатные решения?

      2. Спасибо, сейчас посмотрю

    • +1
      Sergey Sergey 26 октября 2016 15:38 #

      Спасибо за наводку, а каким образом можно вывести значение переменных из shopFrontendCartAdd.controller.php если обычный var_dump() не работает?

      • +1
        Алексей Алексей Webasyst 26 октября 2016 15:43 #

        Это waJsonController и он запускается когда вы что-то кладёте в корзину и формируется ответ.
        Все ответы можете увидеть через консоль браузера.

        и всегда можно выполнить waLog::log(var_export($var), true); чтобы получить значение $var в лог ошибок wa-log/error.log

        • +1
          Sergey Sergey 26 октября 2016 15:54 #

          "Это waJsonController и он запускается когда вы что-то кладёте в корзину и формируется ответ." Это понятно.

          Но в консоль браузера ничего не выводится, при этом само всплывающее окно корзины не появляется. Однако товар добавляется в корзину.

          Вызов "waLog::log(var_export($var), true); чтобы получить значение $var в лог ошибок wa-log/error.log" внутри функции execute() shopFrontendCartAddController новую запись в логе не создал.

          • +1
            Алексей Алексей Webasyst 26 октября 2016 17:19 #

            Посмотрите ответы сервера через сетевой монитор.
            Возможно не исполнялся блок в который вы добавили запись лога.

            • +1
              Sergey Sergey 26 октября 2016 17:43 #

              "Посмотрите ответы сервера через сетевой монитор." Да, через монитор сети в ответе на POST запросы увидел выводимую var_dump() информацию.

              А вот в лог все равно не пишется.

Добавить ответ

Чтобы добавить комментарий, зарегистрируйтесь или войдите