Chapter 9 - Image management
Accessing the images is done through the images
entity.
Several types of images are available.
- General shop images
- Product images
- Category images
- Customization images
- Manufacturer images
- Supplier images
- Store images
They can be reach using the following links:
- /api/images/general
- /api/images/products
- /api/images/categories
- /api/images/customizations
- /api/images/manufacturers
- /api/images/suppliers
- /api/images/stores
Various image size are available, depending on the image types. They are available as XLink links in the links above, encapsulated in the image_types
node.
For instance, in order to retrieve the image with the id 10 for the product with id 5, we would use the following path: /api/images/products/5/10
.
Changing the images
In order to change the available images, we have to use a POST
request, with the new image as its parameter.
For instance, here is how to change the image for category 2:
- HTTP method: POST ( /!\ not PUT)
- URL: /images/categories/2
- POST content: [binary content for the new image]
...and here is how to add a new image to the product with id '1':
- HTTP method: POST
- URL: /images/products/1
- POST content: [binary content for the new image]
Here is an HTML form enabling images to be sent:
<form enctype="multipart/form-data" method="POST" action="http://[email protected]/api/images/products/1"> <fieldset> <legend>Add image for products No 1</legend> <input type="file" name="image"> <input type="submit" value="Execute"> </fieldset> </form>
<form action="http://[email protected]/api/images/products/1/2" method="POST" enctype="multipart/form-data"> <fieldset> <legend>Update product image 1/2</legend> <input name="ps_method" value="PUT" type="hidden"> <input name="image" type="file"> <input value="Execute" type="submit"> </fieldset> </form>
If you would rather use cURL:
$url = 'http://myprestashop.com/api/images/products/1'; /** * Uncomment the following line in order to update an existing image */ //$url = 'http://myprestashop.com/api/images/products/1/2?ps_method=PUT'; $image_path = 'C:\\my_image.png'; $key = 'My web service key'; $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, $url); curl_setopt($ch, CURLOPT_POST, true); curl_setopt($ch, CURLOPT_USERPWD, $key.':'); curl_setopt($ch, CURLOPT_POSTFIELDS, array('image' => '@'.$image_path)); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); $result = curl_exec($ch); curl_close($ch);