---
title: "Panduan Integrasi WooCommerce | Tajo"
description: "Hubungkan toko WooCommerce Anda ke Tajo dengan plugin Tajo for WooCommerce: event keterlibatan, pengiriman andal, dan data pelanggan yang diminimalkan demi privasi. Dalam pengerjaan, belum terverifikasi secara menyeluruh."
url: https://tajo.io/in/docs/ecommerce-platforms/woocommerce/
markdown: https://tajo.io/in/docs/ecommerce-platforms/woocommerce.md
lang: id-ID
author: "Set Noa"
author_url: https://tajo.io/in/set-noa/
robots: noindex
---

Ajukan akses awal

Masukkan nama depan dan alamat email kerja Anda. Kami akan mengirim tautan untuk mengonfirmasi permintaan akses Tajo.

# Panduan Integrasi WooCommerce

[Set Noa](https://tajo.io/in/set-noa/)

Panduan ini menghubungkan toko WooCommerce ke Tajo. Integrasinya terdiri atas dua bagian yang bekerja bersama:

- **Plugin Tajo for WooCommerce**: merekam event keterlibatan (pesanan, keranjang, pengembalian dana, ulasan, pengiriman formulir) di dalam WordPress saat terjadi dan mengirimkannya ke Tajo melalui outbox andal yang ditandatangani. Pada 14 Oktober 2026 plugin ini diuji di situs lokal; pengiriman ke Tajo belum terverifikasi.
- **Koneksi WooCommerce REST**: Tajo membaca pelanggan, pesanan, produk, kupon, pengembalian dana, dan ulasan toko Anda untuk impor historis dan sinkronisasi berkelanjutan. Lihat [referensi konektor WooCommerce](https://tajo.io/in/docs/connectors/ecommerce/woocommerce/) untuk penyiapan REST saja.

Otomatisasi pemasarannya sendiri (email, SMS, WhatsApp melalui Brevo dan penyedia lain) dikonfigurasi di Tajo, bukan di plugin. Tugas plugin adalah mengeluarkan event yang tepercaya dari WordPress.

## Prasyarat

- **WordPress 6.3+** dengan akses admin
- **PHP 7.4+**
- **WooCommerce 7.0+** (plugin ini juga berjalan di situs WordPress tanpa WooCommerce, adapter commerce-nya cukup tetap nonaktif)
- **Akun Tajo** dengan koneksi WordPress yang sudah dibuat
- HTTPS pada endpoint Tajo (selalu terpenuhi pada Tajo terkelola)

## Langkah 1: Pasang plugin Tajo for WooCommerce

### Pemasangan manual

```bash
# Download the plugin
cd wp-content/plugins
wget https://tajo.io/downloads/woocommerce/tajo-woocommerce-latest.zip

# Verify and unzip
unzip tajo-woocommerce-latest.zip
```

Lalu aktifkan dari admin WordPress:

1. Buka **Plugins → Installed Plugins**
2. Cari “Tajo for WooCommerce”
3. Klik **Activate**

Anda juga dapat mengunggah berkas zip langsung melalui **Plugins → Add New → Upload Plugin**. Checksum SHA-256 diterbitkan bersama setiap rilis di [tajo.io/downloads/woocommerce/](https://tajo.io/downloads/woocommerce/tajo-woocommerce-1.0.0.zip.sha256). Plugin ini belum terdaftar di direktori WordPress.org; pemasangan manual adalah jalur yang didukung saat ini.

## Langkah 2: Konfigurasikan koneksi

Buka **WooCommerce → Tajo** (pada situs tanpa WooCommerce: **Settings → Tajo**) lalu masukkan tiga nilai dari koneksi WordPress Tajo Anda:

| Bidang | Nilai |
| --- | --- |
| **Endpoint Tajo** | URL webhook HTTPS yang ditampilkan di Tajo, misalnya `https://alto.tajo.io/api/connectors/wordpress/webhooks/engagement` |
| **Binding ID** | Binding ID koneksi tersebut dari Tajo |
| **Signing secret** | Secret bersama (32–256 karakter). Plugin membuat secret lokal yang kuat saat aktivasi; tempelkan ke Tajo, atau tempelkan secret dari Tajo di sini |

Tidak ada konstanta API key yang perlu ditambahkan ke `wp-config.php`. Event tetap aman mengantre di outbox lokal sampai ketiga nilai tersimpan.

Lalu verifikasi jalurnya dari ujung ke ujung:

1. Klik **Queue test event**, lalu **Process now**.
2. Tabel outbox pengiriman akan menampilkan event tersebut sebagai terkirim.
3. Di Tajo, pastikan event `connection.test` tiba pada koneksi WordPress.

## Apa yang dikirim plugin

Setiap event berupa amplop ringkas yang diminimalkan demi privasi dan ditandatangani dengan HMAC-SHA256. Hanya bidang identitas keterlibatan (email, telepon, ID lokal) beserta metadata event yang terbatas yang keluar dari WordPress, tidak pernah nama, alamat pos, alamat IP, user agent, isi komentar, bidang formulir sembarang, catatan pesanan, atau detail pembayaran.

### Event WooCommerce

| Hook | Event |
| --- | --- |
| `woocommerce_created_customer` / `woocommerce_update_customer` | `customer.created` / `customer.updated` |
| `woocommerce_new_product` / `woocommerce_update_product` | `product.created` / `product.updated` |
| `woocommerce_add_to_cart`, penghapusan item, penerapan/penghapusan kupon | `cart.updated` (dengan ringkasan keranjang untuk alur keranjang terbengkalai) |
| `woocommerce_cart_emptied` | `cart.emptied` |
| `woocommerce_new_order` / `woocommerce_update_order` | `order.placed` / `order.updated` |
| `woocommerce_order_status_changed` | `order.status_changed` (+ `order.fulfilled` saat selesai) |
| `woocommerce_payment_complete` | `order.paid` |
| `woocommerce_order_refunded` | `refund.created` |
| Pembaruan status WooCommerce Subscriptions | `subscription.status_changed` |

Event pesanan membawa nomor pesanan, status, mata uang, total, item baris, serta URL ulasan dan pemesanan ulang yang siap pakai, cukup untuk otomatisasi pascapembelian dan win-back tanpa panggilan API lanjutan.

### Event WordPress

- `contact.created` / `contact.updated` / `contact.deleted` untuk akun pengguna
- `content.published` / `content.updated` / `content.unpublished` untuk konten publik
- `comment.created` / `comment.status_changed` untuk komentar pengunjung dan ulasan produk (catatan pesanan internal WooCommerce, pingback, dan trackback tidak pernah dikirim)
- `form.submitted` untuk pengiriman **Contact Form 7**, **WPForms**, **Gravity Forms**, dan **Fluent Forms** yang berhasil; hanya bidang identitas email dan telepon bertipe serta metadata formulir yang diambil, bidang kiriman sembarang dibuang

## Keandalan: outbox pengiriman

Plugin tidak pernah menembakkan event ke Tajo langsung dari pemuatan halaman. Setiap event ditulis lebih dulu ke tabel outbox lokal, lalu dikirim oleh WP-Cron dengan:

- Backoff eksponensial yang dibatasi (maksimal 8 percobaan, menghormati `Retry-After`)
- Dead letter dengan tombol **Replay dead letters** sekali klik di admin
- Batas retensi sehingga endpoint yang tidak dapat dijangkau tidak pernah bisa menimbun data pribadi (terkirim: 7 hari; mengantre: 30 hari; dead letter: 30 hari setelah pembaruan terakhir)
- ID event yang idempoten, sehingga percobaan ulang dan replay tidak pernah menduplikasi di sisi hilir

Jika hosting Anda menonaktifkan WP-Cron (`DISABLE_WP_CRON`), panggil `wp-cron.php` dari penjadwal sungguhan minimal sekali per menit.

## Persetujuan tidak pernah disimpulkan

Pembuatan akun, checkout, pembelian, dan pengiriman formulir umum **tidak** diperlakukan sebagai persetujuan pemasaran. Event bawaan membawa daftar persetujuan kosong. Untuk mencatat persetujuan eksplisit (misalnya dari kotak centang newsletter yang dicentang), kirimkan melalui hook ekstensi:

```php
do_action(
    'tajo_engagement_emit',
    'consent.updated',
    array( 'email' => $email ),
    array( 'policyVersion' => '2026-07' ),
    array(
        array(
            'channel'  => 'email',
            'status'   => 'opt_in',        // or 'opt_out'
            'purpose'  => 'marketing',
            'source'   => 'newsletter_checkbox',
            'evidence' => array( 'formId' => 'newsletter-footer', 'field' => 'marketing_email' ),
        ),
    ),
    gmdate( 'c' )
);
```

Hook yang sama memungkinkan plugin atau tema mana pun mengirim event kustom; semuanya melewati sanitizer, outbox, dan tanda tangan yang sama.

## Langkah 3: Impor historis

Event plugin mencakup semuanya sejak pemasangan. Untuk riwayat yang mendahului plugin, koneksi WooCommerce REST milik Tajo mengimpor pelanggan, pesanan, produk, kupon, pengembalian dana, dan ulasan yang sudah ada, dikonfigurasi sepenuhnya di sisi Tajo dengan WooCommerce REST API key (**WooCommerce → Settings → Advanced → REST API**, izin baca). Lihat [referensi konektor WooCommerce](https://tajo.io/in/docs/connectors/ecommerce/woocommerce/) untuk detailnya.

## Privasi dan GDPR

- Plugin mendaftarkan diri ke **Tools → Export Personal Data** dan **Tools → Erase Personal Data** milik WordPress; event outbox tersimpan untuk email yang cocok akan diekspor atau dihapus secara lokal.
- Penghapusan dan pengiriman berbagi mutex fail-closed, sehingga penghapusan tidak pernah bisa melaporkan selesai saat sebuah payload sedang dikirim.
- Penghapusan lokal hanya mencakup outbox WordPress, ajukan permintaan yang setara di Tajo untuk data di sisi hilir.
- Menonaktifkan plugin akan menjeda pengiriman tetapi mempertahankan konfigurasi dan event yang mengantre; **menghapus** plugin akan menghilangkan outbox, pengaturan, secret, dan penjadwalan secara permanen.

## Kompatibilitas

- **HPOS**: plugin mendeklarasikan kompatibilitas WooCommerce High-Performance Order Storage dan hanya memakai objek CRUD serta hook publik.
- **WooCommerce Subscriptions**: perubahan status langganan direkam saat ekstensi tersebut aktif.
- **Multisite**: proses uninstall membersihkan setiap situs di jaringan.

## Referensi operasional

Penemuan server-ke-server dan kendali outbox tersedia bagi administrator melalui autentikasi Application Password:

| Metode | Rute | Tujuan |
| --- | --- | --- |
| `GET` | `/wp-json/tajo/v1/capabilities` | Versi plugin, adapter yang terdeteksi, inventaris event, kesehatan outbox |
| `GET` | `/wp-json/tajo/v1/outbox` | Jumlah item outbox (payload tidak pernah diekspos) |
| `POST` | `/wp-json/tajo/v1/outbox/process` | Proses satu batch segera |
| `POST` | `/wp-json/tajo/v1/outbox/replay` | Replay dead letter |

## Pemecahan masalah

| Gejala | Penyebab dan solusi |
| --- | --- |
| Event tetap “Queued” | Endpoint, binding ID, atau secret belum tersimpan, pengiriman dijeda sampai ketiganya dikonfigurasi |
| Event tetap “Retrying” | Endpoint Tajo tidak dapat dijangkau dari hosting Anda, atau WP-Cron tidak berjalan, periksa kolom error pada tabel outbox dan penyiapan cron Anda |
| Dead letter menumpuk | Error yang tidak dapat dicoba ulang (biasanya binding ID atau secret yang salah), perbaiki konfigurasinya lalu jalankan **Replay dead letters** |
| “Enter a valid HTTPS Tajo webhook endpoint” | Endpoint harus HTTPS tanpa kredensial yang tertanam |
| Event uji terkirim tetapi tidak ada apa pun di Tajo | Pastikan Anda menempelkan binding ID dari workspace dan koneksi Tajo yang sama dengan pemilik endpoint tersebut |

## Langkah berikutnya

- [Referensi konektor WooCommerce](https://tajo.io/in/docs/connectors/ecommerce/woocommerce/): sinkronisasi REST, detail tanda tangan webhook, kunci konfigurasi
- [Sinkronisasi pelanggan](https://tajo.io/in/docs/skills/data-sync/customer-sync/): memetakan pelanggan WooCommerce ke sistem pencatatan utama Anda
- Konfigurasikan otomatisasi keranjang terbengkalai, pascapembelian, dan win-back di Tajo memakai event `cart.updated`, `order.placed`, dan `order.fulfilled`
