У нас есть расширенный вариант продукта, который называется Курсы. Он содержит все поля, которые мы хотим, чтобы пользователь вводил информацию при заказе товара.
У нас есть внешний процесс, который импортирует наши курсы в наш магазин, используя этот сокращенный код:
($ data содержит информацию о курсе для вставки.)
$sku = $data['EventCode'];
$productId = Mage::getModel('catalog/product')->getIdBySku($sku);
if(!$productId) {
$product = Mage::getModel('catalog/product');
$product->setWebsiteIds(array(1));
$product->setData('entity_type_id', '10');
$product->setData('attribute_set_id', 4);
$product->setData('type_id', 'virtual');
$product->setData('created_at', strtotime('now'));
$product->setData('updated_at', strtotime('now'));
$product->setTaxClassId(1);
$product->setStatus(1);
$product->setData('manage_stock', 1);
$product->setData('visibility', 1);
$product->setData('has_options', 0); // If this product has options, set to 1
$product->setStockData(array('is_in_stock' => 1));
} else {
// Product was found, so load it so it can be updated.
$product = Mage::getModel('catalog/product')->load($productId);
} // if(!$productId)
$ename = "Unknown course name";
$product->setName($ename);
$product->setPrice($data['Price']);
$product->setDescription('Course Item');
$product->setShortDescription('Course Item');
$product->setData('is_online_course', ($data['LocState'] == 'OL' ? 1 : 0));
$product->setSku($sku);
$cat_id[] = 9;
$product->setData('category_ids', $cat_id);
$product->save();
Как настроить каждый продукт для использования расширенной опции Курсы в приведенном выше коде?
Примечание: все опции в курсах обязательны.