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

# How to create a sales listing

> A listing customers buy outright — purchase options, sale pricing, stock that is deducted rather than reserved, and selling one-of-a-kind items without overselling.

<Card title="Open in TWICE Admin" icon="external-link" href="https://admin.twicecommerce.com/catalog/listings" horizontal>
  catalog/listings
</Card>

A sales listing is one a customer buys and keeps. The unit is deducted from stock and does not come back.

That fact shapes the settings the same way the opposite fact shapes a rental. Availability is a count rather than a calendar, there is one price rather than a rate card, and nothing needs to know how long the customer keeps it.

This guide is the sales-specific path through the four tabs. The tab-by-tab walkthrough common to every listing is [create and publish a listing](/docs/guides/catalog/create-and-publish-a-listing).

## Prerequisites

<Warning>
  **Required permissions:** listing create and manage rights. All four system roles hold them.
</Warning>

<Info>
  **Decide whether the stock is counted.**

  * **Counted** — goods and consumables you hold and can run out of. Give the listing a stock rule on the **Fulfilment** tab.
  * **Not counted** — anything with no physical unit behind it. Leave the stock rules empty and it stays sellable regardless.

  There is no tracking switch: whether a listing draws on stock is decided entirely by whether it has a rule.

  Get this wrong in the first direction and you oversell. In the second, the listing quietly stops being sellable the moment stock hits zero.
</Info>

## The Walkthrough

<Steps>
  <Step title="Set the purchase option to Sales">
    On the **Pricing** tab, **Purchase options** — *customers can acquire this listing as* — decides how the listing is acquired. Tick **Sales**, and untick **Bookings** unless the same goods are genuinely also rented.

    One SKU can sit behind a rental listing and a sales listing at the same time. You are not maintaining two catalogs to sell what you also rent.
  </Step>

  <Step title="Set the sale price">
    Add a **Purchase price** row to the price table. A listing offering Sales with no sale price is sellable in principle and priceless in practice — and a table serving both bookings and sales needs rows for both, since the purchase options and the prices are set in different places.

    A sale row also takes a **compare-at price** — the struck-through "was" figure next to the price. Use it for a genuine markdown; it is the mechanism for an end-of-season or clearance price without touching the code.

    Read more: [Build a price table](/docs/catalog/price-tables)
  </Step>

  <Step title="Bind it to stock that is deducted">
    On the **Fulfilment** tab, add a rule matching the units this listing sells. A sale **deducts** the matched unit — unlike a rental, nothing releases it back.

    Check the count under the rule before moving on: **matches in inventory** with a number, or **No stock items available with these conditions** when it matches nothing.

    **A one-of-a-kind item is protected by the rule resolving to exactly one unit.** That is how a one-off item you hold exactly one of is sold without being sold twice — not by a setting, but by the rule matching one thing.

    Read more: [Listing inventory rules](/docs/guides/catalog/listing-inventory-rules)
  </Step>

  <Step title="Leave the stock rules empty if nothing physical backs it">
    A digital product, a fee, a gift card: add no rule on the **Fulfilment** tab. The **Stock items** card reads *No stock items reserved or deducted when the listing is purchased*, and the listing is available without limit.

    **This is the same card you used in the last step**, which is why the check there matters. A listing you believe is counted but whose rule matches nothing behaves like one that was never meant to be counted — the match count is the only thing that tells the two apart.
  </Step>

  <Step title="Collect anything you need to fulfil it">
    On **Checkout Settings**, add fields for what the sale needs and the order does not already carry: the text for an engraving, a size confirmation, an acknowledgement that the buyer has read a condition report.

    Read more: [Checkout Settings tab](/docs/catalog/listings/checkout-settings)
  </Step>

  <Step title="Publish it">
    On the **Publishing** tab set the **Sales channels**, **Store locations** and any **Customer tags**, then set **Status** to **Public** on the General tab.

    Then open it in the storefront — not preview — and put it in a basket.
  </Step>
</Steps>

## How do I know it worked?

* **The listing opens on the storefront** and offers a buy action with no date pickers.
* **It shows the price you set**, with the compare-at price struck through if you used one.
* **A test purchase drops the available count by one** — that is the deduct behaviour working, and it is the check that distinguishes a sales listing from a rental.
* **A one-of-a-kind listing goes unavailable** after that test purchase rather than accepting a second.

## Troubleshooting / Common Pitfalls

<AccordionGroup>
  <Accordion title="We sold the same unique item twice">
    **Cause:** the stock rule matches more than the one unit you meant, or there is no rule at all — in which case nothing was ever deducted.

    **What to do:** read the match count. For a one-of-a-kind listing it should read exactly one. Anything higher is a rule that is broader than the item.
  </Accordion>

  <Accordion title="The listing shows Unlimited availability but we do count this stock">
    **Cause:** the listing has no stock rule. A listing with an empty **Stock items** card is unlimited by definition — nothing is reserved or deducted when it sells.

    **What to do:** add the rule and confirm the **matches in inventory** count is a real number. Unlimited availability on a listing you believe is counted always means a missing or non-matching rule.
  </Accordion>

  <Accordion title="A sold item is still showing as available">
    **Cause:** the rule matches a broader set than the unit sold, so the count is drawn from stock that is still there.

    **What to do:** narrow the rule to the SKU or the specific units. Attribute-based rules are convenient and easy to make too broad.
  </Accordion>

  <Accordion title="The listing has a price but customers cannot buy it">
    **Cause:** the price table has booking rows and no **Purchase price** row. Ticking Sales under Purchase options does not create the price.

    **What to do:** add the sale row. Purchase options and prices are set on different cards and neither implies the other.
  </Accordion>

  <Accordion title="We want a markdown without losing the original price">
    **Use the compare-at price.** It renders struck through next to the current price and needs no second listing and no discount code.

    **What to do:** if the reduction should apply only to certain customers or need a code to unlock, that is a [discount code](/docs/guides/catalog/create-a-discount-code) instead.
  </Accordion>

  <Accordion title="We sell both new and used versions of the same thing">
    **Supported, and they can share a SKU.** Separate listings let each carry its own price, description and condition, while the fulfilment rules decide which units each one draws from — graded stock to the used listing, new stock to the new one.

    **What to do:** keep the rules disjoint. Two listings whose rules overlap will both sell the same unit.
  </Accordion>
</AccordionGroup>

## Next Steps

<CardGroup cols={2}>
  <Card title="Create a rental listing" icon="calendar-days" href="/docs/guides/catalog/create-a-rental-listing">
    The same four tabs for goods that come back.
  </Card>

  <Card title="Create an add-on listing" icon="puzzle-piece" href="/docs/guides/catalog/create-an-addon-listing">
    Insurance, delivery and extras sold alongside this one.
  </Card>

  <Card title="Listing inventory rules" icon="sitemap" href="/docs/guides/catalog/listing-inventory-rules">
    Binding a listing to the units it sells, and checking what a rule matches.
  </Card>

  <Card title="Set up variants" icon="grip" href="/docs/guides/catalog/set-up-variants">
    One listing in several sizes, colours or grades.
  </Card>
</CardGroup>
