Создание настраиваемого продукта программно - PullRequest
2 голосов
/ 06 октября 2011

Я пытаюсь создавать настраиваемые продукты программно в Magento 1.5.1.
Я понимаю, что мне нужно сначала создать простые связанные продукты, что я сделал .Теперь мне удается связать эти простые продукты для создания настраиваемого.

Вот критическая часть ...
Я храню идентификаторы и некоторые значения атрибутов в массиве, чтобы впоследствии я мог сделать свой настраиваемый продукт, но некоторые из них отсутствуют, я нене знаю, какой метод вызвать.Я нашел эту запись в Magento Wiki, которая помогла мне и, кажется, соответствовала моим потребностям.
Однако в конце автор устанавливает две вещи:

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

изначения в массивах были взяты из исходного кода страницы администратора с помощью Firebug ...., а затем переведены в массивы PHP (пример массива для первого вызова):

"Я прописал значения дляМои связанные продукты и данные атрибутов. Вы можете получить данные атрибутов, просмотрев источник через интерфейс администратора и используя Firebug для 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 ]

1 голос
/ 01 декабря 2011

Кажется, вы спрашиваете, где получить значение value_index, если у вас уже есть label. Вот что у меня было: я не тестировал это в 1,5 раза.

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 vhs: в бэкэнде, под Catalog> Manage> media_format> Manage Label/Options Проверьте источник отдельных входных данных формы. Там, где у вас есть «VHS», вы должны иметь вход с именем option[value][6]

0 голосов
/ 06 октября 2011

Насколько я понимаю ваш вопрос, есть два варианта: а) создавать простые продукты по сценарию, помещать сгенерированные идентификаторы в массив и создавать настраиваемые с использованием идентификаторов или б) читать идентификаторы от администратора и помещать их в вашем сценарии. Поскольку программирование связано с автоматизацией, я бы определенно выбрал вариант а.

...