Schema Есть решение

Попытался сделать разметку для категории, не подскажите как лишние нули убрать.

<div itemscope itemtype="http://schema.org/Product">
        
                <meta itemprop="name" content="{$category.name|escape}"/>
                <meta itemprop="description" content="{$wa->meta('description')|escape}"/>
         <span itemprop="offers" itemscope itemtype="http://schema.org/AggregateOffer">
                   
{foreach $filters as $fid => $filter}
     
         <meta itemprop="lowPrice" content="{floor($filter.min)}"/>
         <meta itemprop="highPrice" content="{ceil($filter.max)}"/>
			
 {/foreach}			
			
  <meta itemprop="priceCurrency" content="RUB"/>
        </span>
    </div> 

1 ответ

  • 2
    replicant 24 февраля 2019 17:37 # Решение

    Уберите foreach! Он там не нужен совсем. Возьмите минимальную и максимальную цену сразу в нужном массиве, а не перебирайте все ваши массивы характеристик в попытках найти в них цену. Цены там только в одном массиве.

      'filters' => array(
        'price' => array(
          'min' => '85',
          'max' => '980',
        ),

    Переменные шаблона можно посмотреть через {wa_tpl_vars}, найти нужное и обратиться к ним менее заковыристым способом.

    <meta itemprop="lowPrice" content="{floor($filters.price.min)}"/>
    <meta itemprop="highPrice" content="{ceil($filters.price.max)}"/>

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

        itemType = http://schema.org/AggregateOffer
        lowprice = 85
        highprice = 980
        pricecurrency = RUB

    И ещё у меня есть сомнения в том, что вам тут нужны floor и ceil. Вы их с какой целью использовали? От копеек хотели избавиться?

    Для категорий, где нет включенных фильтров по цене, сделайте обертку {if !empty($filters)}...{/if}

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

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