ショッピング カートに追加する前に、次のコードを使用して見積もりアイテムにオプションを渡しました。オプションは、チェックアウト プロセスで問題なく表示されますが、注文が行われると消えます。オプションは、注文の確認メール、注文レビュー ページ、またはバックエンドに表示されません。後で確認するために、これらのオプションを保持する必要があります。
$cart = Mage::getModel('checkout/cart')
$quote = Mage::getSingleton('checkout/session')->getQuote()
$product = Mage::getModel('catalog/product')->load(7)
$quoteItem=Mage::getModel('sales/quote_item')->setProduct($product)
$a_options = array(
'options1' => array(
'label' => 'Ingredients',
'value' => $recipecontents,
),
'options2' => array(
'label' => 'Crush Grains',
'value' => $crush,
),
);
$quoteItem->addOption(new Varien_Object(
array(
'product' => $quoteItem->getProduct(),
'code' => 'additional_options',
'value' => serialize($a_options)
)
));
$quote->addItem($quoteItem)
$cart->save()
変数 $recipecontents と $crush は、フォームから渡されたデータを使用して、コードの前半で定義されています。
それ以外はすべて機能しますが、注文が行われるとすぐに、Magento はオプションの設定内容を忘れてしまいます。注文を満たすために、これらの値をバックエンドに保持する必要があります。Community Edition 1.7.0.2 を使用しています。
これらの値が失われている理由と、それを防ぐ方法を知っている人はいますか?