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

  • 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/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: PUT

  • URL: /images/categories/2

  • Parameters: images=[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

  • Parameters: images=[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://eWURcnNJ6mbLUHB10EEIzTZsTShs33IX@myprestahop.com/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>

If you would rather use cURL:

$url = 'http://myprestashop.com/api/images/products/1';
$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_PUT, true); // Un-commet to edit an image
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);

Last updated