我在Magento有一些简单的目录产品,所以我有他们的SKU&标识。现在我想使用数组元素“bundle_options”和&创建一个Bundled产品。 Bundle Items的“bundle_selections”,由Magento Admin编码在其Observer类中使用。
同样在Observer类中,有两个函数“setBundleOptionsData()
”&的方法调用。 “setBundleSelectionsData()
”,我无法找到任何函数定义。
请在这里发表任何专业帖子,因为我需要一些正确的方法来做这件事。如果它需要,覆盖模块或使用事件,我会这样做,但我需要非常专业的帮助。 提前致谢。
修改: -
关于上述两种方法“setBundleOptionsData()
”& “setBundleSelectionsData()
”,我几乎可以肯定他们正在使用某种PHP魔术方法,但我不知道这些魔术方法的主要逻辑在哪里写的?
请有人提供一些正确答案。非常感谢任何帮助。
答案 0 :(得分:4)
对此很难过,但发现这让我超越了驼峰:
$items[] = array(
'title' => 'test title',
'option_id' => '',
'delete' => '',
'type' => 'radio',
'required' => 1,
'position' => 0);
$selections = array();
$selectionRawData[] = array(
'selection_id' => '',
'option_id' => '',
'product_id' => '159',
'delete' => '',
'selection_price_value' => '10',
'selection_price_type' => 0,
'selection_qty' => 1,
'selection_can_change_qty' => 0,
'position' => 0);
$selections[] = $selectionRawData;
$productId = 182;
$product = Mage::getModel('catalog/product')
->setStoreId(0);
if ($productId) {
$product->load($productId);
}
Mage::register('product', $product);
Mage::register('current_product', $product);
$product->setCanSaveConfigurableAttributes(false);
$product->setCanSaveCustomOptions(true);
$product->setBundleOptionsData($items);
$product->setBundleSelectionsData($selections);
$product->setCanSaveCustomOptions(true);
$product->setCanSaveBundleSelections(true);
$product->save();
具体来说,
Mage::register('product', $product);
Mage::register('current_product', $product);
是关键
EDIT :: 在尝试添加多个选项/选择时,看起来也有一点特殊性。 setBundleOptionsData采用一系列选项,即
Array(
[1] => Array
(
[title] => Option 2
[option_id] =>
[delete] =>
[type] => select
[required] => 1
[position] =>
)
[0] => Array
(
[title] => Option 1
[option_id] =>
[delete] =>
[type] => select
[required] => 1
[position] =>
))
然后选择将是一个选择数组的数组,其索引对应于options数组:
Array(
[1] => Array
(
[2] => Array
(
[selection_id] =>
[option_id] =>
[product_id] => 133
[delete] =>
[selection_price_value] => 0.00
[selection_price_type] => 0
[selection_qty] => 1
[selection_can_change_qty] => 1
[position] => 0
)
[3] => Array
(
[selection_id] =>
[option_id] =>
[product_id] => 132
[delete] =>
[selection_price_value] => 0.00
[selection_price_type] => 0
[selection_qty] => 1
[selection_can_change_qty] => 1
[position] => 0
)
)
[0] => Array
(
[0] => Array
(
[selection_id] =>
[option_id] =>
[product_id] => 206
[delete] =>
[selection_price_value] => 0.00
[selection_price_type] => 0
[selection_qty] => 1
[selection_can_change_qty] => 1
[position] => 0
)
[1] => Array
(
[selection_id] =>
[option_id] =>
[product_id] => 159
[delete] =>
[selection_price_value] => 0.00
[selection_price_type] => 0
[selection_qty] => 1
[selection_can_change_qty] => 1
[position] => 0
)
))
答案 1 :(得分:2)
$MyOptions[0] = array (
'title' => 'My Bad','default_title' => 'My Bad',
'delete' => '',
'type' => 'radio',
'required' => 0,
'position' => 0
);
或
$ optionModel = Mage :: getModel('bundle / option') - > addSelection( 'op111') - >的setTitle( 'op111') - > setDefaultTitle( 'op111') - > setParentId($ PRODUCT_ID) - > setStoreId($产品 - > getStoreId()); $ optionModel->保存();
答案 2 :(得分:0)
我没有使用任何Web服务。我只是使用了以下专门针对Bundled Products的方法,它们是: -
对于第一种方法,Bundle Options的详细信息作为数组形式的参数提供给方法。类似地,对于第二种方法“setBundleSelectionsData()”,我们将此方法的Bundle Selections的详细信息作为数组形式的参数提供。
这是在Magento中添加任何捆绑产品的主要逻辑。 希望这对任何新手都有帮助!!!
请以正确的方式检查this link以了解有关捆绑产品创建的更多详细信息。