我在 ps_stock_availabe 表中更新数量时遇到问题
我正在尝试运行查询:
$query = "UPDATE `"._DB_PREFIX_."stock_available` SET quantity='".$quantity."' WHERE (id_product_attribute = '".$ID_product_attribute."' AND id_product = '".$ID_product."' )";
Db::getInstance()->Execute($query);
什么也没发生。值是正确的且不为空。 我可以通过 PHPMyAdmin “手动”更新 - 但不能使用脚本。
服务器日志中没有错误。
我正在 Hook 的模块中运行更新:
public function hookActionProductAttributeUpdate($params) {}
此 Hook 中的其他内容正在更新,没有任何问题。
我错过了什么??
您的 SQL 查询还不够。
相反,您应该使用 PrestaShop 为此设计的核心功能:
StockAvailable::setQuantity($id_product, $id_product_attribute, $quantity)
或者,如果您想添加或删除库存数量而不是设置新数量,您也可以使用以下函数:
StockAvailable::updateQuantity($id_product, $id_product_attribute, $delta_quantity)
,其中 $delta_quantity
可以为正数或负数,具体取决于您是否要添加或删除数量.