Prestashop Multistore - 默认商店覆盖本地产品属性成本

问题描述

我的问题与已经解决的问题有关,即在“所有商店”上下文中保存产品使所有商店的价格都相同,而不管货币如何。因此,如果产品在波兰的成本为 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;
}

现在,在“所有商店”中保存带有组合的产品时,不会更新产品属性(附加价格、库存等) - 这些只能保存在特定/选定商店的上下文中。