G'day — welcome back
Live overview of Chubby Mealworms Australia. Click a card to drill in.
Orders
Synced from Shopify, Amazon, and eBay. Profitability is computed locally from your supplier costs + fees + GST + postage cost (where set).
Courier Issues
Late, lost, and damaged parcels — auto-detected from Evri tracking, or flagged manually from an order's Fulfilment tab. Resolve an issue here or from the order itself.
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
-FBA suffix on the Listing SKU marks the row as FBA.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
Courier Integration
Generate and test shipping labels and manage API credentials.
Label Generator
Delivery Address
Parcel Details
API Credentials
Live status of courier API credentials stored in /home/chubby/app/.env on the server.
| Name | SKU | Supplier | Cost | Total shipped cost | Weight | Ship method | Website price | Margin | eBay price | Margin | Amazon MF price | Margin | Amazon FBA price | Margin |
|---|
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
Chubby AUS (Website)
AUS Wholesale
Confirm these fee assumptions once real wholesale orders are flowing — currently mirrors the Chubby AUS website's payment processing rate as a starting point.
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).
Per-unit cost lists for the packaging types you can pick on each product. Product packaging is what holds the product (tubs, bags). Shipping packaging is what wraps it for despatch (mailers, boxes). Edit any value and click Save packaging.
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.
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.
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.
Template used by the Generate with Claude button next to Meta Title/Meta Description on the product Edit modal's Chubby AUS tab. Use {PRODUCT_CONTEXT} as the placeholder for the live product fields. Saves on blur.
System prompt used whenever a product image is uploaded — Claude looks at the image and writes SEO alt text automatically. No {PRODUCT_CONTEXT} placeholder here: the product name, brand, weight and pack size are appended separately by the server. 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}}, …
Text overlays applied to your eBay product images via Cloudinary URL transformations — no uploads, no extra cost. Active badges auto-apply to every eBay image. Toggle the Active checkbox to turn a badge on/off without deleting it.
The editable pill lists behind the Courier Issues page — Issue type, Issue status, and Claim status. (Stop & Return is a fixed 4-state field, not editable here.)
What kind of courier problem this is — shown as a coloured pill on the order's Fulfilment tab and on the Courier Issues grid. Starts with Late, Lost, Damaged — add more any time.
Where an issue is up to in being worked — e.g. Customer contacted, Courier contacted, Resent, Claim made. Also shown as a coloured pill.
Where an actual claim (with the courier or insurance) is up to — starts with In Progress, Paid. Also shown as a coloured pill.
Ask anything about the business — product data, orders, courier issues, marketing ideas, website/menu structure. Claude can pull live data to answer, and can propose product edits (single or bulk) for you to review and apply below — it never saves anything on its own. Results include everything (variations, archived, discontinued) unless you ask to narrow it down. Examples: "products missing a weight", "how many orders did we ship last week", "put all Fallen Fruits products on a 10% sale", "suggest a new collection structure for the website".
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".