frontend_checkout_stock_rules
Позволяет применять правила выбора склада для списания товаров при оформлении заказов.
Доступно начиная с версии 7.0.1.
Shop-Script
Входящие параметры (передаются по ссылке)
$params['order'] object Экземпляр класса
$params['stocks'] array Список складов. Каждый элемент списка — массив со следующими ключами:
$params['stocks'][stock_id]['id'] int ID склада.
$params['stocks'][stock_id]['name'] string Название склада.
$params['stocks'][stock_id]['public'] bool Признак видимости на витрине.
$params['stocks'][stock_id]['sort'] int Значение сортировки.
$params['stocks'][stock_id]['low_count'] int Максимальное количество товара, считающееся низким.
$params['stocks'][stock_id]['critical_count'] int Максимальное количество товара, считающееся критически низким.
$params['rules'] array Список правил выбора складов. Плагин должен модифицировать элементы списка, устанавливая флаг с ключом
$params['rules'][rule_id]['id'] int ID правила.
$params['rules'][rule_id]['stock_id'] int ID склада для списания остатков.
$params['rules'][rule_id]['virtualstock_id'] int ID виртуального склада для списания остатков.
$params['rules'][rule_id]['rule_type'] string Тип правила: 'by_region' (по адресу доставки), 'by_region' (по способу доставки).
$params['rules'][rule_id]['rule_data'] string Значение правила: обозначение региона доставки (для типа правила 'by_region') или ID способа доставки (для типа правила 'by_shipping').
$params['rules'][rule_id]['sort'] int Значение сортировки.
shopOrder со свойствами заказа.$params['stocks'] array Список складов. Каждый элемент списка — массив со следующими ключами:
$params['stocks'][stock_id]['id'] int ID склада.
$params['stocks'][stock_id]['name'] string Название склада.
$params['stocks'][stock_id]['public'] bool Признак видимости на витрине.
$params['stocks'][stock_id]['sort'] int Значение сортировки.
$params['stocks'][stock_id]['low_count'] int Максимальное количество товара, считающееся низким.
$params['stocks'][stock_id]['critical_count'] int Максимальное количество товара, считающееся критически низким.
$params['rules'] array Список правил выбора складов. Плагин должен модифицировать элементы списка, устанавливая флаг с ключом
'fulfilled' для тех правил, которые должен обработать плагин. См. также описание хука "backend_settings_stocks" о том, как модифицировать форму настроек для создания таких правил.$params['rules'][rule_id]['id'] int ID правила.
$params['rules'][rule_id]['stock_id'] int ID склада для списания остатков.
$params['rules'][rule_id]['virtualstock_id'] int ID виртуального склада для списания остатков.
$params['rules'][rule_id]['rule_type'] string Тип правила: 'by_region' (по адресу доставки), 'by_region' (по способу доставки).
$params['rules'][rule_id]['rule_data'] string Значение правила: обозначение региона доставки (для типа правила 'by_region') или ID способа доставки (для типа правила 'by_shipping').
$params['rules'][rule_id]['sort'] int Значение сортировки.
… код плагина …
Результат работы плагина
Shop-Script
Пример кода плагина
PHP
/**
* As an example, let us determine whether total quantity of order items is above a value
* selected in the first available stock rule setting provided by this plugin.
* For details, see description and code example for 'backend_settings_stock' event
*/
public function frontendCheckoutStockRules($params)
{
$quantity = 0;
foreach ($params['order']['items'] as $item) {
$quantity += $item['quantity'];
}
foreach ($params['rules'] as &$rule) {
if ($rule['rule_type'] == $this->id) {
if ($quantity > $rule['rule_data']) {
$rule['fulfilled'] = true;
break;
}
}
}
}









