Начиная с версии 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])}
Это несёт риск невозможности дальнейших обновлений темы дизайна. Если вы внесли существенные изменения в исходный код темы - вы закрыли для себя возможность обновляться без дополнительных переносов и доработок.
Чем плохо отсутствие обновлений:
Как безопасно внести изменения в стили (например, поменять цвет), описали в этой статье.
Первые действия для диагностики причин, связанных с темой дизайна:
1) Попробуйте временно переключиться на другую тему дизайна и проверить работу сломанных разделов.
2) Попробуйте временно отключить плагины, котоырые что-то модифицируют на сайте.
3) Убедитесь, что на вашем сайте не изменялись шаблоны дизайна. Это можно сделать в разделе Витрина - Шаблоны. Если какой-то из шаблонов выделен жирным шрифтом, значит в него вносились изменения.
4) Убедитесь, что вы используете самую свежую версию темы дизайна. Вы установили её и для приложения "Магазин" и для приложения "Сайт" и для приложения "Блог".
5) Откройте консоль разработчика в браузере и проверьте, не появляются ли какие-то записи об ошибках при работе сайта. В них может быть отсылка на какой-то плагин или конкретный скрипт.
6) Посмотрите логи в приложении "Логи". Включите в настройках приложения запись ошибок PHP. Появляются ли какие-то новые записи при воспроизведении ошибки?
Тема дизайна предназначена для приложений:
На данный момент есть программа скидок - в случае, если у вас есть лицензия на тему Megashop 2.0 или если вы переходите с другой темы дизайна. Подробнее в форме по ссылке.
Мы можем помочь в переезде, доступные услуги перечислены в специальной форме по ссылке.
Это несёт риск невозможности дальнейших обновлений темы дизайна. Если вы внесли существенные изменения в исходный код темы - вы закрыли для себя возможность обновляться без дополнительных переносов и доработок.
Чем плохо отсутствие обновлений:
Как безопасно внести изменения в стили (например, поменять цвет), описали в этой статье.
Да, тема дизайна поддерживает функционал Premium Shop-script (дробное количество, разные единицы измерения и т.д.), если у вас Premium версия темы дизайна Megashop 3.0.
Если на вашем сайте не отображаются встроенные иконки оплаты, сравнения, избранного, проверьте, что в приложении "Сайт" у темы дизайна Megashop 3.0 выбрана родительская тема:

Для этого нужно перейти в приложение "Блог", пункт меню "Дизайн", кнопка "Настройки" и выбрать тему дизайна:

Тема дизайна должна быть установлена и для этого приложения. Если темы дизайна нет в списке, значит она не установлена. Нужно нажать на кнопку "Темы дизайна", найти в магазине тем Megashop 3.0 и установить её.
