Notice: You are browsing the documentation for PrestaShop 9, which is currently in development.
You might want to read the documentation for the current version, PrestaShop 8. Read the current version of this page
Now that we have retrieved a list of resources let’s see how to access the details of one resource in particular. In the XML list you can see that each individual resource as a unique ID that you can use to get its details:
<?xml version="1.0" encoding="UTF-8"?>
<prestashop xmlns:xlink="http://www.w3.org/1999/xlink">
<customers>
<customer id="1" xlink:href="http://example.com/api/customers/1"/>
<customer id="2" xlink:href="http://example.com/api/customers/2"/>
</customers>
</prestashop>
We are going to use the same get()
method but provide an additional id
parameter
Key | Value |
---|---|
resource | customers |
id | resource_id (int) |
<?php
try {
// creating webservice access
$webService = new PrestaShopWebservice('http://example.com/', 'ZR92FNY5UFRERNI3O9Z5QDHWKTP3YIIT', false);
// call to retrieve customer with ID 2
$xml = $webService->get([
'resource' => 'customers',
'id' => 2, // Here we use hard coded value but of course you could get this ID from a request parameter or anywhere else
]);
} catch (PrestaShopWebserviceException $ex) {
// Shows a message related to the error
echo 'Other error: <br />' . $ex->getMessage();
}
You will receive the same xml as if you request http://example.com/api/customers/1 in your browser:
<?xml version="1.0" encoding="UTF-8"?>
<prestashop xmlns:xlink="http://www.w3.org/1999/xlink">
<customer>
<id><![CDATA[2]]></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/1"><![CDATA[1]]></id_lang>
<newsletter_date_add><![CDATA[2013-12-13 08:19:15]]></newsletter_date_add>
<ip_registration_newsletter></ip_registration_newsletter>
<last_passwd_gen><![CDATA[2020-04-09 13:31:19]]></last_passwd_gen>
<secure_key><![CDATA[86b9ae3ec67dd49122e3a574fc131af4]]></secure_key>
<deleted><![CDATA[0]]></deleted>
<passwd><![CDATA[33bdf9cf5657bf97149906b83ea3c6ed]]></passwd>
<lastname><![CDATA[DOE]]></lastname>
<firstname><![CDATA[John]]></firstname>
<email><![CDATA[[email protected]]]></email>
<id_gender><![CDATA[1]]></id_gender>
<birthday><![CDATA[1970-01-15]]></birthday>
<newsletter><![CDATA[1]]></newsletter>
<optin><![CDATA[1]]></optin>
<website></website>
<company></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[2020-04-09 19:31:19]]></date_add>
<date_upd><![CDATA[2020-04-09 19:31:19]]></date_upd>
<reset_password_token></reset_password_token>
<reset_password_validity><![CDATA[0000-00-00 00:00:00]]></reset_password_validity>
<associations>
<groups nodeType="group" api="groups">
<group xlink:href="http://example.com/api/groups/3">
<id><![CDATA[3]]></id>
</group>
</groups>
</associations>
</customer>
</prestashop>
You can now loop through this XML object to get each customer field value, or access specific fields individually
<?php
$customerFields = $xml->customer->children();
$firstName = $customerFields->firstname;
$lastName = $customerFields->lastname;
echo 'Details for '. $firstName . ' ' . $lastName . PHP_EOL . PHP_EOL;
foreach ($customerFields as $key => $value) {
echo $key . ': ' . $value . PHP_EOL;
}