Shop
Switch on the Shop extension under Extensions, then add products under Content > Products. Link the product list from a menu item that lists the product collection.
Products
A product has a price, an optional "compare at" price to show a sale, a picture and gallery, a summary and description, a SKU, stock (leave it empty for unlimited), a category and whether it ships. Options such as sizes or colors each carry their own price and stock.
Place products on any page with the Product grid and Buy box blocks, and put the Cart link module in the header.
Prices you can trust
The cart lives in the visitor's browser, but the server prices every order again from your products at checkout: items, discount, tax at one rate, and shipping that can be flat, free over an amount, or pickup. Nothing the browser sends can change a price.
Discount codes
Add codes in the shop settings, each with a percent or amount, an optional minimum, an end date and a use limit. The discount comes off the items before tax, and free shipping is judged after it.
Payment
- Stripe Checkout: put your Stripe secret key and webhook secret in the shop settings, and point a Stripe webhook for
checkout.session.completedathttps://<your site>/x/shop/stripe. Webhooks are checked against their signature. - Pay later: for pickup, invoices or cash.
Orders
Orders are numbered from 1001 per site. Each one gets a private link for the customer, a receipt email and an alert to the store. Stock counts down when an order is paid (pay later: when it is placed), and goes back if you cancel. Orders in the admin lists, filters and exports them as CSV. Only people with the orders permission see customer details.