Magento «Выбор настраиваемых атрибутов» с PHP - PullRequest
4 голосов
/ 16 декабря 2011

Я создал новые настраиваемые продукты и прикрепил их простые продукты с помощью PHP.

Теперь, когда я редактирую любой настраиваемый продукт, я вижу этот экран:

Magento Select Configurable Attributes screen in admin

Итак, в отсутствие какой-либо документации на Magento, что мне вызывать в PHP, чтобы выполнить ту же функцию, что и на экране выше программно?

Я видел $configurable_product->setConfigurableProductsData(), использованный в некоторых примерах, но не думаю, что это то, что мне нужно.

1 Ответ

11 голосов
/ 17 декабря 2011

Вы правы, вы создаете связь / связь между настраиваемым и дочерним продуктами, но происходит то, что при создании настраиваемого продукта вы не настраиваете setConfigurableAttributesData , который в основном настраивает информацию суператрибута для этого настраиваемого продукта.

    foreach($configAttrCodes as $attrCode){

        $super_attribute= Mage::getModel('eav/entity_attribute')->loadByCode('catalog_product',$attrCode->code);
        $configurableAtt = Mage::getModel('catalog/product_type_configurable_attribute')->setProductAttribute($super_attribute);

        $newAttributes[] = array(
           'id'             => $configurableAtt->getId(),
           'label'          => $configurableAtt->getLabel(),
           'position'       => $super_attribute->getPosition(),
           'values'         => $configurableAtt->getPrices() ? $configProduct->getPrices() : array(),
           'attribute_id'   => $super_attribute->getId(),
           'attribute_code' => $super_attribute->getAttributeCode(),
           'frontend_label' => $super_attribute->getFrontend()->getLabel(),
        );
    }

    $existingAtt = $product->getTypeInstance()->getConfigurableAttributes();

    if(empty($existingAtt) && !empty($newAttributes)){
        $configProduct->setCanSaveConfigurableAttributes(true);
        $configProduct->setConfigurableAttributesData($newAttributes);
        $configProduct->save();

    }

Это небольшой фрагмент, который поможет вам, сообщите мне, если у вас есть какие-либо вопросы или вам нужна дополнительная помощь.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...