Склады

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

Склады нужны, если вы ведёте складской учёт. При включении складов количество всех товаров будет по умолчанию равно 0, необходимо будет указать количество для каждого товара для конкретного склада. При выключении складов, количество товаров вернётся к тому числу, которое было на момент их включения. 

Доступна автоматическая синхронизация складов с 1c и МойСклад, а также выгрузка и загрузка через CSV файлы.

Видео

1)  Чтобы включить функционал складов и добавить новый склад перейдите в "Настройки" -> "Склады". Отметьте опцию "Использовать склады" и нажмите на кнопку "Добавить новый склад";

2) Для каждого склада обязательно заполните поля с названием и адресом. Если вы хотите использовать склад как пункт самовывоза, то поставьте галочку «Использовать как пункт самовывоза» ;

3) Чтобы наличие на складах отображалось для пользователей в карточке товара на сайте, необходимо включить опцию «Отображать склад  в карточке товара на сайте», для этого нажмите на иконку с лампочкой.

4) Для того, чтобы те склады, которые вы используете для самовывоза, были доступны пользователю при оформлении заказа, необходимо в разделе «Доставка» указать, при каких способах доставки пользователь сможет выбрать склад (Например, способ доставки «Самовывоз» или «Без доставки»), включив галочку «Показывать склады».


5) В складах доступны настройки порядка списания товара со складов. Для этого в разделе «Склады» необходимо открыть окно «Настройки складов» .
Вы можете выбрать следующие варианты списания товара: «С первого, у которого есть все». Данный вариант списывания подразумевает списывание товара по порядку со складов. Списание может начаться с любого склада.  Когда на одном из складов заканчивается товар, происходит переход к следующему складу и т.д. Данный вариант стоит по умолчанию, а так же, при добавлении или удалении склада настройки сбрасываются до этого варианта!

6) Вариант списания товара «В заданном порядке» происходит так же, как и в предыдущем варианте, последовательно с каждого склада, но теперь вы сами должны расставить склады в порядке списания товара (Сверху вниз). Для этого перетащите склады в нужном порядке, зажав и удерживая левой кнопкой мышки значок перетаскивания.

7) Вариант списывания «С основного» подразумевает под собой следующий порядок списания товара: Вы выбираете основной склад, с которого будет происходить списание товара. Если на данном складе закончится товар, то списывание будет происходить по одной из следующий настроек: либо с первого склада, у которого есть данный товар (пункт 7) , либо в заданном порядке (пункт 8), который вам так же необходимо указать.

8) После того, как склад создан, необходимо добавить количество товара на складе в карточке товара.

9) Обратите внимание, пользователи видят в карточке товара остаток только на тех складах, которые вы отобразили в публичной части (Пункт 3).

10) В корзине товара пользователь может выбрать склад только в том способе доставки, у которого включена опция «Выводить склады».
Для редактирования заказа со складами перейдите в административной части вашего сайта в раздел «Заказы», откройте необходимый заказ и нажмите кнопку «Редактировать». Для изменения поля со складами нажмите на количество товара. Появится всплывающее окно, в котором вы можете изменять склады у заказа. Вы можете изменит количество товара, изменить склад, а так же добавить еще один склад к уже существующему, либо же удалять какой либо склад у заказа.


 

Инструкция для изменения старых шаблонов, чтобы они поддерживали все настройки складов

Мы внесли эти изменения во все шаблоны маркетплейса, поэтому вы можете просто обновиться до актуальной версии шаблона. Если вы вносили изменения в шаблоны или используете собственные, то для поддержки работы сладов после версии движка 9.4+ необходимо внести следующие изменения в файлы. 


Для того, чтобы отображались склады при выборе способа доставки в шаблоне необходимо:

1) Для шаблонов с компонентной структурой в файле components/order/storages/storages.php замените следующий код:

foreach ($data as $item) {
  $_SESSION['forDeferCart'][] = $item;
  if ((count($_SESSION['cart']) > count($item['data']))) {
    echo "<label><input value='" . $item['id'] . "' type='radio' name='storage' disabled><span>" . $item['name'] . '</span></label>';
    echo '<p class="st-error">' . lang('storageDepleted') . '</p>';
  }
  else {
    echo "<label><input value='" . $item['id'] . "' type='radio' name='storage' required><span>" . $item['name'] . '</span></label>';
  }
}

на:

$mainStorage = MG::getMainStorage();
foreach ($data as $item) {
  if($item['pickupPoint'] == 'true'){
    $_SESSION['forDeferCart'][] = $item;
    echo "<label><input value='" . $item['id'] . "' type='radio' name='storage'><span>" . htmlspecialchars($item['name']) . '</span></label>';
  }
}
echo "<label class='active' style = 'display:none;'><input value='" . $mainStorage . "' type='radio' id = 'main_storage_id' name='storage' autofocus checked><span>" . $mainStorage . '</span></label>';

В файле components/order/order.php замените следующий код:

<label data-delivery-date="<?php echo $delivery['date']; ?>"
data-delivery-intervals='<?php echo $delivery["interval"]; ?>'
data-delivery-address='<?php echo $delivery["address_parts"]; ?>'>

на:

<label data-delivery-date="<?php echo $delivery['date']; ?>"
data-delivery-intervals='<?php echo $delivery["interval"]; ?>'
data-delivery-address='<?php echo $delivery["address_parts"]; ?>'
data-delivery-use-storage='<?php echo $delivery["show_storages"]; ?>'>

2) Для шаблонов без компонентной структуры необходимо в файле views/order.php замените код:

<label data-delivery-date="<?php echo $delivery['date']; ?>"
data-delivery-intervals='<?php echo $delivery["interval"]; ?>'
data-delivery-address='<?php echo $delivery["address_parts"]; ?>'>

на:

<label data-delivery-date="<?php echo $delivery['date']; ?>"
data-delivery-intervals='<?php echo $delivery["interval"]; ?>'
data-delivery-address='<?php echo $delivery["address_parts"]; ?>'
data-delivery-use-storage='<?php echo $delivery["show_storages"]; ?>'>