0

我正在使用 prestashop 作为商店。

我想知道是否有人知道一个快速的 php mod 来阻止组合产品具有自己的库存水平。问题是我们的供应商没有向我们提供我们销售的遥控车的各个外壳颜色的库存水平。这辆车要么有货,要么没货。我们使用 csv 导入来管理我们的库存。

显然,这些组合具有不同的库存水平。我真的需要“主要”库存水平来反映组合水平。

有没有一种快速修改 php 的方法来做到这一点?

我在想类似的东西

$id_product_attribute['quantity'] == '$qty';

$qty主要数量在哪里。另一个问题是,如果您有组合,当您使用 csv 更新时,它不会更新主要库存。我认为它在 AdminProducts.php 中。

我还在用1.4.7.0

我认为它在 AdminProducts.php 中。(我会在这里发布 php 文件,但它太大了。)

4

1 回答 1

1

将下面的代码放入<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

于 2012-11-04T13:45:28.627 回答