【问题标题】:Programmatically adding products to a user's remote magento cart以编程方式将产品添加到用户的远程 magento 购物车
【发布时间】:2015-11-27 06:32:41
【问题描述】:

我有一个网页,用户可以从我的网页添加来自 3rd 方商业网站(amazon、shopify、magento 等)的产品。用户选择多个产品然后单击结帐,然后页面将他们重定向到 3rd 方商务网站的结帐页面。

这适用于亚马逊,因为他们有一个我们代理的服务器端 API。输入:一堆产品,输出:结帐 URL。很简单,而且效果很好。

然而,我们被 magento 困住了。

  • 没有用于将产品添加到用户远程购物车的公共 API
  • 未记录的 API 仅支持一次添加一个产品,因此支持多个产品需要多次 API 调用(速度很慢)
  • 大多数 magento 站点始终不支持 HTTPS 和/或重定向到 HTTP,我们的站点使用 HTTPS。因此,它并没有真正起作用。
  • 我们在尝试 AJAX 请求时遇到了 CORS 问题 - 我们目前正在使用 iframe 对其进行破解。
  • 第一个请求为我们提供了“无 cookie”错误页面,而不是实际将其添加到购物车中。

有没有办法解决这个问题? magento 支持 CORS 请求吗? magento 对 HTTPS 的支持是什么?

我看到http://community.magento.com/t5/Programming-Questions/API-Redirecting-user-to-magento-instance-to-view-their-cart/m-p/9113#M2029 要求我们的客户安装扩展程序,但这可能是不可接受的

【问题讨论】:

    标签: ajax magento e-commerce commerce


    【解决方案1】:

    也许你可以用这样的查询字符串试试?

    <?php
    
    $formKey = Mage::getSingleton('core/session')->getFormKey();?>
    
    <form action="/checkout/cart/add/product/<?php echo $productid; ?>" method="post">
        <input type="hidden" name="form_key" value="<?php echo $formKey; ?>" />
    
        <input type="text" name="qty"> QTY
    
        <input type="submit" value="Add to basket" />
    </form>
    

    【讨论】:

      【解决方案2】:

      虽然 Magento 中没有开箱即用的 API 功能支持此功能,但可以通过编写一个小的 API 模块来扩展 Magento 以支持此功能,安装在 Magento 中以使其工作。通过创建 API 扩展,您可以制定规则,例如接受要添加到购物篮的多个产品。

      Magento 的文档一直很差,通常像我这样的开发人员必须调试和单步调试代码,才能了解特定功能的实际工作方式。一旦你变得足够熟练,你就会开始看到一个“更大的图景”,它可以让你“预测” Magento 的行为,并且通常可以让你跳过一步一步的调试调查。

      我建议你从专业开发人员那里获得帮助来构建这个(我会说至少有 2-3 年的后端开发经验),并让经过认证的 Magento 开发人员来帮助你:业余爱好者可能会制作一个可行的解决方案,但从长远来看你会付出代价,更不用说你的模块在 Magento 版本和版本之间的可移植性,以及与安全相关的问题(XSS、SQL 注入等)。

      Magento 支持 HTTPS(实际上,这取决于站点的系统管理员,以正确配置 Web 服务器),并且有一点 CORS 支持(默认情况下,实施“同源”策略)。更改 CORS 也是一项开发任务,尽管我真的不明白这与 REST 或 SOAP API 有什么关系。

      另外,请注意 Magento 严重依赖 cookie 来提供会话支持(并且购物篮存储在数据库中以针对客户会话)。

      这就是我能说的全部内容,提供的关于您的实际问题的信息很少。

      如果您需要更多信息,我很乐意提供帮助,但我需要更多详细信息,以便找出最佳解决方案。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2023-03-09
        • 2015-01-31
        • 1970-01-01
        • 1970-01-01
        • 2014-07-01
        相关资源
        最近更新 更多