不能为产品Magento 1.9
问题描述:
设置MetaTitle我试图让客户从前端(市场)添加新产品。不能为产品Magento 1.9
它工作正常,并添加产品并保存正确,但问题是,他不能保存任何(元标题,元描述,Meta关键字和客户ID创建)。但它正确保存其他属性
这里是我的代码
$product = Mage::getModel('catalog/product');
$product->setSku($sku);
$product->setName($name);
$product->setDescription($description);
$product->setShortDescription($short_description);
$product->setMetaTitle('test meta title 2');
$product->setMetaKeyword('test meta keyword 2');
$product->setMetaDescription('test meta description 2');
$product->setUrlKey($url_key);
$product->setPrice($price);
$product->setTypeId('simple');
$product->setAttributeSetId(4);
$product->setCategoryIds($categories);
$product->setWeight($weight);
$product->setTaxClassId($tax_class);
$product->setVisibility($visibility);
$product->setStatus($status);
$product->setCreatedAt(strtotime('now'));
$product->setNewsFromDate('06/26/2016') ;
$product->setNewsToDate('06/30/2016') ;
$product->setCustomerId(414);
$gallery[]=$image;
$product->setMediaGallery(array('images' => array(), 'values' => array()));
foreach ($gallery as $image){
$imagePath = Mage::getBaseDir('media') . '/catalog/product/images/' . $image;
$imageResized = Mage::getBaseDir('media') . '/catalog/product/compress/' . $image;
if (!file_exists($imageResized) && file_exists($imagePath)) {
$imageObj = new Varien_Image($imagePath);
$imageObj->constrainOnly(TRUE);
$imageObj->keepAspectRatio(TRUE);
$imageObj->keepFrame(FALSE);
$imageObj->resize(600);
$imageObj->save($imageResized);
$product->addImageToMediaGallery($imageResized, array('image', 'small_image', 'thumbnail'), false, false);
}
}
$product->setWebsiteIds(array(Mage::app()->getStore(true)->getWebsite()->getId()));
$product->save();
$stockData = $product->getStockData();
$stockData['qty'] = $qty;
$stockData['is_in_stock'] = $is_in_stock;
$stockData['manage_stock'] = $manage_stock;
$stockData['use_config_manage_stock'] = 0;
$product->setStockData($stockData);
答
从前端添加产品如在后端
<input name='product[meta_title]' .. />
<input name='product[meta_description]' .. />
<input name='product[meta_keyword]' .. />
<!-- etc... -->
你可以简单的创建形式和刚刚获得后product
和样本加入到我的收藏
try {
$product = Mage::getModel('catalog/product');
$product->addData(Mage::app()->getRequest()->getPost()['product']);
$product->save();
} catch(Exception $error) {
Mage::logException($error);
}
给你回答:
您
try catch
指令需要捕获错误...尝试
setData('meta_title','Testing')
也许你可以在名称方法setMetaTitle()
或这种方法的错误存在于任何重写产品型号和保存产品后尝试重新索引目录,并清除缓存(或禁用开发)。
我已经使用try和catch但主要的问题是,它保存喜欢的描述,名称,价格,图像的所有数据,但不能保存元标题,meta描述和website_id –
@MahmoudAbdElSamad调用方法'$产品 - >保存()'如果你编辑你需要的产品集合id'setId($ id)'或加载产品'Mage :: getModel('catalog/product') - > load($ id)'并保存后尝试输出id产品'var_dump($ product-> getId())'在adminhtml接口中查看此产品。 – Naumov
这是创建产品时的代码而不是编辑的情况下,我创建的模块允许客户添加产品(Marketplace) 这个代码在创建的情况下不在更新的情况下加载产品数据 –