New catalog product
spine step 0–1 · intakeIdentity
brand + name requiredWho is it, and what is it called?Brand and name are the only two things the record cannot exist without. With the unit spec the formula brings, they are also exactly what the duplicate check runs on.
New brand — Nordhaven
A name and one choice. Logo, voice and categories are filled in later on the brand’s own screen. A brand is ours, so unlike a source formula it can be made from here.
Filters as you type. Creating one is the last row of the same list, not a second box — searching for a brand and inventing one are the same decision with two outcomes.
Matched as you type, across every brand. A different brand with the same name is normal; the same brand with the same name and the same unit spec is refused — those three things are the product.
A barcode is an identifier, so it lives here rather than in a drawer of odds and ends. Bundles and combos never carry one, and nothing is blocked by its absence. The FP SKU is not on this form — nobody types that; it is minted when the physical product is settled.
Source formula
optionalWhat is actually in the bottle — and who else sells it.One formula, many brands. Attaching one is how this product inherits every physical fact and its ingredient list. Select only — there is no “create one here”.
A dropdown of hundreds is a scroll, not a choice — so this searches manufacturer, house name, code and count at once. Two records can differ only by count: a formula is a formula at one size, so 60 ct and 90 ct are separate records with separate weights. Create a source formula ▸
Images
optionalThree usually land. Only one of them is yours to shoot.Supplement Facts and Instructions arrive with the formula and every open brand on it gets them free. A product may override one, but that is a deliberate secondary act — it breaks the panel for the other brands.
The label as printed for this brand. This is the readiness gap; the other three are not.
From SF-0044, shared by 3 products.
From SF-0044. A new image role this round — it was not in the practised order.
A fourth turns up often enough to leave the slot open. Lifestyle and size shots are added later on the product.
How it sells
optionalRead downstream, by the listing builder and the package builder.Neither of these describes the goods — they describe how the goods go to market, which is why they are not on the formula and not with the barcode.
The listing builder builds its angle picker from the union of tags across a job’s products, each labelled with how many it covers.
A flag read by the package builder. Gift variants multiply on purpose — more unique listings is the strategy, not an accident.
Physical facts of the goods, not of this label — every product on the formula shares them. Filling a blank from over here is not allowed either: the rule is ownership, not merely “don’t overwrite”. Two ways to the owner, and they are different acts: Open leaves this form for the formula’s own screen, where its ingredients, image assets and RW SKU live; Edit here brings its editor over the top, so a missing weight costs you nothing you have typed.
Ingredient list
from SF-0044The single strongest indicator of what this product actually is.Read-only, because the formula owns it. At v1 this product copies the panel and may then diverge — branded labels take small liberties with wording — but nothing edited on the product ever comes back to the formula. Every claim the content generator makes is traced to a row in this table.
Ready to create
Nothing below the first row was ever required.Two fields make the record; the rest is progress, not permission. Anything left blank becomes a line on the readiness panel, which is the same check the listing job runs — so nothing is lost by creating now and finishing later.
| Step | State | If left as it is |
|---|
Two things make a product a product: a brand and a name. Everything else — the source formula and every physical fact it owns, the ingredient list, images, the barcode, how it sells — is optional, arrives whenever it arrives, and becomes a line on the readiness panel afterwards. The screen is laid out as though you were going to fill it all in, because most of the time you are. Stepped is the chosen shape; the one-canvas variant is kept beside it only while the comparison is still useful. The stepped variant carries a third column that accumulates as you go — the only place a stepped layout can show the whole record at once.
SF-0044 · Vitalabs “Marine Collagen 500”
The formula’s own editor, opened over the form. Nothing you have typed behind is lost.
Rating a label uses this. On a bundle ShipStation ignores what we send and adds up component weights, so a wrong number quietly costs money on every order of all three products.
Everything else about SF-0044 — the ingredient list, its image assets, the RW SKU — is edited on the formula’s own screen. This drawer carries the gaps the product was asking about, not the whole record.
New catalog product
Duplicate — cannot createBrand + name is the required set, and the unit spec comes with the formula rather than being typed. The check runs on all three when a formula is attached, and on brand + name alone when there is none. An exact match is refused; anything looser only warns.
Exact matchRefused
Same brand, same name, same count is not a similar product — it is the same product. A second copy splits inventory, splits listings, and takes real work to unpick.
This product already exists
All three identity fields match CP-0102. The form will not create a second copy.
Near matchWarns — you can pass
A similar name, or the same name at a different count, is a legitimate product often enough that a fuzzy match can never be a hard block. It is shown, acknowledged, and passed.
This looks close to CP-0102
Same brand and name against a different formula record — 120 capsules rather than 60. That is a different physical product with its own FP SKU: usually deliberate, occasionally the wrong formula picked from the list.
Marine Collagen Peptides
CP-0119 3 things missing (attention: this product is not ready to list)Created just now. It is an ordinary catalog product in an obviously incomplete state — findable, editable, and not listable.
Marine Collagen Peptides
Not ready to list. Every gap below names what it blocks and how to close it. The listing job checks this exact list, so a product is never a surprise four listings into a run.
| Item | Where it stands | What it blocks | Fix |
|---|---|---|---|
| Source formula, with ingredients | Missing (readiness gap, needs attention) SF-0044 recorded, ingredient list empty. |
Content generation and the claims gate — every claim is traced back to an ingredient. Therefore listing. | |
| Unit weight SF-0044 ▸ | Missing (readiness gap, needs attention) Blank on SF-0044, which owns it. Used by 3 products. |
Settling the physical product. On a bundle ShipStation adds up component weights to rate the label — a wrong weight quietly costs money on every order of every product on the formula. | |
| Physical product settled | Blocked (blocked, waiting on another item) Waiting on unit weight. The ShipStation component product carries that weight, so it cannot be created without it. |
Everything. No listing can be built without a QuickBooks item and a ShipStation component product. When it runs, QuickBooks is read live: an empty result mints on its own, any candidate stops and asks you. | |
| At least one base image | Done (readiness item complete) 1 hero supplied, approved 2026-09-01. |
— | |
| Packaging dimensions | Done (readiness item complete) 2.6 × 2.6 × 5.0 in — on SF-0044, inherited. |
— | |
| UPC optional | Not recorded (optional, nothing required) Singles may carry one; bundles and combos never do. |
Nothing. Recorded when we have it. | |
| Unit cost optional | Proposal (optional, nothing required) $6.42 from intake — a proposal until the physical product is settled. |
Nothing on its own. The listing builder prices off it and shows margin against it. | Settled at the match |
This same list is the catalog table’s status column, and the same check the listing job runs before it will start. One definition, three places it shows up.
The panel is clear, so the product is listable. It stays on the screen rather than disappearing — this is the evidence, not a badge.
Formula has ingredients, unit weight is known, the physical product is settled in both systems, and there is a base image. That is the whole definition — and the same one the listing job checks.
| Item | Where it stands | What it blocks | Fix |
|---|---|---|---|
| Source formula, with ingredients | Done (readiness item complete) SF-0007 · Bacopa, Lion’s Mane, Phosphatidylserine, Ginkgo. | — | |
| Unit weight | Done (readiness item complete) 4.8 oz — in sync with ShipStation component FP-0260. | — | |
| Physical product settled | Linked (readiness item complete) QuickBooks item QB-88123 “Memopryl Brain Support 60ct”, confirmed by Dana Whitfield 2026-07-02. ShipStation component created, read back and matching. | — | |
| At least one base image | Done (readiness item complete) 1 hero + 3 supplemental, all approved. | — | |
| Packaging dimensions | Done (readiness item complete) 2.4 × 2.4 × 4.6 in | — | |
| UPC optional | Recorded (readiness item complete) 83169900279-8 | Nothing. | |
| Unit cost optional | From QuickBooks (readiness item complete) $4.18 — read-only, refreshed with the item list. Contested once, at the match, and never again. | Nothing. | Owned by QuickBooks |
A later QuickBooks cost change flows straight through — we no longer hold an independent value, so it is not a new conflict.
Create listings…Settle the physical product
Needs you (attention: a person must decide)Nordhaven · Marine Collagen Peptides · 90 capsules · 5.2 oz. Asked once, remembered forever: once you confirm which QuickBooks item this is, no listing job ever asks again.
You are here because the search found something. Two candidates came back, so the machine stopped and handed it over — automation stops at the first sign of ambiguity. Had the set come back empty, the item would already have been minted and you would be reading the record instead of making a decision.
Candidates from QuickBooks 2 selectable
Matched locally against the QuickBooks mirror on brand, count and size — never on formula. The same formula under two brand labels is not the same finished product, and a different count is a different item by our own rules. The mirror is what you browse; the moment something decides, the list is re-read live.
Rules this screen enforces
- No candidate is ever auto-accepted — not even a single perfect match. Adopting the wrong item points our stock and cost at somebody else’s goods, and unwinding that costs far more than a click.
- An empty set mints on its own. Nothing to choose between is not a decision, so no screen opens — the item is created and the record says “no person reviewed this” in as many words. reverses part of MR-054
- The list is re-read live at the decision point. Day to day we read the QuickBooks mirror; the one moment a stale list costs money is the moment something decides that nothing matched.
- A duplicate inside our own catalog is a separate stop. Two of our products claiming the same physical goods is a different fault from an ambiguous QuickBooks match, and it is checked separately — a clean QuickBooks answer does not clear it.
- A cost disagreement stops the match. A cent or more apart and the screen asks rather than picking a winner.
- One QuickBooks item backs one FP SKU. Picking a linked item is refused, not quietly repointed.
- No trip to QuickBooks. Everything is decided in here, so who decided what, and when, is on the record.
On confirm
Two systems, one act. The ShipStation half is an exact match on a SKU we minted, so it is a follow-on, not a second decision.
- Store the link: FP SKU, QuickBooks item ID, the item’s name at this moment, matched-or-created, who confirmed, when. Keeping the name is what lets the next refresh notice a rename or a deletion.
- Create the ShipStation component product carrying the catalog weight 5.2 oz — then read it back and compare. A 200 is not proof.
Why these columns
Quantity on hand and last activity are the best signal for telling a live item apart from an abandoned duplicate somebody made two years ago and never used. Cost is doing double duty: a decision aid, and a match signal.
Costs disagree
Match on hold (attention: settlement is blocked until this is resolved)You picked Nordhaven Marine Collagen 90ct (FP-0244). It is the right item on every other signal — and it carries a different cost from the one we collected at intake.
Two numbers, $1.32 apart — one of them is wrong
Both values exist and they differ by more than a cent, so the match stops here rather than silently picking a winner. Working out which is right often means going and looking at a purchase order, so the third way out is simply to leave it: settle it now, or write down why you cannot and come back, with the product unsettled in the meantime.
- Entered byDana Whitfield
- When2026-08-14 · 18 days ago
- SourceSupplier invoice INV-4471, Vitalabs
- StatusA proposal — never written anywhere yet
- Item last touched2026-08-19 · 13 days ago
- Cost last set2025-11-08 — 10 months ago
- Last purchase2026-08-19 · 240 units received
- Qty on hand412
QuickBooks is right
Take $5.10 and settle the match. Our intake figure is discarded as the proposal it always was, and nothing is written to QuickBooks.
From here our copy is read-only and refreshes with the item list.
Ours is right
Record that we are pricing off $6.42, settle the match, and raise a correction task — QuickBooks is still not written.
The product carries a using our cost flag until the source is corrected, then the value flows back through normally.
I need to check
Leave it unsettled and say why. The physical product stays unsettled and the product stays off every listing job until someone comes back to it — which is exactly what a park did, minus a state nobody could describe.
The note is the point: one line, so whoever picks it up is not starting cold. It shows on the readiness row.
Afterwards, there is only one cost
Once this is settled, ours is a read-only copy of QuickBooks’, refreshed when the item list refreshes. A later cost change over there simply flows through — it is not a new conflict, because we no longer hold a competing value. Cost is contested at the moment of matching and never again. The listing builder prices off that copy and shows margin against it, which is exactly why it is not independently editable: an editable cost is a margin that quietly stops being true.
Settle 24 physical products
step 5 of 5 5 exceptions (attention: five rows must be handled individually)Bulk is not a shortcut — same records, same checks. What changes is where the attention goes: one at a time it is a form, in bulk it is a review queue. Matching runs against the same QuickBooks mirror with the same brand-count-size rule, and re-reads live wherever a row is actually decided.
all incomplete
confirmed as a group
2 without ingredients
held back, not created
handled one at a time
| Product | Proposed FP | Best QuickBooks candidate | Qty | Last activity | Cost | Why it matched | |
|---|---|---|---|---|---|---|---|
| Sea Moss Gummies Nordhaven · 60 gummies |
FP-0262 | Nordhaven Sea Moss 60ct FP-0231 |
308 | 2026-08-28 | $3.90 | brand · 60 count · size all match; cost matches intake | |
| Elderberry Complex Nordhaven · 90 capsules |
FP-0263 | Nordhaven Elderberry 90ct FP-0233 |
122 | 2026-08-25 | $4.55 | brand · 90 count · size all match; SKU is in our FP- scheme | |
| Magnesium Glycinate Vital Depot · 120 capsules |
FP-0264 | VD Magnesium Glycinate 120ct FP-0288 |
640 | 2026-08-30 | $5.20 | brand · 120 count · size all match; cost matches intake | |
| Turmeric Curcumin Vital Depot · 60 capsules |
FP-0265 | VD Turmeric 60ct FP-0290 |
211 | 2026-08-22 | $3.15 | brand · 60 count · size all match; SKU is similar | |
| Daytime Focus Avinol · 30 capsules |
FP-0266 | Avinol Daytime 30ct FP-0205 |
87 | 2026-08-18 | $2.88 | brand · 30 count · size all match; cost matches intake | |
| Deep Rest Avinol · 60 capsules |
FP-0267 | Avinol Deep Rest 60ct FP-0207 |
154 | 2026-08-27 | $3.42 | brand · 60 count · size all match | |
| Ashwagandha KSM-66 Kelpwright · 90 capsules |
FP-0268 | Kelpwright Ashwagandha 90ct KW-ASH-90 |
73 | 2026-08-21 | $4.02 | brand · 90 count · size all match; cost matches intake | |
| Vitamin D3 + K2 Kelpwright · 120 softgels |
FP-0269 | Kelpwright D3K2 120ct KW-D3K2-120 |
498 | 2026-08-29 | $2.64 | brand · 120 count · size all match |
Exceptions — 5 These cannot be confirmed in bulk. Each one opens the single-product matching screen.
-
Marine Collagen PeptidesNordhaven · 90 capsules · FP-0261Cost disagreementOurs $6.42 (Dana Whitfield, 2026-08-14) vs $5.10 on FP-0244, cost last set 2025-11-08.
-
Beet Root 500mgVital Depot · 90 capsules · FP-0287Cost disagreementOurs $2.10 vs $2.44 on FP-0287 — 34¢ apart, over the one-cent threshold.
-
Lion’s Mane ExtractKelpwright · 60 capsules · FP-0270No candidatesA live read found nothing on brand + 60 count, so this one would have minted itself — except that no cost was collected and there is no item to inherit one from. That is still a decision — it may mean genuinely new, or a search that was too narrow.
-
Marine Collagen PeptidesNordhaven · 180 capsules · FP-0271No candidatesOnly 60 ct and 90 ct exist over there. A 180 ct is a new physical product unless someone knows otherwise.
-
Elderberry ComplexNordhaven · 60 capsules · FP-0272Two equal candidatesFP-0229 (qty 40, last 2026-08-12) and NORD-ELD-60 (qty 38, last 2026-08-11) — same brand, count and size, both live. One of them is already a duplicate.
The spreadsheet comes from the form, not the other way round regenerated
The form dropped to two required fields and handed every physical fact to the source formula, so the sheet lost seven columns and gained a lookup. There is no separate import format to invent, argue about or keep in step — this is the importer’s spec.
| Column | Required | What it is |
|---|---|---|
| brand | yes | Matched to an existing brand, or created as a group at step 2 |
| product_name | yes | The brand’s own name. With brand, this is the duplicate key |
| source_formula | no | Lookup, never create. An SF- code, or manufacturer + house name + count to resolve against. Unresolved rows import with no formula and a readiness gap — they are not a failure |
| upc | no | Singles only. Bundles and combos never carry one |
| benefit_tags | no | Semicolon-separated, from the managed list. Anything unrecognised is reported, not invented |
| gift_eligible | no | yes / no. Read by the package builder |
| image_urls | no | Semicolon-separated. Roles are assigned later, on the product |
| count, unit | gone | The formula is a formula at one size — the count is its identity, not a column here |
| weight, dimensions, bottle, label_size | gone | Physical facts of the goods. One fact, one owner — they arrive with the formula or not at all |
| manufacturer, ingredients | gone | The formula’s. A spreadsheet row is exactly how twenty half-filled copies of one chemistry get made |
| cost | gone | QuickBooks owns it from the match onward; an intake cost was only ever a proposal |
Formulas are not importable through this sheet, for the same reason the form will not create one: a source formula owns weight, dimensions, bottle, label size and a count, and a bulk path that mints them from a spreadsheet manufactures exactly the drift the entity exists to prevent. A separate formula import is its own screen, its own review queue, and not this one.
Create a new QuickBooks item
Creating (in progress: the item is being written to QuickBooks)Kelpwright · Lion’s Mane Extract · 60 capsules · 3.9 oz. The live search returned nothing, so this would normally have minted without anyone seeing it — but no cost was collected at intake and no item exists to inherit one from. A required field with no value is an ambiguity, so the automation stopped and handed it to Dana Whitfield at 14:22.
The FP number
Nobody types it. It is minted here, and this is the only screen where it is ever generated.
Unit cost is required on this branch
Cost is optional everywhere else, because QuickBooks usually already holds one. Here there is no item to inherit from and nothing was collected at intake, so a new item cannot be created without it — this is the one branch where cost is a required field rather than a proposal.
What gets written
Every field on the new QuickBooks item. Read it before it is written, then read it back after and compare — a 200 is not proof.
| Field | Value | Comes from |
|---|---|---|
| Name | Kelpwright Lion’s Mane Extract 60ct | brand + product name + unit spec |
| SKU | FP-0270 | minted above |
| Item type | Inventory | always, for a finished product |
| Description | Lion’s Mane mushroom extract, 60 count bottle. Labeled finished good. | catalog description |
| Cost | $4.35 | the required field above |
| Price | $24.95 | catalog list price |
| Income account | Sales — Product | settings default |
| Expense account | Cost of Goods Sold | settings default |
| Asset account | Inventory Asset | settings default |
Why a new item is the risky path
Creating a duplicate splits inventory across two items, and unpicking that costs far more than the search did. Nothing matched, so a new item is right — but every field is still shown before anything is written, and the search that produced the zero is kept.
- Zero was read live, not off the mirror. Overnight mirror data is good enough to browse and not good enough to decide on.
- The search that returned nothing is kept, so a later reviewer can see whether it was too narrow.
- A missing required cost is what stopped this one. With a cost present the mint is unattended — and the record always says which of the two happened.
Then ShipStation, automatically
Once FP-0270 is final, the component product is created carrying the catalog weight 3.9 oz. An exact match on a SKU we just minted — a follow-on, not a second decision.
Provider actions
1 in progress (one provider action is running) Every action has a stable identity and per-attempt rows. Expand one for what we sent and what came back.What we sent, what QuickBooks stored
| Field | We sent | Read back |
|---|---|---|
| Name | Kelpwright Lion’s Mane Extract 60ct | ✓ matches |
| SKU | FP-0270 | ✓ matches |
| Item type | Inventory | ✓ matches |
| Description | Lion’s Mane mushroom extract, 60 count bottle… | ✓ matches |
| Cost | $4.35 | ✓ matches |
| Price | $24.95 | ✓ matches |
| Income account | Sales — Product | ✓ matches |
| Expense account | Cost of Goods Sold | ✓ matches |
| Asset account | Inventory Asset | ✓ matches |
Nine fields written, nine read back and compared. If QuickBooks had quietly dropped one, the answer alone would never have shown it — which is why the comparison exists rather than a status check.
Attempts
| # | Started | Outcome | Idempotency key | Provider ID | Detail |
|---|---|---|---|---|---|
| 1 | 14:24:04 | succeeded (attempt outcome) | ik_qb_4c81… | QB-91044 | 201 Created · 1.8 s |
What we are sending
| Field | We sent | Read back |
|---|---|---|
| SKU | FP-0270 | … |
| Name | Kelpwright Lion’s Mane Extract 60ct | … |
| Weight | 3.9 oz | … |
Weight is the one field that stays live. On a bundle ShipStation ignores the weight we send and adds up component weights instead, so this number is what rates a real label — and a later catalog edit has to reach back here.
If ShipStation does not answer
The physical product is left QuickBooks linked · ShipStation pending — a real, retryable state, not a silent one. The listing job’s precondition check catches it, and finding it at a keyboard during setup is far cheaper than finding it in the middle of a push.
Physical product FP-0260
Linked (settled: linked to a QuickBooks item and confirmed by a person) 1 drift (attention: the QuickBooks item was renamed since linking)Asked once on 2026-07-02, and never asked again. Every listing job since has simply found this link already here.
Linked (settled)
FP-0260 is QuickBooks item QB-88123, confirmed by Dana Whitfield on 2026-07-02.
A settled job does not shout. Day to day the product screen shows that one line and nothing else — the five-state strip is for a job that is running or stuck, where the question “where has this got to” is live.
That item has been renamed in QuickBooks
We keep the item’s name as it was at the moment we linked it, which is exactly what lets the nightly refresh notice this. The link itself is still good — same item ID, same SKU — but somebody edited the name over there on 2026-08-24, and a silent rename is how a link quietly starts pointing at something nobody recognises.
The durable record
Provider actions
both settled (all provider actions succeeded) Evidence on demand — the same pattern the ShipStation sync stage uses.What we read from the item we matched
| Field | At linking | Latest refresh |
|---|---|---|
| Item ID | QB-88123 | ✓ unchanged |
| SKU | FP-0260 | ✓ unchanged |
| Name | Memopryl Brain Support 60ct | renamed 2026-08-24 |
| Cost | $4.18 | ✓ unchanged |
| Qty on hand | 96 | 340 · not a conflict |
This link was a match, so nothing was written to QuickBooks at all — the two columns are what we read then and what we read now. Cost flows through from over there and is never a second conflict; quantity moves constantly and we do not care about it.
What we sent, what ShipStation stored
| Field | We sent | Read back |
|---|---|---|
| SKU | FP-0260 | ✓ matches |
| Name | Memopryl Brain Support 60ct | ✓ matches |
| Weight | 4.8 oz | ✓ matches |
Attempts
| # | Started | Outcome | Idempotency key | Provider ID | Detail |
|---|---|---|---|---|---|
| 1 | 2026-07-02 14:08 | outcome_unknown (attempt outcome: attention) | ik_ss_9d02… | — | Timed out after 30 s. State read back before reissuing, so attempt 2 could not double-create. |
| 2 | 2026-07-02 14:09 | succeeded (attempt outcome) | ik_ss_9d02… | SS-40771 | 201 Created · same idempotency key as attempt 1 |
A timeout is outcome_unknown, not a failure — the write may well have landed. The provider state is read back before any reissue, and the idempotency key is carried across attempts so a retry can never mint a second component.
History
- 2026-08-24 09:14Drift detected on the nightly item-list refresh — QuickBooks name changed to “Memopryl Brain Support 60ct (OLD)”. automatic · awaiting a decision
- 2026-08-19 03:12Cost refreshed from QuickBooks: $4.18, unchanged. automatic · our copy is read-only
- 2026-07-02 14:09Settled. ShipStation component FP-0260 created at 4.8 oz on attempt 2, read back and matching. automatic follow-on
- 2026-07-02 14:08Match confirmed — FP-0260 linked to QuickBooks item QB-88123 “Memopryl Brain Support 60ct”. Dana Whitfield
- 2026-07-02 14:063 candidates found on brand + 60 count + size. Cost matched intake on the chosen one. automatic · read live, 1,190 items scanned
- 2026-06-30 11:20Physical product created with unit spec 60 capsules, weight 4.8 oz. Dana Whitfield
Physical product FP-0271
Linked (settled: an item was minted and linked) Nobody reviewed this (attention: the link was made without a person looking)Kelpwright · Sea Moss Gummies · 60 gummies · 6.1 oz. No screen ever opened for this one. The search came back empty, so there was nothing to choose between — and nothing to choose between is not a decision.
Linked (settled)
Linked to FP-0271 · 1 Sep 11:07 · created automatically
A settled job collapses to its one line — FP-0260 does ▸. This one opens with the steps showing because it is settled and unreviewed: the skipped step is the thing you came to look at, and hiding it behind a click would be the system being quiet about the one moment it acted alone.
Nobody looked at this one
The live search returned zero QuickBooks items resembling these goods, so the item was minted without asking. That is the intended behaviour — a screen offering no choices is a click, not a decision, and pretending otherwise buys confidence nobody actually supplied. It is said out loud because “a person checked and confirmed there was no match” and “the machine found no match” are different amounts of confidence in a link that decides where stock and cost land. One candidate — any candidate — and this would have stopped and waited for you.
The FP number
Minted here, by us, and never typed by anyone.
Gaps are never reused. FP-0250 was retired last year and stays a hole forever — reusing it would point two histories at one code, which is worse than a missing number. And because two mints can race, a duplicate-SKU rejection is retried automatically up to three times — the answer is never a judgement, it is always “take the next number” — then it stops and asks rather than looping.
Read back after writing
A 200 is not proof, and it is less than proof when no person is standing behind it. Every field is read back and compared.
| Field | Sent | Read back | Match |
|---|---|---|---|
| Name | Kelpwright Sea Moss Gummies 60ct | Kelpwright Sea Moss Gummies 60ct | yes |
| SKU | FP-0271 | FP-0271 | yes |
| Item type | Inventory | Inventory | yes |
| Cost | $3.28 | $3.28 | yes |
| Price | $21.95 | $21.95 | yes |
| Income account | Sales — Product | Sales — Product | yes |
| Expense account | Cost of Goods Sold | Cost of Goods Sold | yes |
| Asset account | Inventory Asset | Inventory Asset | yes |
| Qty on hand | — | 0 | nothing received yet |
Zero on hand gates nothing. It is shown because it is useful — the goods are on a truck, and refusing to build listings for them would be the wrong kind of help.