Склады PRO

Плагин «Склады PRO» — плагин для Shop-Script, расширяющий возможности складов интернет-магазина. Плагин включает в себя несколько функционалов, каждый из которых можно включить/отключить.

Таблица складов в карточке товара и списке товаров

Для подключения кнопки, отображающей таблицу складов, выполните следующие действия:

  • В настройках плагина Основные настройки → Таблица складов в карточке товара и списке товаров включите настройку "Отображать кнопку таблицы складов".
  • Укажите хелпер плагина на странице, где нужно отобразить кнопку.

Хелперы

См. также: Как встраивать хелперы

Для подключения кнопки в карточке товара используйте следующий хелпер в шаблоне product.html или product.cart.html:

{shopWarehouseViewHelper::getStocksButton($product, [ 'mode' => 'sync', 'from' => 'product' ])}

Для подключения кнопки в списке товаров используйте следующий хелпер в шаблоне list-thumbs.html (шаблон может называться иначе, так как для этого шаблона нет стандарта в именовании):

{shopWarehouseViewHelper::getStocksButton($p, [ 'mode' => 'async', 'from' => 'list' ])}

В списке товаров переменная, указывающая на товар, может быть названа как $p, так и $product в зависимости от используемой темы дизайна, но чаще $p. В карточке товара переменная всегда называется $product.

Параметр 'mode' означает режим загрузки таблицы: 'sync' — синхронный или 'async' — асинхронный. В синхронном режиме содержимое таблицы предварительно загрузится на стороне сервера и по нажатию на кнопку окно с таблицей моментально будет показано пользователю. В асинхронном режиме содержимое таблицы загрузится только при нажатии на кнопку, после чего будет пользователю будет показано окно.

Параметр 'from' поддерживает 2 значения — 'product' и 'list'. Это указатель для плагина, который говорит о том в каком режиме отображается кнопка — в карточке товара или в списке товаров соответственно.

Выбор склада: общее

Для включения возможности выбрать склад пользователем выполните следующие действия:

  • В настройках плагина Основные настройки → Выбор склада включите настройку "Разрешить пользователю выбирать склад".
  • Отметьте те способы доставки, для которых выбор склада доступен:

  • Для каждого склада установите связи со способами доставки. Это нужно для того, чтобы плагин понимал какие склады можно показать пользователю для выбора в рамках выбранного способа доставки.

См. также: Выбор склада: связи со способами доставки

Пошаговый режим оформления заказа

При использовании пошагового режима оформления заказа необходимо встроить следующий хелпер в шаблон checkout.shipping.html

Для подключения кнопки в карточке товара используйте следующий хелпер в шаблоне product.html или product.cart.html:

{shopWarehouseViewHelper::getStockSelectButton($m.id, [ 'from' => 'checkout' ])}

Хелпер должен быть подключен внутри конструкции {foreach $checkout_shipping_methods as $m} ... {/foreach}. Переменная $m здесь указывает на итерируемый способ доставки, поэтому если эта переменная в вашей теме дизайна названа иначе, в хелпере так же нужно будет заменить $m.id.

См. также: Как встраивать хелперы

Особенности работы в пошаговом режиме оформления заказа

  • На текущий момент в этом режиме не поддерживаются сроки комплектации — плагин не будет изменять сроки доставки в зависимости от склада.

Режим оформления заказа в корзине

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

Выбор склада: связи со способами доставки

Этот блок актуален только при включенном режиме выбора склада пользователем, поэтому если вы не используете эту функцию, то эту информацию можно пропустить.

Для полного понимания и правильной настройки плагина стоит оговорить такое понятие как связи складов и способов доставки.

  • Выбранные способы доставки для склада означают те способы доставки, для которых можно будет выбрать этот склад.
  • Для способов доставки плагина Пункт выдачи заказов есть возможность синхронизировать некоторые параметры из этого способа доставки в параметры склада. Для этого нужно нажать иконку синхронизации рядом с этим способом доставки.

    При синхронизации будут скопированы следующие параметры:

    • Координаты;
    • Адрес;
    • Режим работы.

Режим оформления заказа в корзине

В режиме оформления заказа в корзине существует 2 варианта отображения кнопки выбора склада.

Кнопка плагина

  • Отображается под информацией о выбранном способе доставки тогда и только тогда, когда пользователю недоступно никаких других способов доставки, кроме того, для которого на выбор есть склады.

Эта кнопка откроет окно выбора склада на уровне плагина, которое будет выглядеть примерно так:

Выбор склада в окне выбора ПВЗ

  • В этом варианте отображения плагин не вводит никаких дополнительных кнопок — пользователь выберет склад в стандартном окне выбора ПВЗ на уровне приложения Shop-Script.
  • Этот вариант включается когда пользователю предоставлено на выбор более одного способа доставки внутри блока "Самовывоз".

В этом варианте есть свои особенности, а именно в плане того как плагин "создает" дополнительные способы доставки.

Если плагин настроен таким образом, что с одним способом доставки связано несколько складов, то плагин сам визуально "создаст" дубликаты этого способа доставки для выбора пользователем, установив им координаты, адрес и другие параметры соответствующие конкретному складу.

На изображении выше показан такой кейс: есть один способ доставки и несколько складов связано с ним. Плагин визуально "создал" дубликаты этого способа доставки, но сопоставив их со складами.
Пункт выдачи заказов 2 на изображении — не связанный ни с одним из складов способ доставки, который может быть, например, пунктом выдачи СДЭК.

Такое поведение плагина удобно использовать не создавая множество способов доставки. Достаточно создать один способ доставки самовывозом и сопоставить с ним сразу несколько складов, которые должны быть доступны для выбора пользователем.

В так называемую "карточку пункта выдачи" плагин встроит дополнительную информацию о наличии товаров на этом складе, выглядеть это будет примерно так:

Пояснения

Зачем нужно 2 варианта выбора склада?

Выбор склада через "кнопку плагина" удобнее — на карте отображаются только склады, есть поиск, удобное отображение режима работы. Такой вариант хотелось бы видеть всегда, но тогда это приводит к негативным последствиям:

Если, например, покупатель из Екатеринбурга, и склады для самовывоза есть в Екатеринбурге, и больше никаких других вариантов, кроме как самовывоз со склада, пользователю недоступно в этом городе, то все хорошо — пользователь выберет склад самовывоза и оформит заказ.

Однако, если в этом городе помимо складов самовывоза доступны, например, пункты выдачи СДЭК, то пользователю придется дважды выбирать склад. Сначала он выберет способ доставки, который подразумевает выбор склада, увидит на карте его единственное местоположение и единственный адрес, затем увидит еще одну кнопку выбора склада, где снова будет карта и уже совсем другие адреса и точки на карте.

Чтобы не путать пользователя и не заставлять его дважды "разбираться" в картах, в точках на картах, существует режим выбора склада в окне выбора ПВЗ. Он не такой удобный как через "кнопку плагина" — всплывающее окно точки на карте отображает только название, а режим работы не отображается, и со стороны плагина на текущий момент нет технической возможности изменить поведение этого окна, так как оно реализовано на стороне приложения Shop-Script, но тем не менее такой вариант более приемлим, чем отображение для пользователя двух окон с картами и разными точками на них.

Сроки доставки

Плагин позволяет изменять сроки доставки в зависимости от склада.

На текущий момент этот функционал доступен только в режиме оформления заказа в корзине.

Как включить этот функционал?

  • В настройках плагина Основные настройки → Изменение сроков доставки включите настройку "Изменять сроки доставки".
  • Включите при каком режиме выбора склада нужно изменять сроки доставки: Если склад был выбран пользователем... и/или Если склад был определен автоматически....

Затем настройте для складов сроки комплектации. Плагин добавит к срокам доставки соответствующее складу число дней срока комплектации.

Сроки комплектации

Для каждого склада можно установить сроки комплектации. Сроки комплектации — это набор правил, объединенных по дню недели, к которому применяются те или иные расчетные дни.

Чтобы создать новое правило — нажмите "Добавить правило расчета сроков комплектации". Каждый день недели может находиться только в одном правиле.

Для каждого правила есть возможность установить зависимость от времени. Если время до N часов, то срок комплектации будет выбран из поля "Срок комплектации", в ином случае из поля "иначе".

Рассмотрим пример когда пользователь оформляет заказ в субботу и выбран склад с указанными параметрами срока комплектации, а плагин доставки расчитал доставку на сегодняшний день — субботу.

Если пользователь оформляет заказ до 18 часов, то к сроку доставки прибавится 4 дня и итоговый срок доставки будет в среду.

Если пользователь оформляет заказ после 18 часов, то к сроку доставки прибавится 5 дней и итоговый срок доставки будет в четверг.

Иными словами, "время до" — это час, до которого работает магазин в указанный день недели, если пользователь оформляет заказ позже этого времени, то заказ будет обработан только на следующий день, поэтому в этом примере разница между указанными днями — 1 день.

Время указывается в часовом поясе сервера. Убедитесь, что часовой пояс на сервере соответствует тому, в котором вы вводите данные. Часовой пояс сервера можно узнать в блоке настроек складов "Режим работы".

В истории выполнения заказа будет логироваться информация об изменениях сроков доставки — какой был расчетный срок доставки и какой в итоге был показан пользователю после обработки плагином.

Видимость складов для регионов

Склады можно фильтровать по региону пользователя.

Плагин НЕ определяет регион пользователя, а берет его из следующих источников:

В настройках плагина Параметры скриптов → Провадйер определения региона вы можете изменить это поведение плагина для определения региона пользователя.

Где учитываются параметры видимости склада для регионов?

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

Умный режим автоматического выбора склада — функционал плагина, который позволяет автоматически назначать склад для заказа в зависимости от наличия товара в нужном количестве на этом складе, а так же в зависимости от видимости этого склада для региона, приоритезируя их по срокам комплектации.

Как работает этот режим?

  • При оформлении заказа плагин найдет для каждого товара тот склад, на котором товар есть в наличии в нужном количестве.
  • Если товар есть в нужном количестве на одном из складов, то плагин назначит товару этот склад.
  • Если товара недостаточно на одном складе, но он есть на нескольких складах, то плагин назначит товару эти самые склады для списания.
  • Если товар есть в недостаточном количестве на одном из складов, то плагин назначит товару 2 склада: тот, на котором товар есть в каком-то количестве и тот, который указан в параметре "Склад списания товаров по предзаказу". Этот функционал доступен только если включен режим предзаказа в общих настройках магазина.
  • Если товара нет в наличии ни на одном складе — товару будет назначен тот склад, который указан в параметре "Склад списания товаров по предзаказу". Этот функционал доступен только если включен режим предзаказа в общих настройках магазина.

Этот режим не конфликтует с режимом выбора склада пользователем. Если включен режим выбор склада пользователем и он самостоятельно выбрал склад, то умный выбор склада работать не будет.

Назначение товару нескольких складов

Штатно Shop-Script не позволяет назначить для товара в заказе списание с нескольких складов — для товара в заказе может быть выбран только один склад.
Поэтому плагин "разбивает" товар на отдельные единицы, назначая им разные склады и соответствующее количество, которое может быть со склада списано.

В указанном выше примере пользователь заказ 4 единицы товара, когда товар есть только на одном складе и в количестве 3 единицы.
Плагин "разбил" товар в заказе — 3 единицы с одного склада, 1 единицу товара со склада для предзаказа.

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

Шаблоны и кастомизация плагина

Внешний вид плагина можно полностью кастомизировать засчет возможности редактирования шаблонов в настройках плагина.

Плагин работает таким образом, что изначально все шаблоны, таблицы стилей CSS и основной JavaScript-код плагина располагаются на сервере в директории плагина. Модифицировать эти шаблоны там не нужно. При изменении любого шаблона из интерфейса плагина, он создаст новый модифицированный шаблон в директории /wa-data/public/shop/warehouse/templates.

После внесения изменений в любой шаблон сверху будет отображен путь до файла с изменениями.

Плагин при отображении какого-либо шаблона сначала ищет файлы в директории /wa-data/public/shop/warehouse/templates, и только если там нет нужного файла, он отображает шаблон по умолчанию. Такая логика плагина позволяет легко модифицировать шаблоны из IDE минуя интерфейс плагина.

Вносите изменения в шаблоны только если вы уверены в своих действиях. В случае чего всегда можно нажать кнопку "Восстановить шаблон по умолчанию" сверху справа над шаблоном.