В файле fn.cart.php в функции fn_update_product_amount с начала функции и до первого хука есть три return
То есть если надо прицепиться к этой функции, не всегда будет выполнен задуманный код. Нужен хук, который будет стоять в этой функции ДО первого return, то есть код, прицепленный к этому хуку будет выполняться ВСЕГДА, вне зависимости от настроек отслеживания количества итп.
Поясню почему. Например, в магазине количество не отслеживается, и тогда при размещении заказа уменьшение количества не происходит так как сразу происходит выход из функции fn_update_product_amount. Однако при интеграции с другими торговыми площадками мне нужно четко отслеживать наличие (например в торговую площадку выгружается из 1С, а при оформлении заказа на сайте надо через API передать уменьшение количества товара).
Пока решил прицепившись к хуку
fn_set_hook(‘create_order’, $order);
в fn_update_order, но это не дает нужной гибкости, так как вместо одного хука требует подключаться ко многим где вызывается fn_update_product_amount