Product lifecycle
The dosing head 4711-A is being replaced by 4711-B. Purchasing has 140 of the old part left and wants them
sold. Service has customers with 2014 machines who will order 4711-A for
another ten years. Four departments, one SKU, and each means something
different by "is this product still available".
Supersession is covered in depth in Maintain BOMs and drawings; this page covers the whole lifecycle and what the product record here can express.
The stages, and what each one means downstream
| Stage | What is true | Visible | Orderable |
|---|---|---|---|
| New | Data is being built; not released for sale | No | No |
| Active | Complete, published, procurable | Yes | Yes |
| Phasing out | Sold while stock lasts; not reordered | Yes, marked as such | Yes |
| Discontinued | No longer supplied, no successor | Findable, with a plain statement | No |
| Superseded | A successor exists | Led to the successor | The successor |
In B2C a discontinued product is deleted. In B2B it cannot be: a technician holding a 2014 invoice searches for the exact number on it, and a deleted record turns that search into a phone call and everyone's order history into a gap. Add, do not overwrite, and keep a record findable after it stops being orderable.
What is a field here, and what is not
The stages are a business concept; the product record carries less.
| Concept | On the product record | Where it lives instead |
|---|---|---|
| Published or not | Enabled, on or off. The only lifecycle switch on the product. | |
| New, not yet released | Not a field | A product created with Enabled off. Turn the setting Publish new products immediately off and imports arrive switched off. |
| Phasing out | Not a field | A select attribute you model, for example lifecycle_status = phasing_out, plus a rule-based category and a search boost condition |
| Discontinued | Not a field | Enabled off. The record stays, the order history stays. |
| Superseded by | Not a field | An association type from the old product to the new one, for example replaced_by |
| Phase-out date, last-time-buy date | Not a field | A date attribute you model |
| Deleted | A Deleted timestamp; the grid hides deleted products | Last resort. A model with variants cannot be deleted while the variants exist. |
Completeness is separate: it says ready, Enabled says published. A product at 100% and switched off on purpose is what "new" looks like.
How the stages map onto the catalog
New. Turn Publish new products immediately off before a large import; with it on, 23,000 rows are live in every channel before anyone has looked at them. Work the completeness queue, then enable one set at a time.
Active. Enabled, complete for the channel, in at least one category, and assigned to the channel. If one of those is missing, Why a product is not showing up is the checklist.
Phasing out. The shop can label and rank; reordering stops in the ERP, not
here. Model a lifecycle_status attribute, mark it filterable, give it a
rule-based category, and add it to the search
boost conditions so a phasing-out article does not outrank its successor. Keep
Enabled on.
Discontinued. Switch Enabled off and keep the record. The storefront and search stop showing it; a rule-based category keeps it filed unless you turn Rules may select disabled products off. If a technician must still find the old number, keep Enabled on and use the lifecycle attribute instead, because Enabled off removes the product from search as well.
Superseded. Create the successor as a normal product, add the association from old to new, and then treat the old one as phasing out or discontinued.
Retire a product
- Create the successor, if there is one, and get it to 100% for the channel.
- Add the association from the old product to the new one.
- Set the old product's lifecycle attribute and, if you model one, the date.
- On the date, switch Enabled off on the old product. For a whole range, do it from PIM › Products on a selection.
- Search the storefront for the old number; the buyer must get the successor or a plain statement, never an empty result.
What to check
- No superseded product is still enabled past its date.
- Every disabled product is disabled on purpose: read the Disabled queue.
- The rule-based categories for phase-out show a recent Last recomputed.