2010-03-22 2 views
3

Я создал модуль, в котором я программно добавляю продукт в корзину. Клянусь, я работал, но недавно обнаружил, что это не так. Основой этого является то, что у нашего клиента есть сторонний продукт, который клиент может перейти на страницу на своем сайте, посмотрите на продукты, которые есть у этой третьей стороны, и добавьте элемент в нашу корзину. Третий сторонний сервис помещается на нашу страницу с iframe. Я передаю им необходимую информацию, и они отправляют ответ, который я создаю, а затем добавляю этот товар в корзину.Magento Пытается установить идентификатор сеанса, чтобы программно добавить в корзину

Все работает только в том случае, если пользователь имеет что-то еще в своей тележке, а затем добавляет один из продуктов от третьего лица, который он вытирает из корзины. Я знаю, что это сеанс, и я уже установил 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(), он выглядит корректно, но если вы посмотрите на объект сеанса, он все еще говорит в массиве guest_data, что sessionId является старым.

ответ

0

Бросьте это в index.php в корне Magento

header('P3P: CP="CAO PSA OUR"'); 
Смежные вопросы