PrestaShop combination images: one AI image per color
In PrestaShop you upload every image on the product, then tick which ones belong to each combination. Make one image per color from a packshot with Sume.

PrestaShop does not store images per combination. You upload every image on the product, including those for each color or size, and then tick the images that represent each combination (PrestaShop 1.7 user guide, read 2026-10-03). So a product with five colors needs five clean images, uploaded once on the product and linked from five combinations.
Sume can make the five color images from one packshot with one image-edit request each. The linking is a PrestaShop back office step, and so is checking that the color is right.
How does PrestaShop attach images to combinations?
The guide describes two places. In the product's Basic settings tab, the image section takes all the images for the product, "including all of its combinations (color, size, shape, etc.)". The first thumbnail is the default cover image, and you can change it with the Cover image setting. When you edit a combination, the Image field shows the images already linked to the product, and you check the ones that best represent that combination (read 2026-10-03).
| Step | What the guide says | What it means for AI images |
|---|---|---|
| Upload | Drag and drop or select files; upload all images, including combinations | Generate all color images first, then upload together |
| Cover | The first thumbnail is the cover; change it with the Cover image setting | Make the lead color's image first |
| Caption | Each image can have a caption, used as the alt attribute; translate it per language | Write the caption with the color name |
| Combination | Tick the images that best represent the combination | One image per color, named by color |
| Bulk actions | Edit several combinations at once | Useful for price or stock, not for picking images |
How do you make one image per color with Sume?
Use the packshot as the reference and ask for one change: the color. On openai/gpt-image-2.5, input_references takes up to 16 images, so you can pass the packshot and a photo of the real fabric swatch as a second reference. State what must stay the same: cut, stitching, zips, labels.
The loop below sends one request per color with its own Idempotency-Key and prints either the image URL (200) or the status URL of a job to poll (202).
import os, requests
H = {"Authorization": f"Bearer {os.environ['SUME_API_KEY']}"}
packshot = "https://cdn.example.com/jacket-white.jpg"
colors = ["navy", "forest green", "burgundy"]
for color in colors:
body = {
"model": "openai/gpt-image-2.5",
"prompt": f"The same jacket recolored {color}. Keep cut, stitching, zips and labels unchanged. Plain light background.",
"input_references": [{"type": "image_url", "image_url": {"url": packshot}}],
"image_size": "1200x1200",
}
key = "jacket-" + color.replace(" ", "-") + "-v1"
r = requests.post("https://api.sume.com/v1/images", json=body, timeout=60,
headers={**H, "Idempotency-Key": key})
if r.status_code == 200:
print(color, r.json()["data"][0]["url"])
elif r.status_code == 202:
print(color, "poll", r.json()["data"]["status_url"])
else:
print(color, r.status_code, r.text[:200])Can you trust the color?
Not without a check. Sume's docs list no color-matching control for image edits, so a recolor is a model's best reading of your words. A burgundy that drifts toward red sends returns. Put the real swatch photo in as a second reference, name the color the way your product data does, and compare each output against a physical sample or the supplier's color card before upload.
If a color fails the check, regenerate that one color under a new Idempotency-Key. Reusing a key with a changed prompt returns 409, which is the signal you changed the request and need a new version suffix.
What does the PrestaShop side add?
Captions are the part worth scripting. The guide says a caption is used as the image's alt attribute and so helps search engines, and that you should translate it if you run several languages (read 2026-10-03). A caption like Jacket, forest green, front per image is better than an empty field, and it is data you already have in the color column of your sheet.
The guide also notes that the default maximum file size comes from your server's PHP settings and can be lowered on the Images preference page, under Product images. Check a generated file against that limit on a real store before you plan a large upload.
What should the batch check include?
For a catalog run, generate by product, not by color across products, so one person can review a whole color set side by side and catch the odd one out. A navy that is two shades lighter than its siblings is obvious in a row of five and invisible in a folder of five hundred. Keep the packshot, the prompt text and the output URL in one sheet row per color so a failed one can be redone alone.
- Name each file with the SKU and the color, such as
jacket-1042-forest-green.png. - Upload every color image on the product first, then link images to combinations, then set the cover.
- Write one caption per image and per language you sell in.
- Review each set against the supplier color card, and regenerate failures with a new version suffix.
- Sume accepts jobs beyond your plan's processing limit as queued work and returns
429 queue_fullonly when the queue is also full, so pace big loops and back off on that code.
Sources
Related posts
More in Integrations
- Wix Stores product video: 50 MB limit and an AI clip
Wix Stores takes AVI, MP4, MOV or MPEG product video up to 50 MB. Measure a Sume clip, then shorten it, drop audio or conform its size with video trim.
- How to add an MCP server to ChatGPT with developer mode
Turn on ChatGPT developer mode, create an app for the server's URL, and sign in with OAuth. The steps, with Sume's hosted MCP server as the example.
- How to add subtitles to a video in Python
Add subtitles to a video in Python with Requests: POST the video URL to Sume's /v1/video-captions, poll the job, then read the captioned video_url.
- Add Sume to Claude as a custom connector (remote MCP)
Add Sume's hosted MCP server to Claude under Customize > Connectors, see what Sume's OAuth consent grants, and decide whether to allow paid tools.
Written by Sume