Shopify product.variants.* trigger: one Sume image per variant

A product.variants.* Shopify events trigger can fire many times at once. Fan each event out to one Sume image job, and queue bursts on your side.

4 min readSume
All posts

Shopify events subscriptions accept a parent trigger such as product.variants.*, which covers all supported fields below that path. To turn that into images, queue one Sume image job per variant event. When many arrive together, hold them in your own queue and submit them at a pace you choose; Sume bulk runs queue Format runs, not image jobs.

The trigger syntax is from Shopify's 2026-09-16 changelog, read 2026-10-01. Image behavior is from Image generation; the bulk-run note is from Bulk runs.

What does the wildcard trigger do?

The changelog describes the syntax as subscribing to all supported fields below a parent path with a terminal .*, for example triggers = ["product.variants.*"]. A wildcard means more events than a single field trigger, so your receiver should expect bursts and treat each one as a small unit of work.

How do I map a variant to a Sume image job?

Take the variant's product photo URL and send it as an edit or reference input. Sume image inputs must be public HTTPS URLs only; localhost, private-network and non-HTTPS URLs are rejected before submission. num_images is an integer from 1 to 4 if you want options per variant. See bulk image generation for the single-request shape.

Fields that matter for a per-variant image job, from the Sume docs, read 2026-10-01.
FieldRule in the docs
image_urls1-10 public HTTPS URLs
num_imagesInteger 1-4
metadataStored on the job, not sent to the provider
Idempotency-KeySent on each submit so a retry returns the original job
modeasync is the default; poll the job or use a webhook

What if fifty variants change at once?

Buffer the events in your own queue and submit one image request per variant, so a burst does not become a burst of paid calls at once. Bulk runs are a different surface: the docs describe them as a server-side queue of ordinary Format runs (1-100 items, concurrency 1-16), so they fit only if your per-variant work is a Format, not a direct image request.

How do I tie a result back to the variant?

Put your variant id in metadata, which Sume stores on the job. When the job finishes, match on that value and on job_id before writing the image back to the store. Pair this with an Idempotency-Key per variant event so a repeated Shopify delivery cannot create a second paid job.

Sources

Related posts

More in Integrations

All Integrations posts

Written by Sume