Magento PHP:如何为产品设置可配置属性?

时间:2016-10-28 19:55:57

标签: php magento

我无法为可配置产品设置可配置属性 我的可配置和简单的产品正在管理员方面显示 enter image description here 但是,当我点击可配置产品时,我看到了这一点 enter image description here

我发现这个问题与我的相似 Magento 'Select Configurable Attributes' with PHP 但我仍然无法正确设置我的配置产品。



我打电话给我的班级MagentoProduct并传递" color_of_product"作为我的属性代码,我的" setConfigurableAttributesData"方法。
我稍后通过调用" save()"。

来保存产品

enter image description here

class MagentoProduct {
private $product;
public function __construct ( ) {
    Mage::init();
    Mage::app()->setCurrentStore(Mage_Core_Model_App::ADMIN_STORE_ID);
    $this->product = Mage::getModel('catalog/product');
}



...
...
...


public function setConfigurableAttributesData($attribute_code){

    $super_attribute= Mage::getModel('eav/entity_attribute')->loadByCode('catalog_product',$attribute_code);

    $configurableAtt = Mage::getModel('catalog/product_type_configurable_attribute')->setProductAttribute($super_attribute);
    $newAttributes[] = array(
       'id'             => $configurableAtt->getId(),
       'label'          => $configurableAtt->getLabel(),
       'position'       => $super_attribute->getPosition(),

       //not 100% if values is correct, what do I set this to?
       'values'         => $configurableAtt->getPrices() ? $this->product->getPrices() : array(),
       'attribute_id'   => $super_attribute->getId(),
       'attribute_code' => $super_attribute->getAttributeCode(),
       'frontend_label' => $super_attribute->getFrontend()->getLabel(),
    );

    echo $configurableAtt->getId()."\n";
    echo $configurableAtt->getLabel()."\n";
    echo  $super_attribute->getPosition()."\n";

   //not 100% if values is correct, what do I set this to?
    $temp = $configurableAtt->getPrices() ? $this->product->getPrices() : array();
    echo $temp."\n";
    echo $super_attribute->getId()."\n";
    echo $super_attribute->getAttributeCode()."\n";
    echo $super_attribute->getFrontend()->getLabel()."\n";


    $this->product->setCanSaveConfigurableAttributes(true);
    $this->product->setConfigurableAttributesData($newAttributes);

}

...
...

public function save(){
    try{
        $this->product->save();
        }catch(Exception $e){
        echo $e->getMessage();
        Mage::log($e->getMessage());
    }   
}

}

我的setConfigurableAttributesData函数中的回声正在打印:

颜色
0
阵列
176个
color_of_product
颜色

我做错了什么? 我已经尝试了几个小时来调试这个并且无法解决这个问题。

1 个答案:

答案 0 :(得分:0)

如果您想使用 color_of_product 设置可配置产品,则必须将此属性设置为

1)全球

2)DropDown

3)适用于可配置产品和简单产品

4)将“是”设置为“用于创建可配置产品”。

如果有更多信息,您可以查看默认magento的颜色属性。

enter image description here