hyWarehouse
Store:

Inventory

Loading warehouse…

Stock Check-In

0
units = boxes × box size
Tag this delivery to a lot to trace which products came from which shipment.

Stock Transfer

Lots / Shipments

Each lot is one inbound shipment. Open a lot to see which products it brought in.

Select a warehouse.

Low-Stock Alerts

Loading…

Inventory Stats

Select a warehouse.

Movement last 30 days

Loading…

Activity Log

Loading…

Dead Stock no movement

Loading…

Reorder Threshold

Default reorder threshold for this warehouse. SKUs at or below their threshold appear in alerts.

Linked Teams

No teams linked.

Linked Stores

Orders from these stores decrement warehouse stock (shadow mode — storefront stock is untouched).

Low-Stock Alert Emails

Who to email when any SKU hits its reorder threshold.

No emails configured.

Auto-Hide OOS Products

When a SKU hits 0, automatically set it to unpublished in all linked stores.

Seed / Import Inventory

Seed on-hand from Ecwid, keyed by SKU. Ecwid import is Micro → Main only — other stores are native.

hyWarehouse Staff Guide
Everything you need to manage inventory, sync storefronts, and handle stock
Tab Quick Reference
Inventory
View all SKUs, edit counts inline, set per-SKU reorder points, mark discontinued
Check-In
Record incoming stock by boxes × box size, tag to a lot, attach a photo
Transfer
Move units between warehouses (e.g. Main → Miami). Source goes down, dest goes up.
Lots
Track incoming shipments. Tag check-ins to a lot to trace which products came from which order.
Alerts
Live view of all SKUs at or below reorder threshold across all accessible warehouses
Reports
Stat cards, movement with selectable time range (1D / 1W / 30D / 6M / 1Y / YTD / Custom), activity log with CSV export
Manage
Default reorder threshold, link teams & stores, seed inventory from native store data
SKU Sync
How to add products, sync across all stores, re-sync drifted SKUs, and name rules
Insurance
Auto 50% floor, customer opt-in, how to buy insured labels, and filing claims
Docs (this page)
Full staff guide — workflows, architecture, alerts, and FAQs

Our Warehouse Structure

Main Warehouse TWO-WAY LIVE
The primary stock pool for MicroPharma and PurePeptides. Both storefronts display the same number because they share this pool. Any edit here or in either store admin fans out to both sites immediately (fast-path) with the 2-minute timer as a retry fallback. Online orders decrement Main automatically.
Owners: Sean & Hucifer Alert emails: Sean, Hucifer, Christine, Dan, Logan, Valerie
Storage Warehouse
Christine’s reserve stock. Shadow only — counts here are not pushed to storefronts. Transfer to Main when you’re restocking the live pool.
OWNER: CHRISTINE
Miami Warehouse
Dan’s local stock for direct sales. Shadow only. Use Transfer (Main → Miami) to move units to Dan. Miami counts only decrement via manual adjustment or transfer — not by online orders.
OWNER: DAN
Peptelligence Warehouse TWO-WAY
Peptelligence’s own dedicated live pool. Same two-way sync logic as Main but feeds only peptelligence.app. Managed by Christine (Christine), Sean, and Hucifer.
Other stores (Chromatide, BacWaters, BaddieZinc, GeneOS, Pettides)
Warehouses exist for all first-party stores. Two-way sync is enabled for Chromatide, BacWaters, and BaddieZinc. GeneOS uses a shadow warehouse (kit inventory only). Pettides (pettides.app) is Pipe A + Pipe B wired as of 2026-07-24.

Step-by-Step Task Guides

How Stock Sync Works

🧩 The Golden Rule
You never need to update stock in two places. Edit it anywhere and both the warehouse and the storefront stay equal.
Pipe A — Store Admin → Warehouse
When someone edits the stock count on a product in the store admin panel (MicroPharma, PurePeptides, Peptelligence, Chromatide, BacWaters, or BaddieZinc), the new number is sent to hyWarehouse in real time. If the send fails, it queues locally and retries automatically every 2 minutes.
Pipe B — Warehouse → Store
Check-ins, manual adjustments, and lot-tagged deliveries logged in hyWarehouse push the new absolute count back to each storefront every 2 minutes. Main Warehouse fans out to both MicroPharma and PurePeptides because they share the same pool.
Order Sync — Storefront → Warehouse
When a customer places and pays for an order on MicroPharma or PurePeptides, each line item is deducted from Main Warehouse automatically. The order sync is idempotent — even if it runs twice, the count only changes once.
⚠️ Storage & Miami are shadow-only
Online orders never touch Storage or Miami. Those warehouses are for internal reserve tracking only. If Dan sells from Miami locally and wants to record it, he should do a manual adjustment (Inventory tab → change On hand) or an adjustment from the SKU modal.

SKU Management & Cross-Store Sync

🔑 One SKU — All Stores
A SKU in hyWarehouse is the single source of truth. Change stock once here and it pushes to every linked storefront automatically. You never touch the store admin just to update a count.
What is a Store Link?
Every SKU card in hyWarehouse has a Store Links section. A store link is a mapping between a warehouse SKU key and the actual SKU code used in that store's product catalog. Main Warehouse uses lab box codes as its keys (e.g. RETA8), and each link translates that to the correct store SKU (RETA8 in MP, same code in PP).
Without a store link, changing stock in hyWarehouse does not push to that store — the SKU is tracked in shadow mode only.
Adding a link: Open the SKU modal (tap a card → or tap the inventory row in list view) → scroll to Store Links → pick the store, enter the store-side SKU (leave blank if it matches the warehouse key), tap Add.
Adding a New Product to All Stores
  1. Go to Prices tab → Add Product. Enter the SKU, name, MSRP, and retail price. Click Add Product. This creates the product in MicroPharma, PurePeptides, and Peptelligence simultaneously, set to unpublished.
  2. Go to Inventory tab and find the new SKU. It will appear with 0 on-hand.
  3. Open the SKU modal and verify store links were created automatically. If any link is missing, add it manually under Store Links.
  4. Check in your first stock via Check-In tab. The count pushes to all linked stores via Pipe B within ~2 seconds (fast-path).
  5. Enable the product in each store admin panel: Store Admin → Products → find SKU → toggle Published on.
Re-Syncing When Stores Get Out of Step
Stores and warehouse can drift if a store admin edited stock directly, or if a network failure broke a sync event. To force a full re-sync:
Warehouse → Stores (Pipe B): Open the SKU modal on the Inventory tab → enter the correct on-hand count in Manual adjustment → tap Save. This triggers an immediate Pipe B push to all linked stores.
Store → Warehouse (Pipe A): Edit the stock count in the store admin panel (Products → adjust stock). The new value is sent to hyWarehouse in real time.
Warehouse is always the source of truth. If store and warehouse disagree, trust the warehouse count (it reflects physical checks-ins and order decrements). Fix the store to match the warehouse via the SKU modal adjustment.
Which Stores Sync to Which Warehouse
MicroPharma + PurePeptides → Main Warehouse (shared pool, two-way live)
Peptelligence → Peptelligence Warehouse (dedicated, two-way live)
Chromatide, BacWaters, BaddieZinc → dedicated warehouses (two-way live)
Storage, Miami → Main Warehouse (shadow only — do NOT push to storefronts)
GeneOS → GeneOS Kit Warehouse (shadow — kit serial inventory only)
SKU Naming Rules
Use uppercase, no spaces. Good: BPC10AMBER. Bad: bpc 10 amber.
Amber vs Clear vials are different SKUs. BPC10AMBER and BPC10CLEAR are separate products — different packaging and prices.
Pills share one SKU. The same pill product in MP and PP uses the same SKU — no amber/clear distinction for pills.
Renaming a SKU: Use the SKU modal → edit the SKU field → Save. This renames the warehouse key and updates all store links in one step. Do not rename a SKU in the store admin directly without updating the warehouse link.

Shipping Insurance

🛡️ Every Shipment Is Automatically Insured
Every EasyPost label bought through hyWarehouse automatically includes ShipCover insurance for at least 50% of the order total — no action required from the shipper. Customers who paid for full coverage at checkout get the full order value insured instead.
Tier 1 — Auto
50%
Floor applied to every label automatically. Always on.
Tier 2 — Customer
100%
Customer opted in at checkout (+$50 per $500 of order). Full order value covered.
Tier 3 — Override
Custom $
Shipper enters a dollar amount in the rates modal to override both tiers.
Buying a Label (Step by Step)
  1. Open the Ship tab → click the 📦 Get Rates button on any paid order.
  2. A 3-step modal opens: 1 Rates → 2 Buy → 3 Done. On Step 1, the parcel dimensions are pre-filled from the store's default. The Insurance field shows the auto-calculated amount (50% of order total). You can change it — it will never go below 50%.
  3. Choose your carrier and service from the live EasyPost rate list, sorted cheapest first.
  4. Click Buy Label. The PDF opens automatically (thermal 4×6). The order moves to the Shipped tab and a tracking email fires to the customer immediately.
  5. The insured amount is stamped on the label entry. You can see it in the Shipped tab → expand the row.
Customer Opt-In at Checkout
On the MicroPharma, PurePeptides, Peptelligence, and Chromatide checkouts, customers see a "🛡️ Add Shipping Insurance" toggle before placing their order. The fee is $50 per $500 of order value (minimum 1 bracket). When they check it, insurance_amount_usd is stored on the order. When you buy the EasyPost label, that amount automatically wins over the 50% floor — no extra steps.
Filing an Insurance Claim (Lost or Damaged)
  1. Go to Ship tab → Shipped. Find the order and expand it.
  2. Click the 📋 Claim button on the label row. It only appears on insured labels.
  3. Select Loss or Damage, enter the claim amount (pre-filled to insured value), add a description (minimum 20 characters), and enter your contact email for EasyPost updates.
  4. Submit. EasyPost reviews claims within ~30 days and credits your EasyPost account balance on approval.
  5. The claim ID and status are saved on the order. Re-open the modal to check current status at any time.
⚠️ You can only file one claim per label. Make sure all details are correct before submitting.
Important Notes
Claims on manual-tracking labels: If tracking was added manually (not via EasyPost buy-label), there is no ShipCover insurance. Claims are only available on EasyPost labels with insured_value > 0.
Refunding an unused label: Tap the 🔄 Refund button on any unshipped label in the Shipped tab. EasyPost processes the refund in 3–5 business days and credits your EasyPost balance.
Pre-generated labels: Labels bought on lab-waiting orders before the product ships are not marked shipped until you click Ship Now · Email Customer. Insurance is already applied at buy time.

Alerts & Notifications

Email
Hourly reorder digest to team + warehouse owners
OS Bell
Bell flashes red in top bar with a Stock category filter
SMS
Zero-stock only. Opt-in via alerts-config.json
When does an alert fire? When any SKU has on-hand units ≤ its reorder threshold. Default threshold is 5 units per warehouse. You can set per-SKU thresholds inline on the Inventory tab (the “Reorder ≤” field in each card).
Who gets the email? Everyone on the linked teams for that warehouse + anyone listed in the warehouse’s admin_emails. For Main Warehouse that is: Hucifer, Sean, Christine, Dan, Logan, and Valerie.
12-hour cooldown. The system won’t re-email the same warehouse’s alerts within 12 hours unless the set of low-stock SKUs changes. This prevents inbox spam.
OOS Perm items are excluded. Products marked with the eye-off toggle never appear in low-stock alerts, even at zero.
To enable SMS alerts (Hucifer only)
Edit state/warehouses/alerts-config.json on alpha and add phone numbers to sms_critical_numbers in +1XXXXXXXXXX format. Only fires when a SKU hits exactly 0 on-hand.

Lots & Shipment Tracking

A lot is one inbound shipment. Lots let you answer two questions: “what did this delivery bring in?” and “which delivery did this product come from?”
Creating a lot: Go to Lots tab → New Lot/Shipment. Enter the lot code (or leave blank for auto), supplier name, and date received. The lot code can match your supplier’s invoice number.
Tagging a check-in: When checking in stock, type or select the lot code in the “Lot/shipment” field. That delivery will be attributed to the lot and show in the lot detail.
Viewing a lot: Tap any lot row to see which SKUs came in and how many, plus the individual check-in records tied to it.
Why bother? Useful for COA traceability (which lot corresponds to which lab test), for supplier disputes, and for knowing when you last received each product.

Discontinued & OOS Perm Products

What is OOS Perm? “Out of Stock Permanently” means the product stays on the website (for SEO or future restocking) but you can’t get it right now and don’t want it triggering reorder alerts forever.
Example: GLP-1 Patches — you want them visible on the site for search traffic, but your supplier stopped making them. Marking OOS Perm stops the alerts without deleting the product.
How to set it: Go to Inventory tab → find the SKU → tap the eye-off button on the right side of the card. The card dims and shows an “OOS Perm” badge.
What changes:
  • Removed from low-stock alerts and email digests
  • Pipe B stops pushing updates to the storefront (count stays frozen at 0)
  • On-hand count locked in hyWarehouse (field grays out)
  • Still visible in Inventory under the OOS Perm filter pill
To undo it: Tap the eye icon (now showing as “re-enable”) on the card. Everything resumes normally.

Reports & Activity Log

Stat Cards
Total SKUs, units on hand, low-stock count, out-of-stock count, needs-count items, and all-warehouse low from the Alerts endpoint.
Movement (Time Range)
Units in vs units out vs net for your selected period (1 Day → 1 Year, YTD, or custom date range), plus the top 5 most-moved SKUs. Data comes from the full ledger history.
Activity Log
Every ledger event: check-ins, adjustments, transfers, order decrements, store syncs. Filter by event type. Shows who did it and when.
CSV Export
Download the full ledger for the selected warehouse as a spreadsheet. Good for monthly reconciliation.
💡 Tip: The Reports tab shows stats for whichever warehouse is selected at the top. Switch warehouses using the picker to compare Main vs Storage vs Miami.

FAQ

Universal Price Sheet

MSRP — PTL price (full) Retail (1) — MP & PP price (~20% off MSRP) Wholesale Tiers — MP only
Loading price sheet…
SKU Product Name MSRP Retail (1)
Loading…
Sync rules: MSRP → PTL price (full)  ·  Retail (1) → MP price & PP price (MSRP crossed out as “was”)  ·  Tiers → MP wholesale only  ·  Changes apply to MicroPharma, PurePeptides, and Peptelligence instantly on Save. PP shows the same retail discount as MP with the MSRP crossed out. PTL sells at full MSRP.

Ship Orders

to
StoreOrderCustomer AddressAgeTotal Action
Loading orders…

Lab Shipments & Supplier Ops

Active Orders
Delivered
Messages
Last Sync
Loading orders…

Cross-Store Product Publishing

Select a warehouse.
🦉
🦉 Hypatia
AI assistant for hyWarehouse
Select a warehouse…