{Magento}高级选项创建了如何为代码中的每个产品设置

时间:2012-01-09 18:39:14

标签: magento options

我们创建了一个名为Courses的高级产品选项。它包含我们希望用户在订购产品时输入信息的所有字段。

我们有一个外部流程,使用这个缩短的代码将我们的课程导入我们的商店: ($ 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();

如何设置每个产品以使用上述代码中的高级选项课程? 注意:课程中的所有选项都是必需的。

1 个答案:

答案 0 :(得分:0)

您可以使用产品属性API。

<?php
   $proxy = new SoapClient('http://domain/api/soap/?wsdl');
   $sesId = $proxy->login('apiUser', 'apiKey');
   $attributeSet = $proxy->call($sessId, 'product_attribute_set.list');
   $attributeOptions = $proxy->call($sessId, 'product_attribute.options', array('attribute_id'=>'PRODUCT_ATTRIBUTE_INT_ID'));
   // change PRODUCT_ATTRIBUTE_INT_ID with your attribute id

?>