Вывод остатков по складам в числовом выражении Есть решение

Добрый день.

Подскажите пожалуйста, как сделать вывод во фронтэнде остатков по всем складам в числовом выражении?

Сейчас картина выглядит так:

Мне удалось настроить вывод общих остатков в корзине и на карточке товара, но никак не могу найти, где лежит модуль отвечающий за вывод остатков на каждом складе?

Подскажите, пожалуйста, как заменить вывод надписей "в наличии, осталось несколько штук, мало" на числовые выражения отражающие реальные остатки на каждом складе. 

Тема: Дизайн со вкусом PRO

Заранее благодарю.

1 ответ

  • 1
    Алексей Бухтеев 19 октября 2018 13:03 # Решение

    Нашел решение.

    Находим код

    {if $product_available || count($product.skus) > 1}                {function stock='' name=in_stock n=0 low=5 critical=2}                    {if $n > $low or $n === null}                        <strong class="stock-high stocks__item">                            <i class="fill"></i>                            <i class="fill"></i>                            <i class="fill"></i>                            <span class="stocks__name">{$stock}</span>                            <span class="stocks__msg">[`In stock`]</span>                        </strong>                    {elseif $n > $critical}                        <strong class="stock-low stocks__item">                            <i class="fill"></i>                            <i class="fill"></i>                            <i class="empty"></i>                            <span class="stocks__name">{$stock}</span>                            <span class="stocks__msg">{_w("Only a few items left")}</span>                        </strong>                    {elseif $n > 0}                        <strong class="stock-critical stocks__item">                            <i class="fill"></i>                            <i class="empty"></i>                            <i class="empty"></i>                            <span class="stocks__name">{$stock}</span>                            <span class="stocks__msg">{_w("Only %d left in stock", "Only %d left in stock", $n)}</span>                        </strong>                    {else}                        <strong class="stock-none stocks__item">                            <i class="empty"></i>                            <i class="empty"></i>                            <i class="empty"></i>                            <span class="stocks__name">{$stock}</span>                            <span class="stocks__msg">{if $wa->shop->settings('ignore_stock_count')}[`Pre-order only`]{else}[`Out of stock`]{/if}</span>                        </strong>                    {/if}                {/function}

    И далее затираем существующий текст в блоках

    <span class="stocks__msg">  </span>

    И добавляем [`В наличии`] {$stock_count} [`шт.`]

    Получим код следующего вида:

    {if $product_available || count($product.skus) > 1}                {function stock='' name=in_stock n=0 low=5 critical=2}                    {if $n > $low or $n === null}                        <strong class="stock-high stocks__item">                            <i class="fill"></i>                            <i class="fill"></i>                            <i class="fill"></i>                            <span class="stocks__name">{$stock}</span>                            <span class="stocks__msg">[`В наличии`] {$stock_count} [`шт.`]</span>                        </strong>                    {elseif $n > $critical}                        <strong class="stock-low stocks__item">                            <i class="fill"></i>                            <i class="fill"></i>                            <i class="empty"></i>                            <span class="stocks__name">{$stock}</span>                            <span class="stocks__msg">[`Осталось`] {$stock_count} [`шт.`]</span>                        </strong>                    {elseif $n > 0}                        <strong class="stock-critical stocks__item">                            <i class="fill"></i>                            <i class="empty"></i>                            <i class="empty"></i>                            <span class="stocks__name">{$stock}</span>                            <span class="stocks__msg">[`Осталось всего`] {$stock_count} [`шт.`]</span>                        </strong>                    {else}                        <strong class="stock-none stocks__item">                            <i class="empty"></i>                            <i class="empty"></i>                            <i class="empty"></i>                            <span class="stocks__name">{$stock}</span>                            <span class="stocks__msg">{if $wa->shop->settings('ignore_stock_count')}[`Pre-order only`]{else}[`Out of stock`]{/if}</span>  </span>

    Теперь у вас будут выводится числовые индикаторы остатков напару с цветовыми.

    Для тех, кого еще волнует вопрос, как сделать так, чтобы высвечивалась надпись "Под заказ", если товара нет в наличии И (!!!очень важно!!!) остатки у вас в бэкенде стоят не по нулям, а стоят знаки бесконечности, то убираем в шапке кода из строки

    {if $n > $low or $n === null}

    or $n === null

    А предпоследнюю строчку

    <span class="stocks__msg">{if $wa->shop->settings('ignore_stock_count')}[`Pre-order only`]{else}[`Out of stock`]{/if}</span>

    Меняем на

    <span class="stocks__msg">{if $n === null}[`Под заказ`]{elseif $n > 0}[`In stock`] {$n}{/if}</span>

    Готово. Но помните, если складов несколько, то бесконечности в остатках должны стоять у всех складов.

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

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