Prestashop - 通过webservice检索客户的地址

时间:2017-05-23 13:33:43

标签: web-services return prestashop prestashop-1.6

我想检索我的客户地址。

这是我返回客户数据的代码:

$webService = new PrestaShopWebservice(PS_SHOP_PATH, PS_WS_AUTH_KEY, DEBUG); $xml = $webService->get(array('url' => 'http://example.com/api/customers/104')); $resources = $xml->children()->children();

这就是结果:

<?xml version="1.0" encoding="UTF-8"?>
<prestashop xmlns:xlink="http://www.w3.org/1999/xlink">
<customer>
    <id><![CDATA[104]]></id>
    <id_default_group xlink:href="http://example.com/api/groups/3"><![CDATA[3]]></id_default_group>
    <id_lang xlink:href="http://example.com/api/languages/2"><![CDATA[2]]></id_lang>
    <newsletter_date_add><![CDATA[2016-01-31 23:32:17]]></newsletter_date_add>
    <ip_registration_newsletter><![CDATA[46.245.17.126]]></ip_registration_newsletter>
    <last_passwd_gen><![CDATA[2016-01-31 17:32:17]]></last_passwd_gen>
    <secure_key><![CDATA[15423d30bac893c43344749c515c45f7]]></secure_key>
    <deleted><![CDATA[0]]></deleted>
    <passwd><![CDATA[02b5555e9ca7c2ea3588dae0a5e1d950]]></passwd>
    <lastname><![CDATA[اصالتی]]></lastname>
    <firstname><![CDATA[جاوید]]></firstname>
    <email><![CDATA[javidasalat@yahoo.com]]></email>
    <id_gender><![CDATA[0]]></id_gender>
    <birthday><![CDATA[1981-08-11]]></birthday>
    <newsletter><![CDATA[1]]></newsletter>
    <optin><![CDATA[0]]></optin>
    <website></website>
    <company><![CDATA[1376709392]]></company>
    <siret></siret>
    <ape></ape>
    <outstanding_allow_amount><![CDATA[0.000000]]></outstanding_allow_amount>
    <show_public_prices><![CDATA[0]]></show_public_prices>
    <id_risk><![CDATA[0]]></id_risk>
    <max_payment_days><![CDATA[0]]></max_payment_days>
    <active><![CDATA[1]]></active>
    <note></note>
    <is_guest><![CDATA[0]]></is_guest>
    <id_shop><![CDATA[1]]></id_shop>
    <id_shop_group><![CDATA[1]]></id_shop_group>
    <date_add><![CDATA[2016-01-31 23:32:17]]></date_add>
    <date_upd><![CDATA[2016-01-31 23:54:54]]></date_upd>
<associations>
<groups nodeType="group" api="groups">

</groups>
</associations>
</customer>

它不会返回地址。

  

如何通过网络服务返回客户地址?

1 个答案:

答案 0 :(得分:0)

因为在PrestaShop中你应该有更多的地址,你必须分两步检索这个地址 首先你需要检索客户ID(我看,我想你已经拥有了),然后是与该客户相关的地址。

如果您想通过网址检索,则必须使用&#39;过滤器&#39;功能:
http://example.com/api/addresses/?filter[id_customer]=[104]&filter[deleted]=[0]
我们有两个参数,id_customer是客户的id,而删除只检索活动地址

否则你应该使用$opt数组:

$opt = array(
    'resource'          =>'addresses',
    'filter[id_customer]' => '[104]',
    'filter[deleted]'  => '[0]'
);

在此之后,您拥有(该客户的)所有地址的列表,使用foreach您可以获取地址ID(s)并检索该地址的所有信息。