frontend_checkout_stock_rules
Позволяет применять правила выбора склада для списания товаров при оформлении заказов.
Shop-Script
Входящие параметры (передаются по ссылке)
$params array Массив параметров.
$params['order'] array Массив данных заказа.
$params['rules'] array Список правил выбора складов из таблицы базы данных shop_stock_rules, который может модифицировать плагин. Плагин должен модифицировать элементы массива, добавляя ключ 'fulfilled' (bool) для тех правил, которые должен обработать плагин. См. также описание хука "backend_settings_stocks" о том, как модифицировать форму настроек для создания таких правил.
$params['stocks'] array Список складов, возвращаемый методом shopHelper::getStocks().
$params['order'] array Массив данных заказа.
$params['rules'] array Список правил выбора складов из таблицы базы данных shop_stock_rules, который может модифицировать плагин. Плагин должен модифицировать элементы массива, добавляя ключ 'fulfilled' (bool) для тех правил, которые должен обработать плагин. См. также описание хука "backend_settings_stocks" о том, как модифицировать форму настроек для создания таких правил.
$params['stocks'] array Список складов, возвращаемый методом shopHelper::getStocks().
… код плагина …
Результат работы плагина
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; } } } }