I build internal apps that pull orders from Printavo (GraphQL), check stock across S&S and SanMar, group vendor POs with business rules, run human review, place orders via API, and write tasks and expenses back to Printavo—with multi-tenant architecture from day one.

// what_shops_face
Teams copy order lines between Printavo, S&S, SanMar, spreadsheets, and email. It works until volume grows—then wrong SKUs, split shipments, and missed due dates become expensive. Typical failure modes:
// process
Same stack you’d expect for a serious internal tool: typed APIs, adapter boundaries, review UX, observability, and documentation your team can own after launch.
Map Printavo order states to automation triggers; define idempotency so the same job never double-runs.
Normalize every vendor behind one interface: inventory, cart, submit PO, track shipment—REST or SOAP.
Encode how lines roll up into vendor POs: minimums, freight buckets, split rules, rush lanes.
Branded, mobile-friendly review screen; one-click place order with confirmation capture.
Printable checklists by invoice; shipment risk alerts; tasks and expense entries back to Printavo.

Representative builds aligned with apparel shops automating blank garment POs—Printavo in, vendors out, humans in the loop, full audit trail.
What the client needed
Replace manual copy-paste between Printavo and vendor portals when orders hit production-ready status. Reduce wrong-SKU orders, speed up purchasing, and give production a receiving checklist tied to customer invoices.
Delivered a multi-tenant V1 internal app: GraphQL sync from Printavo on configurable status transitions, parallel inventory calls to S&S Activewear (REST) and SanMar (SOAP), rule-based PO bundles with overrides, manager review screen, API placement to both vendors, printable receiving sheets grouped by invoice, shipment tracking with due-date risk flags, and write-back of tasks + expense lines to Printavo jobs.
What the client needed
Design for one shop today with a roadmap to onboard additional decoration businesses—each with own Printavo credentials, vendor accounts, rules, and branding—without code forks.
Built tenant-scoped data model (organization → shops → users), encrypted credential vault per tenant for Printavo and vendor API keys, feature flags per tenant, and shared adapter binaries with tenant-specific configuration. Admin console for inviting users and rotating credentials safely.
What the client needed
Treat each wholesaler as a plug-in: swap or add vendors without rewriting core PO logic; surface actionable errors when APIs change.
Implemented a strict adapter contract (capabilities, inventory batching, cart validation, submit, track). Each vendor ships as an isolated module with contract tests against recorded fixtures. Circuit breakers for flaky SOAP endpoints; structured logging for support handoff.
Layers that match how serious shops operate: integrations first, rules second, humans approve, everything is observable.
GraphQL queries/mutations, job-level writes, task + expense sync, webhook or polling triggers.
Status-driven workflows, PO grouping, idempotent jobs, audit trail per batch.
Pluggable REST/SOAP modules: inventory, cart, submit, track—typed errors & retries.
Branded responsive screens for managers: queue, diffs, approvals, confirmations.
Invoice-grouped checklists, PDF generation, shipment ETA vs due-date risk scoring.
Tenant isolation, secrets, per-tenant config, monitoring, runbooks, documentation handoff.
Bring your status triggers, vendors, and rules-of-thumb from the shop floor. I'll map an end-to-end plan: integrations, review UX, multi-tenant boundaries, and clean documentation for your team.
Book an Integration Architecture Call