> ## Documentation Index
> Fetch the complete documentation index at: https://crevio.co/docs/llms.txt
> Use this file to discover all available pages before exploring further.

# Physical goods

> Sell and ship physical products with Crevio -- what works today, what you handle yourself, and how to work around the gaps

Crevio sells just about anything. Courses and downloads, yes -- but equally a lawn care round, an agency retainer, consulting hours, a booked-in job, a membership. Anything where you and the buyer agree on a price and you go and do the work.

Where it gets thinner is **shipping a physical object to someone**. Not the selling part -- Crevio takes the money, collects the address, and tracks your stock perfectly well. It is everything after that: postage costs, labels, tracking numbers, and knowing which parcels have actually gone out. Crevio does none of it, so **you pack the box, pay the postage, and tell the buyer it shipped.**

This page is deliberately blunt about where that line falls, so you can decide before you list anything.

## What works today

| Capability               | How it works                                                                                                                                                                                                  |
| ------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| **Product pages**        | Full [product](/docs/features/products) pages with an image gallery, description, SEO fields, and reviews -- exactly the same as anything else you sell.                                                           |
| **Pricing**              | One-time prices, [discounts](/docs/features/discounts), and multiple price variants per product.                                                                                                                   |
| **Inventory**            | Set a **quantity available** on any [price variant](/docs/features/pricing#inventory-limits). Crevio decrements it with database-level locking, so you cannot oversell, and restores it automatically on a refund. |
| **Quantity selection**   | Buyers can order more than one unit, and the cart holds several products at once.                                                                                                                             |
| **Shipping address**     | Checkout can collect a full shipping address, validated by Stripe's address form.                                                                                                                             |
| **Country restrictions** | Limit checkout to the countries you actually ship to.                                                                                                                                                         |
| **Sales tax**            | Pick the **General - Tangible Goods** tax code on the product so Stripe calculates the tax a physical item actually attracts.                                                                                 |
| **Order record**         | Every order shows the shipping and billing address on its detail page, with a copy button.                                                                                                                    |

## Setting up a physical product

<Steps>
  <Step title="Turn on shipping address collection">
    Go to **Settings → Advanced → Checkout** and enable **Collect shipping address**.

    <Warning>
      This setting is account-wide, not per product. Once it is on, **every** checkout asks for a shipping address -- including the products you never post to anyone. If the parcel is the exception rather than the rule, this puts a form field in front of buyers who do not need it.
    </Warning>
  </Step>

  <Step title="Restrict the countries you ship to">
    In the same screen, set **Allowed countries** to the places you are willing to post to. Leaving it empty means anyone, anywhere, can buy -- including someone whose parcel would cost more to send than the item is worth.
  </Step>

  <Step title="Set the tax code">
    On the product, open the tax section and choose **General - Tangible Goods**. The account default is the digital-products code, which will calculate the wrong tax on a physical item in most jurisdictions.
  </Step>

  <Step title="Add a price variant with a quantity">
    Create the price variant and set **quantity available** to how many units you physically have. This is what stops you selling stock you cannot ship.

    For sizes or colours, create one price variant per option -- "T-shirt — Medium", "T-shirt — Large" -- each with its own quantity. They appear to the buyer as a flat list of options.
  </Step>

  <Step title="Attach an experience">
    Every product needs at least one [experience](/docs/features/experiences) on a price variant before it can go active. There is no "physical item" experience type, so attach something that makes sense to the buyer after they pay.

    <Tip>
      The best workaround is a **Written content** experience titled something like *"Your order — what happens next"*, containing your dispatch times, care instructions, and how to reach you. It turns a required technical step into a genuinely useful post-purchase page.
    </Tip>
  </Step>

  <Step title="Activate and fulfil by hand">
    Set the product to **Active**. When an order comes in, open it, copy the shipping address, and post the item.
  </Step>
</Steps>

## What Crevio does not do

Crevio has no fulfilment system. These are the real gaps, and the best workaround for each.

### There are no shipping rates

Checkout collects an address but never charges for delivery. There is no shipping-cost line, no flat rate, no weight-based or carrier-calculated rate, and no free-shipping-over-a-threshold rule.

**Workarounds:**

* **Build postage into the price.** Simplest, and works if you ship to one region.
* **Create a price variant per region** -- "Ships to UK — £29", "Ships to Europe — £39", "Ships worldwide — £49" -- and rely on the country restriction to keep buyers honest. Nothing enforces that the variant matches the address they type, so check each order before posting.

### There is no fulfilment status

Order status tracks payment only: succeeded, pending, failed, refunded, partially refunded, disputed. There is no *packed*, *shipped*, or *delivered* state, and nowhere to store a tracking number.

**Workarounds:**

* Keep a spreadsheet keyed on the order number for anything beyond a handful of orders a week.
* Use [customer tags](/docs/features/tags) as a rough state marker -- tag a buyer `shipped` once their parcel goes out, and filter on it.
* Ask Crevio in chat: *"Which orders from this week contain the Medium t-shirt?"* It can pull the list for you, but it cannot mark them as shipped.

### The shipping address is dashboard-only

This is the biggest limitation if you ship any volume. The shipping address is visible on the order detail page in your dashboard -- and nowhere else. It is **not** in the [API](/docs/developer/guides/commerce-overview) order object and **not** in the `order.paid` webhook payload.

You cannot pipe addresses automatically into a 3PL, a label printer, or a shipping app. You copy them one at a time.

**Workarounds:**

* Use the copy button on the order page and paste into your carrier's site.
* Pull the address from your Stripe dashboard, which has it on the underlying payment.

### There are no carrier integrations

No label printing, no rate shopping, no tracking numbers, and no automatic "your order has shipped" email. Crevio will never tell your buyer where their parcel is.

**Workaround:** send it yourself. Set up an [automation](/docs/features/automation) that emails the buyer when an order is paid -- *"Thanks! Your order ships within two working days."* -- and then send the tracking number manually from the [customer](/docs/features/customers) record once you have it.

### Returns are money-only

A [refund](/docs/features/refunds) reverses the payment and restores inventory. It does nothing about getting the item back. There is no returns request, no RMA number, no return label.

**Workaround:** publish your returns policy on a [legal page](/docs/features/legal-pages), handle requests over email, and issue the refund once the item is back in your hands.

### Do not use the waitlist for backorders

The waitlist toggle on a price variant is incomplete. A buyer can still pay for a waitlisted variant, and when they do they receive nothing -- there is no release step that grants access or notifies you.

**Workaround:** when you sell out, set **quantity available** to `0`. That cleanly blocks purchase. Capture interest with a [form](/docs/features/forms) -- "Tell me when this is back" -- and email that list when you restock.

### Other things to know

* **No address validation.** Stripe formats the address; nobody checks the parcel can actually get there. Typos reach you as typos.
* **No dimensions or weight** anywhere on a product, so nothing downstream can estimate postage.
* **The buyer's purchase page shows experiences, not objects.** It lists what they can open or access. A physical item shows nothing there unless you attached the written-content page described above.
* **Orders cannot be exported to CSV** from the dashboard. For bulk fulfilment you would read them through the API, which -- as above -- omits the address.

## Is Crevio the right place to sell this?

Be honest with yourself about volume.

**Crevio works well when:**

* The parcel is a side of the business rather than the business -- merch for a course, a printed companion to a service, a product you hand over on a job.
* You ship a low, hand-packable number of orders: a few a day, not a few hundred.
* You run limited drops with a fixed quantity and one flat price.
* You ship to one country, or a small group of countries, at a postage price you can bake in.

**Use a dedicated store platform when:**

* You have dozens of SKUs with a size × colour matrix.
* You need live carrier rates or international duties calculated at checkout.
* You use a warehouse or 3PL that expects orders pushed to it automatically.
* Shipping cost varies enough that guessing it would eat your margin.

<Note>
  Nothing stops you doing both -- run the rest of your business on Crevio and keep a separate store for the stock you post. You can link to it from your [website](/docs/features/sites) like any other page.
</Note>

<Tip>
  If what you sell is a **service** -- lawn care, an agency retainer, consulting, a repair visit -- none of this applies to you. Nothing is being posted, so there is nothing to fulfil. Price it, take the money, and go and do the work. If the job needs a time slot, attach an [event experience](/docs/features/experiences) to the price variant so the buyer books one when they pay.
</Tip>

<Tip>
  Ask Crevio to do the setup for you: *"I want to sell a printed workbook for £25, I have 40 copies, and I only ship to the UK."* It will turn on shipping address collection, restrict the country, set the tangible-goods tax code, and create the product with the right stock count.
</Tip>
