WooCommerce · REST API

WooCommerce prekių atnaujinimas per REST API

Kaip automatizuoti kainų, likučių ir aprašymų atnaujinimus, kad duomenys visada sutaptų su tiekėjo ar ERP sistema.

Atnaujinta: 2025-11-01 🕒 Skaitymo laikas: ~6 min.

Kas yra WooCommerce REST API?

WooCommerce REST API – tai programinė sąsaja, leidžianti kitoms sistemoms (tiekėjo platformai, ERP, PIM, CRM ar net paprastam skriptui) tiesiogiai sąveikauti su jūsų „WordPress + WooCommerce“ parduotuve. Per API galima skaityti ir rašyti prekių duomenis be prisijungimo prie administratoriaus. Mūsų REST API produktų atnaujinimas sprendimas leidžia greitai ir patikimai sinchronizuoti prekių likučius, kainas ir kitus duomenis iš XML ar CSV failų, net kai jie yra didelio dydžio.

Kodėl verta naudoti API prekių atnaujinimui?

  • Automatinis kainų atnaujinimas pagal tiekėjo failą ar API
  • Sandėlio likučiai visada realūs
  • Greitas masinis aprašymų ir pavadinimų pakeitimas
  • Mažiau rankinio darbo ir klaidų

Reikalavimai ir pasiruošimas

Prieš rašant kodą įsitikinkite, kad:

  1. WooCommerce papildinys yra naujausios versijos;
  2. REST API yra įjungtas (numatyta WooCommerce versijose 3+);
  3. Turite sugeneruotus Consumer Key ir Consumer Secret su teisėmis Read/Write;
  4. Naudojate HTTPS (tam kad raktai neitų atviru tekstu);
  5. Turite produkto ID ar SKU, pagal kurį atpažinsite prekę.

Kaip atnaujinti prekę per REST API (pavyzdys)

Tipinis PATCH arba PUT užklausos URL atrodo taip:

PUT https://jusu-domena.lt/wp-json/wc/v3/products/1234?consumer_key=CK&consumer_secret=CS
{
  "regular_price": "49.90",
  "stock_quantity": 25,
  "manage_stock": true,
  "status": "publish"
}
      

Čia 1234 – jūsų prekės ID. Jei prekės atpažinimui naudojate SKU, pirmiau ją suraskite pagal SKU ir gaukite ID.

Paprasčiausias PHP pavyzdys

<?php
$ck = 'CK_HERE';
$cs = 'CS_HERE';

$data = [
  'regular_price' => '59.00',
  'stock_quantity' => 12,
  'manage_stock'   => true
];

$ch = curl_init('https://jusu-domena.lt/wp-json/wc/v3/products/1234?consumer_key=' . $ck . '&consumer_secret=' . $cs);
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, 'PUT');
curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($data));
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_HTTPHEADER, ['Content-Type: application/json']);
$response = curl_exec($ch);
curl_close($ch);

echo $response;
?>
      

Šį kodą galima paleisti CRON’u, pvz., kas 15 min., kad prekių informacija būtų sinchronizuota su tiekėju.

Dažniausiai atnaujinami laukai

  • Kaina: regular_price, sale_price
  • Likutis: stock_quantity, manage_stock, stock_status
  • Aprašymai: name, description, short_description
  • Paveikslėliai: images (URL sąrašas)
  • Kategorijos: categories (pagal ID)

SEO aspektai, kai atnaujinate per API

  • Nekeiskite URL (slug), jei prekė jau indeksuota;
  • Jei keičiate pavadinimus masiškai – patikrinkite, kad jie vis dar būtų unikalūs;
  • Netrinkite meta aprašymų, jeigu juos kuriate ranka ar per SEO papildinį (Yoast, RankMath);
  • Stenkitės, kad API neįrašytų tuščių laukų ant viršaus.

Mini DUK

Ar galiu atnaujinti tūkstančius prekių iš karto?

Taip, bet darykite tai dalimis (batch). WooCommerce turi /products/batch endpointą, leidžiantį atnaujinti kelias dešimtis ar šimtus prekių viena užklausa.

Ką daryti, jei gaunu klaidą „rest_cannot_edit“?

Patikrinkite, ar API raktas turi write teises ir ar prisijungęs vartotojas turi „manage_woocommerce“ leidimus.

Ar galiu daryti API iš išorinio serverio?

Taip. Svarbu, kad domenas būtų pasiekiamas per HTTPS ir kad užklausose perduotumėte teisingus raktus.