Плагин Яндекс.Маркет экспортирует неверные цены артикулов На рассмотрении

2

Если в плагине выгружать многоартикульные товары, как один товар, то плагин опрашивает установленные плагины скидок и формирует правильные текущие цены. Но если экспортировать каждый артикул, как отдельный товар, то в выгрузку попадают базовые цены, а не актуальные, с учетом действующих в магазине скидок.

Просьба к сотрудникам Вебасист: не закрывать тему (потому что она когда-то и где-то уже поднималась), а  наконец исправить эту ошибку, которой сто лет в обед.

9 комментариев

  • +1
    Михаил Ушенин Михаил Ушенин Webasyst 2 апреля 2020 15:42 #

    В этой теме вы писали об этом же?

    • +1

      В этой теме я уже упоминал о проблеме https://developers.webasyst.ru/forum/21644/yandeksmarket-i-plaginy-skidok/

      Пункт "Второе предположение". Цитирую:

      Второе предположение. Смотрим, почему плагин маркета упорно отдает цену без скидки. Залезаем в код.

      Путь wa-apps\shop\plugins\yandexmarket\lib\actions\backend\shopYandexmarketPluginRun.controller.php:

      public static function getCartItems($items, $profile_id, $currency, &$profile)
          {
              ...
      
              $skus_model = new shopProductSkusModel();
              if (!empty($sku_ids)) {
                  $skus = $skus_model->select('id,count,price,sku,purchase_price,compare_price,file_name')->where('id IN (i:sku_ids)', compact('sku_ids'))->fetchAll('id');
              } else {
                  $skus = array();
              }
              ....
          }

      Здесь видно, что цена товара напрямую берется из базы данных. Если я не ошибся, то дальше по коду никаких вызовов хуков "frontend_products" не происходит ни напрямую, ни через функции, которые при своей работе вызывают этот хук.

      Таких мест несколько, где цена берется напрямую из базы.

      • +1
        Михаил Ушенин Михаил Ушенин Webasyst 2 апреля 2020 17:59 #

        Этот код больше не используется в плагине — он относится к программе «Заказ на Маркете», которая уже закрыта.

        • +1
          Таких мест несколько, где цена берется напрямую из базы.

          Есть еще такое место:

          private function stepProduct(&$current_stage, &$count, &$processed)
              {
                  ...
                  if (empty($sku_model)) {
                      $sku_model = new shopProductSkusModel();
                  }
                  $skus = $sku_model->getDataByProductId(array_keys($products));
                  ...
              }

        • +1
          Плебей Плебей 2 апреля 2020 16:04 #

          Нет. Там, как оказалось, была проблема с плагином скидок. Плагин обновлен и та проблема ушла. А упомянутая здесь ошибка к плагинам скидок отношения не имеет. Яндекс.Маркет считывает цены артикулов напрямую из БД, игнорируя плагины скидок. Это, повторюсь, касается только выгрузки артикулов, как отдельных товаров.

          • +1
            Михаил Ушенин Михаил Ушенин Webasyst 2 апреля 2020 17:45 #

            упомянутая здесь ошибка к плагинам скидок отношения не имеет. Яндекс.Маркет считывает цены артикулов напрямую из БД, игнорируя плагины скидок

            Поясните, почему вы считаете, что ошибка заключается в игнорировании плагинов скидок притом, что ошибка, по вашему мнению, не имеет отношения к плагинам скидок.

            • +1
              Плебей Плебей 2 апреля 2020 17:58 #

              Попробую еще раз: если экспортировать многоартикульные товары не поартикульно (каждый артикул как отдельный товар), то я.маркет обращается к плагинам скидок и берет цены с учетом скидок (именно плагин я.маркет обращается к плагинам скидок, а не наоборот). Если же экспортировать каждый артикул как отдельный товар (есть такая функция в вашем плагине), то цена берется напрямую из БД без опроса плагинов скидок. В этом случае именно плагин я.маркет ведет себя неверно, не беря данные действующих в магазине цен с учетом скидок, установленных в магазине.

              Выше вам показали это на примере части кода плагина. Так же, как и в этом куске, экспортируются цены артикулов.

            • +1
              Плебей Плебей 2 апреля 2020 18:01 #

              Вы хотите сказать, что именно плагины скидок, в частности Гибкие скидки, отдают неверные данные я.маркету?

              Добавить комментарий

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