How to create safe private offers on Shopify

A security and operations checklist for expiring, customer-bound Shopify offers that revalidate before checkout.

Direct answer

A safe private offer uses an opaque expiring link, binds exact terms to the intended shopper and products, records merchant approval, and checks live price, inventory, market, quantity, and policy rules again before Shopify checkout opens.

Key takeaways
  • Private offer URLs should contain opaque tokens, not customer data.
  • Opening an offer must not charge a card or imply guaranteed inventory.
  • Public-price and private-price terms need different checkout strategies.
  • Revocation, expiry, refunds, and cancellations need durable evidence.

Bind every term that matters

Record the shopper identity, product and variant, quantity, currency, price or non-price commitment, expiry, and merchant decision. Hash the access token at rest and encrypt direct identifiers. A leaked database row should not recreate a working offer URL.

Choose the matching Shopify checkout path

When terms use the current public price, a Storefront Cart can preserve normal checkout behavior. When the merchant approves a private price, a Draft Order provides explicit line pricing and a Shopify-hosted invoice checkout. The evidence should say which strategy was chosen and why.

Make stale offers fail safely

Products can be unpublished, inventory can move, rules can change, or the offer can expire. Revalidate on creation and again on open. If a condition no longer holds, explain that checkout cannot open and offer safe alternatives such as waiting, requesting a new review, or cancelling.

Close the evidence loop

Link the paid order to the original request and decision. Keep refund and cancellation adjustments append-only rather than rewriting the conversion. Expired remote Draft Orders should be cleaned up durably so a stale invoice cannot remain usable outside the local application.

Frequently asked questions

Does opening a private offer charge the customer?

No. The shopper reviews the exact terms and explicitly completes payment in Shopify checkout.

Should private offer pages be indexed?

No. They should use noindex and nofollow controls in addition to opaque token validation, expiry, and customer binding.