Я делаю также как и вы, у меня в модуле пограммно меняется количество на складе. Модуль не стандарный, сделан для общего склада, при заказе проверка и изменние доступного количества до регистрации заказа.
Получаю ид товаров в заказе, загружаю товары, меняю количестово и сохраняю
$product = new Product((int)$ids['id_product]);
$product->quantity = $product_quantity_new;
$product->update();В базе данных изменения сохраняются, товары не дублируются.