以编程方式创建可配置产品

时间:2011-10-06 09:23:15

标签: php magento import magento-1.5

我正在尝试在Magento 1.5.1中以编程方式创建可配置产品 我知道我首先需要创建简单的相关产品,我做了什么。现在,我设法将这些简单的产品联系起来,制作一个可配置的产品。

这是关键部分......
我将id和一些属性值保存在一个数组中,所以我以后可以创建我的可配置产品,但是其中一些产品缺失,我不知道要调用哪种方法。 我在Magento Wiki中找到了this entry,这对我很有帮助,似乎符合我的需要 然而,最后作者设置了两件事:

$product->setConfigurableProductsData($data);
$product->setConfigurableAttributesData($data);

并且数组中的值已使用Firebug ....在管理页面源中获取,然后转换为PHP数组(第一次调用的数组示例):

  

“我已经对我的相关产品和属性的值进行了编码   数据。您可以通过查看源来获取属性数据   管理界面和使用Firebug for Firefox。“

$data = array('5791'=>array('0'=>array('attribute_id'=>'491', // I already got this
                                       'label'=>'vhs',        // this too
                                       'value_index'=>'5',    // but what is value_index ?
                                       'is_percent'=>0,
                                       'pricing_value'=>'')),
              '5792'=>array('0'=>array('attribute_id'=>'491',
                                       'label'=>'dvd',
                                       'value_index'=>'6',
                                       'is_percent'=>0,
                                       'pricing_value'=>'')));

我的问题是:有没有办法在不使用Firebug的情况下检索这些值(在我的脚本中我不会帮助很多!),但是以编程方式。我已经找到了一种方法来检索属性值,标签等...使用它的代码,但我不知道的一个字段是value_index
我想这可能是选项列表中的选项位置,但不确定。 如果有人知道在Magento中创建可配置产品的好/更好方法,请告诉我 欢迎任何帮助,谢谢。

2 个答案:

答案 0 :(得分:1)

您似乎在询问在哪里检索已经拥有value_index的{​​{1}}值。这就是我所拥有的:我没有在1.5x上测试过它。

label

似乎没有其他人提到最简单的方法来弄清楚vhs的function get_attribute_id($option, $type) { $attributeId = Mage::getResourceModel('eav/entity_attribute')->getIdByCode('catalog_product', $type); $attribute = Mage::getModel('catalog/resource_eav_attribute')->load($attributeId); $attributeOptions = $attribute->getSource()->getAllOptions(); foreach ($attributeOptions as $opts_arr) { if (strtoupper($opts_arr['label']) == strtoupper($option)) { return $opts_arr['value']; } } return FALSE; } $value_index = get_attribute_id('vhs', 'media_format'); 是什么:在后端,在 value_index> Catalog> Manage> media_format 检查各个表单输入的来源。如果你有'vhs',你应该有一个名为Manage Label/Options

的输入

答案 1 :(得分:0)

据我了解你的问题,有两种选择:a)通过脚本创建简单的产品,将生成的id放在数组中并使用id创建配置或b)从管理员读取id并将它们放入在你的脚本中。由于编程是关于自动化的,我肯定会选择a。