2014-04-24 52 views
0

我有一個Magento的addProduct()函數的問題。我有以下代碼:Magento從外部文件添加產品到購物車不起作用

<?php 
// Mage init 
include_once '../app/Mage.php'; 
umask(0); 
Mage::init('default'); 
Mage::getSingleton('core/session', array('name' => 'frontend')); 
// Get customer session 
$session = Mage::getSingleton('customer/session');  
// Get cart instance 
$cart = Mage::getSingleton('checkout/cart'); 
$cart->init();  
// Add a product with custom options 
$productId = 11348; 
$productInstance = Mage::getModel('catalog/product')->load($productId); 
$param = array(
    'product' => $productInstance->getId(), 
    'qty' => 1, 
    'options' => array(
     528 => '1756', // Custom option with id: 528 
     527 => '1753', // Custom option with id: 527 
     526 => '1751' // Custom option with id: 526 
    ) 
); 
$request = new Varien_Object(); 
$request->setData($param); 
$cart->addProduct($productInstance, $request);  
// update session 
$session->setCartWasUpdated(true);  
// save the cart 
$cart->save();  
?> 

昨天工作這麼包括和$ param開頭的分辯,但現在它不工作。 您也可以將本產品添加到購物車內的商店,使產品存在,它有貨。 此代碼似乎沒有任何錯誤,但不會將產品添加到購物車。

感謝您的幫助。

+0

嘗試將此文件放在主magento目錄中,以便您的include_once應該說'app/Mage.php'並測試它以查看它是否有效。 –

回答

0

嘗試添加form keyuenc

$param = array(
'product' => $productInstance->getId(), 
'form_key'=>$form_key_put_here, 
'uenc' =>Mage::app()->getRequest()->getParam('uenc', 1), 
'qty' => 1, 
'options' => array(
    528 => '1756', // Custom option with id: 528 
    527 => '1753', // Custom option with id: 527 
    526 => '1751' // Custom option with id: 526 
)); 

希望這將有助於。

+0

謝謝,但這不起作用:( 無論如何,我不知道什麼形式的關鍵和uenc是什麼,爲什麼他們是必要的 – user3567975

1
<?php 
require_once('app/Mage.php');  
umask(0); 
Mage::app('admin'); 
$product_model = Mage::getModel('catalog/product'); 
$my_product_sku = 'test';   
$my_product_id = $product_model->getIdBySku($my_product_sku); 
$my_product  = $product_model->load($my_product_id); 
$qty_value = 13; 
$cart = Mage::getModel('checkout/cart'); 
$cart->init(); 
$cart->addProduct($my_product, array('qty' => $qty_value)); 
$cart->save(); 

Mage::getSingleton('checkout/session')->setCartWasUpdated(true); 
?> 
+0

我認爲這是同樣的事情即時消息做,但我已經有產品編號,所以我沒有需要sku我也需要在我的產品中添加自定義選項,所以你的代碼不適合我,謝謝你 – user3567975

相關問題