The whole company, end to end — storefront to books¶
Status: plan, 2026-09-13. This is the map that connects notes that already exist. It decides as little as possible and relitigates nothing: ebay-store, mrp, embeddedera-site, embeddedera-business, growth-plan, content-pipeline, competitor-intel, universal-tester-product, task-board, ai-across-departments all keep their own decisions. Where two of them disagree, that is called out here rather than quietly re-decided.
The shape¶
demand order fulfilment money
───────────── ───────────── ───────────── ─────────────
site + content eBay InvenTree invoice / checkout
social own storefront stock, build, payment received
RFQ form quote → SO serial, ship → bookkeeping → tax
eBay search (already live) expenses ─────┘
Four things join up, and only two of the joints exist today: the quote form already becomes a sales order, and InvenTree already runs stock and builds. The missing joints are storefront → order, and payment → books.
The one real conflict to resolve: who owns stock¶
ebay-store decided "eBay's Sell Inventory API is the inventory system of record. Do not build a second database." mrp decided InvenTree is the system of record for parts, stock, BOMs and serials. Both were right when written — the eBay decision predates the ERP holding any stock — but taken together they now describe two masters, and Angel's ask is that the ERP "know everything about the inventory".
Decided 2026-09-14. Angel: InvenTree owns stock; eBay, Amazon and any future store are pushed to and pulled from. The consequence that matters is architectural — the sync belongs in a channel adapter with one interface (read orders, write available quantity, reconcile and report drift), not in an eBay script that gets copied for Amazon later. Two copies of that logic is how the second channel takes as long as the first.
The reconciliation, which breaks neither earlier decision:
- Anything the shop stocks or builds: InvenTree is master. Its available quantity is pushed to the eBay listing. eBay still holds the listing; it stops holding the truth.
- eBay-only resale items the shop never stocks: leave eBay as master. Do not drag them into the ERP to satisfy a diagram. The rule is per item, not per system.
reconcile.pykeeps running, but its job changes from source to drift check: when the two disagree, that is an alert and a task, not a silent overwrite. Same self- reconciling pattern as the Access gate and the department registry.- Still no third database. That decision holds.
This has Angel's yes (2026-09-14).
Storefront: the decision that has not been made¶
embeddedera-site parks it as "store → the store (eBay store link now; own shop
later)". No platform is chosen. Given the house rules — free first, self-hosted or API-key,
no subscription, no second login — the shortlist is short:
- Stripe Checkout behind static product pages generated from InvenTree's salable parts. No store software at all: the Astro site already builds pages, Stripe hosts the payment, we never touch a card number and there is nothing to patch. Cost is per transaction, not per month, which satisfies Hard Rule 2 in the way a "free" self-hosted shop with a payments bill does not.
- Medusa (MIT, self-hosted) if and only if we need carts, accounts, discount codes and a real catalogue. That is a shop, with a shop's upkeep. Not yet.
- WooCommerce is out: it needs the WordPress we are cancelling. Shopify, Snipcart, BigCommerce are out on Hard Rule 2.
Recommendation: Stripe Checkout first, and treat "do we need Medusa" as a question the first fifty orders answer. The same choice also settles embeddedera-business's open item 6, "Decide the rails: Stripe invoices (card + ACH)" — storefront and invoicing rails are one decision, not two, and today wire and check already work from the ERP invoice template.
The tax consequence nobody has written down¶
This matters more than the platform choice. On eBay, eBay is the marketplace facilitator and collects and remits sales tax for you. Your own storefront is not. The day the first order goes through embeddedera.com, sales tax becomes the shop's own obligation to collect, file and remit — on top of the NC sales-and-use registration embeddedera-business already flags as the sharpest unaddressed risk, and the resale certificate (E-595E) that goes with buying parts for resale.
So the ordering is forced, and it is not the fun order:
- CPA hour — already the decided path in embeddedera-business, now with a second question for them: what changes when we sell direct rather than through eBay?
- NC registration and the resale certificate.
- Ledger chosen (CPA picks; ai-across-departments nominates Frappe Books as the candidate worth evaluating).
- Then the storefront.
Selling direct before step 1 creates a liability that compounds quietly. eBay first is not just the easier path, it is the one that keeps the tax problem someone else's for a while longer.
Payment → books, the other missing joint¶
Once a payment lands — Stripe, wire, check, or eBay payout — something has to turn it into a ledger entry. The end state:
- Invoices and sales orders stay in InvenTree; it is not, and never becomes, a bookkeeping system. mrp already decided this.
- A nightly export pushes invoices, payments, purchases and eBay payouts into the ledger.
- Expenses arrive by photograph, which is the intake path ai-across-departments already names as the prerequisite for half its job classes. Receipt in, coded draft entry out, a person confirms. Same pipeline, another job class.
- Reconciliation is a report, not a feeling: what the bank says, what the ledger says, what the ERP says, and where they differ.
What to sell¶
Not an open question at the top: universal-tester-product and competitor-intel already settled the position and the flagship — "I build the instrument, the app that configures it, and the browser tool your customers use to update it, then I manufacture, test and ship it" — with PCB Carolina, 11 Nov 2026 as the anchor. Nothing here touches that.
The open question is narrower and worth naming as such: what secondary products fill the line between contracts, and it deserves research against criteria rather than a brainstorm. Criteria, in the order they eliminate ideas:
- Buildable on the line we already have — our SMT process, our panel size, our fixtures. A product needing a process we do not own is a capital project wearing a product costume.
- No hazardous shipping. Flagging against the current eBay plan: loose lithium cells are UN3480 hazmat with carrier and marketplace restrictions. Worth confirming before that line grows, not after.
- Low regulatory surface — no radio certification, no mains voltage, no medical claim, unless the margin genuinely funds the compliance.
- A BOM we can buy twice — no single-source parts, nothing NRND. The lifecycle watch in ai-across-departments is the check.
- Support burden near zero. A two-person shop cannot carry a product that generates email.
- Sells to someone we can already reach — the audience the content pipeline and PCB Carolina put in front of us, not a new market needing a new channel.
- Margin that survives eBay fees, Stripe fees and our own time, costed from the ERP's real part prices rather than from optimism.
A product idea that clears all seven is rare, and that is the point: the list is a filter, not a wish. Research should be commissioned against these criteria — accessories and tools for the test and embedded-development audience are the obvious hunting ground, because we already build for it and already talk to it — and should come back with unit economics from real distributor prices, not category enthusiasm.
Sequence¶
Nothing here jumps the queue in front of the tester or PCB Carolina.
| # | Step | Depends on |
|---|---|---|
| 1 | CPA hour, with the direct-sales question added | nothing — do it first |
| 2 | NC sales-and-use registration + E-595E | 1 |
| 3 | Ledger chosen and standing up; expense intake by photo | 1, 2 |
| 4 | eBay production cutover | already in flight (ebay-store) |
| 5 | Stock ownership reconciled: InvenTree pushes, reconcile becomes drift check | 4, Angel's yes |
| 6 | Payment → books export, reconciliation report | 3, 4 |
| 7 | Storefront: Stripe Checkout on generated product pages | 2, 3, 6 |
| 8 | Secondary product research against the seven criteria | can run in parallel |
Steps 1–3 are unglamorous and gate almost everything else. Step 7, the part that feels like the goal, is deliberately last: a storefront on top of unsettled tax and no ledger is how a good year becomes an expensive spring.
Housekeeping found while writing this¶
- growth-plan still presents
render-docas the primary invoice and proposal path; mrp superseded that when the templates moved into the ERP. Noted there. - The mailing address is treated as blocked in growth-plan while mrp already uses a real ship-from address operationally. The open part is only the public address for CAN-SPAM and remit-to, which is a smaller question than it looks.
Log¶
- 2026-09-13: written, after reading the eight existing commercial notes rather than planning over them.