order_reduce_stock_counts_before
Срабатывает перед списанием остатков заказанных модификаций товаров со склада во время обработки заказа. Позволяет отслеживать изменения складских остатков — например, для синхронизации с маркетплейсами.
Доступно начиная с версии 10.2.0.
Shop-Script
Входящие параметры (передаются по ссылке)
$params['order_id'] int ID заказа.
$params['counts'] array Массив с информацией о количестве заказанных модификаций товаров, которое нужно списать со складов. Эти значения можно изменить в обработчике хука перед списанием товаров.
$params['counts'][sku_id][stock_id] float Количество модификации товара с
$params['counts'] array Массив с информацией о количестве заказанных модификаций товаров, которое нужно списать со складов. Эти значения можно изменить в обработчике хука перед списанием товаров.
$params['counts'][sku_id][stock_id] float Количество модификации товара с
sku_id для списания со склада stock_id в виде отрицательного числа.
… код плагина …
Результат работы плагина
Shop-Script
Пример кода плагина
PHP
public function orderReduceStockCountsBefore($params)
{
$log_strings = [];
foreach ($params['counts'] as $sku_id => $sku_quantities) {
foreach ($sku_quantities as $stock_id => $sku_stock_quantity) {
$log_strings[] = sprintf(
'- write off %0.3f of sku #%d from stock #%d',
abs($sku_stock_quantity),
$sku_id,
$stock_id
);
}
}
$log_text = sprintf(
'Values to reduce the quantities of product variants before processing order #%d:%s',
$params['order_id'],
PHP_EOL . implode(PHP_EOL, $log_strings)
);
waLog::log(
$log_text,
'shop/plugins/' . $this->getId() . '/order_reduce_stock_counts_before.log'
);
}









