Table of content
Table of Contents | ||
---|---|---|
|
...
First steps - Access the Web service and list client
...
- Configure your PHP installation so that it has the cURL extension installed and activated:
With Windows: Place this line in your
php.ini
file:Code Block extension=php_curl.dll
Linux/Mac: install the cURL extension:
Code Block sudo apt-get install php5-curl
Copy the
PSWebServiceLibrary.php
file at the root of your Web server.Note You can also do this tutorial on a local server even while your shop is on the Internet.
- Create a
list_the_clients.php
file at the root of the Web server that you have chosen. Specify where to find the web server in your file:
Code Block require_once( './ PSWebServiceLibrary.php' );
...
- The store's root path (ex:
http://
myprestashopexample.com/
). - The authentication key (ex: ZR92FNY5UFRERNI3O9Z5QDHWKTP3YIIT).
- A boolean value, indicating whether the Web service must use its debug mode.
If you do not understand the terms of object-oriented programming such as instance, method, or constructor, that's okay for the rest of the tutorial. Here's how you create a Web service call:
Code Block |
---|
$webService = new PrestaShopWebservice('http://myprestashopexample.com/', 'ZR92FNY5UFRERNI3O9Z5QDHWKTP3YIIT', false); |
...
The error handling is done within a try..catch
block, with the web service processing being done in the try
section, the catch
one containing the error handling code.
Code Block |
---|
try {
// Execution ( if an error occurs in this code, stops and goes in the catch block)
}
catch {
// Error handling (tries to catch the error or the error display)
}
|
...
- In the
try
block, we instantiate thePrestaShopWebservice
object with the necessary parameters and retrieve thecustomer
resource XML in a variable. - In the
catch
block, we put code to display the PHP error message, if anything wrong happens in thetry
block.
Code Block |
---|
try { // creating web service access $webService = new PrestaShopWebservice('http://maboutiqueexample.com/', 'ZR92FNY5UFRERNI3O9Z5QDHWKTP3YIIT', false); // call to retrieve all clients $xml = $webService->get(array('resource' => 'customers')); } catch (PrestaShopWebserviceException $ex) { // Shows a message related to the error echo 'Other error: <br />' . $ex->getMessage(); } |
...
Key | Value |
---|---|
resource | customers |
Code Block |
---|
// The key-value array
$opt['resource'] = 'customers';
Retrieving the XML data
$xml = $webService->get($opt);
|
...
Launching the code above will return a *impleXML
SimpleXML
object containing all the client IDs.
Code Block |
---|
<?xml>
<prestashop>
<customers>
<customer>
Client ID
</customer>
<customer>
Client ID
</customer>
<customer>
Client ID
</customer>
...Other client tags
</customers>
</prestashop>
|
...
To access the fields of clients who are children from the Customers tag, we only need to retrieve all fields in an associative array in SimpleXML like this:
Code Block |
---|
$resources = $xml->customers->children();
|
From there, we can access client IDs easily. Here's an example with a path from identifiers:
Code Block |
---|
foreach ($resources as $resource)
echo $resource->attributes() . '<br />';
|
Thanks to these elements, we can create a HTML table containing all the client IDs. Try that before reading the next chapter.
You can use the "CcustomersCustomers" menu in the back-office to find the IDs of all customers. If you encounter difficulties, have a look at the example file named 0-CustomersList.php
, to see the results you should get.