4

このコードを使用したいくつかのチュートリアルに基づいて、見積もりアイテムの価格を製品とは異なるように変更できるようにしたいと考えています。

$quoteItem->setCustomPrice($price);
$quoteItem->setOriginalCustomPrice($price);
$quoteItem->getProduct()->setIsSuperMode(true);
$quote->save();

その後、カートに入ると、カスタム価格ではなく、通常の価格が表示されます。カート内の見積もりアイテムを確認しましたが、customPrice は正しいのですが、無視されているようです。このカスタム価格を有効にするには、何か他のものを有効にする必要がありますか?

PS:

マジェント v1.7

4

2 に答える 2

9

OK、問題が見つかりました。どういうわけか、スクリプトに保存されませんでした。理由はわかりませんが、コードを 2 つの関数に書き直しました。1 つは製品を追加するためのもので、もう 1 つは価格を変更するためのものです。

したがって、必要なのはこのコードだけです。

$quoteItem->setCustomPrice($price);
$quoteItem->setOriginalCustomPrice($price);
$quoteItem->getProduct()->setIsSuperMode(true);
$quoteItem->save();

見積もりを保存する必要はありません。

于 2013-10-31T12:14:19.230 に答える
2

簡単な修正である必要があります: 私が間違っていなければ、見積もりアイテムの価格を保存しようとしていますが、代わりに見積もりを保存しています。見積もりアイテム自体も保存する必要があります。

$quoteItem->setCustomPrice($price);
$quoteItem->setOriginalCustomPrice($price);
$quoteItem->getProduct()->setIsSuperMode(true);
$quoteItem->save();
$quote->save();
于 2013-10-22T10:00:18.867 に答える