2017-01-02 70 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

由于这是工作的罚款。 –