Тема: Как вывести характеристику простой комплектации

Здравствуйте.

У меня несколько поставщиков с разной удаленностью. Соответственно даже у одного товара, но у разных расцветок может быть разный срок доставки. Для каждой расцветки создаю отдельную простую комплектацию. К каждой комплектации хочу добавить характеристику "Срок ожидания" (строка). Как вывести эту характеристику в шаблоне рядом с каждой комплектацией?
{$product->getPropertyValueByTitle('Срок ожидания')} не работает.

Повысить оценку Понизить оценку

Re: Как вывести характеристику простой комплектации

{$product->getPropertyValueByTitle('Срок ожидания')}

Она пытается вернуть значение характеристики всего товара, а не комплектации. У Вас в комлектации как реализована эта дата в параметрах?

Re: Как вывести характеристику простой комплектации

Вы в комплектациях значение заполняли?

4

Re: Как вывести характеристику простой комплектации

Да, значение ненулевое.
Вот так это выглядит в админке http://s019.radikal.ru/i626/1602/10/2140e85800a7.jpg

Повысить оценку Понизить оценку

5

Re: Как вывести характеристику простой комплектации

Если созданы поля, значит где-то они используются. Может, кто-то встречал в каком шаблоне используются эти "Характеристики комплектации"?

Повысить оценку Понизить оценку

Re: Как вывести характеристику простой комплектации

Я Вам отвечу подробно чуть позже. Если сегодня освобожусь, то сегодня. Если нет, то завтра уже напишу.

7 Отредактировано Закусило Александр (03.03.2016 18:50:15)

Re: Как вывести характеристику простой комплектации

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

{foreach from=$product.offers.items key=key item=offer name=offers}
        {if $offer.propsdata_arr}
        <div class="offerProperty{if $key>0} hidden{/if}" data-offer="{$key}">
            <h2><span>Характеристики комплектации</span></h2>
            <table class="kv">
                {foreach from=$offer.propsdata_arr key=pkey item=pval}
                        <tr>
                            <td class="key"><span>{$pkey}</span></td>
                            <td class="value">{$pval}</td>
                        </tr>
                {/foreach}
            </table>
        </div>
        {/if}
{/foreach}

Т.е. здесь перебираются характеристики. Это всё объекты \Catalog\Model\Orm\Offer (/modules/catalog/model/orm/offer.inc.php)
Все параметры Ваши хранятся в объекте комплектаций в массиве propsdata_arr. Оттуда и можно их достать.
Вот можно посмотреть, что находится внутри комплектации в шаблоне:

<pre>
{var_dump($offer.propsdata_arr)}
</pre>

propsdata_arr - массив данных ключ=>значение

Или всего объекта

<pre>
{var_dump($offer)}
</pre>

Судя по вашей картинке к комплектации можно обратиться так:

$offer.propsdata_arr['Срок ожидания']

В теме оформления в карточке товара они всегда выводтся и при смене комплектации сменяются сами(ну если конечно вы шаблон или JS не модифицировали).

Комплектации хранятся внутри товара.

<pre>
{var_dump($product.offers.items)}
</pre>

Re: Как вывести характеристику простой комплектации

Получилось?

9

Re: Как вывести характеристику простой комплектации

Спасибо за наводку, нашел. Не там искал ранее. Буду пробовать выводить в нужном месте.

Повысить оценку Понизить оценку