首页 文章

如何以编程方式在Magento中的订单商品上设置自定义选项

提问于
浏览
0

我以编程方式从引号创建订单,并希望将产品的自定义选项传递给订单 . 为此,我试图在我正在创建的orderItem上设置自定义选项 . 我使用$ options = $ itemValue-> getOptions()成功获取自定义选项数组,但我无法使用setCustomOptions(),setOptions(),setProductOptions()等任何函数在订单项上设置选项, setItemOptions()等我在这里错过了什么吗?

foreach ($itemsData as $itemIds => $itemValue) {
        $products[$itemValue->getProductId()] = array('qty' => $itemValue->getQty());
        $rowTotal = $itemValue->getPrice() * $itemValue->getQty();        
        $options = $itemValue->getOptions();   
        $orderItem = Mage::getModel('sales/order_item')
                ->setStoreId($storeId)
                ->setQuoteItemId(0)
                ->setQuoteParentItemId(NULL)
                ->setProductId($itemValue->getProductId())
                ->setProductType($itemValue->getTypeId())
                ->setQtyBackordered(NULL)
                ->setTotalQtyOrdered($itemValue->getRqty())
                ->setQtyOrdered($itemValue->getQty())
                ->setName($itemValue->getName())
                ->setSku($itemValue->getSku())
                ->setPrice($itemValue->getPrice())
                ->setBasePrice($itemValue->getPrice())
                ->setOriginalPrice($itemValue->getPrice())
                ->setRowTotal($rowTotal)
                ->setBaseRowTotal($rowTotal)->setItemOptions($options);
        $subTotal += $rowTotal;
        $order->addItem($orderItem);
    }

1 回答

  • 0

    我只是通过以下方式从引用项中获取自定义选项 .

    $helper = Mage::helper('catalog/product_configuration');
                $options['additional_options'] = $helper->getCustomOptions($itemValue);
    

    然后使用setProductOptions($ options)在订单商品上设置了它

    干杯!

    $orderItem = Mage::getModel('sales/order_item')
                        ->setStoreId($storeId)
                        ->setQuoteItemId(0)
                        ->setQuoteParentItemId(NULL)
                        ->setProductId($itemValue->getProductId())
                        ->setProductType($itemValue->getTypeId())
                        ->setQtyBackordered(NULL)
                        ->setTotalQtyOrdered($itemValue->getRqty())
                        ->setQtyOrdered($itemValue->getQty())
                        ->setName($itemValue->getName())
                        ->setSku($itemValue->getSku())
                        ->setPrice($itemValue->getPrice())
                        ->setBasePrice($itemValue->getPrice())
                        ->setOriginalPrice($itemValue->getPrice())
                        ->setRowTotal($rowTotal)                        ->setBaseRowTotal($rowTotal)->setProductOptions($options);
    

相关问题