最近在 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]<br/>";
echo "Custom Option TYPE: " . $o->getType() . "<br/>";
echo "Custom Option TITLE: " . $o->getTitle() . "<br/>";
echo "Custom Option Values: <br/>";
// 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"] . "<br/>";
$rand = rand(0, 100);
$v["sort_order"] = $rand;
$v->setOption($o)->save();
/* Or else, you can set multiple option value simultaneously.
$v->setTitle("morad")
->setSku("kk")
->setPriceType("fixed")
->setSortOrder(0)
->setPrice(floatval(13.0000));
$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:
分享到:
相关推荐
4. **自定义链接**:除了连接到内部产品和类别,还可以添加外部链接到其他网站或社交媒体平台。 5. **响应式设计**:确保菜单在各种设备上(如桌面、平板、手机)都能良好地展示和操作。 6. **主题兼容**:与Magento...
"magento添加多表运费"这个主题主要涉及如何在Magento系统中实现复杂的运费计算规则,允许商家根据不同的商品重量、数量或地区设置不同的运费价格。 首先,我们要理解Magento的运费计算模型。默认情况下,Magento...
这篇博客“Magento:后台添加预览按钮 View product in frontend from Magento admin”主要探讨了如何通过自定义开发来实现这一功能,让管理员能够快速检查商品在网站前台的显示状态。 在Magento中,通常管理员需要...
magento2添加51track物流功能 1:后台添加51track密钥 2:对接51track物流接口 3:实现添加物流单号自动提交到51track
在Magento中添加后台管理功能是开发者经常遇到的任务,这涉及到对系统后端界面的扩展和定制,以便更好地管理和控制商店的各项功能。以下是对“Magento添加后台管理”这一主题的详细讲解。 1. **理解Magento架构** ...
"Magento添加后台管理addColumn"这个主题主要涉及的是如何在Magento的后台管理面板自定义添加新的数据列,以展示更多店铺运营的相关信息。这通常涉及到对Magento的MVC(Model-View-Controller)架构的理解,以及对...
Magento是一款强大的开源电子商务平台,它的灵活性和可扩展性使得开发者能够根据需求定制各种功能,包括创建动态CMS(内容管理系统)导航。在这个主题中,“Create Dynamic CMS Navigation For Magento Frontend”指...
如果你需要动态生成菜单,可以利用Magento的事件观察者机制,在特定的事件(如`adminhtml_menu_prepare_data`)上添加或修改菜单结构。 通过这样的方式,你可以根据业务需求自由地扩展Magento的后台菜单,提供更...
这个文件用于magento 批量上传产品后,... 也可用于批量上传商品的尺码或属性。注意: media_img.csv和 attrib.csv这两个文件只能放在tool目录里面。这个工具测试了magento 1.7x 以上的版本,1.7x以下的版本未测试。
例如,添加特定的前缀、设定初始值或调整增量等。在提供的代码片段中,我们看到了一种自定义订单号生成方式的实现。 ### 自定义代码解析 在代码中,`Mage_Eav_Model_Entity_Increment_Numeric`类被扩展,用于重新...
- 包括商品的添加、编辑、批量修改等功能。 - **商品类型** - Magento支持多种类型的商品,如简单商品、配置商品等。 - **新建商品** - 详细介绍创建新商品的步骤。 - **大量更改商品** - 使用批量操作来修改多...
本教程将引导你逐步深入Magento的模块组件或插件开发,让你从基础到高级,全面掌握Magento的开发技巧。 首先,我们从“magento的框架结构”开始。Magento采用的是MVC(Model-View-Controller)架构,这种设计模式在...
2. **EAV模型**:Entity-Attribute-Value(EAV)模型是Magento数据存储的关键特性,允许存储具有动态属性的商品信息。`EAV(E-V图 product为例).png`和`EAV模型.png`可能展示了如何通过EAV结构存储和检索商品数据。 ...
标题:“Magento数据结构分析” 描述:“Magento数据字典”提供了对Magento系统中各种数据库表的深入理解,这对于理解和优化Magento的性能至关重要。 一、Magento数据结构解析 Magento是一款功能强大的电子商务...
5. **验证更改**:批量修改后,通过Magento后台或者前端检查产品页面,确认产品名称和描述已成功更新。 在实际应用中,你可能还需要根据具体需求添加过滤条件,比如按类别、品牌或SKU范围进行修改。这可以通过在...
例如,设置多个店面视图以支持多语言或多品牌运营,或调整SEO设置以优化商品在搜索引擎中的排名。 2. **Magento模板制作教程** Magento的模板系统允许开发者和设计师自由定制店铺的外观。学习如何创建和修改主题,...
批量添加自定义属性插件则进一步优化了这一过程,允许商家通过CSV文件批量设置或更新商品的属性值,无需逐一编辑每个商品页面。 在使用"批量导入多图模块magento1.5+"和"批量导入多图模块magento1.4"时,需要注意...
1. **积分系统设计**:Magento积分插件允许商家自定义积分规则,如购买金额与积分的比例、特定商品或类别获取额外积分等。这有助于商家灵活地制定营销策略,以吸引和保留客户。 2. **积分获取途径**:除了购物,...
8. **代码修改、扩展和重写**:教你如何不改变核心代码的情况下扩展或替换 Magento 功能。 9. **数据操作和数据收集器**:涉及数据的保存、检索和处理过程。 10. **其他开发相关文章**:包括 EAV 数据查询、缓存清理...