База знаний
Войдите в личный кабинет для возможности задавать вопросы и отвечать на комментарии.
Полезная информация

Как выводить срок доставки через настройки темы Megashop 3

Поддержка Bodysite
Поддержка Bodysite
6 марта 2024 13:20
+1

В теме дизайна Megashop 3.0 есть возможность вывести дату доставки товара.

Как это выглядит?

В каталоге:

На странице товара:

Как настроить?

В настройках оформления темы дизайна, в блоке "Прочие настройки магазина" есть поле для указания шаблона:

В выпадающем поле вы можете выбрать: 

  • Не выводить
  • Выводить
  • Выводить только у товаров в наличии

Сам шаблон задаётся следующим образом: Можно указать любой текст до или после элемента @today+2@

Внутри @today+2@ формируется дата, путём прибавления количества дней к текущей дате. Можно

Примеры:

  • Доставим @today+2@
  • Можно забрать @today+2@ из магазина или доставим @today+3@

В шаблоне можно использовать Smarty или переменные из плагина SEO-регионы. Пример: 

Доставим в {shopRegionsViewHelper::parseTemplate('{$region.name}')} до @today+{shopRegionsViewHelper::parseTemplate('{$region.field[1]}')}@

В данном случае вместо {shopRegionsViewHelper::parseTemplate('{$region.name}')} подставляется название региона из SEO-регионов

Вместо {shopRegionsViewHelper::parseTemplate('{$region.field[1]}')} подставляется содержимое дополнительного поля региона, в котором может быть например, срок доставки в днях для этого региона.

Как указать дату в зависимости от наличия на складе?

Начиная с версии темы 1.2.0 появилась возможность указывать срок доставки в зависимости от конкретного наличия на конкретном складе.

Пример конструкции, которую нужно указать в поле "Текст блока доставки":

{if $stocks['n2'] > 50}
    Доставка сегодня
{elseif $stocks['n1'] >= 20}
    Привезём @today+2@
{elseif $stocks['n3']> 1}
    Доставка @today+10@
{else}
    Доставка @today+15@
{/if}

Здесь вы видите конструкцию из условий, где $stocks['n2'] - указание конкретного склада. Вместо n2/n3/n1 нужно укзать id вашего склада, пример: $stocks['1'] / $stocks['2']. Если склад виртуальный, то добавить "v", пример: $stocks['v1'];

Пример:

У магазина есть следующие склады:

Если товар есть в "Магазине на Ленина", то его можно забрать сегодня.

Если товар есть на "Складе в Кольцово", то привезём завтра.

Если товар есть только у поставщиков "Юра" и "ИП Васюков", то привезём через 14 дней. Склады объедены в виртуальный склад "Предзаказ".

ID склада не отображается в интерфейсе Webasyst, его нужно посмотреть в ссылке кнопки "Редактировать":

Составляем конструкцию условий:

{if $stocks['1'] >= 1}
    Доступно сегодня!
{elseif $stocks['2'] >= 3}
    Привезём @today+1@
{elseif $stocks['v1'] > 10}
    Доставка @today+14@
{else}
    Доставка @today+14@
{/if}

Здесь мы указали ID наших складов (1 и 2), Id виртуального склада, состоящего из складов поставщиков (v1). И резервное условие, если, вдруг, наличие товара не подпадёт ни под одно из условий по складам.