【问题标题】:Magneto: Adding configurable product to cart fails : Please specify the product's option(s)Magneto:将可配置产品添加到购物车失败:请指定产品的选项
【发布时间】:2016-07-16 08:15:42
【问题描述】:

使用 Magento 1.7.0.2

我可以毫无问题地将简单的产品添加到购物车中。
但是,当我尝试将可配置产品添加到购物车时,它会抛出 XmlRpcException。

org.apache.xmlrpc.XmlRpcException: Please specify the product's option(s).
at org.apache.xmlrpc.client.XmlRpcStreamTransport.readResponse(XmlRpcStreamTransport.java:197)
at org.apache.xmlrpc.client.XmlRpcStreamTransport.sendRequest(XmlRpcStreamTransport.java:156)
at org.apache.xmlrpc.client.XmlRpcHttpTransport.sendRequest(XmlRpcHttpTransport.java:143)
at org.apache.xmlrpc.client.XmlRpcSunHttpTransport.sendRequest(XmlRpcSunHttpTransport.java:69)
at org.apache.xmlrpc.client.XmlRpcClientWorker.execute(XmlRpcClientWorker.java:56)
at org.apache.xmlrpc.client.XmlRpcClient.execute(XmlRpcClient.java:167)
at org.apache.xmlrpc.client.XmlRpcClient.execute(XmlRpcClient.java:158)
at org.apache.xmlrpc.client.XmlRpcClient.execute(XmlRpcClient.java:147)  

此 xml-rpc 调用的 API 文档http://devdocs.magento.com/guides/m1x/api/soap/checkout/cartProduct/cart_product.add.html

Magento API 文档没有太大帮助。所以遵循https://stackoverflow.com/a/19925338/12641 给出的建议。

这是 XML-RPC 调用的方法参数

[25f6d3a4606a18d24cdeb7ad6ad58a, cart_product.add, [25, [{product_id=126, quantity=2, options=[[{value=1, key=862}], [{value=65, key=501}], [{value=1, key=526}], [{value=100, key=525}], [{value=1, key=274}], [{value=1, key=273}]]}]]]

我仍然在控制台中收到 org.apache.xmlrpc.XmlRpcException: Please specify the product's option(s). 错误。

我想知道如何将可配置产品添加到购物车,当它需要传递选项时。

【问题讨论】:

    标签: java php api magento xml-rpc


    【解决方案1】:

    在调试 Magento php 代码后,我意识到 Magento 期望的是“super_attribute”而不是“options”键。

    这是我传递的用于添加具有超级属性的自定义产品的 Java 数组

    [
      8bd5ea08fc5c6f5d17445f10db593d4f, 
      cart_product.add, 
      [
        51, 
        [
          {
            product_id=3051, 
            super_attribute={
              272=22, 
              525=100
            }, 
            quantity=2
          }
        ]
      ]
    ]
    

    通过这些调用参数,我能够将产品添加到购物车。

    从 Magneto 管理控制台,我知道哪些超级属性需要作为超级属性传递。

    但是我如何通过 Magento XML-RPC/SOAP api 获取自定义产品的这些超级属性?

    在 PHP 中获取超级属性是我发现人们正在使用的。

    $productAttributeOptions = $product->getTypeInstance(true)->getConfigurableAttributesAsArray($product);
    

    我无法使用此代码,因为我仅依赖 API 来执行此操作。

    非常感谢任何帮助。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-12-17
      • 1970-01-01
      • 1970-01-01
      • 2014-05-10
      • 1970-01-01
      • 2012-06-09
      • 1970-01-01
      相关资源
      最近更新 更多