2016-06-21 94 views
0

設置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); 

回答

0

從前端添加產品如在後端

<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); 
} 

給你回答:

  1. try catch指令需要捕獲錯誤...

  2. 嘗試setData('meta_title','Testing')也許你可以在名稱方法setMetaTitle()或這種方法的錯誤存在於任何重寫產品型號

  3. 和保存產品後嘗試重新索引目錄,並清除緩存(或禁用開發)。

+0

我已經使用try和catch但主要的問題是,它保存喜歡的描述,名稱,價格,圖像的所有數據,但不能保存元標題,meta描述和website_id –

+0

@MahmoudAbdElSamad調用方法'$產品 - >保存()'如果你編輯你需要的產品集合id'setId($ id)'或加載產品'Mage :: getModel('catalog/product') - > load($ id)'並保存後嘗試輸出id產品'var_dump($ product-> getId())'在adminhtml接口中查看此產品。 – Naumov

+0

這是創建產品時的代碼而不是編輯的情況下,我創建的模塊允許客戶添加產品(Marketplace) 這個代碼在創建的情況下不在更新的情況下加載產品數據 –

相關問題