Skip to main content
Click a product to open the editor.
!!-IMAGE-NEEDED-!! — /organizations/[id]/merch/[productId] → product editor with image uploader and variants table

Top-level fields

  • Name, slug.
  • Description — markdown body shown on the product page.
  • Images — upload one or more; the first is the cover image. Click the trash icon on a thumbnail to remove it.
  • Base price (USD) — the default unit price; per-variant overrides take precedence.
  • StatusDraft (hidden) / Active (visible in store) / Archived.

Variant options

Define the option types customers can pick from — e.g. Size: S, M, L, XL or Color: Red, Blue. Skip this section if your product has no variations. Each option has a name and a list of values. Add as many option types as you need.

Variants

Under Variants, add one row per combination of option values you actually sell. Riders see only active variants whose available stock (inventory − reserved) is greater than zero.

Where it sells

Three independent toggles control where a product is offered:

Offer as a registration add-on

When enabled, riders can add this product to their cart during signup for the events you pick below the toggle. Add-ons always use pickup at the event — you can’t ship a registration add-on.

Show in public storefront

When unchecked, the product is hidden from time2.bike/[orgSlug]/store and only sold as a registration add-on. Use this for event-exclusive items (a race shirt that ships with race entry, for example) you don’t want random visitors buying.

Enable shipping for storefront orders

When enabled, storefront buyers can pick Ship at checkout and enter a shipping address. When disabled, the product is pickup-only at race day and the buyer must collect it from a designated pickup event. A cart that contains any non-shippable item forces the entire order to pickup mode — mixing shippable and pickup-only items in the same cart will hide the Ship option.

Save & delete

Click Save product to save your changes. Delete removes the product permanently — but only if nobody has ordered it. If there are active orders, set the product to inactive instead so it disappears from the store without breaking anyone’s order.