Не могу добавить пользовательскую опцию к продукту программно

0

У меня есть код, который создает продукт, а затем добавляет к нему настраиваемые параметры. Но если я открою его на панели администратора, никаких настраиваемых опций не будет добавлено. Также не генерируется сообщение об ошибке или предупреждения. Версия Magento - 1.9.1.0. В чем проблема со сценарием?

$sku = 'test2';
$name = 'Test Product';
$description = 'Test Product Description';
$shortdescription = 'Test Product Short Description';
$price = '100';
$specialprice = '80';
$specialfromdate = '08/20/2014';
$specialtodate = '08/22/2014';
$categoryids = array(3,4,5);
$taxClassId = 0;    // None
$visibility = 4;    // catalog, search
$productStatus = 1;    // enabled
$createdDate = '08/20/2014';
$updatedDate = '08/20/2014';
//$imagepath = 'C:\Users\Public\Pictures\Sample Pictures\Chrysanthemum.jpg';    //    absolute path of image in local file system/server path
$color = 7;    //    Dropdown Attribute i.e 7 is attribute option id
$brand = '13,14,16';    //    Multiselect Attribute must be pass as string i.e 13,14 and 16 are attribute option id


$product = Mage::getModel('catalog/product');
$product->setSku($sku);
$product->setName($name);
$product->setDescription($description);
$product->setShortDescription($shortdescription);
//$product->setUrlKey($data['5']);    //    Uncomment only if custom url type
$product->setPrice($price);
$product->setSpecialPrice($specialprice);
$product->setSpecialFromDate($specialfromdate);
$product->setSpecialToDate($specialtodate);
$product->setTypeId('simple');
$product->setAttributeSetId(4); // enter the catalog attribute set id here
//$product->addImageToMediaGallery($imagepath,'image',true,false); // absolute path of image in local file system
$product->setCategoryIds($categoryids); // id of categories
$product->setWeight(1.0);
$product->setTaxClassId($taxClassId);
$product->setVisibility($visibility);
$product->setStatus($productStatus);
$product->setColor($color);
$product->setBrand($brand);
$product->setStockData(
array(
'manage_stock' => 1,
'is_in_stock' => 1,
'qty' => 100
)
);
// assign product to the default website
$product->setWebsiteIds(array(Mage::app()->getStore(true)->getWebsite()->getId()));
//$product->setCreatedAt($createdDate);    //    uncomment if add custom date
//$product->setUpdatedAt($updatedDate);    //    uncomment if add custom date
try
{
/*  Add custom options */
$sizes = array(M,L,XL,XXL);
if(count(array_filter($sizes)) > 0){
$options = array();
$optionData = array();
for($i = 0; $i < count($sizes); $i++){
$options[$i]['is_delete'] = '';
$options[$i]['title'] = $sizes[$i];
$options[$i]['price_type'] = 'fixed';
$options[$i]['price'] = '';
$options[$i]['sku'] = '';
}

$optionData = array(
'is_delete'         => 0,
'is_require'        => false,
'previous_group'    => '',
'title'             => 'Size',
'type'              => 'drop_down',
'sort_order'        => 1,
'values'            => $options
);

$optionInstance = $product->getOptionInstance()->unsetOptions();

$product->setHasOptions(1);
$optionInstance->addOption($optionData);
$optionInstance->setProduct($product);

}
/*  ------------------- */
$product->getResource()->save($product);
echo $product->getId().'  Save Successfully';
}
catch (Exception $ex) {
echo $ex->getMessage();
//Handle the error
}
  • 0
    Убрал лишнее, Переписано для наглядности.
Теги:
magento

1 ответ

0

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

https://www.mymagento.com/index.php/admin/catalog_product_attribute/

Ещё вопросы

Сообщество Overcoder
Наверх
Меню