---
title: "คู่มือการเชื่อมต่อ WooCommerce | Tajo"
description: "เชื่อมต่อร้าน WooCommerce ของคุณเข้ากับ Tajo ด้วยปลั๊กอิน Tajo for WooCommerce ทั้งอีเวนต์การมีส่วนร่วม การส่งที่เชื่อถือได้ และข้อมูลลูกค้าที่จำกัดไว้เท่าที่จำเป็น กำลังพัฒนา และยังไม่ได้รับการยืนยันแบบครบวงจร"
url: https://tajo.io/th/docs/ecommerce-platforms/woocommerce/
markdown: https://tajo.io/th/docs/ecommerce-platforms/woocommerce.md
lang: th-TH
author: "Set Noa"
author_url: https://tajo.io/th/set-noa/
robots: noindex
---

ขอสิทธิ์ใช้งานล่วงหน้า

กรอกชื่อและที่อยู่อีเมลที่ทำงานของคุณ เราจะส่งลิงก์เพื่อยืนยันคำขอเข้าใช้งาน Tajo ทางอีเมล

# คู่มือการเชื่อมต่อ WooCommerce

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

คู่มือนี้เชื่อมต่อร้าน WooCommerce เข้ากับ Tajo การเชื่อมต่อประกอบด้วยสองส่วนที่ทำงานร่วมกัน

- **ปลั๊กอิน Tajo for WooCommerce**: เก็บอีเวนต์การมีส่วนร่วม (ออเดอร์ ตะกร้า การคืนเงิน รีวิว การส่งฟอร์ม) ภายใน WordPress ทันทีที่เกิดขึ้น และส่งไปยัง Tajo ผ่าน outbox ที่คงทนและมีลายเซ็น เมื่อวันที่ 14 ตุลาคม 2026 ปลั๊กอินได้รับการทดสอบบนเว็บไซต์ในเครื่อง แต่การส่งเข้าสู่ Tajo ยังไม่ได้รับการยืนยัน
- **การเชื่อมต่อ WooCommerce REST**: Tajo อ่านข้อมูลลูกค้า ออเดอร์ สินค้า คูปอง การคืนเงิน และรีวิวจากร้านของคุณ เพื่อนำเข้าข้อมูลย้อนหลังและซิงค์ต่อเนื่อง ดูการตั้งค่าแบบใช้ REST อย่างเดียวได้ที่ [เอกสารอ้างอิงคอนเน็กเตอร์ WooCommerce](https://tajo.io/th/docs/connectors/ecommerce/woocommerce/)

ตัวการตลาดอัตโนมัติเอง (อีเมล SMS WhatsApp ผ่าน Brevo และผู้ให้บริการรายอื่น) ตั้งค่าใน Tajo ไม่ใช่ในปลั๊กอิน หน้าที่ของปลั๊กอินคือนำอีเวนต์ที่เชื่อถือได้ออกมาจาก WordPress

## ข้อกำหนดเบื้องต้น

- **WordPress 6.3+** พร้อมสิทธิ์ผู้ดูแลระบบ
- **PHP 7.4+**
- **WooCommerce 7.0+** (ปลั๊กอินใช้ได้กับเว็บไซต์ WordPress ที่ไม่มี WooCommerce ด้วย โดยอะแดปเตอร์ฝั่งการค้าจะไม่ทำงานเท่านั้น)
- **บัญชี Tajo** ที่สร้างการเชื่อมต่อ WordPress ไว้แล้ว
- HTTPS บนปลายทางของ Tajo (เป็นจริงเสมอสำหรับ Tajo แบบโฮสต์)

## ขั้นตอนที่ 1: ติดตั้งปลั๊กอิน Tajo for WooCommerce

### การติดตั้งด้วยตนเอง

```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
```

จากนั้นเปิดใช้งานจากหน้าผู้ดูแลระบบ WordPress

1. ไปที่ **Plugins → Installed Plugins**
2. ค้นหา “Tajo for WooCommerce”
3. คลิก **Activate**

คุณอัปโหลดไฟล์ zip ได้โดยตรงผ่าน **Plugins → Add New → Upload Plugin** เช่นกัน แต่ละรุ่นจะเผยแพร่ค่า SHA-256 checksum ควบคู่กันไว้ที่ [tajo.io/downloads/woocommerce/](https://tajo.io/downloads/woocommerce/tajo-woocommerce-1.0.0.zip.sha256) ปลั๊กอินยังไม่ถูกจดทะเบียนในไดเรกทอรี WordPress.org การติดตั้งด้วยตนเองจึงเป็นวิธีที่รองรับในวันนี้

## ขั้นตอนที่ 2: ตั้งค่าการเชื่อมต่อ

ไปที่ **WooCommerce → Tajo** (บนเว็บไซต์ที่ไม่มี WooCommerce: **Settings → Tajo**) แล้วกรอกค่าสามอย่างจากการเชื่อมต่อ WordPress ของ Tajo

| ฟิลด์ | ค่า |
| --- | --- |
| **ปลายทาง Tajo** | URL ของ webhook แบบ HTTPS ที่แสดงใน Tajo เช่น `https://alto.tajo.io/api/connectors/wordpress/webhooks/engagement` |
| **Binding ID** | Binding ID ของการเชื่อมต่อจาก Tajo |
| **คีย์ลับสำหรับลงลายเซ็น** | คีย์ลับที่ใช้ร่วมกัน (32 ถึง 256 อักขระ) ปลั๊กอินจะสร้างคีย์ลับในเครื่องที่แข็งแรงให้ตอนเปิดใช้งาน ให้วางคีย์นั้นลงใน Tajo หรือวางคีย์จาก Tajo ลงที่นี่ |

ไม่มีค่าคงที่ของ API key ที่ต้องเพิ่มใน `wp-config.php` อีเวนต์จะรออยู่ใน outbox ในเครื่องอย่างปลอดภัยจนกว่าจะบันทึกครบทั้งสามค่า

จากนั้นตรวจสอบเส้นทางทั้งหมดตั้งแต่ต้นจนจบ

1. คลิก **Queue test event** แล้วคลิก **Process now**
2. ตาราง outbox สำหรับการส่งควรแสดงว่าอีเวนต์ถูกส่งแล้ว
3. ใน Tajo ให้ยืนยันว่าอีเวนต์ `connection.test` มาถึงการเชื่อมต่อ WordPress แล้ว

## ปลั๊กอินส่งอะไรบ้าง

ทุกอีเวนต์คือซองข้อมูลขนาดกะทัดรัดที่จำกัดข้อมูลส่วนบุคคลไว้เท่าที่จำเป็น และลงลายเซ็นด้วย HMAC-SHA256 สิ่งที่ออกจาก WordPress มีเพียงฟิลด์ระบุตัวตนสำหรับการมีส่วนร่วม (อีเมล เบอร์โทร ไอดีในระบบ) และเมตาดาต้าของอีเวนต์ที่จำกัดขอบเขตไว้ ไม่มีชื่อ ที่อยู่ทางไปรษณีย์ IP address user agent เนื้อหาความคิดเห็น ฟิลด์ฟอร์มตามอำเภอใจ โน้ตของออเดอร์ หรือข้อมูลการชำระเงิน

### อีเวนต์ของ WooCommerce

| Hook | อีเวนต์ |
| --- | --- |
| `woocommerce_created_customer` / `woocommerce_update_customer` | `customer.created` / `customer.updated` |
| `woocommerce_new_product` / `woocommerce_update_product` | `product.created` / `product.updated` |
| `woocommerce_add_to_cart` การลบสินค้าออก การใช้หรือยกเลิกคูปอง | `cart.updated` (พร้อมสรุปตะกร้าสำหรับโฟลว์ตะกร้าที่ถูกทิ้ง) |
| `woocommerce_cart_emptied` | `cart.emptied` |
| `woocommerce_new_order` / `woocommerce_update_order` | `order.placed` / `order.updated` |
| `woocommerce_order_status_changed` | `order.status_changed` (พร้อม `order.fulfilled` เมื่อเสร็จสิ้น) |
| `woocommerce_payment_complete` | `order.paid` |
| `woocommerce_order_refunded` | `refund.created` |
| การอัปเดตสถานะของ WooCommerce Subscriptions | `subscription.status_changed` |

อีเวนต์ของออเดอร์มีทั้งหมายเลขออเดอร์ สถานะ สกุลเงิน ยอดรวม รายการสินค้า และ URL สำหรับรีวิวและสั่งซื้อซ้ำที่พร้อมใช้งาน ซึ่งเพียงพอสำหรับการทำงานอัตโนมัติหลังการซื้อและการดึงลูกค้ากลับ โดยไม่ต้องเรียก API เพิ่ม

### อีเวนต์ของ WordPress

- `contact.created` / `contact.updated` / `contact.deleted` สำหรับบัญชีผู้ใช้
- `content.published` / `content.updated` / `content.unpublished` สำหรับเนื้อหาสาธารณะ
- `comment.created` / `comment.status_changed` สำหรับความคิดเห็นของผู้เยี่ยมชมและรีวิวสินค้า (โน้ตออเดอร์ภายในของ WooCommerce pingback และ trackback จะไม่ถูกส่งออกไป)
- `form.submitted` สำหรับการส่งฟอร์มที่สำเร็จของ **Contact Form 7**, **WPForms**, **Gravity Forms** และ **Fluent Forms** โดยดึงเฉพาะฟิลด์ระบุตัวตนประเภทอีเมลและเบอร์โทรกับเมตาดาต้าของฟอร์มเท่านั้น ฟิลด์อื่นที่ส่งมาจะถูกทิ้ง

## ความน่าเชื่อถือ: outbox สำหรับการส่ง

ปลั๊กอินจะไม่ยิงอีเวนต์ไปยัง Tajo โดยตรงจากการโหลดหน้าเว็บ ทุกอีเวนต์จะถูกเขียนลงตาราง outbox ในเครื่องก่อน แล้วให้ WP-Cron เป็นผู้ส่ง พร้อมด้วย

- การหน่วงเวลาแบบทวีคูณที่มีขอบเขต (สูงสุด 8 ครั้ง และเคารพค่า `Retry-After`)
- dead letter พร้อมปุ่ม **Replay dead letters** คลิกเดียวในหน้าผู้ดูแลระบบ
- ขีดจำกัดการเก็บข้อมูล เพื่อไม่ให้ปลายทางที่ติดต่อไม่ได้สะสมข้อมูลส่วนบุคคลไว้ (ส่งแล้ว: 7 วัน, รอในคิว: 30 วัน, dead letter: 30 วันหลังการอัปเดตครั้งล่าสุด)
- ไอดีอีเวนต์แบบ idempotent การลองใหม่และการส่งซ้ำจึงไม่สร้างข้อมูลซ้ำที่ปลายทาง

หากผู้ให้บริการโฮสต์ของคุณปิด WP-Cron (`DISABLE_WP_CRON`) ให้เรียก `wp-cron.php` จากตัวตั้งเวลาจริงอย่างน้อยนาทีละครั้ง

## ความยินยอมจะไม่ถูกอนุมาน

การสร้างบัญชี การชำระเงิน การซื้อ และการส่งฟอร์มทั่วไป **ไม่** ถือเป็นความยินยอมทางการตลาด อีเวนต์ที่มีมาให้ในตัวจะมีรายการความยินยอมว่างเปล่า หากต้องการบันทึกความยินยอมที่ชัดแจ้ง (เช่น จากช่องติ๊กสมัครรับจดหมายข่าว) ให้ส่งผ่าน hook สำหรับส่วนขยาย

```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 เดียวกันนี้ให้ปลั๊กอินหรือธีมใดก็ได้ส่งอีเวนต์ของตัวเอง ทุกอย่างผ่านตัวกรองข้อมูล outbox และลายเซ็นชุดเดียวกัน

## ขั้นตอนที่ 3: การนำเข้าข้อมูลย้อนหลัง

อีเวนต์จากปลั๊กอินครอบคลุมทุกอย่างนับจากการติดตั้งเป็นต้นไป สำหรับประวัติที่เกิดขึ้นก่อนติดตั้งปลั๊กอิน การเชื่อมต่อ WooCommerce REST ของ Tajo จะนำเข้าลูกค้า ออเดอร์ สินค้า คูปอง การคืนเงิน และรีวิวที่มีอยู่เดิม โดยตั้งค่าทั้งหมดที่ฝั่ง Tajo ด้วย WooCommerce REST API key (**WooCommerce → Settings → Advanced → REST API** สิทธิ์อ่าน) ดูรายละเอียดได้ที่ [เอกสารอ้างอิงคอนเน็กเตอร์ WooCommerce](https://tajo.io/th/docs/connectors/ecommerce/woocommerce/)

## ความเป็นส่วนตัวและ GDPR

- ปลั๊กอินลงทะเบียนกับ **Tools → Export Personal Data** และ **Tools → Erase Personal Data** ของ WordPress อีเวนต์ใน outbox ที่ยังเก็บไว้และตรงกับอีเมลที่ระบุจะถูกส่งออกหรือลบในเครื่อง
- การลบข้อมูลและการส่งใช้ mutex ร่วมกันแบบปิดกั้นไว้ก่อนเมื่อเกิดข้อผิดพลาด การลบจึงไม่มีทางรายงานว่าเสร็จสิ้นขณะที่เพย์โหลดกำลังถูกส่งอยู่
- การลบในเครื่องครอบคลุมเฉพาะ outbox ของ WordPress เท่านั้น สำหรับข้อมูลปลายทางให้ส่งคำขอที่ตรงกันใน Tajo
- การปิดใช้งานจะหยุดการส่งชั่วคราวแต่ยังเก็บการตั้งค่าและอีเวนต์ที่รออยู่ ส่วนการ **ลบ** ปลั๊กอินจะเอา outbox การตั้งค่า คีย์ลับ และตารางเวลาออกอย่างถาวร

## ความเข้ากันได้

- **HPOS**: ปลั๊กอินประกาศความเข้ากันได้กับ WooCommerce High-Performance Order Storage และใช้เฉพาะออบเจ็กต์ CRUD กับ hook สาธารณะเท่านั้น
- **WooCommerce Subscriptions**: การเปลี่ยนสถานะการสมัครสมาชิกจะถูกเก็บเมื่อส่วนขยายนี้ทำงานอยู่
- **Multisite**: การถอนการติดตั้งจะล้างข้อมูลทุกเว็บไซต์ในเครือข่าย

## เอกสารอ้างอิงสำหรับการปฏิบัติงาน

การค้นหาความสามารถแบบเซิร์ฟเวอร์ถึงเซิร์ฟเวอร์และการควบคุม outbox เปิดให้ผู้ดูแลระบบใช้งานผ่านการยืนยันตัวตนด้วย Application Password

| เมธอด | เส้นทาง | วัตถุประสงค์ |
| --- | --- | --- |
| `GET` | `/wp-json/tajo/v1/capabilities` | เวอร์ชันปลั๊กอิน อะแดปเตอร์ที่ตรวจพบ รายการอีเวนต์ สุขภาพของ outbox |
| `GET` | `/wp-json/tajo/v1/outbox` | จำนวนรายการใน outbox (ไม่มีการเปิดเผยเพย์โหลด) |
| `POST` | `/wp-json/tajo/v1/outbox/process` | ประมวลผลชุดข้อมูลทันที |
| `POST` | `/wp-json/tajo/v1/outbox/replay` | ส่ง dead letter ซ้ำ |

## การแก้ไขปัญหา

| อาการ | สาเหตุและวิธีแก้ |
| --- | --- |
| อีเวนต์ค้างอยู่ที่ “Queued” | ยังไม่ได้บันทึกปลายทาง Binding ID หรือคีย์ลับ การส่งจะหยุดไว้จนกว่าจะตั้งค่าครบทั้งสามอย่าง |
| อีเวนต์ค้างอยู่ที่ “Retrying” | โฮสต์ของคุณติดต่อปลายทาง Tajo ไม่ได้ หรือ WP-Cron ไม่ทำงาน ให้ตรวจสอบคอลัมน์ error ในตาราง outbox และการตั้งค่า cron ของคุณ |
| dead letter สะสมมากขึ้น | ข้อผิดพลาดที่ลองใหม่ไม่ได้ (มักเป็น Binding ID หรือคีย์ลับที่ผิด) ให้แก้การตั้งค่าแล้วใช้ **Replay dead letters** |
| “Enter a valid HTTPS Tajo webhook endpoint” | ปลายทางต้องเป็น HTTPS และต้องไม่มีข้อมูลรับรองฝังอยู่ใน URL |
| อีเวนต์ทดสอบถูกส่งแล้วแต่ไม่มีอะไรใน Tajo | ตรวจสอบว่าคุณวาง Binding ID จากเวิร์กสเปซและการเชื่อมต่อเดียวกันกับที่ปลายทางนั้นสังกัดอยู่ |

## ขั้นตอนถัดไป

- [เอกสารอ้างอิงคอนเน็กเตอร์ WooCommerce](https://tajo.io/th/docs/connectors/ecommerce/woocommerce/): การซิงค์ REST รายละเอียดลายเซ็น webhook คีย์การตั้งค่า
- [การซิงค์ลูกค้า](https://tajo.io/th/docs/skills/data-sync/customer-sync/): การแมปลูกค้า WooCommerce เข้าสู่ระบบบันทึกข้อมูลหลักของคุณ
- ตั้งค่าการทำงานอัตโนมัติสำหรับตะกร้าที่ถูกทิ้ง หลังการซื้อ และการดึงลูกค้ากลับใน Tajo โดยใช้อีเวนต์ `cart.updated`, `order.placed` และ `order.fulfilled`
