Skip to main content
Status Sign in

Reseller stock network

A manufacturer's Shopify product page shows nearby resellers with that specific part in stock. The data isn't manually maintained on the manufacturer's side, it's aggregated live across PowersportOS-tenant resellers who've opted into sharing stock. Drives end-customer traffic to dealers stocking the manufacturer's parts, makes PowersportOS sticky for both sides.

The end-customer experience

A customer lands on a manufacturer's Shopify product page (say, an OEM hardware brand selling its own-branded parts directly). They want to know: "where can I buy this near me?"

The widget on the page asks for their location (browser geolocation or postal code) and renders the closest dealers stocking that specific part, with a distance, a phone number, and an in-stock / low / out badge. Customer calls the dealer, drives there, buys the part. The manufacturer never touched a sale but drove the traffic; the dealer got a customer who otherwise wouldn't have known they had it.

Why this exists

Industry-standard practice for OEM-direct sites is to list "find a dealer" pages that aggregate dealers without stock data. Customer drives to a dealer, finds out they don't carry the specific part, leaves. Conversion is poor; both manufacturer and dealer lose.

The reseller stock network closes that gap. Live stock means no wasted trips. It only works because PowersportOS is the platform for both sides of the relationship, the dealer's catalog data and the manufacturer's brand site both live on PowersportOS, so the data flows transparently. Standalone dealer-locator widgets can't do this because they don't have a live stock feed from each dealer.

How the data flows

  1. The reseller (a RESELLER or HYBRID PowersportOS tenant) pushes stock to PowersportOS by posting bulk arrays to /api/integrations/stock-feed. Typical sources are a cron job on the reseller's ERP or POS, or a small worker that reads Shopify's Admin API and forwards inventory changes. Manual entry in the portal is the fallback. Same flow as any other stock data.
  2. The reseller opts in to sharing stock with specific manufacturers through their portal's Stock Sharing page. Each manufacturer gets their own consent row, granular, revocable.
  3. The reseller picks a precision level per manufacturer: EXACT (actual count visible) or LEVEL (only in-stock / low / out, no number). Default is LEVEL.
  4. The manufacturer's admin attaches a dealer row to the reseller's tenant id (this is the wiring step on the manufacturer side).
  5. When an end-customer hits the widget on the manufacturer's product page, the Shopify theme calls /api/t/dealers/stock with the part number and the customer's lat/lng. The endpoint Haversine-sorts the manufacturer's dealers, filters to those with an active stock-share consent and stock > 0, and returns the closest N with the appropriate precision bucket.

Privacy and consent, load-bearing

Stock data is operationally sensitive. A reseller's competitors would love to know exactly what they carry and how many. PowersportOS doesn't let manufacturers see reseller stock by default, explicit opt-in per manufacturer pair, with precision control on top.

EXACT precision
Actual stock count shown on the manufacturer's widget. E.g. "12 in stock at YourStore". Use when you trust the visibility and want maximum signal to the customer.
LEVEL precision
Only an in-stock / low / out indicator. Use when you don't want competitors reading exact numbers off a public page. Default.
No share
Manufacturer's widget doesn't include the reseller at all, not as 'no stock', just not in the result set. The default state for every new (reseller, manufacturer) pair.

A reseller can change precision or revoke consent at any time from their portal. The change is live within the cache window (currently 60 seconds on the dealer-stock endpoint).

Why both sides win

Manufacturer
Adds a high-conversion widget to product pages with no operational burden. Drives traffic to dealers carrying their brand. Differentiates from competitors whose dealer pages don't have live stock.
Reseller
Gets free traffic from manufacturer brand sites, customers who searched for a specific part and were routed to the dealer's location. No advertising spend, no SEO work.
End customer
Finds the part actually in stock at a nearby physical store. No wasted trips. Real-world powersport buying often involves a same-day urgency the manufacturer can't fulfil directly.

Retail tenants, same widget, different flow

For retail chains (multi-location retailers with their own physical stores, RETAIL tenant type), the same widget shape works against the retailer's own stores instead of external resellers. Stock per location is pushed to PowersportOS via the /api/integrations/location-stock endpoint, and the same /api/t/dealers/stock returns "available at our store at X" results on the retailer's own product pages. End-customer experience is identical; the data wiring is internal to the retail chain.

Where to learn more

  • The endpoint reference for the widget is at /docs/api/storefront-dealers, query parameters, response shape, precision flag semantics.
  • Reseller-side workflow lives in the customer-portal help under Stock & pricing → Stock sharing, accessible to logged-in reseller tenants.