【问题标题】:Magento SOAP API: createCreateCustomer returns false, no errorMagento SOAP API:createCreateCustomer 返回 false,没有错误
【发布时间】:2015-11-17 11:28:36
【问题描述】:

我正在尝试在远程安装的 Magento 上注册一个新用户(我不拥有它,所以我无法访问代码或任何东西)但它不起作用。

我登录成功,但是当我调用 customerCustomerCreate() 方法时,它只是返回 false,没有任何补充信息。该用户不存在,但即使他存在,我也会很高兴收到错误消息!

这是一个示例代码:

$soapClient = new SoapClient('URL TO THE WSDL');
$session = $soapClient->login('APIUSER','APIPASSWORD'); // Login ok
$newUser = array('ALL THE INFOS ABOUT USER, AND MORE!');
$distantUserId = $soapClient->customerCustomerCreate($session, $newUser);
// $distantUserId = false...

对于$newUser,我有比 Magento 要求的更多的信息;因为我身边已经有一个用户,所以我只传递我拥有的所有信息,即使它是 Magento 没有的字段,这可能是问题吗?

有没有办法获得关于我这边错误的更多信息?还是我必须问 Magento 的所有者?

【问题讨论】:

    标签: php api magento soap


    【解决方案1】:

    如果您传递额外的字段,它们将被 SOAP 服务器过滤掉,所以这不是问题。

    获取更多信息的唯一方法是询问日志或在 Magento 端启用开发人员模式,如果这不是实时站点(可以通过服务器上的 .htaccess 完成)。当开发者模式开启时,所有异常都会直接输出到客户端。

    您还可以与我们分享客户数据。以下格式适用于我:

    $client = new SoapClient('http://your.host/index.php/api/v2_soap/?wsdl');
    $sessionId = $client->login('apiUser', 'apiKey');
    $result = $client->customerCustomerCreate(
        $sessionId,
        array(
            'email' => 'customer-mail@example.org',
            'firstname' => 'Dough',
            'lastname' => 'Deeks',
            'password' => 'password',
            'website_id' => 1,
            'store_id' => 1,
            'group_id' => 1
        )
    );
    print_r($result); // Output ID of created customer
    

    当我再次尝试执行相同的请求时,我得到了预期的 SoapFault:This customer email already exists(开发人员模式已关闭)。

    【讨论】:

    • 我这方面的愚蠢错误,没有得到 SoapFault 仅仅是因为我没有将所有内容都包装在 try/catch 块中......现在我收到了错误消息(用户数据有问题),我可以继续 ^^ 感谢您提及 SoapFault!
    猜你喜欢
    • 1970-01-01
    • 2015-06-27
    • 1970-01-01
    • 2015-08-02
    • 2014-03-12
    • 2011-07-26
    • 2015-04-17
    • 1970-01-01
    • 2015-07-19
    相关资源
    最近更新 更多