Dropshipping API — kumppaniopas
Tukkukaupan REST API: Emmebi Italian reaaliaikainen tuoteluettelo kumppanihinnoillasi, varastokohtaiset saldot reaaliajassa ja tilausten teko toimituksella suoraan asiakkaallesi. Sinulla ei ole varastoa — me hoidamme lähetyksen.
Miten saat pääsyn
API-pääsy myönnetään manuaalisesti. Et voi hankkia ensimmäistä avainta itsepalveluna: tarkistamme kumppanin ja allekirjoitamme sopimuksen ennen avaimen myöntämistä.
- HakemusLähetä pyyntö kampaamosivun lomakkeella (oikeushenkilö, rekisterinumero, ALV-tunnus, yhteystiedot).
- TarkistusTarkistamme yrityksen ja sen maksukyvyn. Dropshipping toimii ennakkomaksulla — tilaukset maksetaan pankkisiirrolla ennen lähetystä.
- SopimusAllekirjoitamme kumppanisopimuksen ja tietojenkäsittelysopimuksen (mallit alla). Kumppanitasosi (Bronze/Silver/Gold) vahvistetaan sopimuksessa.
- Avaimen myöntäminenVastuuhenkilö myöntää API-avaimen
emmebi_dsk_…. Avain näytetään vain kerran — säilytä sitä kuin salasanaa. Jos se vaarantuu, ilmoita meille: avain mitätöidään välittömästi ja tilalle myönnetään uusi.
Sopimukset
Kumppanisopimukset (dropshipping-sopimus ja DPA) ovat rekisteröityneiden yrityskumppaneiden saatavilla omalla tilillään.
Avaa sopimukset kumppaniportaalissasi →Valmiit tiedot tuontia varten alustallesi
Tuo koko luettelomme suoraan kauppaasi — ilman jäsentämistä. Yksi GET /dropship/feed -pyyntö palauttaa kaikki julkaistut tuotteet käännöksineen, kuvineen, varastotietoineen ja hintoinesi muodossa, jonka CMS-tuojasi lukee suoraan.
Parametrit: format — alusta (ks. taulukko); locale — tietojen kieli: et, en, ru, fi, sv, lv, lt.
| Alusta | format-arvo | Miten tuodaan |
|---|---|---|
| WooCommerce | woocommerce | Tuotteet → Tuo (sisäänrakennettu CSV-tuoja) tai WP All Import URL-osoitteesta |
| Shopify | shopify | Matrixify-sovellus — CSV-tuonti tiedostosta tai URL-osoitteesta |
| PrestaShop | prestashop | Lisäasetukset → CSV-tuonti (erotin ”;”) |
| OpenCart | opencart | Tuontimoduuli (Export/Import ym.) |
| Google Merchant (XML) | google | XML-syöte (RSS 2.0) Google Merchantille ja mille tahansa syöteliitännäiselle |
curl -H "Authorization: Bearer emmebi_dsk_..." \ "https://api.emmebi.ee/dropship/feed?format=woocommerce&locale=et" \ -o emmebi-catalog.csv
Syötteen myyntihinta on suositushintamme (sis. alv), myyntivalmis — voit muuttaa katetta. Ostohintasi (vähittäishinta miinus tasoalennuksesi) on erillisessä sarakkeessa: Meta: _dropship_cost (WooCommerce), Variant Cost (Shopify), Wholesale price (PrestaShop).
Käytätkö toista alustaa? Valmistelemme sille viennin — ota yhteyttä, niin lisäämme tarvitsemasi muodon.
Automaattinen päivitys
Syöte luodaan reaaliajassa jokaisella pyynnöllä. Uusi tuote, kuva, hinnan tai varaston muutos näkyy siinä heti. Ajasta CMS-tuojaasi toistuva tuonti syötteen URL-osoitteesta (WP All Import -ajastus, Matrixify, PrestaShopin cron-tuonti), niin luettelo pysyy synkronoituna itsestään.
1. API-pääsy
| Base URL | https://api.emmebi.ee |
|---|---|
| Todennus | otsake Authorization: Bearer emmebi_dsk_… |
| Muoto | JSON, UTF-8 |
| Pyyntöraja | 120 pyyntöä minuutissa (ylityksellä — 429 + Retry-After) |
| Hintatasot | Bronze −5 % / Silver −10 % / Gold −15 % vähittäishinnasta; sidottu avaimeen, näkyy tuoteluettelon vastauksessa. |
| Testiavain | Avain, jossa on is_test-lippu, läpäisee täyden tuoteluettelon, hinnan ja varastosaldon tarkistuksen, mutta ei luo oikeaa tilausta — vastauksessa on status: "test_mode", order_id alkaa etuliitteellä test_, eikä proformalaskua lähetetä. Pyydä vastuuhenkilöltäsi testiavain, jotta voit rakentaa integraation riskittömästi. |
Miten hintasi lasketaan
your_price = retail_price × (1 − tason alennus), pyöristettynä senttiin. Esimerkki Silver-tasolle (−10 %): vähittäishinta 18 € → hintasi 16,20 €. retail_price on Viron alueen vähittäishintamme sisältäen alv:n.
Tason tarkistus
Kerran kuussa (kuun 1. päivä, edellisen kuun maksettujen tilausten käyvien perusteella) tarkistamme tasosi. Rajat: Bronze — alkaen ≈417 €/kk, Silver — alkaen ≈1250 €/kk, Gold — alkaen ≈3333 €/kk. Nousu astuu voimaan heti rajan saavuttamisen jälkeen. Lasku astuu voimaan vasta kahden peräkkäisen kuukauden jälkeen rajan alapuolella — yksi heikko kuukausi ei vielä pudota tasoa. Ilmoitamme jokaisesta tasomuutoksesta sähköpostitse käyvän ja voimaantulopäivän kanssa; jo vahvistettuihin tilauksiin muutos ei vaikuta.
2. Tuoteluettelo
Parametrit: limit (enintään 100, oletus 50), offset, handle (suodatus yhden tuotteen mukaan).
curl -H "Authorization: Bearer emmebi_dsk_..." \ "https://api.emmebi.ee/dropship/products?limit=50&offset=0"
{
"tier": "silver",
"discount": 0.1,
"count": 106,
"products": [
{
"title": "Argania Sahara Secrets Mask",
"handle": "argania-sahara-secrets-mask",
"variants": [
{
"variant_id": "variant_01...",
"sku": "ARGMASK200",
"barcode": "8032825918934",
"retail_price": 18, // recommended retail, EUR, incl. VAT
"your_price": 16.2, // your tier price
"available": 3 // total available across warehouses
}
]
}
]
}Suositus: synkronoi tuoteluettelo enintään kerran tunnissa; tarkista tietyn SKU:n saldo täsmällisesti juuri ennen tilauksen tekoa.
3. Varasto
curl -H "Authorization: Bearer emmebi_dsk_..." \ "https://api.emmebi.ee/dropship/inventory/ARGMASK200"
{
"sku": "ARGMASK200",
"available": 3,
"warehouses": [
{ "name": "Rakvere Warehouse", "available": 2 },
{ "name": "Kohtla-Järve Warehouse", "available": 1 }
]
}Haku viivakoodilla
Sama vastaus, mutta SKU:n sijaan EAN/GTIN-viivakoodilla — kätevä, jos järjestelmäsi tallentaa tuotteet viivakoodin mukaan.
curl -H "Authorization: Bearer emmebi_dsk_..." \ "https://api.emmebi.ee/dropship/inventory/barcode/8032825918934"
{
"barcode": "8032825918934",
"sku": "ARGMASK200",
"variant_id": "variant_01...",
"available": 3,
"warehouses": [
{ "location_id": "sloc_01...", "name": "Rakvere Warehouse", "available": 2 },
{ "location_id": "sloc_02...", "name": "Kohtla-Järve Warehouse", "available": 1 }
]
}4. Tilauksen luominen
Otsake Idempotency-Key on pakollinen — mikä tahansa yksilöllinen merkkijonosi (esim. tilausnumerosi). Toistettu pyyntö samalla avaimella palauttaa jo luodun tilauksen eikä duplikaattia — turvallista yrittää uudelleen aikakatkaisuissa.
curl -X POST "https://api.emmebi.ee/dropship/orders" \
-H "Authorization: Bearer emmebi_dsk_..." \
-H "Idempotency-Key: my-shop-order-10422" \
-H "Content-Type: application/json" \
-d '{
"items": [
{ "sku": "ARGMASK200", "quantity": 2 },
{ "barcode": "8032825918934", "quantity": 1 }
],
"shipping_address": {
"first_name": "Mari",
"last_name": "Tamm",
"address_1": "Pikk 12-4",
"city": "Tallinn",
"postal_code": "10123",
"country_code": "ee",
"phone": "+372 5xxx xxxx"
},
"end_customer_email": "[email protected]",
"reference": "my-shop-order-10422"
}'shipping_address on loppuasiakkaasi osoite: lähetämme paketin suoraan hänelle. Kentässä items voit välittää sku-, variant_id- tai barcode-arvon (EAN/GTIN).
// Response 201
{
"order_id": "order_01...",
"display_id": 137,
"status": "awaiting_payment",
"total": 32.4,
"proforma_emailed": true,
"payment": {
"method": "bank_transfer",
"recipient": "HairFresh OÜ",
"iban": "EE73 1010 2202 9766 2225",
"swift": "EEUHEE2X",
"bank": "SEB Pank",
"reference": "EMB-PRO-137",
"amount": 32.4
}
}Oma lähettäjä tarralla
Pyydä yhteyshenkilöltäsi, että toimitustarraan merkitään Emmebi Italian sijaan sinun nimesi ja yhteystietosi «lähettäjänä» (ja kuljettajan salliessa myös koko osoite) — pakkaamme ja lähetämme tilaukset silti aina itse. Huom: jos kuljettaja ei itse (ei meidän palautustarra-työkalumme kautta) pysty toimittamaan pakettia ja palauttaa sen automaattisesti, se menee tarraan painettuun lähettäjän osoitteeseen eli sinulle, ei meidän varastollemme.
Maksu
Toimimme ennakkomaksulla. Kun tilaus on luotu, tilillesi lähetetään automaattisesti sähköpostitse proformalasku (PDF) pankkitietoineen. Maksa pankkisiirrolla ja merkitse reference maksun viestikenttään (esim. EMB-PRO-137). Tavarat varataan sinulle tilauksen luomishetkestä alkaen; lähetämme ne maksun vahvistumispäivänä.
Virheet
| Koodi | Syy |
|---|---|
400 | puuttuva Idempotency-Key, tyhjä items, puutteellinen osoite |
404 | tuntematon SKU |
409 | riittämätön varastosaldo (katso available vastauksessa) |
422 | SKU:lla ei ole hintaa |
5. Tilauksen tila
{
"display_id": 137,
"payment_status": "paid",
"shipped": true,
"delivered": false,
"fulfillments": [
{
"shipped_at": "2026-07-04T09:12:00Z",
"tracking": [
{ "tracking_number": "JJFI123...", "tracking_url": "https://..." }
]
}
]
}Kysely 15–30 minuutin välein riittää. Kun tracking_number ilmestyy — välitä se asiakkaallesi.
6. Tyypillinen integraatiosykli
tunneittain GET /dropship/products → päivitä myymälä ja hinnat
ennen tilausta GET /dropship/inventory/{sku} → tarkista varastosaldo
myynti puolellasi POST /dropship/orders → luo tilaus (Idempotency-Key!)
maksun jälkeen pankkisiirto proforman mukaan
15-30 min välein GET /dropship/orders/{id} → payment_status / tracking7. Yhteystiedot
Kysymykset API:sta, avaimista, hinnoista ja tasoista: [email protected]. Kysymykset tilauksista ja lähetyksistä: [email protected].