我在prestashop上创建了一个产品,我用这个函数输入了数量:
echo "1";
StockAvailable::setQuantity($id_prod, 0, $quantity,1);
echo "2";
结果是:
1fatal error
进入后端,产品和数量设置正确。 我怎样才能避免“致命错误”? 这里报告错误:第2582行中的classes / Product.php:if(!$ id_cart&&!isset($ context-> employee))die(Tools :: displayError());
此代码位于“getPriceStatic”函数中。拉动执行“StockAvailable :: setQuantity”是正常的吗?
我没有更改类,我没有覆盖
答案 0 :(得分:1)
通常我会使用此代码段(根据您的需要进行调整):
$shop_is_feature_active = Shop::isFeatureActive();
$shops = Shop::getContextListShopID();
if ($shop_is_feature_active) {
foreach ($shops as $shop) {
StockAvailable::setQuantity((int)$product->id, 0, (int)$product->quantity, (int)$shop);
}
} else {
StockAvailable::setQuantity((int)$product->id, 0, (int)$product->quantity, (int)$this->context->shop->id);
}
但是,我总是建议检查产品是否在该商店。
检查是否
非常重要Context::getContext()->employee
不为空,否则请输入:
$psContext = Context::getContext();
if (!$psContext->employee) {
$psContext->employee = new Employee(PS_DEFAULT_EMPLOYEE);
}