Lifecycle status & replaced-by
Every part on PowersportOS carries a manufacturer-side lifecycle status, distinct from the retailer's per-storefront visibility switch. The status is informational metadata that propagates through the network and surfaces to end customers on storefronts, never a kill-switch.
The four states
- Draft
- Grey badge. Brand is preparing a launch, final descriptions, photos, OEM cross-references still in progress. Not ready for storefronts to subscribe to yet.
- Active
- Green badge. Currently in production, fully specced. The default state for everything in normal operation.
- Deprecated
- Amber badge. A successor exists. The part still works, but the brand recommends switching to the replacement on next reorder. Pairs with the
replacedByIdpointer. - Discontinued
- Red badge. Production has stopped. Hard end-of-life signal. Existing stock is the last stock.
Colours mirror the npm and PyPI convention for package status, neutral grey for "not yet", green for "current", amber for "still works but heads up", red for "end of life". The pattern travels well from software-package-managers to physical-aftermarket-parts because the semantic is identical.
The replaced-by pointer
When a part is set to Deprecated, the manufacturer can optionally set a replacedById pointer to the successor SKU. Storefronts that render the part show a clear "Replaced by 55716088" badge with a link to the successor, instead of dead-end behaviour on retired numbers.
Three concrete benefits:
- End customers find the upgrade path. A customer searching for the old SKU lands on its product page, sees "Replaced by X", clicks through. Sale rescued.
- Retailers get a clear cut-over signal. They know to sell down their remaining stock, then switch to ordering the successor going forward. No more guessing.
- Manufacturers communicate range changes without depending on every retailer. Mark the part deprecated centrally, point at the successor, every retailer's storefront reflects it on the next page load. No more chasing individual dealers to update catalogs after a refresh.
Status is metadata, never a kill-switch
PowersportOS never auto-hides a part based on its status. A Discontinued part stays on a retailer's storefront for as long as that retailer has stock and wants to sell it. The decision to take a part off the shelf is the retailer's, not ours.
This is a deliberate design choice. There are real reasons a retailer might keep a Discontinued part visible:
- They have legacy stock to liquidate
- They want SEO traffic to land on the product page with a "Replaced by X" hint
- The discontinued status is debated and the retailer disagrees
- The part remains useful for older vehicles still on the road
How status surfaces on storefronts
The PowersportOS Shopify theme renders status as an inline indicator on the product page:
- Active parts, no badge, no special treatment. Just a normal product page.
- Deprecated parts, amber "Deprecated" pill on the page, plus a "Replaced by [successor SKU + name]" link below the product title that points at the successor's product page.
- Discontinued parts, red "Discontinued" pill on the page, "Last stock" or similar messaging if the retailer chooses to surface it.
- Draft parts, typically not shown on storefronts at all because they're not subscribed to yet, but if a tenant has manually activated a draft part it appears with a grey "Pre-release" pill.
Status flow over time
A typical part's lifecycle through PowersportOS:
- Manufacturer creates the part, status starts as Draft. They populate descriptions, images, fitments, OEM cross-references.
- Manufacturer flips to Active when the part is ready for distribution. Subscribing retailers see it become available in their catalog.
- Years later, a redesigned successor ships. Manufacturer creates the new SKU as Active, then flips the old SKU to Deprecated and sets its
replacedByIdto point at the successor. - When production of the original definitively stops, the manufacturer flips it to Discontinued. The replaced-by pointer typically stays so end customers still find the upgrade path from the dead-end old SKU.
Most parts spend years in the Active state. Deprecated is typically a transitional state for 6-18 months while the supply chain works through old-SKU inventory. Discontinued is a permanent endpoint.