v

Partner onboarding reference

The single onboarding flow and the full credentials checklist.

Wine2You — Partner Onboarding

Version: 1.0 · Owner: Wine2You Platform · Status: single onboarding flow (merges Supplier + Retailer onboarding) Scope: one front door for every partner. Roles (Originator · Fulfiller · Seller) are enabled capabilities, not separate programs. Companion documents: PIM Product API Taxonomy, Order API Taxonomy.

Naming. We merge what would otherwise be "Supplier onboarding" and "Retailer onboarding" into one Partner Onboarding with a role matrix. A partner signs up once and enables the roles it needs. This keeps the model deduplicated — one flow, one partner record, many roles — exactly as the canonical wine keeps one row per wine regardless of how many suppliers offer it.


1. One flow, many roles

Onboarding is a single sequence. Roles are toggles on the partner record, granted after the shared steps.

Step What happens Applies to
1 · Apply Create partner record: legal entity, country, contact, payout details. all
2 · Verify KYC / payout identity verification (by the payment provider, not stored by W2Y). all
3 · Enable roles Grant Originator / Fulfiller / Seller (any combination). per partner
4 · Configure Permissions (per Originator), channel + shelf pricing (per Seller), fulfilment (per Fulfiller). per role
5 · Integrate Credentials, feed endpoints (push/pull), first wine/offer/listing. per role
6 · Go live Publish gate; first order. all

2. Role matrix

Role Enables Key configuration Typical partner
Originator Adds data to the canonical wines DB and/or inventory to the offer table. Sub-type (Estate | Collector | Stock/importer); sell permissions (allowed countries / named sellers / default any); network_shareable. Estate, collector, importer
Fulfiller Picks, packs, ships. On by default for Originators; can also feed wines not yet in any offer. Stock locations, capabilities (d2c, bonded transfer, temp-controlled), carrier setup. Estate warehouse, 3PL, importer
Seller Generates its own sales orders. Sells own stock (if also Originator) and/or others' inventory it curates. Sets its own shelf price over the offer-feed. Sales channel, curated shop (markup, layout), which offers to surface. Webshop, curator shop, dropship reseller

Examples of role combinations:

One partner can hold any combination — an Estate that also runs a shop is Originator + Fulfiller + Seller on one record.


3. What each role connects to

Originator

Fulfiller

Seller


4. Two-way feed (Endless Isles ↔ partner)

Direction Endpoint Who Purpose
Pull (platform → you) POST /v1/sync/pull / webhook Seller / Fulfiller receive wines + offers + price/stock deltas to curate
Push (you → platform) POST /v1/sync/push Originator contribute wines + offers (upsert, idempotent)
Status GET /v1/sync/status all last_cursor, pending, errors

A partner may be both a provider and a receiver simultaneously (e.g. an Estate pushes its stock and pulls the broader feed to curate for its own shop).


5. Fulfilment model (estate-first, then other inventories)

  1. Estate direct — if the estate is on W2Y, its stock is preferred.
  2. Other inventories — otherwise route to other enabled offers whose permissions allow the destination/buyer (indirect sourcing, gated by feed-curation).
  3. Split — short quantities split across sources; each becomes its own fulfilment leg from its own location.

You fulfil the legs whose stock you hold (unless you've delegated fulfilment to a 3PL/Fulfiller partner).


6. Credentials & integration checklist


7. Reference: canonical vs offer vs listing (the model in one picture)

        CANONICAL WINE  (independent, deduplicated, externally matched)
        ──────────────────────────────────────────────────────────────
        title · producer · cuvée · vintage · colour · category · ABV ·
        region tree · grapes (VIVC) · EU-compliance block · GTIN/LWIN/crosswalk
                         │
        ┌────────────────┴─────────────────┐
        ▼                                  ▼
   OFFER (Originator supply)          OFFER (another Originator)
   seller_price · qty · permissions    seller_price · qty · permissions
        │                                  │
        ▼                                  ▼
   LISTING (Seller shelf price)        LISTING (same or other Seller)
   = seller_price + Seller's margin    over whichever offer it curates

One wine, many offers, many listings — no duplication anywhere.


8. Why merge, not separate

Edit this page on GitHub ↗