Magento Попытка установить идентификатор сеанса для программного добавления в корзину - PullRequest
3 голосов
/ 22 марта 2010

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

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

Ответы [ 2 ]

1 голос
/ 15 апреля 2010

Попробуйте это:

Mage::getSingleton('core/session', array('name'=>'frontend'));
0 голосов
/ 15 марта 2011

Добавьте это в index.php в корне magento

header('P3P: CP="CAO PSA OUR"');
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...