Начиная с версии 1.2.0 в теме дизайна Megashop 3.0 есть возможность подменить стандартные фразы "В наличии" / "Не в наличии" на свои, в зависимости от наличия на конкретном складе.
К сожалению, текущий штатный функционал настроек темы не позволяет нам создать интуитивно понятный интерфейс, поэтому требуется ввод несложного кода.
Для данного функционала нужно создать или использовать существующий блок с id megashop.stocks_available_statuses
Напомню, что блоки создаются в разделе "Сайт" - "Блоки".
Пример готового кода блока:
{capture assign='stocks_condition'} {literal} {if $stocks['1'] >= 5} {$status = "in-stock"} {$text = "В магазине"} {elseif $stocks['1'] >= 1} {$status = "low"} {$text = "В магазине (мало)"} {elseif $stocks['2'] >= 1} {$status = "in-stock"} {$text = "В наличии на складе"} {elseif $stocks['v1'] > 10} {$status = "low"} {$text = "Предзаказ"} {elseif $stocks['1'] <= 0 && $stocks['2'] <= 0 && $stocks['v1'] <= 0} {$status = "out-of-stock"} {$text = "Нет в наличии"} {else} {$status = "in-stock"} {$text = "В наличии"} {/if} {/literal} {/capture} {$stocks_statuses = [ '1' => [ 'in-stock' => 'Есть', 'low' => 'Мало', 'critical' => 'Почти нет', 'out-of-stock' => 'Нет' ], '2' => [ 'low' => 'Осталось {$n}', 'out-of-stock' => 'Нет' ] ]} {$wa->globals('megashop.stocks_available_statuses', ['stocks_condition' => $stocks_condition, 'stocks_statuses' => $stocks_statuses])}
Далее описание составляющих этого кода:
{capture assign='stocks_condition'} {literal} {if $stocks['1'] >= 5} {$status = "in-stock"} {$text = "В магазине"} {elseif $stocks['1'] >= 1} {$status = "low"} {$text = "В магазине (мало)"} {elseif $stocks['2'] >= 1} {$status = "in-stock"} {$text = "В наличии на складе"} {elseif $stocks['v1'] > 10} {$status = "low"} {$text = "Предзаказ"} {elseif $stocks['1'] <= 0 && $stocks['2'] <= 0 && $stocks['v1'] <= 0} {$status = "out-of-stock"} {$text = "Нет в наличии"} {else} {$status = "in-stock"} {$text = "В наличии"} {/if} {/literal} {/capture}
где:
$stocks['n1'] - указание конкретного склада. Вместо n2/n3/n1 нужно укзать id вашего склада, пример: $stocks['1'] , $stocks['2']. Если склад виртуальный, то добавить "v", пример: $stocks['v1'].
В теле условий указать присваивание двух переменных:
К сожалению, в текущем штатном функционале складов не указывается ID складов. Для того, чтобы узнать ID нужно навести курсор на кнопку редактирования склада и посмотреть на ссылку:
В том же блоке ниже добавляем код:
{$stocks_statuses = [ 'n1' => [ 'in-stock' => 'Есть', 'low' => 'Мало', 'critical' => 'Почти нету', 'out-of-stock' => 'Нету' ], 'n2' => [ 'low' => 'Осталось {$n}', 'out-of-stock' => 'Нету' ] ]}
Это массив, у которого ключи - id складов, значения - массив вида 'статус' -> 'текст'
В конце блока обе переменные ($stocks_condition, $stocks_statuses)(или одну, если только одна) поместить в глобальную переменную, в виде массива, с ключами, совпадающими с названиями переменных:
{$wa->globals('megashop.stocks_available_statuses', ['stocks_condition' => $stocks_condition, 'stocks_statuses' => $stocks_statuses])}
Тема дизайна предназначена для приложений:
На данный момент есть программа скидок - в случае, если у вас есть лицензия на тему Megashop 2.0 или если вы переходите с другой темы дизайна. Подробнее в форме по ссылке.
Мы можем помочь в переезде, доступные услуги перечислены в специальной форме по ссылке.
Это несёт риск невозможности дальнейших обновлений темы дизайна. Если вы внесли существенные изменения в исходный код темы - вы закрыли для себя возможность обновляться без дополнительных переносов и доработок.
Чем плохо отсутствие обновлений:
Как безопасно внести изменения в стили (например, поменять цвет), описали в этой статье.
Да, тема дизайна поддерживает функционал Premium Shop-script (дробное количество, разные единицы измерения и т.д.), если у вас Premium версия темы дизайна Megashop 3.0.
Если на вашем сайте не отображаются встроенные иконки оплаты, сравнения, избранного, проверьте, что в приложении "Сайт" у темы дизайна Megashop 3.0 выбрана родительская тема:
Для этого нужно перейти в приложение "Блог", пункт меню "Дизайн", кнопка "Настройки" и выбрать тему дизайна:
Тема дизайна должна быть установлена и для этого приложения. Если темы дизайна нет в списке, значит она не установлена. Нужно нажать на кнопку "Темы дизайна", найти в магазине тем Megashop 3.0 и установить её.
Услуги
Продукты
Кейсы
Блог
О нас
Акции
Bodysite.Club
Контакты