2014-11-08 3 views
0

Я использую Mangeto 1.9.1Magento - сеанс доступа за пределами Magento

Я пытаюсь получить доступ к сеансу клиента Magento вне Magento в файле PHP в корневой папке Magento.

Вот мой код: установлен

<?php 
error_reporting(E_ALL | E_STRICT); 
$mageFilename = 'app/Mage.php'; 
require_once $mageFilename; 
$app = Mage::app('default'); 
Mage::app(); 

$customer_id = Mage::getSingleton('customer/session')->getId(); 


$GrandTotal = Mage::getModel('sales/quote')->loadByCustomer($customer_id)->getGrandTotal(); 
$HalfTotal = $GrandTotal/2; 
echo "Grand: $GrandTotal<br>Half: $HalfTotal"; 
?> 

Мой Magento на подобласти как beta.mymagento.com

Но, кажется, он не может получить доступ к сессии. Как я могу это исправить?

Заранее благодарен!

ответ

0

У вас возникла проблема с выбором правильной сессии, поскольку Magento хранит идентификатор сеанса в другом cookie, чем обычные PHP-приложения. Вам нужно сначала инициализировать основной сеанс и сказать ему, чтобы посмотреть на файл cookie с именем frontend вместо того, что по умолчанию использует PHP. Ваш код должен выглядеть следующим образом:

... 

Mage::getSingleton('core/session', array('name' => 'frontend')); 
$customer_id = Mage::getSingleton('customer/session')->getId(); 

... 

Кроме того, вы, скорее всего, потребуется только один вызов Mage::app().

Примечание: если у вас есть несколько магазинов/веб-сайтов в вашей Magento, вам необходимо позвонить Mage::app() с соответствующими идентификаторами, например. Mage::app('<website_code>', 'website');.

Смежные вопросы