2016-06-21 20 views
0

私は顧客がフロントエンド(Market Place)から新製品を追加できるようにしています。はMagento 1.9製品のMetaTitleを設定できません

正しく動作し、製品を追加して正しく保存しますが、問題は、(メタタイトル、メタ記述、およびカスタマー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. は、多分あなたは名前のメソッドsetMetaTitle()またはこのメソッドでエラーを取得することができますsetData('meta_title','Testing')を試みる任意の書き換え製品モデル

  3. に存在し、製品の保存後に再索引カタログを試し、キャッシュをクリア(または開発のために無効にする)してください。

+0

私はすでに試してみて、キャッチ使用しますが、主な問題は、それが説明、名前、価格、画像などのすべてのデータを保存して、メタタイトル、メタ記述を保存し、メソッド '$呼び出し@MahmoudAbdElSamad –

+0

をwebsite_idないということです'setId($ id)'をセットするか、 'Mage :: getModel( 'catalog/product') - > load($ id)'をロードして保存した後に、product-> save() id製品 'var_dump($ product-> getId())'はadminhtmlインターフェイスでこの製品を見ます。 – Naumov

+0

これは製品の作成時にコードを編集する場合ではなく、お客様が商品(マーケットプレイス)を追加できるようにするモジュールを作成します このコードを作成時には更新しないでください製品データを読み込む場合 –

関連する問題