Welcome back
Live overview of your US & Canada operation. Click a card to drill in — drag cards to rearrange.
Orders
Synced from Shopify, Amazon, and eBay. Profitability is computed locally from your supplier costs + fees + sales tax + postage cost (where set).
Inventory
Stock by location, tracked in batches (cost + best-before date). Precision (CA) is shadow tracking only — the 3PL controls the real count there.
Push to Shopify (US stores)
🇨🇦 Canada shadow-stock reconciliation
Stock levels
| Loading… |
Batches
| SKU | Product | Location | On Hand | Cost/unit | Value | Assigned | BBD | Received | Reference | Supplier | Notes |
|---|---|---|---|---|---|---|---|---|---|---|---|
| Loading… | |||||||||||
Recent order consumption
| Order | SKU | Product | Location | Qty taken | Cost/unit | Short qty | When |
|---|---|---|---|---|---|---|---|
| Loading… | |||||||
Chewy Orders
Wholesale orders from Chewy — entered manually, reserve stock from Hauter Farm then Heartland like any US order, and notify Brad by email with the shipping/carton labels.
New Chewy order
Items
FedEx and Carton Labels
Chewy order history
| Order | Invoice # | Requested delivery | Completed | Items | Stock | Status | Revenue / Profit | Labels | |
|---|---|---|---|---|---|---|---|---|---|
| Loading… | |||||||||
Purchase Orders
Create and manage import purchase orders (overseas suppliers, carton/CBM planning, landed costs) and regular domestic purchase orders.
Import / Export
All bulk CSV ingest and export tools in one place. Each card describes its expected CSV layout before you pick a file.
Imports
order_id, tracking_number. Optional: carrier.205-1234567-1234567, H12345678901234567, Evri — carrier auto-detected from tracking format if omitted.SKU, Product Packaging, Made From SKU, % Used, Label, Labour (mins). Matches by SKU; "Made From SKU" is resolved to a product ID automatically.Bulk delete
Exports
| Name | SKU | Supplier | Cost | Total shipped cost | Weight | Ship method | Website price | Margin | eBay price | Margin | Amazon MF price | Margin | Amazon FBA price | Margin | |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Feldy Golden Food Balls for Wild… | FELDGB6 | Feldy Fare | $1.56 | $5.66 | 600g | Royal Mail Tracked 48 | $2.99 | 8.1% | $7.99 | -0.7% | $7.99 | -7.4% | $8.99 | -35.5% | |
| Feldy Golden Food Balls for Wild… | FELDYGB40 | Feldy Fare | $7.35 | $12.04 | 5000g | Amazon Shipping | $13.99 | 32.4% | $19.99 | 12.0% | $19.99 | 8.0% | $20.99 | -21.9% | |
| Feldy Premium Fat Balls for Wild… | FELDPBALLS40 | Feldy Fare | $6.72 | $11.29 | 5000g | Amazon Shipping | $12.99 | 32.9% | $19.99 | 16.5% | $19.99 | 12.5% | $20.99 | -17.5% | |
| Feldy 25 High Protein Chicken Gr…Z | FELD25BALL | Feldy Fare | $8.50 | $12.12 | 5000g | Amazon Shipping | $12.99 | 32.0% | $18.99 | 23.1% | $18.99 | 16.7% | $18.99 | -14.1% | |
| Feldy Chicken Pecker Treat Balls…Z | FELDCPGAR | Feldy Fare | $2.52 | $6.35 | 600g | Royal Mail Tracked 48 | $4.99 | 29.0% | $8.99 | 16.3% | $8.99 | 8.2% | — | N/A | |
| Feldy Chicken Pecker Balls - 6 P…Z | FELDBALLS6 | Feldy Fare | $2.20 | $6.03 | 600g | Royal Mail Tracked 48 | $4.49 | 28.7% | $7.75 | 9.1% | $7.75 | 0.5% | $7.99 | -32.8% | |
| Feldy Hanging Chicken Pecker Blo…Z | FELDY125 | Feldy Fare | $4.50 | $8.34 | 1250g | Royal Mail Tracked 48 | $6.99 | 23.6% | $9.99 | 3.4% | $9.99 | -4.4% | $10.99 | -24.0% | |
| Feldy Chicken Pecker Treat Balls…Z | FELDCPSEA | Feldy Fare | $2.40 | $6.23 | 600g | Royal Mail Tracked 48 | $4.99 | 30.3% | $8.99 | 17.6% | $8.99 | 9.5% | — | N/A | |
| Feldy Hanging Chicken Pecker Blo…Z | FELD125-SEA | Feldy Fare | $4.50 | $8.33 | 1250g | Royal Mail Tracked 48 | $6.75 | 22.0% | $10.99 | 11.1% | $10.99 | 3.6% | $11.49 | -19.3% | |
| Feldy Chicken Pecker Treat Balls…Z | FELDCPBERR | Feldy Fare | $2.40 | $6.23 | 600g | Royal Mail Tracked 48 | $4.99 | 30.3% | $8.99 | 17.6% | $8.99 | 9.5% | — | N/A | |
| Feldy Hanging Chicken Pecker Blo…Z | FELD125-GAR | Feldy Fare | $4.50 | $8.33 | 1250g | Royal Mail Tracked 48 | $6.75 | 22.0% | $10.99 | 11.1% | $10.99 | 3.6% | $11.49 | -19.3% | |
| Feldy Game Keeper Hanging Holdin…Z | FELDYGAME6 | Feldy Fare | $11.30 | $14.87 | 6000g | Amazon Shipping | $17.99 | 34.5% | $22.99 | 22.2% | $22.99 | 16.1% | $26.99 | 1.2% | |
| Feldy Hanging Chicken Pecker Blo…Z | FELDY3500 | Feldy Fare | $7.50 | $11.07 | 6000g | Amazon Shipping | $11.99 | 34.2% | $18.99 | 28.6% | $18.99 | 22.2% | $18.99 | -12.9% | |
| Feldy 25 Premium Fat Balls For B… | FELDPBALLS25 | Feldy Fare | $4.58 | $9.12 | 5000g | Amazon Shipping | $8.99 | 29.1% | $14.99 | 11.3% | $14.99 | 6.7% | $15.99 | -32.4% | |
| Feldy Golden Chicken Pecker Ball…Z | FELDBALLS40 | Feldy Fare | $10.70 | $13.92 | 5000g | Amazon Shipping | $15.99 | 32.9% | $19.99 | 17.2% | $19.99 | 10.9% | — | N/A | |
| Feldy Golden Food Balls for Wild…Z | FELDBALLS150 | Feldy Fare | $28.15 | $31.37 | 13000g | Amazon Shipping | $38.99 | 27.6% | $41.99 | 12.2% | $41.99 | 6.7% | $43.99 | -9.2% | |
| Feldy Premium Fat Balls for Wild…Z | FELDPBALLS150 | Feldy Fare | $21.00 | $24.22 | 13000g | Amazon Shipping | $28.99 | 27.7% | $32.99 | 13.5% | $32.99 | 7.8% | $34.99 | -12.3% | |
| Feldy Hanging Chicken Pecker Blo…Z | FELDPECK6 | Feldy Fare | $11.30 | $14.52 | 6000g | Amazon Shipping | $16.99 | 33.2% | $22.99 | 23.7% | $22.99 | 17.6% | $23.99 | -7.5% | |
| Feldy Chicken Treat Seed Block 1…Z | FELDCT1 | Feldy Fare | $5.25 | $9.09 | 1000g | Royal Mail Tracked 48 | $7.99 | 23.6% | $11.99 | 11.1% | $11.99 | 3.8% | $12.49 | -17.2% | |
| Feldy Chicken Grazer Block 1.25K…Z | FELDGB-125 | Feldy Fare | $4.30 | $8.14 | 1250g | Royal Mail Tracked 48 | $6.75 | 23.7% | $10.99 | 12.9% | $10.99 | 5.3% | $11.49 | -17.6% | |
| Feldy Afternoon Delight Fruit Tr…Z | FELD-ADFRUIT | Feldy Fare | $7.80 | $11.23 | 2200g | Amazon Shipping | $12.99 | 36.9% | $16.99 | 20.8% | $16.99 | 14.2% | — | N/A | |
| Feldy Afternoon Delight Veggie T…Z | FELD-ADVEG | Feldy Fare | $7.50 | $10.93 | 2200g | Amazon Shipping | $12.99 | 38.6% | $16.99 | 22.5% | $16.99 | 16.0% | — | N/A |
Type in a product or load one from the Products tab, then play with the selling price, quantity and discounts to see how profit and margin respond.
Product details
Set fee structures for each sales channel. All margin calculations across the app update instantly when you change these.
Amazon
Each product picks its Amazon category in the Edit modal (Pet Supplies by default). FBA fulfilment fees are still auto-calculated per product weight — see the FBA fee schedule below.
eBay
Website
Amazon FBA fee schedule
Drop a supplier PDF invoice. Each line item is matched to a product (by supplier SKU, your SKU, or fuzzy name match). Cost differences are flagged so you can mark them permanent (updates the cost; click through to update selling price) or temporary (saved as a sale cost with optional sale website price; profit numbers re-run automatically).
Master lists used by the product Edit modal's dropdowns. Click any section header to collapse / expand — the state persists between visits.
Renaming an entry updates every product that uses it and remembers the old name as an alias for future Storefeeder imports.
Master list of Harmonised (HS) codes. The product Edit modal shows these as a dropdown labelled code — description; only the code is saved on each product.
Register each Shopify store here, then click Connect to run the one-time OAuth install for that store (same private app as the original store, installed separately per store). This registry doesn't move any products/orders yet — that's a later phase.
The product Edit modal lets you tag each product into any of these. Click ↻ Ask Claude to refresh to paste a prompt into Cowork chat — Claude will pull the latest list from Shopify via MCP. (Direct Admin-API sync is on the roadmap once OAuth install is wired up.)
Smart (rule-based) collections are hidden — Shopify auto-populates them from rules, so manual product assignment is rejected. Only custom collections appear here.
The chip-picker in each product's Website panel uses this list — keeps tag spellings consistent and stops accidental duplicates. One-time setup: click ⇄ Connect to Shopify, approve the install on Shopify (you'll see the scopes being requested), then come back here and click ↻ Refresh from Shopify. After that, push-back happens per-product via the ↑ Push to Shopify button on the product's Website panel — no chat-paste involved.
Separate master lists for the Canada store — used by the Shopify collections/tags chip pickers on the Website panel whenever Market Mode is set to Canada. Requires the Canada store to be registered and connected in Lists → Shopify stores.
Pulls title, description, SEO title/description, website price, collections and tags for every product on the Canada store, matches each to a local product by SKU, and fills in any blank Canada field (existing Canada content is never overwritten — conflicts are listed for you to resolve by hand). Images aren't pulled — the live site already has the right ones.
External services the app talks to.
cloudinary_cloud_name / cloudinary_api_key / cloudinary_api_secret in config.json. Free tier covers ~25 GB storage + 25 GB monthly bandwidth.Template used by the Generate with Claude button on the product Edit modal. Use {PRODUCT_CONTEXT} as the placeholder for the live product fields. Saves on blur.
The HTML wrapper Storefeeder uses when generating eBay listings. Storefeeder substitutes the tokens server-side (so leave them as {{title}} etc. — don't try to fill them in here). This copy is here so the Optimise for eBay button can read the surrounding visual style and generate descriptions that fit. Saves on blur.
Supported tokens (from Storefeeder): {{title}}, {{subtitle}}, {{description}}, {{productdescription}}, {{sku}}, {{rrp}}, {{price}}, {{amountsaved}}, {{percentagesaved}}, {{ean}}, {{upc}}, {{weight}}, {{brand}}, {{imageurl0}}, {{imageurl1}}, …
Quick-pick shortcuts shown on the mobile Stock Check page's optional Reason field when correcting a count — a custom typed reason is always available there too, this list is just the one-tap options.
Ask plain-English questions about your product database. Claude reads your products and runs the query locally — nothing leaves the file other than the question itself and a description of the schema. Examples: "products missing a weight", "website margin under 10%", "products with no Amazon FBA price set", "Fallen Fruits products with cost above $10".
Pick exactly the columns you want and export to CSV. Save a column set as a template to re-run it later. Templates are stored on the server so they survive across devices.
h.webMargin(p) h.margin(p,'ebay') h.ebayMultibuyBeatsSingle(p)
People who can sign in to the app, and what they're allowed to do. Access is controlled by roles (see below), with per-user overrides for one-off exceptions. Deactivating a user kicks them out immediately (sessions dropped) and stops them logging back in until reactivated. To rotate a password, click Reset password.
Admin, Warehouse and Office are built-in and can't be renamed or deleted, but their permissions can still be edited. Create a custom role for anything more specific.
DEPLOYMENT_RUNBOOK.md "Email setup".Appearance
Customise the core colours of each theme mode. Each mode keeps its own customisations, saved in this browser.