Вывести ID товара+ ID артикула в корзине Есть решение

Добрый день.

Сразу скажу что бы не ругались )) я не программист но немного понимаю )) 

Поставили задачу вывести в корзине id товара и id товара + артикул если таковой есть

Идентификатор товара ( если более 1 товара, то передается массивом ['123', '231', ...] )

у меня на сайте товары имеют такой вид

2х3м— 900 Р - (id-1086) т.к первый размер идет основной id

3x4м— 1 800 Р - (id-1086s1264) здесь уже артикул и подставляется id артикула s1264

3x5м— 2 250 Р 

3x6м— 2 700 Р

в корзину я добавил 2 товара размером 2х3 и 3х4 метра

Я методом научного тыка )) состряпал такой код

{foreach $cart.items as $item}'{$item.product_id|escape}s{$item.sku_id|escape}',{/foreach}

У меня выводится вот так '1086s764','1086s1264',

т.е жесткая привязка id товара и артикула

но должно быть так как в фиде

'1086','1086s1264', и тд

как правильно прописать код что бы была проверка на наличие id артикула

вот кусок фида

<offer available="true" id="1086">
<url>
****************
</url>
<price>900.00</price>
<currencyId>RUB</currencyId>
<categoryId>633</categoryId>
<picture>
****************
</picture>
<name>тент - 2х3м</name>
<description>
****************
</description>
<sales_notes></sales_notes>
</offer>
<offer available="true" id="1086s1264">
<url>
****************
</url>
<price>1800.00</price>
<currencyId>RUB</currencyId>
<categoryId>633</categoryId>
<picture>
****************
</picture>
<name>тент - 3х4м</name>
<description>
****************
</description>
<sales_notes></sales_notes>
</offer>
<offer available="true" id="1086s1265">
<url>
****************
</url>
<price>2250.00</price>
<currencyId>RUB</currencyId>
<categoryId>633</categoryId>
<picture>
****************
</picture>

<name>тент - 3х6м</name>
<description>
****************
</description>
<sales_notes></sales_notes>
</offer>

2 ответа

  • 1

    В данном движке не продаются товары. Всегда идёт продажа артикулов. Даже если у товара только один артикул, то всё-равно продаётся именно артикул, а не товар. Другими словами, у всех товаров в корзине есть sku_id. Соответственно, сделать проверку по наличию/отсутствию sku_id у товара в корзине у Вас не получится.

    Но каждый товар имеет артикул, который выбран по-умолчанию. Скорее всего, у Вас этот товар первый с базовым артикулом, для которого нужно выводить только идентификатор товара без идентификатора артикула. 

    В свою очередь, в корзину для каждого item передаётся массив $item.product, в котором можно посмотреть, какой артикул для данного товара выбран по-умолчанию. Это даёт возможность сделать проверку, код которой приведён ниже. Я не тестировал код. Можете проверить у себя. По идее, должен сработать при условии, что артикул, для которого не нужно выводить код, выбран у товара по-умолчанию.

    {foreach $cart.items as $item}
        '{$item.product_id|escape}
        {if $item.product.sku_id != $item.sku_id}
          s{$item.sku_id|escape}
        {/if}',
    {/foreach}

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

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