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.

4 min readSume
All posts

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.

Shopify Winter '26 Edition, Shop app (read 2026-10-09)
ItemWhat the page says
Shoppable video"Add shoppable videos to Shop and AI will optimize their distribution with built-in ranking and recommendations."
Deals feedHighlights discounts, price drops and Shop Campaigns in a dedicated feed
Product pagesCustomizable, 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

All Use cases posts

Written by Sume