如何以编程方式在 Magento 中的订单项上设置自定义选项
How can I set custom options on an order item in Magento programmatically
我正在以编程方式根据报价创建订单,并希望将产品的自定义选项传递给订单。为此,我试图在我创建的 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);
}
我刚刚通过以下方式从报价项目中获取了自定义选项。
$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);
我正在以编程方式根据报价创建订单,并希望将产品的自定义选项传递给订单。为此,我试图在我创建的 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);
}
我刚刚通过以下方式从报价项目中获取了自定义选项。
$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);