Опубликовано: 14 июля 2015

Как заменить название товара в категории на артикул? Есть решение

Добрый день!

Сейчас под каждым товаром указано его значение "Наименование" ($p.name).

Мне нужно вместо этого значения сделать вывод двух строк:

1. "Наименование артикула".

2. "Бренд:" - это значение характеристики товара. На латинице в настройках приложения "Магазин" это значение прописано как "brend". Это значение может быть пустым.

При этом нужно обработать значение строки 2 следующим образом, например:

Указано значение: "ESSE (essential accessories)".


Если в этой строке есть " (", то выдать значение до символов " (", а именно "ESSE".
Если в этой строке нет " (", то строку оставить без изменений.

Подскажите, пожалуйста, как это можно сделать?

Комментарии (6)

  • Евгений Голов +1 14 июля 2015 14:14 #

    Сайт: sumki5.ru

    Скриншот: http://joxi.ru/bmokVXWcb04lmy

    1
  • Решение
    Игорь Колмаков +30 15 июля 2015 14:22 #

    наименование артикула

    в файле "products.list.html"

    1. перед строкой

    {strip}{foreach $products as $p}

    прописать

    {$skus = $wa->shop->skus(array_keys($products))}

    2. вместо кода

    {$p.name}

    вставить

    {if !empty($skus[$p.id][0].name)}{$skus[$p.id][0].name}{else}{$p.name}{/if}

    * это если вывести наименование артикула

    если вывести сам артикул то

    {if !empty($skus[$p.id][0].sku)}{$skus[$p.id][0].sku}{else}{$p.name}{/if}


    1
  • Решение
    Игорь Колмаков +30 15 июля 2015 14:26 #

    * если вариация 1, то "наименования артикула" в товаре нет

    соответственно, если вариаций несколько, то можно вывести не 1 наименование артикула а несколько

    для этого вышеуказанный код заменить на

    {foreach $skus[$p.id] as $sku}{if $sku.sku}{$sku.sku}<br />{/if}{/foreach}

    1
  • Александр Тирон +23 15 июля 2015 14:45 #

    Вопрос №2:

    в файле "products.list.html" перед строкой:

    {foreach $products as $p}

    вставьте строку:

    {$features = $wa->shop->features($products)}

    далее после строки:

    <div class="product-block block">

    вставьте строки:

    {if !empty($p.features) && !empty($p.features.brand)}

    {if strpos($p.features.brand, '(') !== false}

    {substr($p.features.brand, 0, strpos($p.features.brand, '('))}

    {else}

    {$p.features.brand}

    {/if}

    {/if}

    *подходит только для характеристики типа текст



    1
  • Игорь Колмаков +30 15 июля 2015 14:52 #

    * brand можно заменить на любой другой идентификатор характеристики

    1
  • Евгений Голов +1 15 июля 2015 17:03 #

    Огромное спасибо!

    По вопросу 1 всё понятно, работает!

    По вопросу 2 решение не помогло. Не понимаю почему.

    Как я понимаю, в эти строчки срабатывают как false:

    {if !empty($p.features) && !empty($p.features.brand)}

    {if strpos($p.features.brand, '(') !== false}

    1
    • Александр Тирон Александр Тирон +23 15 июля 2015 17:30 #

      Напишите нам на электронную почту: kolmakov.igor@gmail.com

      Нужно смотреть индивидуально, возможно причина в неверной вставке кода.

      1

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

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

Услуги

Контакты

Дорогие друзья!

К сожалению, Ваш браузер не поддерживает современные технологии используемые на нашем сайте.

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

Internet Explorer

от Microsoft

Chrome

от Google

Safari

от Apple

Opera

от Opera Software

Firefox

от Mozilla

Вверх