2010-03-22 59 views
3

我已經建立了一個模塊,我以編程方式將產品添加到購物車。我發誓我有它的工作,但最近發現它不是。其背景是,我們的客戶擁有第三方產品,客戶可以訪問他們網站上的網頁,查看第三方所擁有的產品,並將商品添加到我們的購物車中。使用iframe將第三方服務放在我們的頁面上。我向他們傳遞了他們需要的信息,然後他們發回了我創建產品的響應,然後將該產品添加到購物車。Magento試圖設置會話ID以編程方式添加到購物車

除了事實上,如果用戶在購物車中有其他東西,然後添加了第三方的產品之一,它就會從購物車中將其擦除,所有工作都可以發現。我知道這是一個會議的事情,我已經設置了sessionId,因爲這是我設置並傳遞給第三方的參數之一,並且他們發回。這是我的代碼的一個例子。

$checkoutSession = Mage::getSingleton('core/session'); 
$checkoutSession->setSessionId($sessionId); // which is my session ID I get back from the third party and is the customers session id 
$product = Mage::getSingleton('catalog/product'); 
$product->load($productId); 
$check = $product->isSalable(); 
$cart = Mage::getModel('checkout/cart'); 
$cart->init(); 
try { 
    $cart->addProduct($product, array('qty' => $qty)); 
    $cart->save(); 
} 
catch (Exception $ex) { 
    //Handle the error 
} 

你會認爲這是你需要的,但它不起作用。我認爲這是一次工作,但我猜不是。如果我調試並說getSessionId()它看起來是正確的,但如果你看看會話對象,它仍然在visitor_data數組中說,sessionId是舊的。

回答

1

試試這個:在Magento的根在index.php

Mage::getSingleton('core/session', array('name'=>'frontend')); 
0

拋出此

header('P3P: CP="CAO PSA OUR"'); 
相關問題