01
What an identifier field is asking
Applies to marketplace onlyown storefronthybrid
Commerce vocabularies in current use were built around manufactured goods, and the field names reflect it. Current product specifications require stable product and variant identifiers alongside price, availability, condition, media, and seller links.1 The term “variant” carries the assumption: a thing that comes in sizes and colors, of which a shop holds several.
For a one-of-one seller, the implied question and the literal one differ. An identifier field asks which manufactured product this is. For a 1978 camera body the answer has two parts: which model it is, and which surviving example of that model is in hand.
02
Three identities and what each survives
Applies to marketplace onlyown storefronthybrid
Three separate identifiers are held, and each one outlives a different set of events. The vocabularies already model two of them: Schema.org represents a product as a described thing,2 and an offer as the commercial terms under which it is sold.3 The middle term, the specific object, is supplied by the seller.
| Identity | Answers | Survives |
|---|---|---|
| Model | What kind of thing is this? | Every sale — it names a class |
| Object | Which exact thing is held? | Repricing, relisting, storage, sale |
| Offer | On what terms, right now? | Nothing — it ends when the terms change |
With the three distinct, the common operations resolve without convention. Repricing touches the offer. Relisting creates a new offer for the same object. Merging two accidental duplicates is a statement about objects that leaves both models and offers untouched.
03
When no manufacturer code exists
Applies to marketplace onlyown storefronthybrid
Resale stock frequently predates barcodes, was never assigned one, or has lost its packaging. Feeds and forms still request one. The options below are ordered by what each states about the object.
- A real manufacturer code on the object: use it, and record where it was read.
- The model has a code but this unit’s is unreadable: record the model-level code, noting that the unit was not verified against it.
- The item predates or falls outside the coding scheme: leave the field empty and record the reason where the destination accepts one.
- A minted, plausible-looking code: this states that the object is a different product, and the statement travels with the record.
The fourth option is the one an empty required field invites, since a blank can reduce eligibility on a destination and a filled field does not. The two costs are different in kind: an empty field can cost a placement, and a substituted one puts an inaccurate identification into every system that reads the record.
04
Two records, one object
Applies to marketplace onlyown storefronthybrid
Duplicate object records arise from stock entered from two places, an item re-entered after a return, or a bulk import run twice. The consequence is specific: two records for one object can each be marked available, and each will accept a buyer without consulting the other.
A duplicate is resolved by choosing one surviving object identity and redirecting the retired one to it, rather than deleting it. Anything still holding the retired identifier — an old listing, a saved link, a downstream copy — can then resolve to the survivor. Deleting the retired record removes that path.
This is a merge rather than a relist. A relist keeps the object and changes the offer. A merge records that two identifiers were describing one object. A system treating the two identically can reprice one object twice or return a sold one to availability.
05
Channel identifiers are references
Applies to marketplace onlyown storefronthybrid
Each destination assigns its own identifier to a listing, and each is a reference to the object rather than a replacement for it. The seller’s own object identity is what makes cross-surface reconciliation possible: when a sale happens on one channel, that identity is the key that locates every other place the same physical thing is advertised.
Where a channel identifier is used as the internal key, delisting and relisting issues a new one. The record then splits, and the object’s inspections, prior offers, and provenance notes remain attached to an identifier that is no longer current.
06
Adding identity to stock already listed
Applies to marketplace onlyown storefronthybrid
Retrofitting runs in a specific order, since assigning identity before reconciling duplicates preserves the duplication. Live records come first, because those are the ones a buyer can act on. Recently sold items follow, while a dispute or return is still open. Historic stock can come last.
- Assign an object identifier to every currently live item and record it beside each channel listing ID.
- Reconcile duplicates before continuing, since assigning identity to duplicates carries the duplication forward.
- Backfill recently sold items so returns and disputes resolve to one object.
- Write the intake rule, so the backlog stops growing during the work.
Completed for the camera, the map has four lines, one of which stays blank.
| Identity | Value | Basis |
|---|---|---|
| Model | 1978 Meridian body | Named on the top plate |
| Object | MER-1978-041 | Assigned on intake; recorded on a label in the box |
| Offer | Current storefront offer, one currency | Ends when the terms change |
| Manufacturer code | Blank, with a stated reason | None found on the body or in the paperwork |
The blank carries its reason, so it can be revisited in a minute if paperwork appears. A number typed to clear a required field cannot afterwards be distinguished from a real one, including by the person who entered it.
The fourth step is what keeps the first three from repeating. The intake rule is one sentence: nothing enters stock without an object identifier assigned at the point of entry.
07
Identity as the sources define it
Applies to marketplace onlyown storefronthybrid
Current product specifications require stable product and variant identifiers.1 The vocabularies represent a product as a described thing2 and an offer as the terms of sale.3 None of them defines an identifier for the specific physical object, which is the value a seller of unique stock assigns and maintains.
The cited documents also do not state what a destination should do with an empty manufacturer-code field, so eligibility in that case is set by each destination’s own current requirements rather than by the vocabularies.
08
Practice
Exercise
Map the three identities
- Pick one live item and write its model, object, and offer identifiers on three separate lines.
- Record what its manufacturer-code field contains and why, including when the answer is empty.
- Find one duplicate in your stock and record which identity survives and where the retired one now points.
Check yourself
A form requires a manufacturer code and the 1978 camera has none. What goes in the field?
Nothing, with the reason recorded where the destination accepts one. A blank states that no such code was found; a substituted code states that the object is a different product, and that statement travels with the record.
An item is repriced. Which of the three identities changes?
Only the offer. The model names a class and the object names the thing held, and neither is affected by commercial terms.
Why not use the marketplace listing ID as the internal key?
Because delisting and relisting issues a new one. The object’s history then splits, leaving its inspections, prior offers, and provenance attached to an identifier that is no longer current.
What distinguishes a merge from a relist?
A relist keeps the object and issues new terms. A merge records that two identifiers described one object, retiring one and redirecting it to the survivor.
Progress is saved in this browser only. No account, nothing sent anywhere.
09
Common questions
Does every unique item need a manufacturer code to be eligible anywhere?
Requirements differ by destination and are revised, so the current documentation for that surface is the source. What a substituted code does is constant: it records an identification that does not describe the object.
Can two objects share a model identifier?
Yes, when they are the same model — that is what a model identifier names. What they do not share is an object identifier.
What if a duplicate is discovered after one record sold?
Merge to the identity carrying the sale and redirect the other. The sold record has a buyer, a payment, and a return window attached, so downstream references need to resolve to it.
Is a serial number a suitable object identifier?
It can be recorded as an attribute. As a key it has gaps: serials are missing, worn, or reused across manufacturers often enough that some items will have no value to enter.
10
Research and sources
Rules and platform policies change. These primary sources were reviewed on ; confirm the current position for your jurisdiction and account before acting.
Claim evidence
- Current product specifications require stable product and variant identifiers, and the variant model presumes a class of goods held in multiples rather than a single surviving object.
- technical requirement. Supported by Agentic Commerce API: Products .
- Page vocabularies model the described thing and the commercial terms under which it is sold as separate entities, leaving the identity of the individual physical object for the seller to supply.
- technical requirement. Supported by Schema.org Product , Schema.org Offer .
- Agentic Commerce API: Products OpenAI · Tier A · current specification · unversioned live API reference
OpenAI product and variant payload fields and upsert behavior. Limit: Defines OpenAI’s API surface; it is not a vendor-neutral item model and does not prove a payload will be surfaced.
- Schema.org Product Schema.org · Tier A · current vocabulary · live vocabulary
Product representation in structured data. Limit: Vocabulary use represents facts; it does not guarantee crawling, retrieval, ranking, or transactions.
- Schema.org Offer Schema.org · Tier A · current vocabulary · live vocabulary
Offer and availability representation in structured data. Limit: Offer markup does not synchronize inventory or establish a supported transaction path.