0

私はショップに prestashop を使用しています。

コンビネーション製品が独自の在庫レベルを持つのを止める簡単なphp modを誰かが知っているかどうか疑問に思っていました. 問題は、サプライヤーが販売する rc カーの個々のシェル色の在庫レベルを教えてくれないことです。車は在庫があるか、在庫がないかのどちらかです。csvインポートを使用して在庫を管理しています。

明らかに、組み合わせには個別の在庫レベルがあります。組み合わせレベルにミラーリングするには、「メイン」在庫レベルが本当に必要です。

これを行うためにphpを変更する簡単な方法はありますか?

みたいなことを考えていた

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

$qty主な数量はどこですか。もう1つの問題は、組み合わせがある場合、csv更新を使用したときにメイン在庫が更新されないことです. AdminProducts.php にあると思います。

私はまだ使用して1.4.7.0います。

AdminProducts.php にあると思います。(ここにphpファイルを投稿しますが、大きすぎます。)

4

1 に答える 1

1

以下のコードを<prestashop root>/overrides/classes/StockMvt.php

コードは、すべての組み合わせの数量を同じレベルに保ちます。つまり、5 つの組み合わせがあり、各組み合わせの在庫が 10 の場合、1 つのアイテムが販売されると、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 に答える