【问题标题】:magento - access cart in external PHP filemagento - 在外部 PHP 文件中访问购物车
【发布时间】:2014-10-08 23:08:21
【问题描述】:

尝试从外部 php 文件访问 magento 购物车,我已加载 Mage 并且能够访问产品和类别,但由于某种原因我无法访问购物车信息。

商店位于 www.domain.com/shop/ PHP 文件位于 www.domain.com/file.php Magento cookie 设置为 '/'

我已经查看并尝试了许多如何获取信息的示例,但没有一个有效,我目前的代码是:

<?php
require_once '/home/admin/public_html/shop/appMage.php';                                                        
Mage::app();
Mage::getSingleton('checkout/cart', array('name' => 'frontend'));               
$cartItemsCount = Mage::getSingleton('checkout/cart')->getItemsCount();
$cartTotal = Mage::helper('checkout')->formatPrice(Mage::getSingleton('checkout/cart')->getQuote()->getGrandTotal()); 

echo 'You have '. $cartItemsCount . ' item(s) in your cart. <a class="cartgo" href="'.Mage::helper('checkout/cart')->getCartUrl().'">Checkout</a>';
if($cartTotal > 0){ echo '<span>[&pound;'.$cartTotal.']</span>'; }
echo '</a>';
?>

它在 magento 站点中工作得非常好,但由于某种原因不能来自这个外部文件。即使购物车中有产品,它也会返回 0。

任何指针?

【问题讨论】:

    标签: magento magento-1.7


    【解决方案1】:

    试试

    // Mage init
    require_once '../../app/Mage.php'; 
    umask(0);  
    Mage::init('default');
    Mage::getSingleton('core/session', array('name' => 'frontend'));  
    
    // Get customer session
    $session = Mage::getSingleton('customer/session'); 
    
    // Get cart instance
    $cart = Mage::getSingleton('checkout/cart'); 
    $cart->init();
    
    $cartItemsCount = $cart->getItemsCount();
    

    magento 1.8 add product to cart using php

    【讨论】:

    • 不幸的是,我们仍然在 1.7.2 上,所以没有工作!
    • 我只是在 v1.7.0 上测试了代码,它确实有效。你遇到了什么错误?最后加echo $cartItemsCount了吗?
    • 是的 - 由于某种原因,我得到的是 0 :( 所有其他集成都适用于产品/类别,它只是购物车/会话位.. 让我觉得它与 cookie 有关系
    • 这段代码运行的域是否与magento站点域名相同?
    • 是完全相同的域,但 magento 安装在 /shop 目录中,PHP 文件在域根目录中
    猜你喜欢
    • 1970-01-01
    • 2012-06-24
    • 2012-01-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-07-06
    • 2011-04-20
    相关资源
    最近更新 更多