将下面的代码放入<prestashop root>/overrides/classes/StockMvt.php
该代码将所有组合的数量保持在同一水平。即当您有 5 种组合并且每个组合的库存为 10 时,如果一件商品售出,则所有 5 种组合的库存将减少到 9。
<?php
class StockMvt extends StockMvtCore {
public function add($autodate = true, $nullValues = false, $update_quantity = true) {
if (!$update_quantity)
return true;
if ($this->id_product_attribute) {
$product = new Product((int) $this->id_product, false, Configuration::get('PS_LANG_DEFAULT'));
return (Db::getInstance()->Execute(
'UPDATE `' . _DB_PREFIX_ . 'product_attribute`
SET `quantity` = quantity+' . $this->quantity . ' WHERE `id_product` = ' . (int) $this->id_product) &&
$product->updateQuantityProductWithAttributeQuantity());
}
else
return Db::getInstance()->Execute('
UPDATE `' . _DB_PREFIX_ . 'product`
SET `quantity` = quantity+' . (int) $this->quantity . '
WHERE `id_product` = ' . (int) $this->id_product);
}
}
?>
然而,我不能把代码归功于代码。Eggbert74 在此线程中提出了解决方案:http : //www.prestashop.com/forums/topic/43828-combination-quantity/page_st_40