Вопрос по складам

Подскажите пожалуйста. Как вывести в карточке товара информацию по наличию следующим образом.

Есть 6 складов 2 из них под заказ, остальные в наличии. Хотелось бы выводить просто "в наличии" или "под заказ".

  • Если есть товар на первых 4х складах - выводить "в наличии"
  • Если товар есть на последних 2х складах - выводить "под заказ" (независимо есть ли этот товар на других складах)
  • Если товара нет в наличии - выводить "Под заказ"

2 ответа

  • 1

    Вроде бы все понятно и логично, но поясните пжста почему так:

    Если товар есть на последних 2х складах - выводить "под заказ" (независимо есть ли этот товар на других складах)

    • +1
      Mihey Mihey 21 ноября 2019 18:18 #

      Потому что это скорей всего пересорт или товар переместили под другого покупателя. (особенности))

      • +1

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

  • 1
    DES Партнер-разработчик 21 ноября 2019 20:10 #

    Нужно проверять остатки на складах не товара, а конкретного артикула. В шаблоне страницы товара доступ к артикулам можно получить так:

    {$product.skus}

    Конкретно остаток хранится в массиве stock, при условии, что артикул не имеет бесконечного остатка.

    Проверку по условию всех артикулов в цикле можно сделать примерно так:

    {$skus = $product.skus}
    {foreach $skus as $sku}
       {if ifset($sku.stock['склад_5_id']) > 0 || ifset($sku.stock['склад_6_id']) > 0}
          Артикул под заказ
       {elseif ifset($sku.stock['склад_1_id']) > 0 || ifset($sku.stock['склад_2_id']) > 0 
                  || ifset($sku.stock['склад_3_id']) > 0 || ifset($sku.stock['склад_4_id']) > 0}
           Артикул в наличии
        {else}
           Артикул отсутствует
       {/if}
    {/foreach}

    Id складов можно посмотреть в админке в настройках складов.

    Это как идея. Код нужно делать под конкретный случай. Если у каждого товара только один артикул, то сделать фильтр по условию на витрине будет проще. Если артикулов несколько, то нужно использовать js для динамического изменения состояния артикула в момент выбора конкретного артикула на витрине (или характеристик, если выбрана модель работы с характеристиками).

    Если решение не будет найдено и понадобится помощь (оплачиваемая) пишите - webasyst.des@gmail.com

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

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