Skip to content

Go live

A deploy is not a launch. Between the two, Stripe gets connected for real, SMTP gets a real sender, and shipping zones get argued about. All of that needs a deployed store, because webhooks cannot reach localhost, and while it happens the catalogue is three placeholder products on a test key. This page is the stretch between.

Settings → Visibility → Password. Shoppers see a password prompt; your own admin session always passes. Mint a share link to show a friend without telling them the password. Storefront visibility has the details.

2. Replace the demo catalogue with the real one

Section titled “2. Replace the demo catalogue with the real one”

Delete the demo products, create yours, and publish each one. Or export the CSV, edit it, and import it. Remember the import never publishes: imported products land as drafts unless is_live says otherwise, and even a live one is not published until someone clicks Publish.

  • Shipping. Zones for where you ship, rates for what it costs. The Overview warns when a store has live physical products and no rates, and when a zone covers a country no rate can price. A gap ships free, silently. Shipping.
  • Tax is off by default, and under-collecting is silent: every order goes through, the buyer pays, and you owe the difference. Read Tax before the switch; three things have to be true in Stripe first.
  • Email. Until SMTP_URL is set, sending is a logged no-op. Set it, then Settings → Email → Send a test to prove the credentials work.

Test and live keys have separate catalogues in Stripe. Everything you published under the test key exists only in the test account.

  1. Set STRIPE_SECRET_KEY and STRIPE_PUBLISHABLE_KEY to the live pair and restart.
  2. In the live Stripe dashboard, create the webhook endpoint again at https://your-store/api/webhooks/stripe with the same three events. It has a new signing secret. Set STRIPE_WEBHOOK_SECRET to it and restart again.
  3. Republish every product. The Overview lists the ones that are not published under the current key. Publishing mints live Products and Prices.

Settings → Visibility carries the checklist behind Open the store: Stripe connected, a live key, webhooks connected, the public URL not localhost, shipping rates that cover where the store ships, an email provider, and something live to buy. Nothing on it blocks the switch; a catalogue-only store with no Stripe is a legitimate thing to open. But flipping to public with rows still failing asks for confirmation first and names what is outstanding.

There is no launch wizard. Four of the seven items are environment variables read once at boot, so a wizard step for any of them would have nothing to click.

6. The one state that gets more than a checklist row

Section titled “6. The one state that gets more than a checklist row”

Public and holding a test key. Checkout completes, the buyer sees a confirmation, the webhook records a paid order, and no money moved. The Overview carries a persistent error-level notice until the key or the visibility changes.

Flip visibility to Public. Make one real purchase with a real card for a small amount and refund it from the admin; that exercises the live webhook, the refund webhook, and the restock in one go.

Then back the data up, if you have not already.