Skip to main content

Documentation Index

Fetch the complete documentation index at: https://docs.shoppex.io/llms.txt

Use this file to discover all available pages before exploring further.

A two-week walkthrough for running a major sale on Shoppex. Built around Black Friday but the same playbook works for any limited-time promotion — Cyber Monday, end-of-quarter, launch sales.

What you’ll do

  • Prep your catalog (which products are on sale, by how much).
  • Create coupon codes, with limits and product-targeting.
  • Build the buyer list to email and Telegram-blast.
  • Schedule the email campaign for the moment the sale opens.
  • Track conversions live and react if something underperforms.
  • Run the post-mortem.

Two weeks before — prep

Pick the discount strategy

Coupon types Shoppex supports:
  • PERCENTAGE — N% off the order.
  • FIXED — fixed-amount discount.
(There’s no built-in BOGO — for buy-one-get-one, use bundle products instead.) For each coupon, configurable limits:
  • maxUses — total redemptions across all buyers (cap the exposure).
  • minOrderAmount — minimum order subtotal to be eligible.
  • maxDiscount — cap the absolute discount (useful for percent codes on big orders).
  • validFrom / validUntil — time window. Coupon code returns invalid outside these times.
  • Product / variant binding — restrict to specific products. Without bindings, coupon applies to anything.
Decide your codes:
  • A general code (BF25 for 25% off everything, capped at $X).
  • Product-line specific codes (PRO-BF for the Pro tier only).
  • VIP code with bigger discount, low max-uses, shared only with your top customers.
Create them at Discounts (/coupons).

Build your email lists and segments

In Marketing → Email (/marketing/email), your list of buyers is automatically maintained. Build segments based on what you want to target:
  • All past buyers.
  • Buyers in the last 90 days (recent + warm).
  • High-value buyers (LTV > $X).
  • Trial-only buyers (never converted to paid).
Segments are saved filters — once built they stay current as new customers come in.

Draft the email

Email Marketing’s template system is MJML-based. You can either:
  • Use the builder to drag-and-drop the email.
  • Write MJML directly if you want pixel-precise control.
Personalize with variables — first name, the buyer’s most-bought category, the discount code itself. Variables come from the campaign-recipient context. Test sends to yourself before scheduling — broken templates render different per mail client.

Build a parallel Telegram blast (if you use Telegram)

Same idea on Telegram side. Store → Telegram → Broadcasts → New broadcast.
  • Pick the target segment.
  • Compose the message (include the coupon code or a deeplink).
  • Schedule for the same moment as the email.

Sale day — go live

Schedule everything in advance

Don’t manually hit “Send” at 9am — set the schedule the night before. Both campaigns (emailMarketingCampaigns.scheduleAt) and Telegram broadcasts support scheduled send. You wake up to the campaigns already going out. Make sure your coupons’ validFrom matches the announcement time. If you email at 9am with a code that says “valid from 10am”, buyers will hit “invalid code” at the first 100 attempts and you’ve lost them.

Watch the dashboard

During the sale, your live indicators:
  • Analytics → Revenue (/analytics) — running revenue total.
  • Orders page — orders coming in, filterable.
  • Email campaign status — sent / delivered / opened / clicked counts, available per campaign.
  • Telegram broadcasts — same kind of stats, per broadcast.
Shoppex doesn’t have a built-in “coupon analytics dashboard” — to see how many sales each code drove, filter Orders by coupon code (every order with a redeemed coupon has it attached) and read the count + revenue from there.

React if something underperforms

If the email got delivered but conversions are flat, consider:
  • A follow-up email 12-24 hours later with a different angle (urgency, social proof).
  • Lower the coupon’s minOrderAmount if you’re getting “cart abandoned because code didn’t apply” complaints.
  • Spawn a deeper discount code for an off-hours segment.
If conversions are too strong on a wholesale-margin product, you can mark the coupon inactive mid-sale — buyers who already redeemed are unaffected, but new attempts fail.

After the sale — post-mortem

Within a few days of close:
  1. Filter Orders by each coupon code. Count: total redemptions, average order value, total revenue.
  2. Compare against the same week last month (or last year if you have one) to see net lift vs. just-discount-already-existing-buyers.
  3. Check Email Marketing stats: open rate, click rate, conversion rate per campaign.
  4. Note the segment that converted best — that’s where you push for the next campaign.
Save the coupons but mark them inactive — keeping the codes intact preserves your historical record (orders that redeemed them stay linked).

Common pitfalls

  • Forgetting maxUses on a percent code shared publicly. Someone leaks it; you’re refunding a thousand orders. Always cap.
  • Email templates that break on iOS Mail. Test before scheduling. MJML compiles to cross-client HTML but you still want to eyeball it.
  • Coupon stacking. Shoppex applies one coupon per cart. If buyers complain “I can’t use both codes,” that’s expected — pick which one wins (usually the bigger).
  • Shipping a sale on a day where one gateway is down. Test Stripe, PayPal, crypto before the announcement goes out.