2012-12-04 7 views
4

(가상의, 단순한) 제품을 만들어 프로그래밍 방식으로 장바구니에 추가해야합니다. 지금까지이 작업을 수행했습니다. 이 제품을 장바구니에 추가 할 때 맞춤 옵션을 설정해야합니다. 하지만 아무 일도 일어나지 않습니다. 여기 내 코드는사용자 정의 옵션이있는 카트에 제품을 추가하십시오.

$product = Mage::getModel('catalog/product')->load($product_id); 

    $cart = Mage::getModel('checkout/cart'); 
    $cart->init(); 


    $params = array(
     'product' => $product->getId(), // This would be $product->getId() 
     'qty' => 1, 
     'options' => array(
      34 => "value", 
      35 => "other value", 
      53 => "some other value" 
     ) 
    );  



    try { 
     $cart->addProduct($product, new Varien_Object($params)); 
     Mage::getSingleton('checkout/session')->setCartWasUpdated(true); 
     $cart->save(); 
    } 
    catch (Exception $ex) { 
     echo $ex->getMessage(); 
    } 
+0

''Varien_Object ($ params)'를'$ params'로 바꾸면 작동합니까? – Ossie7

+0

이 작품은, 난 지금 그것을 그림. qoute_item 테이블에 vaule을 추가합니다. 장바구니 페이지에는 볼 수없는 값입니다. 백엔드에서 추가하는 다른 맞춤 옵션과 비슷합니다. –

답변

6

여기 코드가 성공했다.

$a_options = array(
    'options' => array(
     'label' => 'Choice', 
     'value' => $pkg_selected_products, 
    ) 
); 

$quoteItem->addOption(new Varien_Object(
    array(
     'product' => $quoteItem->getProduct(), 
     'code' => 'additional_options', 
     'value' => serialize($a_options) 
    ) 
)); 

$quote->addItem($quoteItem); 
$quote->save(); 
+0

추가 후 빈 페이지가 나타납니다 –

+0

구성 가능한 제품에 오류가 발생했습니다 –

+0

카트 페이지에 텍스트가 추가됩니다. 이것을 이미지에 어떻게 사용할 수 있습니까 (즉, 옵션 유형은 이미지 임) –

0

내 컨트롤러 기능으로 제품을 추가하려면 날짜 맞춤 옵션 필드에 문제가 있습니다.

그래서 Magento 방식으로 분해/폭발해야하고 매개 변수를 AddProduct()에 입력해야합니다.

try { 
     $cart = Mage::getModel('checkout/cart'); 
     $previousItemCount = $cart->getQuote()->getItemsCount(); 

     if ($previousItemCount <= 0) { 
      $cart->init(); 
     } 

     $params = $this->getRequest()->getParams(); 
     $product = Mage::getModel('catalog/product')->load($params['product_id']); 

     $date = explode('/', $params['product_dtinvoice']); 
     $date = array(
      'month' => $date[0], 
      'day' => $date[1], 
      'year' => $date[2], 
     ); 

     $cart->addProduct(
      $product, 
      new Varien_Object(array(
       'product' => $product->getId(), 
       'qty' => 1, 
       'options' => array(
        '4' => array(
         'month' => $date['month'], 
         'day' => $date['day'], 
         'year' => $date['year'] 
        ), 
        '2' => $params['product_ean'], 
        '3' => $params['product_serialnumber'], 
        '1' => $params['product_seller'], 
       ), 
      )) 
     ); 

     $cart->save(); 

     if ($previousItemCount < $cart->getQuote()->getItemsCount()) { 
      $return = array('result' => true, 'msg' => ''); 
     } else { 
      $return = array('result' => false, 'msg' => 'Did not possible to add this product to cart. Please contact the administrator'); 
     } 

     $this->getResponse()->setBody(Mage::helper('core')->jsonEncode($return)); 
    } catch(Exception $e) { 
     Mage::throwException($e->getMessage()); 
    } 
관련 문제