首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Magento SOAP无法创建订单

Magento SOAP无法创建订单
EN

Stack Overflow用户
提问于 2012-06-12 12:19:23
回答 3查看 2.1K关注 0票数 2

问题所在

我在使用Magento创建订单时遇到了困难。我已经准备好了所有的基本必需品(下面的代码片段),但是每次我尝试创建订单时,状态代码1008都会失败(参见Magento博士)。

但是没有错误消息,所以我只知道订单创建失败了。

代码语言:javascript
运行
复制
$cart_id                 = $magi->execute("cart.create");
$customerEntity          = $magi->execute("customer.info",5);
$customerEntity["mode"] = "customer";

$customerAddressEntity         = $magi->execute("customer_address.info",$customerEntity["default_billing"]);
$customerAddressEntity["mode"] = "billing";

$magi->execute("cart_customer.set", array($cart_id,$customerEntity));
$magi->execute("cart_customer.addresses", array($cart_id,array($customerAddressEntity)));

$productEntity = array("product_id" => 48,"qty" => 1);

$magi->execute("cart_product.add",array($cart_id,array($productEntity)));
$magi->execute("cart_payment.method",array($cart_id,array("method" => "banktransfer")));

$orderId = $magi->execute("cart.order", array($cart_id));

在magento日志中,此操作后将记录以下消息。

未定义偏移量: 0/var/www/cloud2u.nl/mccloud_n/app/code/core/Mage/Checkout/Model/Cart/Payment/Api.php

未定义变量: websiteId/var/www/cloud2u.nl/mccloud_n/app/code/core/Mage/Catalog/Model/Resource/Product/Collection.php.

(此条目在此之后重复3次,每次间隔半秒钟)。

我在这里感到很困惑,几周前它还处于工作状态,从那以后没有什么变化。

更多信息

$magi变量包含一个用于使用Magento的抽象对象。它还捕获和记录所有错误,因此在这段代码中没有try/catch块。

  • Magento版本: 1.7.0.0
  • Php版本5.4.6
  • 服务器OS: Ubuntu 11.10 (开发服务器)
EN

回答 3

Stack Overflow用户

发布于 2012-08-14 08:45:55

未定义偏移量: 0/var/www/cloud2u.nl/mccloud_n/app/code/core/Mage/Checkout/Model/Cart/Payment/Api.php

此错误意味着有一个数组没有[ '0‘]的值

票数 1
EN

Stack Overflow用户

发布于 2015-03-31 22:36:30

第一个错误:

未定义偏移量: 0/var/www/cloud2u.nl/mccloud_n/app/code/core/Mage/Checkout/Model/Cart/Payment/Api.php

是由于此方法的Api.php中有错误:

代码语言:javascript
运行
复制
protected function _preparePaymentData($data)
{
    if (!(is_array($data) && is_null($data[0]))) {
        return array();
    }

    return $data;
}

我解决了这个问题

代码语言:javascript
运行
复制
if (!(is_array($data) && is_null($data[0])))

使用

代码语言:javascript
运行
复制
if (!(is_array($data) && !isset($data[0])))

在测试过程中,它以相同的方式工作,并消除了错误。

票数 1
EN

Stack Overflow用户

发布于 2012-08-05 11:39:27

我认为你的$productEntity是错的。

代码语言:javascript
运行
复制
$productEntity = array(
     array("product_id" => 48,"qty" => 1);
);

它使马车空无一人。

^^

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/10996520

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档