WooCommerce REST API adalah antarmuka pemrograman yang memungkinkan developer mengakses dan memanipulasi data toko WooCommerce dari aplikasi eksternal menggunakan HTTP request standar. Dengan REST API, Anda bisa membuat mobile app, mengintegrasikan WooCommerce dengan sistem inventory atau ERP, serta mengautomasi proses bisnis seperti sinkronisasi stok dan pembuatan order otomatis.
Ringkasan Artikel
- WooCommerce REST API menggunakan autentikasi via Consumer Key dan Consumer Secret yang dibuat di dashboard WooCommerce
- Endpoint utama mencakup products, orders, customers, dan coupons — semua mendukung operasi CRUD (Create, Read, Update, Delete)
- API menggunakan format JSON dan mendukung filtering, pagination, serta webhook untuk notifikasi real-time
- Best practice: gunakan HTTPS wajib, batasi permission sesuai kebutuhan, dan implementasikan rate limiting
Apa Itu WooCommerce REST API?
WooCommerce REST API adalah interface yang memungkinkan komunikasi antara toko WooCommerce dengan aplikasi eksternal melalui HTTP request (GET, POST, PUT, DELETE). API ini menggunakan format JSON untuk pertukaran data.
Penggunaan umum WooCommerce REST API:
- Mobile app — Bangun aplikasi mobile yang terhubung dengan toko WooCommerce
- Integrasi ERP/inventory — Sinkronisasi data produk dan stok dengan sistem manajemen bisnis
- Dashboard custom — Buat dashboard analitik khusus dengan data WooCommerce
- Automasi order — Proses order otomatis dari platform lain
- Multi-channel sync — Sinkronisasi produk dan stok dengan marketplace
Bagaimana Cara Setup Autentikasi WooCommerce REST API?
WooCommerce REST API menggunakan Consumer Key dan Consumer Secret untuk autentikasi. Buat API key di dashboard WooCommerce, lalu gunakan credentials tersebut di setiap request.
Membuat API Key
- Masuk ke WooCommerce > Settings > Advanced > REST API
- Klik “Add Key”
- Isi deskripsi (misal: “Mobile App Integration”)
- Pilih user yang akan digunakan
- Pilih permission: Read, Write, atau Read/Write
- Klik Generate API Key
- Simpan Consumer Key dan Consumer Secret — hanya ditampilkan sekali
Metode Autentikasi
Ada dua metode autentikasi yang didukung:
- HTTPS (wajib untuk production) — Kirim credentials via query parameter atau HTTP Basic Auth header
- HTTP — Hanya untuk development lokal, menggunakan OAuth 1.0a
Contoh request dengan HTTP Basic Auth:
curl https://yourdomain.com/wp-json/wc/v3/products \
-u consumer_key:consumer_secret
Apa Saja Endpoint Utama WooCommerce REST API?
WooCommerce REST API menyediakan endpoint untuk semua data utama toko. Semua endpoint dimulai dengan base URL: https://yourdomain.com/wp-json/wc/v3/
Products
GET /products— Daftar semua produkGET /products/{id}— Detail satu produkPOST /products— Buat produk baruPUT /products/{id}— Update produkDELETE /products/{id}— Hapus produkGET /products/{id}/variations— Daftar variasi produk
Orders
GET /orders— Daftar semua orderGET /orders/{id}— Detail satu orderPOST /orders— Buat order baruPUT /orders/{id}— Update order (status, notes, dll)DELETE /orders/{id}— Hapus orderGET /orders/{id}/notes— Order notes
Customers
GET /customers— Daftar customerGET /customers/{id}— Detail customerPOST /customers— Buat customer baruPUT /customers/{id}— Update customer
Coupons dan Reports
GET /coupons— Daftar kuponPOST /coupons— Buat kupon baruGET /reports/sales— Laporan penjualanGET /reports/top_sellers— Produk terlaris
Bagaimana Cara Filtering dan Pagination di WooCommerce API?
WooCommerce REST API mendukung parameter query untuk filtering dan pagination, memungkinkan Anda mengambil data secara efisien tanpa harus load semua data sekaligus.
Pagination
per_page— Jumlah item per halaman (default: 10, max: 100)page— Halaman yang diminta- Response header menyertakan
X-WP-TotaldanX-WP-TotalPages
Filtering Products
?category=15— Filter berdasarkan kategori?status=publish— Filter berdasarkan status?search=kaos— Cari produk berdasarkan keyword?min_price=50000&max_price=200000— Filter berdasarkan range harga?orderby=date&order=desc— Sorting?sku=ABC123— Cari berdasarkan SKU
Filtering Orders
?status=processing— Filter berdasarkan status order?after=2024-01-01T00:00:00— Order setelah tanggal tertentu?before=2024-12-31T23:59:59— Order sebelum tanggal tertentu?customer=42— Order dari customer tertentu
Bagaimana Cara Menggunakan Webhook WooCommerce?
Webhook mengirim notifikasi HTTP POST ke URL yang Anda tentukan saat event tertentu terjadi di WooCommerce. Ini jauh lebih efisien daripada polling API secara berkala.
Membuat Webhook
- Masuk ke WooCommerce > Settings > Advanced > Webhooks
- Klik “Add Webhook”
- Isi nama, status (Active), topic, dan delivery URL
- Pilih topic: Order created, Order updated, Product created, Customer created, dll
- Masukkan URL endpoint Anda yang akan menerima data
- Set secret key untuk verifikasi payload
Topic Webhook yang Tersedia
order.created— Saat order baru dibuatorder.updated— Saat order di-update (status berubah, dll)product.created— Produk baru ditambahkanproduct.updated— Produk di-updatecustomer.created— Customer baru mendaftarcoupon.created— Kupon baru dibuat
Apa Saja Best Practice untuk WooCommerce REST API?
Mengikuti best practice memastikan integrasi API yang aman, performant, dan maintainable. Berikut panduan yang harus diikuti setiap developer.
Keamanan
- Selalu gunakan HTTPS — Jangan pernah kirim credentials via HTTP
- Batasi permission — Gunakan Read-only jika hanya perlu baca data
- Simpan credentials aman — Jangan hardcode di frontend atau public repository
- Rotate API key — Ganti API key secara berkala
- IP whitelist — Batasi akses API dari IP tertentu menggunakan plugin atau .htaccess
Performa
- Pagination — Jangan ambil semua data sekaligus. Gunakan per_page dan page
- Request hanya field yang dibutuhkan — Gunakan parameter
_fieldsuntuk mengurangi payload - Cache response — Cache data yang jarang berubah (kategori, product attributes)
- Batch request — Gunakan endpoint batch untuk operasi bulk
- Rate limiting — Implementasikan delay antara request untuk tidak membebani server
Error Handling
- Selalu cek HTTP status code (200 = OK, 401 = unauthorized, 404 = not found)
- Parse error message dari response JSON untuk debugging
- Implementasikan retry logic dengan exponential backoff untuk error 5xx
- Log semua API call dan response untuk troubleshooting
Bagaimana Contoh Implementasi WooCommerce REST API?
Berikut contoh implementasi umum menggunakan Node.js dan library WooCommerce REST API resmi.
Install Library
npm install @woocommerce/woocommerce-rest-api
Inisialisasi
const WooCommerceRestApi = require("@woocommerce/woocommerce-rest-api").default;
const api = new WooCommerceRestApi({
url: "https://yourdomain.com",
consumerKey: "ck_xxxxx",
consumerSecret: "cs_xxxxx",
version: "wc/v3"
});
Contoh: Ambil Daftar Produk
// GET all products
const response = await api.get("products", { per_page: 20 });
console.log(response.data);
Contoh: Buat Order Baru
const orderData = {
payment_method: "bacs",
billing: { first_name: "John", email: "john@email.com" },
line_items: [{ product_id: 93, quantity: 2 }]
};
const response = await api.post("orders", orderData);
Contoh: Update Status Order
await api.put("orders/123", { status: "completed" });
Kesimpulan
WooCommerce REST API adalah tool powerful untuk developer yang ingin mengintegrasikan dan mengautomasi toko WooCommerce. Langkah-langkah yang perlu dilakukan:
- Generate API key dengan permission yang sesuai di WooCommerce Settings
- Gunakan HTTPS wajib untuk semua request API
- Manfaatkan endpoint products, orders, customers untuk operasi CRUD
- Setup webhook untuk notifikasi real-time tanpa polling
- Implementasikan pagination, caching, dan error handling
- Ikuti best practice keamanan: batasi permission, rotate key, dan jangan expose credentials
Dengan REST API, kemungkinan integrasi WooCommerce tidak terbatas — dari mobile app hingga automasi bisnis end-to-end. Pastikan juga keamanan toko Anda dengan mengikuti panduan keamanan WooCommerce.
FAQ
Apakah WooCommerce REST API gratis digunakan?
Ya, WooCommerce REST API sepenuhnya gratis dan sudah termasuk dalam plugin WooCommerce. Tidak ada biaya tambahan untuk mengakses API selama toko WooCommerce Anda sudah aktif.
Berapa limit request WooCommerce REST API?
WooCommerce sendiri tidak membatasi jumlah request. Namun, hosting provider biasanya memiliki rate limit. Untuk shared hosting, umumnya sekitar 100-500 request per menit. VPS dan dedicated server bisa menangani lebih banyak.
Apakah WooCommerce REST API mendukung GraphQL?
WooCommerce tidak mendukung GraphQL secara native. Namun, ada plugin WPGraphQL dan WPGraphQL for WooCommerce yang menambahkan dukungan GraphQL. Untuk kebanyakan use case, REST API sudah cukup.
Bagaimana cara debug jika WooCommerce API tidak bekerja?
Langkah debugging: cek apakah permalink sudah diset ke Post name (bukan Plain), pastikan HTTPS aktif, verifikasi consumer key dan secret benar, cek log error di wp-content/debug.log, dan pastikan user yang digunakan memiliki permission yang tepat.
Apakah bisa mengakses custom fields melalui WooCommerce REST API?
Ya, custom fields (meta data) bisa diakses melalui field meta_data di response API. Untuk menulis custom field, sertakan array meta_data dengan key dan value di body request POST atau PUT.
Tinggalkan Balasan