Features

Everything a luxury dealer needs to run their entire business.

InventoryConnect replaces the spreadsheet, the photo folder, the receipt drawer, and the seven browser tabs you used to keep open. Built by luxury dealers for the way the trade actually works — watches, handbags, sneakers, apparel, accessories, fine jewelry, and precious metals all share one inventory with brand-correct fields per category. Your storefront ships in minutes through the drag-and-drop Website Builder, a real CRM tracks every customer through pipelines and workflows, and every channel (Shopify, Wix, Squarespace, Woo, Bezel, eBay, Facebook Marketplace, Chrono24, Twilio / Telnyx / Quo SMS, Gmail / Outlook) stays in sync without double entry.

// Categories

One inventory. Seven categories. Brand-correct fields per type.

A Rolex isn't a Birkin isn't a Jordan 1 isn't a 1oz PAMP bar isn't a Cartier Love bracelet — and forcing them all into one generic Product table is how spreadsheet rot starts. Each category gets its own field set, its own intake form, its own storefront template. Toggle whichever combination your store actually carries on; switch any time.

Watches

Manufacturer, model, sub-model, reference, serial, year, dial, bezel, bracelet. Box-and-papers checkboxes. WatchBase + Chrono24 catalog auto-fill.

Rolex · Patek · AP · Vacheron · Omega · JLC · Cartier

Handbags

Brand, model, color, hardware color + material, date stamp, conditioning grade. Includes-checkboxes for box, dustbag, lock, key, strap, papers.

Hermès · Chanel · Louis Vuitton · Dior · Goyard · Bottega

Sneakers

Five size systems (M_US / W_US / EU / UK / JP_CM) with auto-conversion. Six-step DS / VNDS / 9 / 8 / 7 / 6 condition grading. Box-condition tracked separately.

Air Jordan · Yeezy · Nike Dunk · Travis Scott · New Balance

Luxury / Designer Apparel

Streetwear and luxury fashion side-by-side. Brand, collection, season, colorway, size, fit, fabric, retail vs production tags. Same dual-photo + share-link model as watches.

Supreme · BAPE · Stussy · Off-White · Fear of God · Loro Piana · Brunello Cucinelli

Luxury / Designer Accessories

Belts, wallets, sunglasses, scarves, ties, bracelets, small leather goods. Category-aware sub-type field so an Hermès H belt isn't filed under the same template as a pair of Persols.

Hermès belts · Goyard wallets · Cartier non-jewelry · Tom Ford · Persol

Fine Jewelry

Rings, necklaces, bracelets, earrings, pendants. Structured gemstone search (carat, clarity, shape, cut grade), GIA cert tracking, metal-purity + total-carat-weight fields.

Cartier Love / Trinity · Van Cleef Alhambra · Tiffany T · Bulgari · Boucheron · David Yurman · Mikimoto

Precious Metals / Bullion

Gold, silver, platinum, palladium — bars, coins, ingots, rounds. Live MetalsAPI spot prices with per-store premium %. SPOT_PLUS or FIXED pricing modes. Mint + series + purity + assay-card + grading-cert support.

PAMP · American Eagle · Britannia · Maple Leaf · Krugerrand · Engelhard

// Inventory · watches & handbags

Watches and handbags — brand-correct fields, shared backbone.

One inventory, seven categories — and the two flagship categories that defined the platform get the deepest schema. Each watch gets the fields a watch needs; each handbag gets the fields a handbag needs. Photos, includes-checkboxes, and a status pipeline that mirrors how pieces actually move through your shop. The same backbone extends to sneakers, apparel, accessories, fine jewelry, and bullion in the sections below.

Watches — built for the trade

Manufacturer, model, sub-model, reference, serial, year, dial, bezel, bracelet, link count. Includes-checkboxes for box and papers. Condition: new or pre-owned. SKU auto-generates from manufacturer + reference so two staffers don't collide.

  • Status pipeline: Incoming → Available → Hold → Sold (plus Service, Polish, Awaiting Photos, Send to Blaken / At Blaken for TWC)
  • Consignment toggle on every piece — splits flow through correctly without a separate consignment ledger
  • Photo gallery per watch with drag-to-reorder, R2-backed storage, full-quality originals retained
  • Duplicate watch with photos in one click — speed-rebuild near-identical configurations

Handbags — same backbone

Brand, model, color, hardware color and material, date stamp, conditioning grade. Includes-checkboxes for box, dustbag, lock, key, strap, and papers. Same status pipeline as watches so your team learns one model.

  • Toggle handbag inventory on per store — dealers can run watches only, bags only, or both
  • Hardware color + material captured as distinct fields so collections segment cleanly
  • Conditioning grade dropdown matches industry vocabulary
  • Same photo gallery, share links, and storefront push as watches

Retail description vs internal notes

Public copy and private notes split cleanly. The retail description ships to every connected storefront; internal notes (sourcing, pricing reasoning, inspection flags) never leave InventoryConnect.

  • Retail description: customer-facing, pushed to Shopify / Woo / Wix / Squarespace as the product description
  • Internal notes: never pushed, surfaced on the dashboard detail page in a clearly-private block
  • Searchable across both fields from the inventory page — find any piece by what you wrote about it
  • Bulk CSV import accepts both columns; legacy single-notes imports auto-route to retail description for backward compatibility

Locations and consignment

Multi-location tracking: bins, safes, off-site storage, third-party shops. Free-text territory field per piece so you can grep on regional consignors without forcing a fixed taxonomy.

  • Hierarchical locations (parent → child) so a single watch can live at "Manhattan vault → Bin A3"
  • Per-location inventory snapshot for stock-take and audit
  • Service-shop dropdown (Kelly / Wilson / Micah / free text) integrates with status pipeline
  • Check-out / check-in workflow with notes and logged-by tracking

// Sneakers

Sneakers, with sizing systems and condition grading built in.

Sneakers aren't just watches with laces — they need their own field set. Five size systems with auto-conversion, six-step condition grading, box-condition tracking, and curated brand+silhouette intake so two team members can't spell 'Air Jordan 1' three different ways.

Brand-correct intake

Curated brand + silhouette catalog (Jordan, Nike, Adidas, New Balance, Yeezy, sacai, Travis Scott, etc.) so intake names stay consistent and your storefront filter works. Style code field for collectors who shop by SKU.

  • Five size systems supported (M_US / W_US / EU / UK / JP_CM) with auto-conversion shown on the detail page
  • Curated brand + silhouette dropdown prevents "Jordan 1 / Nike SB Dunk / J1 Retro" drift
  • Release year, collaboration, and player-exclusive flags for resale provenance
  • Sample / Friends-and-family / Wear-test toggles for unreleased pairs

Condition, box, and accessories

Sneaker condition isn't just "used" — DS, VNDS, 9/10, 8/10, 7/10, 6/10-or-below grading matches the resale market. Box condition (Original Clean / Original Damaged / Replacement / Missing) tracked separately. Original laces, hangtags, tissue paper, and extra accessories all field-tracked.

  • Six-step condition ladder mirrors StockX / GOAT vocabulary so cross-listing doesn't require re-grading
  • Wear count + defects array for honest pre-owned listings
  • Tag included / Original receipt / Hangtag / Tissue paper — all separate checkboxes
  • Restoration notes + storage history fields for the high-end collector market

Retail + in-hand photo pairs

Same dual photo model as watches and handbags — staged Retail set for storefronts and a separate In-hand reference set for authentication-minded buyers. Each gets its own share link.

  • Retail set ships to storefronts + integrations + Lookbooks
  • In-hand set surfaces on the share-link page under a Staged / In hand toggle when both are populated
  • Bulk comp price import via CSV so you can pre-load market comps for every pair in your inventory
  • Storefront size filter on the public catalog so buyers can shop by their own size

Storefront templates built for sneakers

Eight ready-made block templates in the Website Builder specifically for sneaker stores — hype-drop hero, size-grid feature, collaboration story, deadstock showcase, and more. Drop one in and you've got a sneaker-shaped storefront, not a watch dealer's storefront with sneakers stuffed in.

  • Sneaker-themed Website Builder templates included with every store (no extra cost)
  • Featured Products block respects sneaker-specific layout (size chip overlay, condition badge)
  • Sneaker-specific blocks: drop calendar, restock list, in-stock-now grid
  • Storefront URL: /s/your-store auto-routes sneaker inventory if sellsSneakers is on

// Apparel & accessories

Streetwear, luxury fashion, and the small things that complete the look.

Two sibling categories that map to how a dealer actually carries the modern luxury floor. Apparel covers everything from Supreme drops to Loro Piana cashmere; Accessories covers the belt, the wallet, the sunglasses, and the silk square. Same backbone as watches and bags — different field sets so a vintage Tom Ford 'O'Keefe' doesn't get filed under the same template as a Hermès H belt.

Apparel — streetwear and luxury, one table

Brand, collection, season, colorway, size, fit, fabric, retail vs production-run tags. The streetwear hypebeast and the Loro Piana collector both get the field set they expect. Drop releases, tagged collaborations, and capsule labels all surface cleanly on the storefront filter.

  • Brands curated from Supreme · BAPE · Stussy · Off-White · Fear of God · Loro Piana · Brunello Cucinelli (and you can add your own) so intake names don't drift
  • Size system per piece (alpha XS-XXL, numeric 36-58, or freeform) — auto-converts on the storefront filter
  • Drop / season / collaboration tags so a Travis Scott collab piece shows up in both the brand AND the collab filter
  • Tag included / hangtag attached / dust-bag / original packaging — separate checkboxes mirror the sneaker accessories pattern

Accessories — belts, wallets, glasses, scarves, and more

Category-aware sub-type: a belt isn't the same record shape as a pair of sunglasses isn't the same as a silk scarf. Sub-type drives which fields surface on intake so you're not staring at an empty 'frame width' field on an Hermès belt.

  • Sub-types: belt · wallet · sunglasses · scarf · tie · small leather goods · bracelet (non-fine-jewelry) · cufflinks
  • Sub-type-aware fields — belt size + buckle metal for belts, lens shape + frame width for glasses, dimensions + silk weight for scarves
  • Brand catalog covers Hermès non-leather, Goyard, Cartier non-jewelry, Tom Ford, Persol, Bottega, and adds-on by request
  • Storefront templates surface accessories as a complete category page or interleaved alongside watches and bags

// Fine jewelry

Structured gemstone fields, GIA certs, total carat weight.

Fine jewelry is its own discipline — a generic 'product description' textarea doesn't cut it when buyers shop by carat range, clarity grade, and cut quality. Each piece gets structured gemstone fields, GIA certificate tracking, metal purity, and total carat weight so your storefront filter actually works the way a jewelry shopper expects.

Per-piece structured gemstone search

Stone type, carat weight, color grade, clarity grade, shape, and cut grade — captured as searchable structured fields, not buried in a description. Storefront filter lets buyers narrow by carat range, clarity floor, and shape preference. Multi-stone pieces (eternity bands, halo settings) capture each stone separately.

  • Stone fields: type (diamond, sapphire, emerald, ruby, etc.) · carat · color · clarity · shape · cut grade
  • Multi-stone support — eternity bands and halos capture every stone as its own row with totals computed automatically
  • GIA certificate number field with one-click verification link to GIA's report archive
  • Total carat weight + center-stone carat both stored so 'show me pieces with a 1ct+ center' filters work cleanly

Metal, hallmarks, and cert tracking

Beyond stones: metal purity (10k / 14k / 18k / 22k / 24k / platinum / silver), hallmark photos, maker's mark, hallmark assay office. Cert photos attach inline. The wholesale page surfaces all of it; the retail page surfaces what your buyer actually cares about.

  • Metal field: 10k / 14k / 18k / 22k / 24k YG / WG / RG / platinum / silver — drives the storefront metal-tone filter
  • GIA / AGS / IGI cert photo attaches inline; cert PDF link surfaces on the share page
  • Hallmark + maker's mark photo with full-quality original retained in R2
  • Brand catalog covers Cartier Love + Trinity, Van Cleef Alhambra, Tiffany T, Bulgari, Boucheron, David Yurman, Mikimoto

// Precious metals & bullion

Live spot prices, per-store premium %, mint + assay tracking.

Bullion priced like bullion — not like a fixed-price watch. Live spot feeds from MetalsAPI tick every day for gold, silver, platinum, and palladium; each store sets its own premium % over spot. Pricing mode toggles per-piece between SPOT_PLUS (recalc on every page load) and FIXED (locked at intake) so legacy inventory and live-quoted inventory coexist cleanly.

Live spot + per-store premium

MetalsAPI feeds daily Au / Ag / Pt / Pd spot prices into a global price table. Each store layers its own premium % on top — bars take a different premium than coins, branded mint takes a different premium than generic round. Storefront prices update live without re-publishing every piece.

  • MetalsAPI integration pulls daily spot for gold, silver, platinum, palladium
  • Per-store premium % configurable by metal + by product class (bar vs coin vs ingot vs round)
  • SPOT_PLUS mode: storefront recalculates the listing price on every page load using current spot + your premium
  • FIXED mode: lock the price at intake — useful for hedged inventory or pre-paid wholesale lots

Mint, series, purity, and assay tracking

Bullion provenance isn't optional at the high end. Mint, series, year, purity (.999, .9999, .99999), assay-card status, and third-party grading (PCGS, NGC, ANACS) all captured as structured fields. Sealed assay cards photograph in the original packaging; graded coins photograph in the slab.

  • Mint catalog: PAMP Suisse · Perth · Royal Canadian · US Mint · Royal Mint · Engelhard · Johnson Matthey · Valcambi (and add-your-own)
  • Series field for American Eagle / Britannia / Maple Leaf / Krugerrand / Philharmonic + program-specific tags
  • Purity field constrained to standard fineness values (.999 / .9999 / .99999 for Au, .999 / .9999 for Ag)
  • Assay-card status (sealed / opened / missing) and grading-cert number (PCGS / NGC / ANACS) — surfaced on the wholesale page

// Website Builder

A drag-and-drop storefront builder built into the platform.

Your storefront isn't a separate Shopify bill anymore. The Website Builder ships with 35+ paired themes, a full block editor, image auto-resize on upload, a custom-domain wizard with copy-paste DNS, and a code editor for power users — all native to InventoryConnect.

Themes that look like real stores

11 base themes (Atelier, Hype, Boutique, Magazine, Collector, Vault, Studio, Concierge, Monochrome, Heritage, Dark Luxury) paired with 35+ matching block templates — one per concept. Preview the full layout in the browser before you pick, not a generic palette mockup.

  • Theme browser with scroll-through previews of every template — see what the full page looks like populated, not a blurred mockup
  • Picking a theme drops its starter blocks onto your canvas; tweak from there
  • Per-store color and font overrides — keep the theme's structure, swap in your brand palette
  • Theme + template categories: watch-focused, handbag-focused, sneaker-focused, or general luxury

Block editor with palette, canvas, inspector

Drag blocks from the palette onto the canvas, click any block to edit its content in the inspector, hit Preview to see the live render in your active theme. 15+ block types: hero, story, featured products, testimonials, journal grid, image-text, CTA band, stats row, gallery, signup, custom HTML, dividers, spacers.

  • Reorder, duplicate, and delete with keyboard support
  • Live preview pane renders blocks in your actual theme palette at 0.32 scale so a full storefront fits on screen
  • Featured Products block: auto (newest available inventory) or manual (you pick specific pieces)
  • Save any block as a reusable snippet (private to your store or shared with the platform — operator-curated)

Code editor for power users

Toggle to Code mode on any selected block to view + edit its raw JSON — Shopify-style "Edit code" for developers who want to get granular. Lock-protected on id + type (the canvas key + renderer discriminator); everything else is editable with Tab-to-indent and instant JSON validation.

  • Plain textarea + monospace + JSON.parse validation (no Monaco bundle weight)
  • Apply commits to canvas state; Save draft persists to the DB separately
  • Block-extras and custom attributes that the form inspector doesn't surface still editable here
  • Revert button restores the last applied state in one click

Image upload with auto-resize

Every image input shows a gray "Recommended: WxH (description)" hint contextual to the block — hero wants 1920×1080, gallery tiles want 800×800 square, story image wants 1200×900. Oversized uploads auto-resize client-side to 2400px max preserving aspect ratio, opaque sources re-encode to JPEG @ 0.88. Eight-megapixel phone dumps no longer blow the 8 MB cap.

  • Recommended-size hint shows under every image input label, contextual to the block
  • Canvas-based client-side resize before upload — opaque sources to JPEG, PNG/WebP keep their type to preserve transparency
  • Drag-and-drop upload from desktop, file picker on mobile, or pick from the per-store media library
  • Media library persists every upload so you can reuse images across blocks without re-uploading

Custom domain in 3 minutes

Point your own domain at your storefront via the easy-connect wizard. Type your domain, the wizard detects your registrar (GoDaddy / Namecheap / Cloudflare / Google-Squarespace / Porkbun / Route 53), shows the EXACT DNS record values with one-click Copy buttons, and walks you through the registrar UI step-by-step.

  • Exact-value record card: Type / Name / Value / TTL all pre-computed for your domain with Copy buttons — no placeholder strings
  • Apex domain → auto-generates the A record (76.76.21.21) + suggests an optional www CNAME
  • Subdomain → auto-generates the CNAME (cname.vercel-dns.com) with your real subdomain prefix
  • SSL provisions automatically; Check status button polls Vercel until DNS verifies + flips the live badge

Journal, navigation, pages & analytics

More than just a homepage. Add pages, edit your top nav, run a journal (editorial-style articles tied to your store), and read storefront analytics — page views, top sources, conversion funnel — natively in the dashboard.

  • Journal entries with markdown body, cover image, optional eyebrow + read-time label
  • Custom nav editor — drag to reorder, link to internal pages or external URLs
  • Multi-page builder: add About / Contact / Service / Lookbook / any custom slug
  • Per-store storefront analytics: page views by day, top referrers, inquiry conversion rate

// Customer CRM & wishlist

Customers, notes, and wishlist auto-matching.

A real CRM for luxury — customers tagged retail or wholesale, notes per customer, wishlists with auto-match against incoming inventory. The matching engine pings the right customer the moment something they wanted shows up.

Customer profiles

Name, email, phone, address, type (retail / wholesale), tags, notes timeline. Every sale and every inquiry flows in automatically — no double entry from your storefronts or your invoices.

  • Customer tags for segmentation — VIP, repeat buyer, region, anything you want — push to Klaviyo as profile attributes
  • Notes timeline with timestamps + author attribution so you remember the context of every conversation
  • Two-way QuickBooks sync — profile changes flow to your books, customer creates in QBO appear here
  • Sales history with profit calc per customer — see lifetime value at a glance

Wishlist auto-matching

Customer wants a specific Daytona reference? Add it to their wishlist. When a matching piece comes into inventory — or when one becomes Available again — the system flags the match on the matches dashboard so you can reach out same-day.

  • Match rules: brand + model + reference, with fuzzy matching on sub-model and color
  • Triggered on intake, on status change to Available, and on bulk-imported inventory
  • Dismiss matches that aren't a fit so the dashboard stays a clean to-do list
  • Klaviyo "Wishlist match" event fires automatically — wire it into an email flow once and the system runs it forever

// Pipelines & opportunities

Kanban boards for the deals in flight.

Track every active deal — incoming leads, customers shopping a specific reference, consignors negotiating splits, pending wires — on a kanban board with stages you fully control. Pipelines work the way the trade actually works, not the way a generic CRM tries to force it.

Custom pipelines, custom stages

Build a pipeline for any flow — retail sales, wholesale offers, consignor onboarding, repair intake. Rename stages, reorder columns, add or remove them as your process evolves. Every store can have its own boards.

  • Per-user, store-shared, and staff-visible pipelines side by side on one Pipelines page
  • Stage colors map to a chip palette consistent with customer tags — visual language stays uniform across the dashboard
  • Settings → Pipelines admin lets store admins rename, reorder, add, and delete stages without code
  • Closed deals (won / lost) drop off the active board but stay attached to the customer for reporting

Opportunities — every deal, in one place

Each card on a pipeline is an opportunity tied to a customer. Title, value, stage, owner, next-step task. Move cards between stages as the deal progresses; the customer profile shows their full deal history.

  • Quick-add new opportunity inline — pick a customer (or create one), title the deal, set a value if known
  • Opportunity detail page surfaces tasks, notes, contact channels, and a stage-transition log
  • Won / lost outcomes feed sales reporting + Klaviyo flows automatically
  • Linkable from anywhere — wishlist matches, inquiries, and customer notes can pivot straight into a new opportunity

// Tasks

Scheduled follow-ups, never miss a callback.

Every opportunity can have tasks attached — call back, email, meeting, in-person. All tasks across all pipelines roll up to one Today view so nothing slips. Overdue items pin to the top so late callbacks can't hide.

Task types + due dates

Call back, email, meeting, in-person, or generic. Set a due date on creation (or leave it open as a someday-task). Assign to yourself or to a colleague. Notes capture context so the next person to pick it up isn't blind.

  • Inline task creator on every opportunity detail page
  • Compact title + due-date + type + assignee in one row, expands to a description field on demand
  • One-click complete from the Today view
  • Re-open completed tasks if a deal reopens — full audit trail of state changes

Today view + date filters

The /tasks page is the heads-up display for your day. Today, Tomorrow, This week, All upcoming, a specific day, or a custom range. Just-mine toggle to filter to your own tasks. Per-pipeline pills to narrow further.

  • Overdue bucket always pinned to the top when the filter includes today
  • No-due-date bucket visible on "All upcoming" so someday-tasks don't get lost
  • Pipeline pills filter to one pipeline's tasks without losing the date filter
  • Show-completed disclosure for a quick look at what you've already shipped

Role-aware visibility

Employees see their own tasks. Store admins see everyone's tasks across the store. Cross-store managers get the full view across every tenant they manage. Same data model, role-appropriate slices.

  • Same DEVELOPER / SUPPORT / SUPER_ADMIN / DEALER / STORE_ADMIN / EMPLOYEE / CUSTOMER role rules as the rest of the platform
  • Tasks attached to opportunities inherit the opportunity's store — no cross-tenant leaks
  • Assignment dropdown only shows users who can actually see the parent pipeline
  • Customers never see staff tasks, even on opportunities tied to them

// Workflows

Automation that does the follow-up for you.

Welcome series for new customers, wishlist-match nudges, post-sale thank-yous, abandoned-inquiry re-engagement — all wired to real triggers in the platform. Build a workflow once and the system runs it forever, on the right customer at the right moment.

Triggers that map to real events

Customer created, sale completed, wishlist matched, inquiry received, lookbook viewed, appointment booked — every meaningful platform event can fire a workflow. No polling, no manual sync, no Zapier middleware step.

  • Multi-step workflows with delays between steps (wait 3 days, send email, wait a week, send follow-up)
  • Branch on customer attributes (tag, type, region) without writing if/else by hand
  • Send via email, SMS, or both at any step — channel choice is per-step
  • Pause / resume a workflow per customer without losing their progress

Templates to start from

Welcome series for new signups, wishlist-match alert, post-sale thank-you with review request, abandoned-inquiry re-engagement, dormant-customer re-activation — all pre-built. Pick a template, edit the copy, ship.

  • Library of starter workflows for the highest-impact moments
  • Edit each step's copy in a block-based email builder (same blocks as the Website Builder)
  • Preview the full sequence on a timeline before turning it live
  • A/B-friendly: clone a workflow, swap the copy, run both in parallel

// Appointments

Public booking page + dashboard calendar.

A public booking page at /book/your-store where customers self-schedule a showroom visit, service drop-off, or video consult. Confirmations land in your inbox, the appointment shows on the dashboard calendar, and the customer gets a reminder.

Public booking + dashboard view

Customers pick a service type, a date, and a time slot — the page only shows your real availability. Booked appointments appear on your /appointments calendar; reschedule, cancel, or add internal notes from there.

  • Public booking URL: /book/your-store — share via email, SMS, or your storefront
  • Service types configurable per store (showroom visit, in-person sale, service drop-off, video call, etc.)
  • Time-slot generator respects your business hours + per-day blackouts
  • Customer reminder email sent 24h before the appointment automatically

// Photos & share links

Two photo sets per piece, one share link per kind.

Every watch and handbag supports a Retail photo set (staged catalog shots that ship to storefronts + integrations) and an In-hand set (unstaged 'actually in our hands today' shots for wholesale follow-ups). Each gets its own copy-paste share URL.

Retail vs in-hand sets

Upload your nicely-staged catalog shots to the Retail card. Upload your shop-counter / daylight reference shots to the In-hand card. Storefronts and integrations only ever receive the Retail set — your wholesale-buyer reference shots never accidentally land on your public store.

  • Drag-and-drop into either card; auto-compresses 50MB phone HEICs to ~2MB JPEGs on the way to Cloudflare R2
  • Storefront fallback logic: retail storefront prefers Retail, falls back to In-hand if none uploaded; wholesale storefront inverts
  • Zero retail photos = not ready to publish — every push (Bezel / eBay / Shopify / Woo / Wix / Squarespace / FB Marketplace) refuses cleanly with a specific 'add at least one Retail photo' error
  • Per-watch reorder, delete, and per-piece price + note overrides on Lookbook items

One-tap shareable galleries

Every piece exposes two public share URLs — one for the Retail set, one for the In-hand set — that the dealer copies straight into iMessage, WhatsApp, or email. Recipients see a polished mobile-first gallery on a branded page with no login.

  • Token-based URLs (no guessable id); regenerate to instantly revoke all outstanding links if a token leaks
  • If a recipient lands on a kind that has no photos, the page auto-falls-back to whichever kind IS populated so the link never returns 'no content'
  • When both kinds are populated, the recipient gets an inline Staged / In hand toggle on the same URL — no second link from the dealer
  • View tracking on Lookbooks tells the dealer when the recipient opened the page

// Customer storefronts

Public retail + wholesale pages, share links per piece.

Per-store public pages — separate retail and wholesale catalogs at distinct URLs — so you can show retail customers polished pricing and the trade your wholesale numbers without rebuilding two sites. Plus a share token per piece for direct buyer links.

Retail + wholesale catalogs

Each store gets two public catalog pages — /s/yourstore/retail and /s/yourstore/wholesale — pulling from the same inventory but showing different price tiers and contact channels.

  • Retail page: list price + tap-to-call phone CTA + Messenger button
  • Wholesale page: wholesale price + WhatsApp + Messenger CTAs scoped to your B2B channel
  • Cover photo, store description, social links rendered per store
  • Sold pieces stay live with an Inquire CTA — your sold archive doubles as marketing

Per-piece share links

Every watch and handbag has its own share URL with a token. Send a direct link to a buyer over text or DM; they get a clean product page (no login required) with photos, key fields, and an Inquire button.

  • Regenerate a share token any time the URL gets shared too widely
  • Share page reads retail description, hides internal notes, surfaces the right contact CTA based on retail / wholesale context
  • Photo gallery on the share page works in any browser, mobile-friendly
  • Inquiry submissions land in the same wishlist + Klaviyo + email pipeline as storefront inquiries

// Multi-channel listing

One inventory, every channel a luxury dealer uses.

Add a piece once — watch, bag, sneaker, apparel item, accessory, jewelry piece, or bullion record. It auto-pushes to every connected channel. Mark it sold once and it auto-withdraws everywhere. Shopify, Wix, Squarespace, Woo on the storefront side. Bezel, eBay, Facebook Marketplace, and Chrono24 on the marketplace side. The double-entry nightmare ends.

Storefronts

Shopify, Woo, Wix, and Squarespace — push, revise, and end on sold via each platform's native API. Inquire CTA replaces the cart button on sold listings (Shopify + Woo) so your sold archive keeps generating leads.

  • OAuth or app-password auth per platform
  • Auto-push toggles per connection: on save, on edit, on sold
  • Per-row sync-error column on the watch / handbag detail page when a push fails
  • Bulk-publish for first-time syncs after copy / pricing changes

Marketplaces

Bezel, eBay, Facebook Marketplace, and Chrono24 — all four flowing through the same lifecycle hooks. SOLD on InventoryConnect = pulled from every marketplace within minutes, no manual cleanup. Watch-focused marketplaces (Bezel, Chrono24) auto-filter to your watch inventory.

  • Bezel: feed URL hosted by us, polled by Bezel on their schedule. Per-watch opt-in keeps private inventory private
  • eBay: full create / revise / withdraw lifecycle wired into the sold-status hook. Buyer purchases on eBay auto-import as Sales
  • Chrono24: daily-polled XML listing-import feed with per-watch opt-in + optional Chrono24-specific description override for the 750–1700 character sweet spot
  • Facebook Marketplace: Google Shopping XML at a hosted URL, Commerce-Manager polls. All four require at least one Retail photo

Lookbooks

When a customer asks 'what do you have in stainless under $25k?', the answer isn't 'send 12 screenshots in iMessage' anymore. Build a curated 4–8 piece set in 30 seconds, write a personal intro, send a link.

  • Per-piece price + note overrides (friends-and-family discount on one specific send without touching the underlying retail price)
  • Tracking: view count + per-piece 'I'm interested' tap counts, with email alerts to the dealer on every tap
  • Downloadable PDF version of the same lookbook for email attachments + printable copies
  • Auto-creates a new Customer record from the recipient's name + email if they're not already in your CRM (with email-based dedupe so a repeat send doesn't make duplicates)

// Lookbooks

Curated mini-catalogs you can text or email.

The retail-follow-up tool. When a customer is shopping, you don't want to send your whole inventory page — you want to curate. Build a 4–8 piece set tailored to them, write a personal intro, send one link.

Assembly + per-piece overrides

Pick pieces from a searchable picker, drag to reorder, optionally override the price and the description for THIS specific customer. Useful for friends-and-family discounts, private offers, or a bespoke pitch that the public storefront copy can't match.

  • Watches + handbags interleave in one lookbook
  • Price override shows alongside the original retail (struck-through) on the public page
  • Note override replaces the public retail description with your custom pitch
  • Optional expiry — set a date and the link returns a 'no longer available' state after

Delivery + tracking

Generate a share link the dealer copies into WhatsApp / iMessage / email. The recipient sees a polished mobile-first page with your store branding, your intro, and each piece as a full-screen photo grid with an 'I'm interested in this piece' CTA.

  • View tracking — see when (and how many times) the recipient opened the link
  • Per-piece interest taps push an email to the dealer ('Sarah is interested in the Daytona') with a deep-link back into the lookbook
  • Optional 'Save as Customer' toggle auto-creates a CRM record from the recipient's name + email (email dedupe so no duplicates)
  • PDF version of the same lookbook for email attachments + printable copies

// Unified inbox

Every customer conversation, threaded in one inbox.

SMS via Twilio, Telnyx, or Quo / OpenPhone — bring whichever provider you already pay. Email via Gmail or Outlook OAuth, plus Resend for transactional sends. Every channel threaded per customer in /inbox. Facebook Messenger, Instagram DMs, and WhatsApp Business are in private beta and rolling out as Meta App Review lands.

SMS + voice · Twilio, Telnyx, or Quo

Bring your own SMS provider — three native integrations covering the providers luxury dealers actually use. Twilio for the most mature 10DLC + voice setup, Telnyx for SMS / voice / number porting on a flatter rate card, Quo / OpenPhone for teams who already run on that stack. We handle threading, delivery-status callbacks, and 10DLC compliance for all three.

  • Twilio: SMS + voice with full 10DLC registration. Inbound recordings attach to the same per-customer timeline as SMS
  • Telnyx: SMS + voice + number porting on a single carrier — easier price-per-message at volume
  • Quo / OpenPhone: SMS via the Quo API for teams already on OpenPhone-style shared numbers
  • Inbound auto-matches to a Customer row by phone number across every provider — one inbox view, regardless of which carrier delivered the message

Email · Gmail, Outlook, Resend

Connect your real Gmail / Google Workspace OR Microsoft 365 / Outlook inbox via OAuth. Customer threads flow into the unified inbox; replies you send land in your real Sent folder. Resend handles transactional sends (invoice emails, lookbook links, wishlist alerts) so your personal inbox doesn't get rate-limited by the platform's auto-emails.

  • Gmail OAuth — no app passwords, no SMTP credentials, no DNS records to add
  • Outlook / Microsoft 365 OAuth — Microsoft Graph delta-query sync (inbound) plus sendMail (outbound), with the same auto-attach-to-Customer threading as Gmail
  • Resend for transactional — invoice receipts, lookbook delivery, wishlist-match alerts go out at scale without touching your personal Sent folder
  • Per-store sender address — multi-store accounts route each store's email correctly

Messenger, Instagram, WhatsApp · Coming soon

Facebook Messenger, Instagram DMs, and WhatsApp Business round out the channel set. In private beta with our pilot dealers right now while we finish Meta App Review and the dealer-side onboarding flow. Rolling out to every dealer next.

  • Facebook Messenger via Meta Business — page-level integration with single-sign-on (private beta)
  • Instagram DMs via the same Meta Business connection — one OAuth, both channels (private beta)
  • WhatsApp Business — phone-number migration required, but full two-way threading once connected (private beta)
  • Inbound unread count rolls up to the sidebar Inbox badge across every channel once shipped

// Marketing automation

Klaviyo (or any email tool) does the outreach.

Stop manually emailing every wishlist match, every inquiry, every post-sale follow-up. Customer events flow into Klaviyo automatically; you wire the flows once and the system runs them forever. Eight pre-built flow templates cover the highest-impact moments out of the gate.

Native Klaviyo + generic webhook

Connect a Klaviyo private API key for first-class integration: profiles, events, segments. Or point the generic webhook at any other email tool, Slack, your own backend — fan out to multiple destinations per store.

  • Klaviyo native: profile upserts with brand / model / reference / tag attributes for clean segmentation
  • Generic webhook destination for tools we don't natively support — Mailchimp, ConvertKit, your custom Slack bot
  • Multiple destinations per store — fire the same event to Klaviyo AND a webhook simultaneously
  • Per-event toggle: enable / disable any event type per integration so noisy events don't blow up your unsubscribe rate

Events that matter for the trade

We dispatch the events a luxury dealer actually wants to automate around. Each fires the moment the underlying state changes — no polling, no manual sync.

  • CUSTOMER_UPSERTED — new profile or profile change; keeps your CRM segments fresh
  • INQUIRY_RECEIVED — buyer asked about a specific piece via your storefront, share link, or hosted inquire form
  • WISHLIST_CREATED — buyer told you what they're after; great trigger for a "thanks, we'll keep an eye out" auto-reply
  • WISHLIST_MATCHED — incoming inventory matches a customer's wishlist; the highest-conversion trigger we ship
  • SALE_COMPLETED — post-purchase flow trigger (thank-you, asks for a review, cross-sell)
  • Every event logged to MarketingEventLog so you can audit what fired and what didn't

Pre-built flow library

We ship a dedicated /integrations/marketing/flows page with the eight highest-impact Klaviyo flow templates ready to copy. Trigger names, segment conditions, conditional-split logic — all spelled out so you can build the flow in Klaviyo in minutes, not afternoons.

  • Welcome series, wishlist-match alert, post-sale thank-you, abandoned-inquiry, sold-archive re-engagement, and more
  • Conditional-split logic uses Klaviyo's 'has performed metric' gate to avoid double-emailing engaged leads
  • Step-by-step instructions for each flow with screenshots referenced in the docs
  • Flows update as new event types ship — you don't have to chase docs

// Invoicing & payments

Invoice and get paid, in one place.

Generate professional PDF invoices, accept payment through Authorize.Net (or wire / Zelle / check), and handle refunds + chargebacks without leaving InventoryConnect.

Invoices

Pull invoice lines from inventory or type them in free-form. Customer details, tax handling, deposits, multiple payments. Branded PDF with your logo and store address. Per-invoice payment method picker with optional CC surcharge.

  • Generate from a sale or stand-alone (consignment payouts, service charges, deposits)
  • Accept Wire, Zelle, Credit Card per invoice with toggle controls + configurable CC fee
  • Multiple payments per invoice — record partial deposits, full payment when received
  • Branded PDF export, customer-facing pay page with hosted payment form

Authorize.Net payments

Accept Hosted (PCI SAQ-A) credit card processing through your existing Authorize.Net merchant account. Funds settle directly to your bank — InventoryConnect never holds the money.

  • Webhook + manual-sync fallback so a missed webhook never leaves an invoice stuck
  • Refund flow with automatic void-when-unsettled fallback — you don't have to know which API to call
  • Multi-page chargeback evidence package generator: cover page, sale details, payment auth, timeline, customer correspondence, photos
  • Test → Live mode flip documented in the settings panel so a sandbox-mode account doesn't silently break webhooks

// In-app support

A ticket queue for the customer-facing side of your business.

When a buyer files a question through Contact Support, it persists as a real ticket — not just an email someone might forget to reply to. Both sides see the thread, photos inline, and status tracking.

Customer-facing ticket queue

Threaded conversation per ticket with photo attachments inline, status badges (Open / In progress / Waiting on customer / Resolved / Closed), and email notifications both directions. Internal staff notes filtered out server-side from the customer view.

  • Customers file via the Contact Support page — auto-confirmation email sent on submit
  • Staff replies email the customer; customer replies email the assigned staffer
  • Sidebar attention badge shows count of tickets where staff has replied and the customer's move is overdue
  • Status flips happen automatically based on who-replied-last, so you never have to manually triage status

// Reports & API

Exportable reports + a real API.

Sales, payouts, sales-tax, inventory snapshots — all exportable to CSV / PDF. Per-store API keys for plugging InventoryConnect into your own dashboards, BI tools, or accountant's workflow.

Reports

Pre-built reports for the things accountants actually ask for. Sales by period, profit by consignor, sales-tax owed by jurisdiction, inventory aging, payouts due.

  • Date range pickers + per-store filtering on every report
  • CSV export with the row schema documented at the top of the file
  • Inventory snapshot report for year-end book closes
  • Sales-tax report breaks out tax collected by jurisdiction

Per-store API keys

REST API at /api/v1/ with bearer-token auth. Generate scoped keys per store from your settings page. Same data model as the dashboard, fully documented endpoints.

  • Inventory list + detail endpoints (watches and handbags)
  • Customer and sales endpoints for plugging into your own CRM / BI tooling
  • Webhook system for sale-completed / wishlist-matched events
  • Rate-limited fairly so production usage doesn't degrade dashboard performance

Data ownership

Your data is yours. CSV export covers every table — inventory, customers, sales, invoices, wishlists, notes. You can leave with a full archive any time, no hostage situation.

  • One-click full-store export from the settings page
  • Photos remain accessible via your R2 URLs even after export
  • API keys can be revoked instantly without losing audit history
  • Tenant deletion is real — when you go, your data goes with you

// Multi-store & roles

Multi-tenant out of the box.

Run multiple stores under one account — separate inventories, separate customers, separate storefronts, shared user accounts. Role-based access means each staff member sees only what they should.

Multi-store

Each store has its own inventory, customers, storefronts, integrations, and reports. Switch between stores from the topbar; data stays cleanly partitioned.

  • Per-store branding, social links, and storefront cover photos
  • Cross-store reporting available for admins — total profit across the group, per-store payouts dashboard
  • Tenancy-scoped: dealer A's data is invisible to dealer B even if they share staff accounts
  • Store-switching topbar control with quick search for accounts with many tenants

Roles & permissions

Seven roles cover everything from full-platform developer access to customer-only service portal. Each user gets exactly what they need.

  • SUPER_ADMIN / DEALER / STORE_ADMIN / EMPLOYEE / CUSTOMER (plus internal SUPPORT and DEVELOPER for the platform team)
  • Employees see inventory and sales but not cost prices or splits
  • Customers get a service portal showing only their own pieces in for repair
  • Granular toggles: who can manage inventory, who can record sales, who can view payouts

// Integrations

Native integrations for the rest of your stack.

Shopify, WooCommerce, Wix Stores, Squarespace Commerce, QuickBooks Online, Klaviyo, and Authorize.Net — all natively connected, no Zapier in the middle.

// Coming soon

Full service center.

End-to-end repair lifecycle from intake to return shipping — public intake form on your domain, watchmaker workspace with movement-reference / serial / age fields, incoming and outgoing test photos, return tracking numbers, and a private status portal where the customer watches every status update in real time. Currently in development; opens to every dealer as a paid upgrade later.

One platform for everything a luxury dealer needs.

Spin up your store free in under a minute. No credit card required.