Magento - Доступ к сеансу вне magento

0

Я использую Mangeto 1.9.1

Я пытаюсь получить доступ к сеансу клиента 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

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

Заранее спасибо!

Теги:
session
magento

1 ответ

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'); ,

Ещё вопросы

Сообщество Overcoder
Наверх
Меню