# Shop | Sophia Stack X

Source: http://sophiastack.sophiaxt.com/docs/shop

# 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.completed` at `https://<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.
