Skip to Content

Coupons

Give buyers a discount code to enter at checkout, or share a link that applies it for them. Coupons work with every payment option — Stripe, PayPal, Razorpay and Order Requests — because the discount is taken off the order total before the payment provider ever sees it.

How it works

You create coupons in your widget or site’s payment settings. Each one has a code (like SAVE20), a discount (a percentage or a fixed amount in your currency), and optional rules — a start and end date, a maximum number of uses, and a minimum order value.

When a buyer enters a valid code at checkout, the order summary shows the subtotal, the discount and the new total. They then pay the discounted total through whichever payment option they pick. If a coupon brings the total to zero, the buyer just confirms their name and email and the order is recorded as free.

Coupon codes are never included in your published widget or site. Visitors can’t find them by viewing the page source; the only way to use a code is to know it.

Creating a coupon

Open your payment settings

Widgets: open your widget in the Creator, click the Add-ons tab, and open Payments. Payments must be toggled on.

Sites: open your site in the Site Builder, click Add-ons in the sidebar, and open Payments and Shopping Cart.

Open the Coupons editor

Find the Coupons row and click Edit. The badge next to it shows how many coupons are currently active.

Add a coupon

Click Add coupon and fill in:

  • Code — what the buyer types. Letters, numbers, dashes and underscores only. Codes aren’t case-sensitive, so save20 and SAVE20 are the same coupon.
  • Discount — choose % off for a percentage, or your currency (for example USD off) for a fixed amount.
  • Starts and Ends (optional) — the coupon only works between these dates. It’s valid through the end of the end date.
  • Max uses (optional) — how many orders can use this coupon in total. Once that many orders have been placed with it, buyers see “This coupon has been used up”.
  • Minimum order (optional) — the cart subtotal must reach this amount before the coupon applies.
  • Note to self (optional) — a reminder of what the coupon is for. Buyers never see it.

Click Add coupon to save it to the list.

Turn coupons on and off

Each coupon in the list has a toggle. Switch one off to stop it working without deleting it. You can also edit or delete any coupon from the list.

Publish

Publish your widget or site. Coupons only take effect for visitors once you’ve published.

What your buyer sees

When you have at least one active coupon, a Have a coupon code? link appears in the checkout. Clicking it reveals a code field with an Apply button.

Once a valid code is applied, the summary shows:

  • Subtotal — the cart total before the discount
  • Discount — the amount taken off, with the code next to it and a Remove link
  • Total — what they’ll actually pay

If the code can’t be used, the buyer sees a short reason: the code isn’t valid, hasn’t started yet, has expired, has been used up, or the order is under the minimum.

If you have no active coupons, the coupon field doesn’t appear at all, so there’s nothing extra in your checkout until you need it.

Free orders

A fixed-amount coupon bigger than the order, or a 100% coupon, makes the order free. Instead of a payment form, the buyer sees a short form asking for their name and email, then an Order Complete confirmation. You receive the usual order email, and the order appears in your dashboard as a request with a total of zero.

This works even if you haven’t turned on Order Requests.

Add ?coupon=CODE to any link to your widget or site and the coupon is applied automatically when the visitor reaches checkout. For example:

https://my-store.shareables.ai/?coupon=SAVE20 https://www.example.com/shop/?coupon=SAVE20

The code is removed from the address bar straight away and remembered for that visitor, so it still applies if they browse around first. It’s cleared once they complete an order.

This works on your Shareables subdomain, on a custom domain, on a site built with the Site Builder, and on widgets embedded in your own website with the script embed. For embedded widgets, add the parameter to your own page’s URL — the embed passes it through.

Handy for email campaigns, social posts and partner links: everyone who clicks gets the discount without having to type anything.

Where the discount shows up

  • Payment emails — the seller and buyer emails list the subtotal, the discount with the code, and the total. If you use custom email templates, the variables {{subtotal}}, {{discount}} and {{couponCode}} are available. See Email Notifications.
  • Dashboard — in Analytics → Payments, orders that used a coupon show the code in the list, and the order details show the subtotal, discount and total.
  • Your payment provider — Stripe, PayPal and Razorpay receive the discounted amount. PayPal also shows the discount as a line in its own breakdown.

Frequently asked questions

Does a coupon work with all payment options?

Yes. The discount is applied to the order total on our side, so it works the same for Stripe, PayPal, Razorpay and Order Requests, and for both Buy Now and Add to Cart.

Can I limit a coupon to certain products?

Not yet. A coupon applies to the whole order. Product-specific coupons and once-per-customer limits are on our list.

How is “Max uses” counted?

Every completed payment or submitted order request that used the code counts as one use. Failed or abandoned checkouts don’t count.

What happens to the coupon if I change the price of an item?

Nothing — coupons are calculated at checkout from whatever the prices are at that moment. A percentage coupon follows your prices automatically; a fixed coupon takes the same amount off regardless.

Do coupons need Stripe’s or PayPal’s own coupon features?

No. Coupons are built into Shareables, so there’s nothing to set up in your payment provider’s dashboard.

What if I move my widget into a site?

Your coupons come across with the rest of your payment settings when you import the widget into a site.

Last updated on