Я врезаюсь в стену здесь при попытке получить доступ к объектам от Magento на внешней странице (тот же сервер, тот же домен, и т.д., и т.д.). Я хочу видеть, входят ли в пользователя Magento прежде, чем показать им определенные части на сайте.
Следует иметь в виду, что этот код существует за пределами Magento.
Mage::app("default"); Mage::getSingleton("core/session", array("name" => "frontend")); if (empty($session)) { $session = Mage::getSingleton("customer/session"); } if($session->isLoggedIn()) echo "hi"; $cart = Mage::helper('checkout/cart')->getCart()->getItemsCount(); echo $cart;
$cart возвращается 0, где у меня определенно есть продукты в моей корзине. isLoggedIn () также возвращает false. Что я делаю неправильно здесь? Существует ли опция в Magento, который я должен включить или выключить, чтобы смочь получить доступ к этой информации за пределами Magento?
Используя приведенный выше код, я создал файл php в папке Magento. Оттуда добавил количество товаров в корзине и вошли ли вы в систему или нет в массив и закодировал его как json. Я использовал jquery на своей внешней странице, чтобы захватить файл и вытащить нужные мне данные.
Не совсем идеальная ситуация, но пока работает.
Включаете ли вы Mage.php (который определяет getSingleton
)?
require_once ($_SERVER['DOCUMENT_ROOT'] . '/app/Mage.php');
Что в $ session после ] вызов getSingleton ()
?
print_r ($session);
РЕДАКТИРОВАТЬ: Я пробовал это со своей стороны и не смог получить точные данные isLoggedIn () или getItemsCount (). Когда я выгружал $ session, он показывает все поля как «защищенные».
Меня не интересует требование входа пользователя в систему ... Я просто хочу получить доступ к данным из уже вошедшего в систему сеанса.
У кого-нибудь еще есть мысли по этому поводу? Кажется, что все существующие примеры относятся к предыдущей версии 1.4.x.