Пользовательские опции Magento: успех .. почти! - PullRequest
2 голосов
/ 27 декабря 2010

Хорошо, так что я работаю над своим собственным сценарием, который читает определенные XML-файлы и импортирует продукты. Теперь каждый из этих продуктов может иметь набор атрибутов (например, цвет).

Итак, что я делаю, так это импортирую каждый пользовательский атрибут и генерирую определенную строку, например «Желтое, черное дерево», и это будет переключатель, который вы можете выбрать, когда будете заказывать продукт. , Теперь, когда я прихожу к продукту с таким же «парентидом», но с другим уникальным идентификатором, мне нужно сгенерировать новую строку для переключателя пользовательской опции, поэтому, если есть другой продукт с красным цветом, я бы следующие на выбор:

Red, black finish wood
Yellow, black finish wood

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

У меня вопрос: как создать новое значение настраиваемой опции для конкретной опции? Другими словами, как мне добавить новую строку к определенной опции, которая уже создана?

Вот в основном то, что я делаю, чтобы создать первый вариант для нового продукта.

$options = array();
$options[$ParentID] = array(
    'title' => 'Option Title',
    'type' => 'radio',
    'is_require' => 1,
    'values' => array()
);
$options[$ParentID]['values'][] = array(
    'title' => 'Option Value Title',
    'price' => 0.00,
    'price_type' => 'fixed',
    'sku' => $UniqueID,
);

foreach($options as $ParentID => $option) {
    $id = Mage::getModel('catalog/product')->getIdBySku($ParentID);
    $product = Mage::getModel('catalog/product')->load($id);

    if(!$product->getOptionsReadonly()) {
        $product->setProductOptions(array($option));
        $product->setCanSaveCustomOptions(true);
        $product->save();
    }
}

это прекрасно работает, потому что magento генерирует sku, когда заказывает определенный продукт в формате $ ParentID_ $ UniqueID, и затем я могу отправить $ UniqueID продавцу для заказа.

Итак, снова я открыт для предложений о том, как добавить значение параметра в уже созданный пользовательский параметр

1 Ответ

1 голос
/ 28 декабря 2010

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

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