问题描述
我的问题与已经解决的问题有关,即在“所有商店”上下文中保存产品使所有商店的价格都相同,而不管货币如何。因此,如果产品在波兰的成本为 100 PLN,那么在德国为 100 欧元,在英国为 100 英镑。本主题链接:
Prestashop Multistore - local store prices are overwritten with price from default shop
无论如何,所提供的解决方案并未涵盖产品组合额外成本这一完全相同的问题。所以我想在“所有商店”上下文中保存产品时忽略这些字段。
有人知道怎么解决吗??
解决方法
我通过编辑覆盖的 Product.php(来自 /classes/Product.php) - 功能 updateAttribute(大约 1800+ 行)实现了它。我把它的主体,除了返回,变成了一个 if 语句:
public function updateAttribute(...) {
if (Shop::getContext() == Shop::CONTEXT_SHOP){
// function body here
}
return true;
}
现在,在“所有商店”中保存带有组合的产品时,不会更新产品属性(附加价格、库存等) - 这些只能保存在特定/选定商店的上下文中。