2017-01-02 67 views
2

我想將購物中的服裝數據保存在購物車項目中,我已將檢查數據保存在數據庫中,但是當我收到時它將返回null如何在magento中添加購物車中的自定義數據

我有添加事件添加服裝數據到購物車。

Observer.php

public function checkoutCartProductAddAfter(Varien_Event_Observer $observer){ 
    try { 
     $data = $this->_getRequest()->getPost(); 
     $item = $observer->getEvent()->getQuoteItem(); 
     $item->setData('customize_data', $data['customize_data']); 
     $item->setData('customize_image', $data['customize_image']); 
     $item->save(); 
    } 
    catch (Exception $e) { 
     Mage::getSingleton('adminhtml/session')->addError($e->getMessage()); 
    } 
} 

我想改變形象在購物車頁面,所以我已經創建以下文件。

<?php 
class ProductCustomizer_ProductCustomizer_Block_Checkout_Cart_Item_Renderer extends Mage_Checkout_Block_Cart_Item_Renderer{ 
    public function getProductThumbnail() 
    { 
     $customize_data = $this->getItem()->getData('customize_data'); 
     $customize_image = $this->getItem()->getData('customize_image'); 
     Mage::log('customize_data'); 
     Mage::log($customize_data); 
     Mage::log('customize_image'); 
     Mage::log($customize_image); 
     if (!empty($customize_image)) { 
      return $customize_image; 
     } else { 
      return parent::getProductThumbnail(); 
     } 
    } 
} 

我得到以下日誌中SYSTEM.LOG文件

2017-01-02T06:38:29+00:00 DEBUG (7): customize_data 
2017-01-02T06:38:29+00:00 DEBUG (7): 
2017-01-02T06:38:29+00:00 DEBUG (7): customize_image 
2017-01-02T06:38:29+00:00 DEBUG (7): 
+0

喜中有你報價項目表中添加新列 – faizanbeg

+0

沒有,我沒有添加新列 –

+0

添加它,保存數據到它,那麼你可以得到它 – faizanbeg

回答

2

你可以做這件事情不增加在項目表中的新列,

Observer.php

public function checkoutCartProductAddAfter(Varien_Event_Observer $observer){ 
    try { 
      $data = Mage::app()->getRequest()->getPost(); 

      $item = $observer->getQuoteItem(); 

      $additional_info = $item->getadditional_info(); 
      $additional_info = unserialize($additional_info); 

      $additional_info['customize']['customize_data'] = $data['customize_data']; 
      $additional_info['customize']['customize_image'] = $data['customize_image']; 

      $item->setAdditionalInfo(serialize($additional_info)); 

      $item->save(); 
     } 
     catch (Exception $e) { 
      Mage::getSingleton('adminhtml/session')->addError($e->getMessage()); 
     } 
} 

車頁面:

class ProductCustomizer_ProductCustomizer_Block_Checkout_Cart_Item_Renderer extends Mage_Checkout_Block_Cart_Item_Renderer{ 
    public function getProductThumbnail() 
    { 
    $additional_info = $this->getItem()->getData('additional_info'); 
    $additional_info = unserialize($additional_info); 
    if(isset($additional_info['customize']) && $additional_info['customize']){ 
     Mage::log('customize_data'); 
     Mage::log($additional_info['customize']['customize_data']); 
     Mage::log('customize_image'); 
     Mage::log($additional_info['customize']['customize_image']); 

     return $additional_info['customize']['customize_image']; 
    } 
    return parent::getProductThumbnail(); 
    } 
} 
+0

由於這是工作的罰款。 –