2017-05-23 17 views
0

私は顧客のアドレスを取得したいと思います。Prestashop - Webサービス経由で顧客のアドレスを取得する

これは、顧客データを返すために、私が持っているコードです:

$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[[email protected]]]></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

PrestaShopには1つ以上のアドレスが必要です。このアドレスを2つのステップで取得する必要があるためです。
最初に、顧客IDを取得する必要があります(私はあなたがすでにあなたのケースで持っていると思います)。

あなたはURLを介して取得したい場合は、「フィルタ」機能を使用する必要があります。それが唯一のアクティブなアドレス

を取得するために、あなたの顧客のIDと削除されid_customer
http://example.com/api/addresses/?filter[id_customer]=[104]&filter[deleted]=[0]
我々は、2つのパラメータを持っています

そうでなければ、あなたが$opt配列を使用する必要がありますあなたがで、(その顧客の)すべてのアドレスのリストを持っていることの後

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

をでは、アドレスidを取得し、そのアドレスのすべての情報を取得できます。

関連する問題