Shopify Rollouts now test discounts: pair each offer with a clip

Shopify added discounts to Rollouts on Oct 2, 2026. Make one hook clip per offer with Sume so the test changes the offer and the video together, on purpose.

5 min readSume
All posts

You can now put a discount inside a Shopify Rollout and show it to part of your online store traffic, and the clearest way to read the result is to give each offer its own short clip. Sume makes those clips as ordinary jobs: one avatar video per offer, each with its own idempotency key, so the offer and the video change together on purpose rather than by accident.

Shopify announced the change on October 2, 2026. This post sticks to what that changelog entry says and to what the Sume docs say about avatar video.

What did Shopify add to Rollouts?

Per the changelog, "You can now include discounts in Rollouts to run coordinated campaigns and test different offers before launching more broadly." It names three uses: launching a new offer to a portion of online store traffic and expanding when you are ready, comparing different offers against conversion metrics to decide which to keep, and launching discounts at the same time as theme and checkout changes in one rollout.

  • Existing customer eligibility rules attached to a discount stay as they were.
  • Standalone start and end dates still work if you do not need a rollout.
  • The entry says the feature is in the New Admin.
  • The entry gives no traffic-share percentages, limits or plan restrictions, so check Shopify's help page before you plan a split.

Why pair each offer with its own clip?

A discount test only tells you something if the other variables are known. If offer B also ships with a different video, you will not know which one moved conversion. Two honest designs follow from that:

Hold the clip constant and test the offer, which is what Rollouts is built for. Or change the clip on purpose as part of the same theme change, and call the arm "offer B plus clip B" in your notes. Sume does not read Shopify rollouts or write to your theme; you upload the finished MP4 yourself, so you decide which arm gets which file.

How do I make three hook clips for three offers?

Avatar Video takes a script of an estimated 4 to 60 seconds, so write each hook at around 25 words. Send one request per offer, each with its own Idempotency-Key, so a retry returns the original job instead of billing a second clip. The script below is the only thing that varies.

Every submit returns a durable job id. Poll GET /v1/jobs/{id}/status until it is terminal, as Jobs and results describes, and do not resubmit just because a local timeout fired.

Check the scripts against the offer terms before you render, because a render is billed whether or not the script was right. Read each line aloud once and compare it with the discount's rules in Shopify: minimum spend, product scope, and any customer eligibility that Shopify kept in place.

import os
import requests

headers = {
    "Authorization": f"Bearer {os.environ['SUME_API_KEY']}",
    "Content-Type": "application/json",
}
hooks = {
    "offer-a": "I almost skipped this, but ten percent off your first order made me try it, and the stitching is better than I expected from a small shop.",
    "offer-b": "Free shipping over fifty dollars is why I added the second one to my cart, and honestly the first one already earned its spot on my desk.",
    "offer-c": "Buy two and the second is half price, so I grabbed one for me and one as a gift, and I would do it again in a heartbeat.",
}
for name, script in hooks.items():
    r = requests.post(
        "https://api.sume.com/v1/avatar-1.0/talking-video",
        headers={**headers, "Idempotency-Key": f"rollout-test-{name}-001"},
        json={"avatar_handle": "sume_clawra", "aspect_ratio": "9:16", "script": script},
        timeout=60,
    )
    r.raise_for_status()
    print(name, r.json())

What should I check before launching the test?

Only claim the discount your Shopify offer really applies, in the words the checkout will show. A spoken "ten percent off" that the discount does not honor is a support ticket, not a hook.

Log each arm. Shopify added Analytics notes the day before Rollouts discounts, which is a natural place to record what each arm contained; that is covered in its own post.

Read 2026-10-03. Rollout test design and what changes between arms
DesignArms differ inWhat you can conclude
Offer testDiscount only; same clipWhich offer converts better
Clip testClip only; same offerWhich video converts better
Bundle testOffer and clip togetherWhich package wins, not which part

How long should each hook clip be?

Keep them short and alike in length. If one arm gets a 12-second clip and another a 40-second one, run time becomes a second variable. The avatar route accepts 4 to 60 seconds, so pick one target, such as 15 seconds, and write all three scripts to it.

Sume bills each accepted job on its own, so three clips are three reservations. If you want a cheaper first pass, use avatar video previews to check the casting and scene before you render the finals; the docs describe previews as stills that are never captioned.

What does Sume not do in this workflow?

It does not split your traffic, count conversions or read your Shopify admin. Rollouts does the split, Shopify's reports do the counting, and you carry the files across. The only job on Sume's side is to make clips quickly enough that you can have all three ready before the rollout starts, with a record of which job made which file.

Sources

Related posts

More in Use cases

All Use cases posts

Written by Sume