【问题标题】:Magento Ajax add to cart not working for subsitesMagento Ajax 添加到购物车不适用于子站点
【发布时间】:2011-03-17 10:31:11
【问题描述】:

我编写了一个通过 ajax 调用的小脚本,用于将产品添加到购物车。

$request = Mage::app()->getRequest();
$session = Mage::getSingleton('core/session', array('name'=>'frontend'));
$cart = Mage::helper('checkout/cart')->getCart();
foreach($pids as $pid){
    if(!pid || $pid == ''){continue;}
    $product = Mage::getModel('catalog/product')->load($pid);
    $cart->addProduct($product, $qty);
}
$session->setCartWasUpdated(true);
$cart->save();

我有一个多站点设置,该脚本在主站点下运行时运行良好,但当我在其中一个子站点下运行时,它不会将其添加到购物车中。

我尝试将 addtocart.php 放在子站点的根目录(包括主站点 mage.php),也尝试将其添加到主站点的根目录,但没有任何效果。

我需要在某处指定网站 ID 吗?

谢谢

【问题讨论】:

  • “子网站”是否位于不同的域中?这可能会影响 cookie 的存储方式。
  • 是的,它们都在不同的域中。有没有办法解决这个问题?我已经通过向产品添加到购物车 url 发送请求来使其工作,但它太慢了。一次添加多个产品可能需要 30 秒或更长时间。

标签: ajax magento add cart


【解决方案1】:

首先采取简单的步骤,设置一个以单个句点为前缀的cookie domain。这就像一个通配符。

默认行为是不在商店之间共享购物车。在您的“小脚本”中,确保在您第一次初始化应用程序时选择了正确的商店。

Mage::app($storeId);

有时在跨域时,您需要将SID 作为 URL 参数包含在内。我不确定你会如何找到这个价值,也许是从推荐人页面..?

【讨论】:

  • 感谢clockworkgeek。搞定了!我需要按照您的建议设置商店 ID!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多