Проблеммы с микроразметкой Есть решение

Приветсвую!

Сталкнулась с необходимостью добавить в микроразметку дополнительные свойства товаров.

Как известно, далеко не все свойства описаны в http://schema.org/Product .

Поэтому нужно добавлять additionalProperty, что я никак не могу понять как сделать.

Например генерация поля свойства товара сейчас выдает вот так:

<tr>

<td class="name"> По возрасту </td>
<td class="value" itemprop="po_vozrastu"> с рождения </td>
</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>
</tr>

Все описаное следствие проверки вот тут: https://developers.google.com/structured-data/test...

И соответсвенно вопрос: как это сделать в Shop-Script 6 ?

Жду ответа с нетерпением.

7 ответов

  • 2
    Алексей Webasyst 8 августа 2015 08:30 # Решение

    Необходимо соответствующим образом настроить шаблон product.html. Например внести изменение в строку <tr{if $features[$f_code].type == 'divider'} class="divider"{/if}> и добавить itemprop="additionalProperty" itemscope itemtype="http://schema.org/PropertyValue". Если строка не для всех характеристик то соответственно добавить с условием {if условие} itemprop="additionalProperty" ...{/if}

    • +2

      Спасибо, все получилось, ошибки исчезли.

    • +1
      Алексей Дорошенко Алексей Дорошенко 10 апреля 2016 14:39 #

      куда именно надо вставить ваш код?

      {if $product.features} 
      				<table class="table alert alert-table paddingtop" id="product-features">
      					{foreach $product.features as $f_code => $f_value}
      						<tr{if $f_value@iteration > 3} style="display:none;"{/if}>
      							<td><b>{$features[$f_code].name|escape}</b></td>
      							<td>{if is_array($f_value)}{implode(', ', $f_value)}{else}{$f_value}{/if}</td>
      						</tr>
      					{/foreach}
      					{if count($product.features) > 3}
      					<tr>
      						<td colspan="2"><span class="sort gray"></span></td>
      					</tr>
      					{/if}
      				</table>
      				{/if}
  • 1
    Евгений 9 августа 2015 11:39 #

    Добрый день, подскажите пожалуйста.

    Точно такая же проблема.

    Сейчас код выглядит вот так: Что именно нужно изменить? И как?

    {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}

    • +1
      Сергей Сергей 10 августа 2016 20:30 #

      Код 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, а у остальных как и раньше.

      • +1
        Эмиль Мингазов Эмиль Мингазов 10 ноября 2016 13:30 #

        Сергей, а как сделать, если нужно исправить несколько характеристик, т.е если было бы kolichestvo_v_korobke ves_korobki razmery_korobki

        как выглядел бы код

        {if $f_code=='kolichestvo_v_korobke'} itemprop="additionalProperty" itemscope itemtype="http://schema.org/PropertyValue" для нескольких характеристик


        как правильно перечислить все характеристики? или нужно для каждой характеристики конструкцию из If сделать?



  • 1
    Алексей Дорошенко 11 августа 2016 08:55 #

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

    {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}


    и микроразметка стала на место,валидатор гугла больше не ругается на неразмеченные хар-ки

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

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