Sari la conținut
WEBLURE

WooCommerce · API și integrări

Crearea comenzilor WooCommerce dintr-o aplicație externă

Aplicația ta de rezervări, POS sau marketplace trimite comenzile în WooCommerce prin API. Trebuie să știi ce se întâmplă cu statusul și stocul.

  • POST /wc/v3/orders
  • line_items cu product_id și quantity
  • status implicit pending
  • set_paid reduce stocul
  • Batch 100

Răspuns în aceeași zi lucrătoare Ofertă fixă Fără parole

Vrei să ți-o facem noi?

Doar două câmpuri. Răspundem în aceeași zi lucrătoare, cu ofertă fixă.

+ Telefon și detalii (opțional)

Răspuns rapid

Conform documentației API, creezi o comandă cu POST /wp-json/wc/v3/orders; exemplul include payment_method, payment_method_title, set_paid, billing, shipping, line_items (product_id, quantity) și shipping_lines. Statusul implicit este pending, iar customer_id implicit 0 (oaspete). Proprietatea set_paid, când e true, trece comanda în processing și reduce stocul; implicit este false. Pentru mai multe comenzi există POST /orders/batch (implicit până la 100 de obiecte). Validează datele pe server înainte de trimitere și tratează erorile.

Ce ai nevoie

  • Chei API cu drepturi de scriere
  • ID-urile produselor din magazin
  • Regula pentru plată și stoc
  • Un mediu de test

Pașii, pe rând

  1. 1Pregătește autentificareaChei cu drepturi de scriere; vezi ghidul pentru erori 401.
  2. 2Mapează produseleline_items folosesc product_id (și variation_id pentru variante). Menține o mapare între SKU-ul extern și ID-ul din WooCommerce.
  3. 3Construiește payload-ulbilling și shipping, payment_method și titlul lui, line_items, shipping_lines; opțional customer_id.
  4. 4Decide statusul și stoculFără set_paid, comanda e pending (stocul nu se reduce la această etapă); cu set_paid: true devine processing și reduce stocul.
  5. 5Validează înainte de trimitereProduse existente, cantități valide, adrese complete, prețuri corecte; evită comenzile parțiale.
  6. 6Tratează erorile și dubla trimitereSalvează ID-ul comenzii create și o cheie de idempotență externă ca să nu creezi aceeași comandă de două ori la reîncercare.
  7. 7TesteazăComenzi cu produse variabile, cupoane, transport; verifică stocul, emailurile și facturarea.

Exemplu de cerere cu curl (schelet)

bash
curl -X POST https://magazinul-tau.ro/wp-json/wc/v3/orders \
  -u ck_xxx:cs_xxx \
  -H "Content-Type: application/json" \
  -d '{
    "payment_method": "bacs",
    "payment_method_title": "Transfer bancar",
    "set_paid": false,
    "billing": {"first_name":"Ion","last_name":"Popescu","address_1":"Str. Exemplu 1","city":"București","country":"RO","email":"ion@exemplu.ro","phone":"0722123456"},
    "line_items": [{"product_id": 123, "quantity": 2}]
  }'

Fragmentele de cod sunt scheleturi: le adaptezi la magazinul tău și le testezi întâi pe un mediu de test (staging). ck_xxx și cs_xxx sunt valori fictive: nu pune chei reale în cod public. Folosește HTTPS.

Cheile API și secretele webhook-urilor sunt acces la datele magazinului: nu le pune în cod public, nu le trimite pe chat și rotește-le dacă s-au expus. Documentația consultată nu marchează câmpuri obligatorii și nu detaliază emailurile sau webhook-urile declanșate de comenzile create prin API; testează.

Nu vrei să te complici sau ai rămas blocat? Scrie-ne și o facem noi.

Scrie-ne pe WhatsAppCere ofertă

Mai multe detalii

Cauze frecvente și greșeli de evitatDacă pașii de mai sus nu au rezolvat problema
1

Comanda apare pending, deși e plătită

De ce: set_paid a rămas false.

Ce faci: Trimite set_paid: true dacă plata e confirmată extern.

2

Stocul nu scade

De ce: Comanda nu a trecut pe un status care reduce stocul.

Ce faci: Setează statusul corect sau set_paid.

3

Comenzi duplicate la reîncercare

De ce: Lipsă idempotență.

Ce faci: Păstrează o cheie externă și verifică înainte de creare.

Întrebări frecvente4 răspunsuri
Ce status are o comandă creată prin API?

Implicit pending; cu set_paid: true devine processing.

Se reduce stocul?

Conform documentației, set_paid trece pe processing și reduce stocul.

Pot crea mai multe comenzi odată?

Da, cu /orders/batch, implicit până la 100 de obiecte.

Mă ajutați cu integrarea comenzilor?

Da. Cere ofertă fixă.