Проблеммы с микроразметкой Есть решение
Приветсвую!
Сталкнулась с необходимостью добавить в микроразметку дополнительные свойства товаров.
Как известно, далеко не все свойства описаны в http://schema.org/Product .
Поэтому нужно добавлять additionalProperty, что я никак не могу понять как сделать.
Например генерация поля свойства товара сейчас выдает вот так:
<tr>
<td class="name">
По возрасту
</td>
<td class="value" itemprop="po_vozrastu">
с рождения
</td>
</tr>
так как это свойство не описано в http://schema.org/Product , его необходимо описать вот так например:
</tr>
так как это свойство не описано в http://schema.org/Product , его необходимо описать вот так например:
<tr itemprop="additionalProperty" itemscope itemtype="http://schema.org/PropertyValue">
<td class="name" itemprop="name">
По возрасту
</td>
<td class="value" itemprop="value">
с рождения
</td>
Все описаное следствие проверки вот тут: https://developers.google.com/structured-data/test...
И соответсвенно вопрос: как это сделать в Shop-Script 6 ?
Жду ответа с нетерпением.
7 ответов
Необходимо соответствующим образом настроить шаблон product.html. Например внести изменение в строку <tr{if $features[$f_code].type == 'divider'} class="divider"{/if}> и добавить itemprop="additionalProperty" itemscope itemtype="http://schema.org/PropertyValue". Если строка не для всех характеристик то соответственно добавить с условием {if условие} itemprop="additionalProperty" ...{/if}
Спасибо, все получилось, ошибки исчезли.
куда именно надо вставить ваш код?
Добрый день, подскажите пожалуйста.
Точно такая же проблема.
Сейчас код выглядит вот так: Что именно нужно изменить? И как?
{if $product.features}
<div style="width: 100%; height: 20px;"></div>
<h3 class="title-bg align-center margin-b">[`Features`]</h3>
<table class="features-table table table-hover">
{foreach $product.features as $f_code => $f_value}
{if strpos($f_code, '_') !== 0}
<tr{if $features[$f_code].type == 'divider'} class="divider"{/if}>
<td class="name">
{$features[$f_code].name|escape}
</td>
<td class="value" itemprop="{$f_code|escape}">
{if is_array($f_value)}
{if $features[$f_code].type == 'color'}
{implode('<br /> ', $f_value)}
{else}
{implode(', ', $f_value)}
{/if}
{else}
{$f_value}
{/if}
</td>
</tr>
{/if}
{/foreach}
</table>
{/if}
Код itemprop="{$f_code|escape}" заменить наitemprop="additionalProperty" itemscope itemtype="http://schema.org/PropertyValue"
Если надо чтобы не все характеристики изменили свойство товара, то для примера из топика
{if $f_code=='po_vozrastu'} itemprop="additionalProperty" itemscope itemtype="http://schema.org/PropertyValue"
{else}
itemprop="{$f_code|escape}"
{/if}>
Соответственно у характеристик По возрасту будет additionalProperty, а у остальных как и раньше.
Сергей, а как сделать, если нужно исправить несколько характеристик, т.е если было бы kolichestvo_v_korobke ves_korobki razmery_korobki
как выглядел бы код
{if $f_code=='kolichestvo_v_korobke'} itemprop="additionalProperty" itemscope itemtype="http://schema.org/PropertyValue" для нескольких характеристик
как правильно перечислить все характеристики? или нужно для каждой характеристики конструкцию из If сделать?
Нашел решение - у меня хар-ки товаров отображаются через плагин "вкладки товаров". В код плагина добавил такой код
{if $product.features}
<table class="features" id="product-features">
{foreach $product.features as $f_code => $f_value}
<td class="name" itemprop="name">
{$features[$f_code].name|escape}
</td>
<td class="value" itemprop="value">
{if is_array($f_value)}
{implode(', ', $f_value)}
{else}
{$f_value}
{/if}
</td>
</tr>
{/foreach}
</table>
{/if}
и микроразметка стала на место,валидатор гугла больше не ругается на неразмеченные хар-ки