1. 云栖社区>
  2. PHP教程>
  3. 正文

[原创] Magento 动态添加或修改商品的 Custom Option

作者:用户 来源:互联网 时间:2017-12-01 11:20:24

添加修改动态optionmagento商品custom原创

[原创] Magento 动态添加或修改商品的 Custom Option - 摘要: 本文讲的是[原创] Magento 动态添加或修改商品的 Custom Option,   最近在 Magento 项目中有这样一种需求,在下订单时,修改该商品的 Custom Option。现列出一下解决方案:  测试时使用的 Magento 版本是 1.7.0.2。动态修改商品的 Custom Option$_produ


  最近在 Magento 项目中有这样一种需求,在下订单时,修改该商品的 Custom Option。现列出一下解决方案:
  测试时使用的 Magento 版本是 1.7.0.2。
动态修改商品的 Custom Option

$_product = $this->getProduct();
$i = 1;
foreach ($_product->getOptions() as $o) {
echo"[b]Custom Option:". $i ."[/b]
";
echo"Custom Option TYPE:". $o->getType() ."
";
echo"Custom Option TITLE:". $o->getTitle() ."
";
echo"Custom Option Values:
";
// Getting Values if it has option values, case of select,dropdown,radio,multiselect
$values = $o->getValues();
foreach ($values as $v) {//print_r($v->getData());echo $v["title"] ."Sort Order:". $v["sort_order"] ."
";$rand = rand(0, 100);$v["sort_order"] = $rand;$v->setOption($o)->save();
}
$i++;
}
动态添加商品的 Custom Option
function setCustomOption($productId,
$title,
array $optionData,
array $values = array()) {
Mage::app()->getStore()->setId(Mage_Core_Model_App::ADMIN_STORE_ID);
if (!$product = Mage::getModel('catalog/product')->load($productId)) {
throw new Exception('Can not find product: ' . $productId);
}
$defaultData = array(
'type' => 'field',
'is_require' => 0,
'price' => 0,
'price_type' => 'fixed',
);
$data = array_merge($defaultData,
$optionData,
array('product_id' => (int)$productId,
'title' => $title,
'values' => $values));
$product->setHasOptions(1)->save();
$option = Mage::getModel('catalog/product_option')->setData($data)
->setProduct($product)->save();
return $option;
}
使用示例:
$options = array('type' => 'radio',
'is_require' => 1,
'price' => 0,
'price_type' => 'fixed');
$values = array(
array(
'title' => '2kg',
'price' => 10,
'price_type' => 'fixed',
'sku' => 'w1',
'sort_order' => 1
),
array(
'title' => '4kg',
'price' => 20,
'price_type' => 'fixed',
'sku' => 'w2',
'sort_order' => 2
),
array(
'title' => '10kg',
'price' => 40,
'price_type' => 'fixed',
'sku' => 'w3',
'sort_order' => 3
)
);
setCustomOption(166, 'Weight', $options, $values);
FYI:
http://www.2coding.com/mage/magento-set-custom-option-product/ http://stackoverflow.com/questions/10798158/how-to-update-custom-options-programatically-in-magento

以上是云栖社区小编为您精心准备的的内容,在云栖社区的博客、问答、公众号、人物、课程等栏目也有的相关内容,欢迎继续使用右上角搜索按钮进行搜索添加 , 修改 , 动态 , option , magento , 商品 , custom 原创 ,以便于您获取更多的相关知识。