Shopify Shop app Deals feed: what product clip to upload
Shopify's Winter '26 Edition adds shoppable video and a Deals feed to Shop. Brief one short usage clip per product with the Sume product-usage-demo Format.

Upload one short clip per product that shows a single real action or result, and keep the price out of the picture. Shopify says shoppable videos in the Shop app get ranked and recommended automatically, and that the Deals feed carries the discount itself. So the clip has to sell the product, not the offer. The Sume product-usage-demo Format makes that kind of clip from a product photo.
What did Shopify announce for videos and deals?
The facts below come from Shopify's own Winter '26 Edition page. The page does not give video length, size or ratio limits, so this post states none.
| Item | What the page says |
|---|---|
| Shoppable video | "Add shoppable videos to Shop and AI will optimize their distribution with built-in ranking and recommendations." |
| Deals feed | Highlights discounts, price drops and Shop Campaigns in a dedicated feed |
| Product pages | Customizable, with custom sections, videos and branding |
Why keep the price out of the clip?
A video is a fixed file. A discount or price drop is not. Shopify's page says the Deals feed is where discounts and price drops are shown, so the offer can change in your store without a re-render. If you burn "20% off" into the frames, the clip goes stale the day the deal ends. That is our recommendation, not a Shopify rule.
Show what the shopper cannot learn from a still photo: how it pours, folds, fits, or pops open.
How do I make the clip with Sume?
The Format catalog lists sume-product-usage-demo. Call it at the sume handle with your product photo as an input_image attachment (a public HTTPS URL). Read GET /v1/formats/sume/sume-product-usage-demo first for its description and any input it expects. The run takes minutes, so use a webhook or poll status_url. Media comes back on media.sume.com.
Idempotency-Key makes a retry safe, and generation_spend_cap_usd stops the run from spending past your limit. See Calling a Format for every field.
curl -sS -X POST "https://api.sume.com/v1/formats/sume/sume-product-usage-demo/runs" \
-H "Authorization: Bearer $SUME_API_KEY" \
-H "Content-Type: application/json" \
-H "Idempotency-Key: shop-deals-sku-1042-v1" \
-d '{
"instruction": "Vertical 9:16. One real action with the product. No prices or discount text on screen.",
"attachments": [{ "type": "input_image", "image_url": "https://cdn.example.com/sku-1042.jpg" }],
"generation_spend_cap_usd": 5
}'What should I check before it goes live?
Pull a few stills from the finished clip with video frames and check that the product, label and colour match your catalog photo. The route takes at[] (1 to 24 timestamps) and always answers 202, so poll it. For many SKUs, queue them with Bulk runs.
How do I do a whole catalog without hand-feeding it?
A bulk request is a server-side queue of ordinary runs. The docs allow 1 to 100 items per request and a concurrency of 1 to 16, and you read progress from GET /v1/format-run-queues/{id}. Start with your ten best sellers, look at the clips, and only then queue the rest.
Give each SKU its own Idempotency-Key, such as the SKU number plus a version suffix. If a request times out, you can send it again without creating a second run. Keep the first-frame check in the loop, because a clip that changes the label or the colour of a product costs you trust, not just credits.
Sources
Related posts
More in Use cases
- YouTube Shorts Over 60 Seconds: Why a Music Claim Blocks the Video
A YouTube Short longer than one minute with an active copyright claim is blocked worldwide. What that means for music choices, with Sume's Music Router noted.
- Silent captioned Reel: drop the audio first, burn with words
To burn captions on a Reel with no sound, run STT first, trim with audio drop, then send your own words: $0.02 + $0.01 + $0.20 = $0.23.
- Six Nano Banana 2.1 start frames, six Wan 3.0 clips: a 3-min Short
Six 9:16 Nano Banana 2.1 stills ($0.60 at 1K) feed six 30 s Wan 3.0 jobs as first frames: $23.40 at 720p for a 180-second Short, with Timeline.
- Six podcast ad-read variants at 500 characters: TTS cost and tags
Six 500-character ad reads cost $0.1425 on Sume TTS ($0.02375 each). Tag each take with the metadata field and one Idempotency-Key per variant.
Written by Sume