Set up your shop

Install the Shop app, connect your Stripe account, set currency and tax, choose how orders reach buyers, add a product, and publish your shop.

Updated 7 Oct 2026

The Shop app lets buyers pay by card, Apple Pay or Google Pay on your site, and by PayNow or GrabPay for Singapore dollars (GrabPay appears once your Stripe account has it switched on). The money goes straight into your own Stripe account. ContentMetric charges no transaction fee. The Shop is an app, and it is part of the Business and Enterprise plans. On a Free or Pro site the Shop shows Business plan with a See plans button, and you cannot install it until you upgrade. A site that already has the Shop keeps it on any plan.

Install the app

  1. Open Settings for the site, then Apps.
  2. On the Available tab, click Install on Shop.
  3. Read the list of what it can do, then click Install.

Four pages appear in the editor menu: Orders, Shop settings, Product choices and Discount codes. Each also has a link on the Shop's row in Apps. When the install finishes, Shop settings opens by itself and asks what kind of business you run (see Choose your business type for the shop). The app also adds a Products collection to your content, and three draft pages: Product, Order confirmed and Basket.

Connect Stripe

  1. Open Shop settings.
  2. In the Setup tasks box at the top, click Connect with Stripe. You can also open the Payment gateways row and connect there.
  3. Follow Stripe's steps. It takes about 10 minutes and you come straight back to the editor.

Until Stripe is connected, the Setup tasks box shows Connect Stripe to take card payments, and Payment gateways shows Not connected on the Stripe row. If nothing at all is on, Accepted payment methods says "None yet. Customers cannot check out until you connect Stripe or turn on a manual payment method." If Pay at pickup or Bank transfer is on, customers can still pay that way. Once Stripe confirms your account can take payments, the row shows Live, or Test mode while ContentMetric is still using test keys. If you return before Stripe has finished, you are told to come back once you have completed it. You can open your Stripe dashboard any time with Manage in Stripe. Under the Stripe row you also see the cards and wallets it takes (Visa, Mastercard, American Express, Apple Pay, Google Pay and PayNow).

If you see "Test mode: payments here are test payments." after connecting, card payments on ContentMetric are still in test mode. Buyers pay with Stripe's test cards, no real money moves, and the orders are marked as tests. It switches to real payments by itself once ContentMetric turns them on.

If Stripe stops your payments

Stripe can restrict an account, for example when it needs more information from you. When that happens, card payments stop. If you have Pay on collection or Bank transfer or PayNow QR switched on, buyers can still order and pay that way, and the Orders page and Shop settings show a red bar: "Card payments are off." If you have no other way to pay switched on, your shop hides itself instead: buyers see the product with the button switched off ("Not available to buy right now"), and the bar says "Your shop is hidden." Orders that were already paid are safe and still appear on the Orders page.

You get one email saying what stopped and why. Open Shop settings, then Payment gateways, and finish what Stripe asks for. The Stripe row shows Action required with an Open Stripe button. As soon as Stripe says your account can take payments again, card payments come back by themselves and you get one more email.

Test mode and live payments

While a site is not on a paid plan, its shop works in test mode only. In Shop settings, the Setup tasks box says so, with a Choose a plan button, and the Stripe row on Payment gateways shows Test mode. You can place test orders, but real card payments need a paid plan. Test orders are marked TEST at the top of every email about them, they do not take stock, and they are left out of the CSV export. On Stripe's test payment page the name at the top is ContentMetric, not your shop. Once you take live payments it shows your own business name.

Currency and tax

In Shop settings, open Region and taxes to choose your Currency and set your tax: its name (GST, VAT, SST or your own), the rate, and whether prices already include it or it is added on top. See Currency, tax and language.

If your business is GST registered, switch tax on, keep the Tax name GST and enter your Tax registration number. Also fill in Legal business name and Business address under Notifications and checkout, in Business details, so they appear on receipts.

Pickup, delivery and dates

Open Shipping and delivery to add local pickup locations, local delivery areas and shipping zones, and to choose whether customers pick a date. See Pickup, local delivery and shipping. A shop that was open before this existed keeps asking for a date on every order, with the same pickup place and delivery fee as before.

Buyers pick a date at checkout when your shop asks for one. The earliest date is today plus the longest lead time in their basket, skipping your closed days.

Receipt email

Open Notifications and checkout. Under Receipt email, set the From name, the Reply-to address, and an optional Footer note. ContentMetric sends the receipt the moment payment succeeds. Stripe's own receipt is switched off, so the buyer gets one email, not two. The email shows your From name at the top and in the footer, with a small "Sent with ContentMetric" line at the very bottom. Replies go to your Reply-to address.

Click Send test email to get a made-up receipt, marked TEST, at the email address you are signed in with. It uses what you have saved, so save your changes first.

Under Order status emails you can switch off the emails that tell buyers their order is ready, on its way, delivered or changed, and add a line that goes at the bottom of each. They are on for every shop until you switch them off. See Tell the buyer their order is ready or shipped.

Also here, under New order notifications: Send notifications to, the address that is told about each new order, a dispute or a failed refund (leave it empty and those emails go to your ContentMetric account email, and the page says so), and Policies page link, which is shown to buyers under the Pay button as Delivery, returns and terms. Link the page that says how long delivery takes, how returns work and your terms.

Click Save in each section after you change it. In Notifications and checkout the Save button sits under each section (business details, registration number, receipt email, new order notifications, policies link, checkout button), and switches and choices there save at once.

The email service has limits, and Save tells you under the box if a value is over one: From name up to 100 characters, Footer note up to 1,000, Legal business name up to 250, Business address, Pickup address and Opening hours up to 500, Tax registration number up to 50. Reply-to and Send notifications to must be real email addresses. If a receipt still cannot be sent, the payment and the order are not affected: the order shows Receipt not sent and you can click Resend receipt on it once you have fixed the setting.

The basket

Buyers keep their basket in their own browser until they pay or empty it. It opens as a panel when they add something, and it stays one tap away on every page:

  • If you put the Basket button block in your header (or anywhere on a page), that is how buyers get back to it. It shows a small basket icon, the word Basket and, once there is something in it, the number of items. Without items it shows only the word.
  • If you did not, a small Basket button with the number of items floats at the bottom right of your pages whenever the basket has something in it. Placing the Basket button block on a page switches the floating one off on that page.
  • The Basket page (at /basket) shows the same basket on a page of its own, inside your site's layout. It is added as a draft when the app is installed (or when an update brings it), like Order confirmed, so publish your site to put it live. Until then the Setup tasks box in Shop settings and the Shop's row in Apps (Action required) remind you, and the Basket button only opens the panel. Once the page is live the Basket button links to it; when the shop script runs, it opens the panel instead.

Each line shows the product's picture: the variant's own picture when it has one, otherwise the first picture of the product, otherwise a plain square. Every time the basket opens, the shop is read again: a changed price, a product you unpublished or removed, and changes to your shop settings (for example whether a date is asked for) show up without reloading the page. A changed price or a removed product is told at the top, for example "Sourdough loaf (Small) is now S$ 8.00". A basket holds up to 100 different items; the 101st is refused with "Your basket is full."

Each line has Remove, and pressing minus on a line with one item also takes it out of the basket. Its place then says so, for example "Cake was removed.", with Undo to put it back as it was.

An empty basket says "Your basket is empty." and offers Continue shopping, which closes the panel.

Already-published shops keep the old basket until you publish your site again. Baskets buyers already filled keep working.

What buyers see at checkout

The basket shows the price at the moment the buyer added the item. If you change a price, unpublish a product or sell out while it is in a basket, the buyer is not sent to Stripe. They see the updated basket with one line saying what changed, for example "Sourdough loaf is now S$ 8.00", and press Pay again.

If the buyer goes to Stripe's page and comes back without paying (the browser's Back button), their basket and the details they typed are still there, and the step says the payment was not completed.

When you do not count stock for an item, a buyer can put in a basket at most the number under Shop settings, Stock, Maximum quantity per order (1 to 99). Shops that were open before this setting started with 99; a new shop starts with 10. An item whose stock you count stops at what you have left, on the product page and in the basket, and they say so when a buyer reaches it, for example "Only 10 left". Both limits count what is already in the basket: with 1 in it and 10 left, the product page stops at 9 and says "Only 9 more (1 in your basket)", and with all 10 in it, "No more can be added (10 in your basket)". A basket from an earlier visit that holds more than you have left is brought down to it as soon as the buyer opens a page of your site, so the number on the Basket button is right, and the basket says so at the top the next time they look at it. That note goes once they change that line. A variant with Allow backorder switched on is not held to its stock.

Stripe will not take a card payment under its smallest amount for your currency (S$0.50 or HK$4.00, for example) or for more than 100 different items in one basket (delivery counts as one, and so does tax added on top). The buyer is told what to change. An order too large for a single payment is turned away with a note to split it in two.

The details step is built to be quick:

  • When there is only one way to get the order, there is nothing to pick. A sentence says how it works, for example "Shipping to Singapore: from S$ 10.00, free over S$ 150.00". With two or more ways, buyers pick one and a line under the buttons says how each works. Shipping is explained once; the totals keep the Shipping row and your own note for delivery time.
  • Boxes are grouped under Your name, phone and email and, when the order is delivered or shipped, Where to deliver. Pickup shows no address boxes.
  • Unit or floor (optional) sits under the delivery address, with #04-00 as the hint for a Singapore address. It is added to the end of the address, so the order, the email and the pick list show it as one line, for example "18 Robinson Rd, #04-00".
  • The phone box has the country code in front (+65 for a Singapore shop, or the country the order ships to). Buyers type the number after it; a Singapore number is 8 digits starting with 6, 8 or 9. Another country lets a visitor from abroad type a number with its own code; it must start with + and that code, for example +60 12 345 6789, or the box asks for it. A shop in euros has no code in front.
  • The name box stops at 80 characters and the delivery address box at 300. The address and the unit together can be up to 300; when they are longer, or a long name got in some other way, the box says the limit and how far over it is. If the email looks like a slip of a common mailbox, for example gmial.com or gmail.con, a line under the box asks "Did you mean [email protected]?" and one click puts it right. It stays while they choose the rest, until they take it or change the email, and it never stops the order.
  • A row above the totals, for example "2 items · S$ 185.30", opens to show each line with its picture. Buyers change quantities from the basket, with Back.
  • Under Pay, a Delivery, returns and terms link shows when you have filled in Policies page link (see Receipt email above).

On the order page after paying, each line shows its picture (the variant's own, else the product's first picture; older orders show a plain square), and Continue shopping takes the buyer to your Continue shopping link if you set one, else your home page. It is there when the order is paid, unpaid or cancelled.

The page follows the order after that. Once you mark it ready, shipped or delivered, or refund it, the buyer's link says so: Ready, On its way with the tracking number as a link, Collected, Delivered, or Refunded and Partly refunded with the amount. It only says where and when to collect while that is still to come. For a posted or couriered order, the day it shows is the day you send it. Email me the receipt again under the order sends the receipt (or, for an unpaid order, how to pay) to the order's own email, at most once every 10 minutes and 3 times a day. A cancelled or fully refunded order does not offer it.

Button colour and Continue shopping link

Open Notifications and checkout, then Checkout. Button colour and Button text colour (a colour like #D7B07A) change the Pay and Add to basket buttons and the number on the Basket button. The page tells you how readable the pair is, and warns when it is hard to read (we still save it). Leave both empty and the buttons use your site's text colour on its background colour. Continue shopping link is where Continue shopping goes after an order, for example /shop; leave it empty to use your home page. It must be a page on your own site.

Add a product

  1. Open your content and choose Products, then add a new entry.
  2. Fill in Title, Slug, Description and Images.
  3. Enter the Price (in cents): 1500 means 15.00. For a currency with no cents, such as the yen, enter the whole amount: 500 means 500 yen.
  4. Set Starting stock, and Sold as: Pickup, Delivery, or Pickup or delivery.
  5. Set Lead time (days): how many days you need before the order is ready.
  6. Optional: add Variants, for example sizes. To make a variant for every combination of Size and Colour, use Product choices instead (see Sizes, colours, SKU and weight). Each variant has its own Label, Price (in cents), Compare-at price (in cents), Starting stock and an Allow backorder switch. Give every variant a different label.
  7. Publish the entry.

Saving is never blocked, even if a price is wrong. The Stock tab on the Orders page lists what to fix.

Publish the pages

The Product page and the Order confirmed page are added as drafts. Nothing goes live until you publish them. A note on Shop settings tells you they were added; click Got it to dismiss it.

  1. Open the Product page and check how it looks. It shows one product from your Products collection.
  2. Open Order confirmed and restyle it if you like. This is the page buyers see after paying.
  3. Publish your site.

The app never rewrites a page that already exists.

Other ways to pay

By default buyers pay by card on Stripe's secure page. In Shop settings, the Other ways to pay block lets you add two more. Click Save on that block after you change it.

  • Pay on collection: for pickup orders only. The buyer pays you in cash or by PayNow when they collect. It never shows for delivery orders. It has no time to pay within, so Payment due within and Overdue below are for bank transfer (and on account) only.
  • Bank transfer or PayNow QR: the buyer sees your Payment instructions and your PayNow QR after they order. Add the QR with Upload, and use Replace or Remove to change it.

Payment due within (24, 48 or 72 hours) is the time a bank-transfer buyer is asked to pay within, on the page and in the email. A buyer who pays on collection is never given a time: they are told to pay when they collect, with the day if they chose one. Nothing is cancelled automatically. When the time passes the order shows Overdue and you get one email about it, with a link to the order. Cancel it yourself if it is not paid, which puts the stock back. When more than one way to pay is on, buyers see How will you pay? at checkout.

Card payments stay off until you connect Stripe. Pay on collection and bank transfer work without it. These are under Manual payments in Payment gateways. Turning Bank transfer on for the first time opens a form for your bank details first, and the switch turns on when you click Save bank details.

Common questions

Can buyers check out while the app is off? No. Your products and orders are kept, and so are your buyers' baskets. Product pages, the basket and the Account page say "The shop is taking a short break. Your basket is saved.", and a link to an order says "Your order is safe. Please try again later." Switching the app back on restores checkout.

Can I add a basket to other pages? Yes. The app adds blocks to the page builder: Buy box, Sold out badge, Basket button, Basket and Order confirmation. Put the Basket button in your header so buyers can always find the basket.

More in this topic

Back to Help centre

Still stuck?

Write to us and a person replies.

Email [email protected]