2016-07-11 89 views
0

我想產品從一個外部文件產品添加到購物車編程沒有更新彙總

添加到購物車這裏是我的代碼

require_once 'app/Mage.php'; 
Mage::app(); 

$session = Mage::getSingleton('customer/session'); 

Mage::getSingleton('checkout/cart')->getQuote(); 

$productId = 123; 
$productQuantity = 1; 
$productModel = Mage::getSingleton('catalog/product'); 
$productObj = $productModel->load($productId); 

if (!$quoteObj) { 
    $quoteObj = new Mage_Sales_Model_Quote(); 
} 

$store_id = 1; 
$storeObj = $quoteObj->getStore()->load($store_id); 
$quoteObj->setStore($storeObj); 

$quoteItem = Mage::getModel('sales/quote_item')->setProduct($productObj); 
$quoteItem->setQuote($quoteObj); 
$quoteItem->setQty($productQuantity); 
$quoteItem->setStoreId($store_id); 

$quoteObj->addItem($quoteItem); 
$quoteObj->setStoreId($store_id); 
$quoteObj->collectTotals(); 
$quoteObj->setCustomerId(null); 
$quoteObj->save(); 
$quoteId = $quoteObj->entity_id; 

$quote1 = Mage::getModel('sales/quote')->setStoreId($store_id)->load($quoteId); 
print_r($quote1->getData()); 

印刷信息。

[grand_total] => 0 
    [base_grand_total] => 0 
    [subtotal] => 0 
    [base_subtotal] => 0 
    [subtotal_with_discount] => 0 
    [base_subtotal_with_discount] => 0 

這裏我發現它並沒有更新總數。

爲什麼我的代碼有問題?

回答

0

您正在保存報價,但我不確定這是否足夠。你應該嘗試保存購物車。並嘗試collectTotals之前打印getData

$cart = Mage::getSingleton('checkout/cart'); 
$quote = $cart->getQuote(); 

Your code .... 

$cart->save(); 

$quote = Mage::getModel('sales/quote')->setStoreId($store_id)->load($quoteId); 
$quote->setTotalsCollectedFlag(false)->collectTotals(); 
print_r($quote->getData()); 
+0

感謝您的答覆。我也試過這個,但沒用 – Naresh

+0

也許這只是你不設置'$ quoteObj',你總是在創建一個新的。見上面的第4行。 – jobou

+0

是的,只有當我的購物車中沒有任何產品時,此腳本纔會運行 – Naresh

相關問題