Shopify Connector
Shopify Connector
Kết nối cửa hàng Shopify của bạn với Brevo để đồng bộ hóa đầy đủ dữ liệu khách hàng, khôi phục giỏ hàng bị bỏ rơi và tự động hóa chiến dịch marketing.
Tổng quan
| Thuộc tính | Giá trị |
|---|---|
| Nền tảng | Shopify |
| Danh mục | Thương mại điện tử |
| Độ phức tạp thiết lập | Dễ |
| Tích hợp chính thức | Có |
| Dữ liệu đồng bộ | Khách hàng, Đơn hàng, Sản phẩm, Giỏ hàng, Sự kiện |
| Skill khả dụng | 12 |
Tính năng
- Đồng bộ khách hàng thời gian thực - Dữ liệu khách hàng được đồng bộ ngay lập tức tới liên hệ Brevo
- Theo dõi đơn hàng - Sự kiện đơn hàng cho flow sau mua
- Đồng bộ danh mục sản phẩm - Sản phẩm có sẵn cho gợi ý
- Khôi phục giỏ hàng bị bỏ rơi - Theo dõi và khôi phục giỏ hàng bị bỏ rơi
- Hành vi duyệt web - Theo dõi lượt xem trang và sự quan tâm sản phẩm
- Hỗ trợ đa cửa hàng - Kết nối nhiều cửa hàng Shopify
Điều kiện tiên quyết
Trước khi bắt đầu, hãy đảm bảo bạn có:
- Một cửa hàng Shopify với quyền admin
- Một tài khoản Brevo có API access
- Một tài khoản Tajo
Cài đặt
Phương án 1: Shopify App Store (Khuyến nghị)
- Truy cập ứng dụng Tajo trên Shopify App Store
- Nhấp “Add app”
- Cấp các quyền được yêu cầu
- Kết nối tài khoản Brevo của bạn
Phương án 2: Cài đặt thủ công
Bước 1: Tạo một Shopify App
- Vào Shopify admin → Settings → Apps and sales channels
- Nhấp “Develop apps” → “Create an app”
- Đặt tên “Tajo Integration”
Bước 2: Cấu hình API Scopes
Bật các scope sau:
read_customerswrite_customersread_ordersread_productsread_checkoutswrite_script_tagsBước 3: Cài đặt App
# Using Tajo CLItajo connectors install shopify \ --shop-url your-store.myshopify.com \ --api-key $SHOPIFY_API_KEY \ --api-secret $SHOPIFY_API_SECRETBước 4: Cấu hình Webhook
Tajo tự động đăng ký các webhook sau:
| Webhook | Mục đích |
|---|---|
customers/create | Đồng bộ khách hàng mới |
customers/update | Thay đổi dữ liệu khách hàng |
customers/delete | Xóa khách hàng |
orders/create | Sự kiện đặt đơn hàng |
orders/updated | Thay đổi trạng thái đơn hàng |
checkouts/create | Giỏ hàng được tạo |
checkouts/update | Giỏ hàng được cập nhật |
Cấu hình
Thiết lập cơ bản
connectors: shopify: enabled: true shop_url: "your-store.myshopify.com" api_version: "2024-01"
# Data sync options sync: customers: true orders: true products: true carts: true inventory: false # Optional
# List assignment lists: all_customers: 5 buyers: 6 abandoned_cart: 7Ánh xạ trường
Ánh xạ các trường Shopify tới thuộc tính liên hệ Brevo:
Ánh xạ mặc định
| Parameter | Type | Description |
|---|---|---|
email required | string | Email khách hàng (định danh duy nhất) |
first_name optional | string | Ánh xạ sang thuộc tính FIRSTNAME |
last_name optional | string | Ánh xạ sang thuộc tính LASTNAME |
phone optional | string | Ánh xạ sang thuộc tính SMS cho WhatsApp/SMS |
accepts_marketing optional | boolean | Điều khiển trạng thái đăng ký |
orders_count optional | integer | Tổng số đơn hàng |
total_spent optional | number | Giá trị vòng đời khách hàng |
tags optional | array | Tag khách hàng từ Shopify |
Ánh xạ thuộc tính tùy chỉnh
field_mapping: # Standard fields email: email first_name: FIRSTNAME last_name: LASTNAME phone: SMS
# E-commerce metrics orders_count: ORDER_COUNT total_spent: TOTAL_SPENT last_order_date: LAST_ORDER_DATE
# Custom fields customer_type: CUSTOMER_TYPE preferred_language: LANGUAGE loyalty_tier: VIP_TIER
# Computed fields average_order_value: AOV days_since_last_order: RECENCYĐồng bộ sản phẩm
Đồng bộ sản phẩm cho gợi ý email:
sync: products: enabled: true include_variants: true include_images: true categories_as_tags: true
# Filter products filter: status: active exclude_tags: ["hidden", "wholesale-only"]Theo dõi tồn kho
Bật đồng bộ mức tồn kho:
sync: inventory: enabled: true low_stock_threshold: 10 out_of_stock_events: trueSự kiện
Sự kiện khách hàng
| Sự kiện | Trigger | Tình huống sử dụng |
|---|---|---|
customer_created | Đăng ký khách hàng mới | Chuỗi chào mừng |
customer_updated | Thay đổi hồ sơ | Đồng bộ dữ liệu |
customer_tags_added | Gán tag | Cập nhật phân khúc |
Sự kiện đơn hàng
| Sự kiện | Trigger | Tình huống sử dụng |
|---|---|---|
order_placed | Hoàn tất checkout | Xác nhận đơn hàng |
order_fulfilled | Đã giao hàng | Thông báo giao hàng |
order_cancelled | Đơn hàng bị hủy | Email hủy đơn |
order_refunded | Đã hoàn tiền | Xác nhận hoàn tiền |
Sự kiện giỏ hàng
| Sự kiện | Trigger | Tình huống sử dụng |
|---|---|---|
cart_created | Thêm sản phẩm vào giỏ | Theo dõi duyệt web |
cart_updated | Giỏ hàng được sửa | Theo dõi giá trị giỏ hàng |
cart_abandoned | Không checkout trong 30 phút | Email khôi phục |
Skill được kích hoạt
Shopify Connector kích hoạt các skill sau:
| Skill | Mô tả |
|---|---|
| Customer Sync | Đồng bộ khách hàng thời gian thực |
| Order Events | Theo dõi vòng đời đơn hàng |
| Abandoned Cart | Email khôi phục giỏ hàng |
| Welcome Series | Onboarding khách hàng mới |
| Post-Purchase | Theo dõi sau đơn hàng |
| Win-Back | Tái kích hoạt khách hàng không hoạt động |
| Browse Abandonment | Theo dõi sự quan tâm sản phẩm |
| Replenishment | Nhắc đặt lại |
Ví dụ code
Khởi tạo Connector
import { TajoClient } from '@tajo/sdk';
const tajo = new TajoClient({ apiKey: process.env.TAJO_API_KEY, brevoApiKey: process.env.BREVO_API_KEY});
// Connect Shopify storeawait tajo.connectors.connect('shopify', { shopUrl: 'your-store.myshopify.com', apiKey: process.env.SHOPIFY_API_KEY, apiSecret: process.env.SHOPIFY_API_SECRET});Chạy đồng bộ ban đầu
// Full historical syncawait tajo.connectors.sync('shopify', { type: 'full', resources: ['customers', 'orders', 'products'], since: '2023-01-01'});
// Check sync statusconst status = await tajo.connectors.status('shopify');console.log(status);// {// connected: true,// lastSync: '2024-01-15T10:30:00Z',// customersCount: 15420,// ordersCount: 8234,// productsCount: 342// }Theo dõi sự kiện giỏ hàng
Thêm script Tajo vào theme Shopify của bạn:
<!-- Add to theme.liquid before </head> -->{% if customer %}<script> window.tajoConfig = { customerId: "{{ customer.id }}", customerEmail: "{{ customer.email }}", customerName: "{{ customer.first_name }}" };</script>{% endif %}<script src="https://cdn.tajo.io/shopify.js"></script>Webhook Handler tùy chỉnh
// Handle Shopify webhooks manuallyapp.post('/webhooks/shopify', async (req, res) => { const hmac = req.get('X-Shopify-Hmac-SHA256');
// Verify webhook signature if (!verifyShopifyWebhook(req.body, hmac)) { return res.status(401).send('Unauthorized'); }
const topic = req.get('X-Shopify-Topic');
// Forward to Tajo await tajo.connectors.handleWebhook('shopify', { topic, payload: req.body });
res.status(200).send('OK');});Giám sát
Metrics Dashboard
Giám sát kết nối Shopify của bạn trong Tajo dashboard:
- Trạng thái đồng bộ: Tình trạng kết nối thời gian thực
- Khách hàng đã đồng bộ: Tổng liên hệ từ Shopify
- Đơn hàng được theo dõi: Sự kiện đơn hàng đã xử lý
- Khôi phục giỏ hàng: Hiệu quả giỏ hàng bị bỏ rơi
- Tỷ lệ lỗi: Các lần đồng bộ thất bại
Webhook Logs
Xem trạng thái phân phối webhook:
tajo connectors logs shopify --type webhook --last 24hLịch sử đồng bộ
Kiểm tra các lần đồng bộ trước đây:
tajo connectors history shopify --limit 10Xử lý sự cố
Vấn đề thường gặp
API Rate Limits
Shopify có giới hạn API 2 request/giây. Hãy sử dụng đồng bộ theo lô cho các import lịch sử lớn.
| Vấn đề | Nguyên nhân | Giải pháp |
|---|---|---|
| Webhook không nhận được | Quyền app | Cài đặt lại app với scope đúng |
| Khách hàng không được đồng bộ | Thiếu email | Shopify yêu cầu email cho khách hàng |
| Thiếu sản phẩm | Trạng thái sản phẩm | Kiểm tra sản phẩm ở trạng thái “active” |
| Giỏ hàng không được theo dõi | Script chưa load | Xác minh script trong theme.liquid |
Chế độ Debug
Bật ghi log chi tiết:
connectors: shopify: debug: true log_level: verbose log_webhooks: trueKiểm tra kết nối
tajo connectors test shopify# ✓ API connection successful# ✓ Webhooks registered# ✓ Products accessible# ✓ Customers readable# ✓ Orders readablePhương pháp tốt nhất
- Bắt đầu với cửa hàng thử nghiệm - Sử dụng development store trước
- Chạy đồng bộ ban đầu ngoài giờ cao điểm - Đồng bộ lớn có thể chậm
- Ánh xạ thuộc tính tùy chỉnh - Đừng chỉ dựa vào ánh xạ mặc định
- Bật theo dõi giỏ hàng - Quan trọng cho khôi phục giỏ hàng bị bỏ rơi
- Giám sát tình trạng webhook - Thiết lập cảnh báo cho phân phối thất bại
- Sử dụng import theo lô - Cho dữ liệu lịch sử trên 10.000 bản ghi
Bảo mật
- OAuth 2.0 - Xác thực dựa trên token an toàn
- Xác minh webhook - Kiểm tra chữ ký HMAC
- Lưu trữ mã hóa - Thông tin API được mã hóa khi lưu
- Truy cập có scope - Chỉ các quyền tối thiểu cần thiết