Как вывести артикл в товара? Есть решение

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

Нужно вывести артикл товара в категориях и на главной странице. Внутри карточки товара я смог вывести с помощью 

{$product.skus[$product.sku_id].sku|default:""|escape}

Но, вот этот же код не работает внутри products.items.html или products.short.html у темы гипермаркета. Как вывести артикл?


{strip}

{$_show_compare = true}
{if empty($theme_settings.enable_compare)}
    {if !isset($hide_buttons) || !empty($hide_buttons)}
        {$_show_compare = false}
    {/if}
{/if}

{foreach $products as $product}
    {$available = $wa->shop->settings('ignore_stock_count') || $product.count === null || $product.count > 0}
    {$badge_html = $wa->shop->badgeHtml($product.badge)}
    {$_product_image_src = $wa->shop->productImgUrl($product, "200")|default:"`$wa_theme_url`img/svg/empty_photo.svg"}

    {if !empty($product.skus) && !empty($product.skus[$product.sku_id])}
        {$sku = $product.skus[$product.sku]}
        {if empty($sku.available) && (count($product.skus) === 1)}{$available = false}{/if}
    {/if}

    {if $product.compare_price == 0}
        {$skidka = 0}
    {else}
        {$skidka = (($product.compare_price - $product.price) / $product.compare_price * 100)|string_format:"%.2f%%"}
    {/if}

    <div class="products-col">
        <div class="s-product-wrapper products-item" data-product-id="{$product.id}">
            <div class="products-item-top">
                <div class="products-item__articul">ТУТ ВСТАВЛЯЮ АРТИКЛ: <span>{$product.skus[$product.sku_id].sku|default:""|escape}</span></div>
                
                <div class="products-item-actions">
                    <span class=" {shopFavgoodsPlugin::productCheck($product.id)} products-item__favorite" data-product-id="{$product.id}"></span>
                    {if !empty($_show_compare)}
                        <a class="s-compare-button products-item__compare {if $wa->shop->inComparison($product.id)}is-active{/if}" href="javascript:void(0);" data-product="{$product.id}" title="{if $wa->shop->inComparison($product.id)}{_wd('shop', 'In comparison list')}{else}{_wd('shop', 'To comparison')}{/if}"></a>
                    {/if}
                </div>
            </div>
            <div class="products-item-middle">
                {if !empty($badge_html)}
                    <div class="products-item__label">{$badge_html}</div>
                {/if}
                <div class="s-image-wrapper">
                    <a href="{$product.frontend_url}" class="products-item__image">
                        <img src="{$_product_image_src}" alt="{$product.name}">
                    </a>
                </div>
                <a href="{$product.frontend_url}" class="products-item__title">{$product.name}</a>
                <div class="products-item__desc">{$product.summary}</div>
            </div>
            <div class="products-item-bottom">
                <div class="products-item-discount">
                    {if !empty($hide_buttons)}
                        <div class="products-item-discount__number">{if $product.compare_price > 0}{shop_currency_html($product.compare_price)}{/if}</div>
                        {if $product.compare_price > 0}
                            <div class="products-item-discount__percent">-{$skidka}</div>
                        {/if}
                    {/if}
                </div>
                <div class="products-item-priceblock">
                    <div class="products-item__price">{shop_currency_html($product.price)}</div>

                    <a href="{$product.frontend_url}reviews" class="products-item__likes">{$product.rating_count}</a>
                </div>
                <!-- Добавить в корзину кнопка -->
                {if $available}
                    <form class="add-to-cart" {if $product.sku_count > 1}data-url="{$product.frontend_url}{if strpos($product.frontend_url, '?')}&{else}?{/if}cart=1"{/if} method="post" action="{$wa->getUrl('/frontendCart/add')}">
                        <div class="add-cartwrap-input">
                            <i class="ic ic-addcart"></i>
                            {if !empty($theme_settings.cart_button_text)}
                                <input class="products-item__addcart" type="submit" value="{$theme_settings.cart_button_text}">
                            {/if}
                        </div>
                        <input type="hidden" name="product_id" value="{$product.id}">
                    </form>
                {else}
                <form class="add-to-cart" {if $product.sku_count > 1}data-url="{$product.frontend_url}{if strpos($product.frontend_url, '?')}&{else}?{/if}cart=1"{/if} method="post" action="{$wa->getUrl('/frontendCart/add')}">
                    <div class="add-cartwrap-input">
                        <i class="ic ic-addcart"></i>
                        {if !empty($theme_settings.cart_button_text)}
                            <input class="products-item__addcart" type="submit" value="{$theme_settings.cart_button_text}">
                        {/if}
                    </div>
                    <input type="hidden" name="product_id" value="{$product.id}">
                </form>

                    
                {/if}
                <!-- Добавить в корзину кнопка -->
            </div>
        </div>
    </div>
{/foreach}

{/strip}

Спасибо.

2 ответа

  • 1

    Получаем артикулы товаров на странице категории (перед циклом)

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

    В цикле получаем список артикулов конкретного товара

    {$skus = $all_skus[$p.id]}

    {$skus[0].sku|escape} - выведет код артикула первого по списку

    • +1
      Руслан Лысенко Руслан Лысенко 22 июля 2021 21:15 #

      Спасибо большое, сработало. Только {$skus = $all_skus[$p.id]} заменил на {$skus = $all_skus[$product.id]} а то люди другие могут запутаться.

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

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