我想检索我的客户地址。
这是我返回客户数据的代码:
$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>
它不会返回地址。
如何通过网络服务返回客户地址?
答案 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)并检索该地址的所有信息。