WooCommerce 커넥터

WooCommerce 커넥터

WooCommerce 스토어를 Tajo를 통해 Brevo에 연결하여 완전한 이커머스 데이터 동기화를 구현하세요. WooCommerce REST API를 활용해 고객, 주문, 제품, 쿠폰 데이터를 동기화하면 타겟팅된 마케팅 캠페인과 자동화된 워크플로우를 구성할 수 있습니다.

개요

속성
플랫폼WooCommerce (WordPress)
카테고리이커머스
설정 난이도보통
공식 통합아니오
동기화되는 데이터고객, 주문, 제품, 쿠폰
사용 가능한 스킬10

주요 기능

  • 고객 동기화 - Brevo 연락처로의 실시간 고객 데이터 동기화
  • 주문 추적 - 구매 후 플로우를 위한 전체 주문 라이프사이클 이벤트 추적
  • 제품 카탈로그 동기화 - 이메일 추천을 위한 제품 및 variation 동기화
  • 쿠폰 관리 - 프로모션 캠페인을 위한 쿠폰 코드 동기화
  • 웹훅 지원 - WooCommerce 웹훅을 통한 실시간 업데이트
  • 장바구니 이탈 - 이탈한 장바구니 추적 및 복구
  • 다중 사이트 지원 - WordPress 멀티사이트 WooCommerce 설치 지원
  • 커스텀 메타 필드 - WooCommerce 커스텀 메타를 Brevo 속성에 매핑

사전 준비 사항

시작하기 전에 다음 사항이 준비되어 있어야 합니다.

  1. WooCommerce 플러그인이 설치 및 활성화된 WordPress 사이트
  2. WooCommerce REST API 활성화 (Settings > Advanced > REST API)
  3. 생성된 API Consumer Key 및 Consumer Secret
  4. API 인증을 위해 사이트가 HTTPS를 사용해야 합니다
  5. API 액세스가 가능한 Brevo 계정
  6. API 자격 증명이 있는 Tajo 계정

인증

REST API 키

WooCommerce는 인증에 Consumer Key와 Consumer Secret 쌍을 사용합니다. WooCommerce > Settings > Advanced > REST API에서 이를 생성할 수 있습니다.

OAuth 1.0a (HTTPS 사이트)

Terminal window
curl https://yourstore.com/wp-json/wc/v3/orders \
-u "consumer_key:consumer_secret"

쿼리 문자열 인증 (HTTPS)

Terminal window
curl "https://yourstore.com/wp-json/wc/v3/orders?consumer_key=ck_xxx&consumer_secret=cs_xxx"

권한 수준

권한액세스
Read리소스 조회만 가능
Write리소스 생성 및 편집
Read/Write전체 CRUD 액세스

설정

기본 설정

connectors:
woocommerce:
enabled: true
store_url: "https://yourstore.com"
consumer_key: "ck_your_consumer_key"
consumer_secret: "cs_your_consumer_secret"
api_version: "wc/v3"
verify_ssl: true
# Data sync options
sync:
customers: true
orders: true
products: true
coupons: true
# Brevo list assignment
lists:
all_customers: 50
buyers: 51
abandoned_cart: 52

고객 필드 매핑

WooCommerce 고객 필드를 Brevo 속성에 매핑합니다.

customer_mapping:
email: email
first_name: FIRSTNAME
last_name: LASTNAME
billing.phone: SMS
billing.company: COMPANY
billing.city: CITY
billing.state: STATE
billing.country: COUNTRY
billing.postcode: ZIP
# E-commerce metrics (computed)
orders_count: ORDER_COUNT
total_spent: TOTAL_SPENT
date_created: SIGNUP_DATE
# Meta fields
meta_data.loyalty_points: LOYALTY_POINTS
meta_data.preferred_category: PREF_CATEGORY

웹훅 설정

WooCommerce > Settings > Advanced > Webhooks에서 웹훅을 등록합니다.

webhooks:
- topic: "customer.created"
event: "customer_created"
- topic: "customer.updated"
event: "customer_updated"
- topic: "order.created"
event: "order_placed"
- topic: "order.updated"
event: "order_updated"
- topic: "order.completed"
event: "order_fulfilled"
- topic: "order.refunded"
event: "order_refunded"
- topic: "coupon.created"
event: "coupon_created"
- topic: "product.created"
event: "product_added"
- topic: "product.updated"
event: "product_updated"

API 엔드포인트

Method엔드포인트설명
GET/wc/v3/customers고객 목록 조회
POST/wc/v3/customers고객 생성
GET/wc/v3/customers/{id}고객 조회
PUT/wc/v3/customers/{id}고객 업데이트
GET/wc/v3/orders주문 목록 조회
POST/wc/v3/orders주문 생성
GET/wc/v3/orders/{id}주문 조회
GET/wc/v3/products제품 목록 조회
GET/wc/v3/products/{id}제품 조회
GET/wc/v3/products/{id}/variations제품 variation 목록
GET/wc/v3/coupons쿠폰 목록 조회
GET/wc/v3/reports/sales판매 리포트 조회
GET/wc/v3/reports/top_sellers베스트셀러 조회
POST/wc/v3/webhooks웹훅 생성

코드 예제

WooCommerce 커넥터 초기화

import { TajoClient } from '@tajo/sdk';
const tajo = new TajoClient({
apiKey: process.env.TAJO_API_KEY,
brevoApiKey: process.env.BREVO_API_KEY
});
// Connect WooCommerce store
await tajo.connectors.connect('woocommerce', {
storeUrl: 'https://yourstore.com',
consumerKey: process.env.WC_CONSUMER_KEY,
consumerSecret: process.env.WC_CONSUMER_SECRET
});

고객 가져오기 및 동기화

// Fetch customers using WooCommerce REST API
const WooCommerce = require('@woocommerce/woocommerce-rest-api').default;
const api = new WooCommerce({
url: 'https://yourstore.com',
consumerKey: process.env.WC_CONSUMER_KEY,
consumerSecret: process.env.WC_CONSUMER_SECRET,
version: 'wc/v3'
});
// List customers with pagination
const response = await api.get('customers', {
per_page: 100,
page: 1,
orderby: 'registered_date',
order: 'desc'
});
const customers = response.data;
// [{ id, email, first_name, last_name, billing, shipping, ... }]
// Pagination info from headers
const totalPages = response.headers['x-wp-totalpages'];
const totalItems = response.headers['x-wp-total'];

웹훅 이벤트 처리

// WooCommerce webhook handler
app.post('/webhooks/woocommerce', async (req, res) => {
const topic = req.headers['x-wc-webhook-topic'];
const signature = req.headers['x-wc-webhook-signature'];
// Verify webhook signature
const expectedSignature = crypto
.createHmac('sha256', WEBHOOK_SECRET)
.update(JSON.stringify(req.body))
.digest('base64');
if (signature !== expectedSignature) {
return res.status(401).send('Invalid signature');
}
// Forward to Tajo
await tajo.connectors.handleWebhook('woocommerce', {
topic,
payload: req.body
});
res.status(200).send('OK');
});

배치 작업

// Batch create, update, and delete products
const batchResponse = await api.post('products/batch', {
create: [
{ name: 'New Product', type: 'simple', regular_price: '19.99' }
],
update: [
{ id: 123, regular_price: '24.99' }
],
delete: [456]
});

요청 제한

WooCommerce 자체는 API 요청 제한을 두지 않지만, 기반이 되는 WordPress 서버와 호스팅 제공업체가 제한을 부과할 수 있습니다.

요인일반적인 제한세부 사항
공유 호스팅50-100회/분호스트에 따라 다름
관리형 WP 호스팅200-500회/분WP Engine, Kinsta 등
자체 호스팅엄격한 제한 없음서버 리소스에 의해 제한
페이지당최대 100개 레코드기본값은 10
배치 작업배치당 100개 항목생성, 업데이트 또는 삭제

서버 성능

대규모 WooCommerce 스토어는 느린 API 응답을 경험할 수 있습니다. 페이지네이션을 사용하고, _fields 파라미터로 필드를 제한하며, 대량 동기화는 비혼잡 시간에 예약하세요.

문제 해결

문제원인해결 방법
401 Unauthorized유효하지 않은 API 키WooCommerce 설정에서 Consumer Key/Secret을 재생성하세요
403 Forbidden불충분한 권한API 키를 Read/Write 액세스로 설정하세요
SSL 인증서 오류사이트에 유효하지 않은 SSL유효한 SSL 인증서를 확인하세요. 테스트용으로만 verify_ssl: false 설정
웹훅이 실행되지 않음WordPress cron 비활성화WP-Cron을 활성화하거나 서버 수준 cron을 구성하세요
느린 API 응답대규모 데이터베이스WordPress 데이터베이스를 최적화하고 _fields 파라미터를 사용하세요
커스텀 필드 누락메타 데이터가 노출되지 않음커스텀 메타에 접근하려면 meta_data 필드를 사용하세요
페이지네이션 문제기본 페이지 크기per_page 파라미터를 명시적으로 설정하세요 (최대 100)

모범 사례

  1. 실시간 동기화에 웹훅 사용 - API 폴링 대신 WooCommerce 웹훅을 구성하세요
  2. 웹훅 서명 검증 - 항상 X-WC-Webhook-Signature 헤더를 검증하세요
  3. 모든 목록 요청 페이지네이션 - pageper_page 파라미터를 사용하고 X-WP-TotalPages 헤더를 확인하세요
  4. _fields 파라미터 사용 - 필요한 필드만 요청하여 응답 크기를 줄이고 성능을 향상하세요
  5. 배치 작업 - 대량 생성/업데이트/삭제 작업에 배치 엔드포인트를 사용하세요 (최대 100개 항목)
  6. 대규모 동기화 예약 - 서버 부담을 피하기 위해 초기 전체 동기화는 비혼잡 시간에 실행하세요
  7. HTTPS 활성화 - WooCommerce API는 OAuth 인증을 위해 HTTPS가 필요합니다

보안

  • OAuth 1.0a - Consumer Key/Secret 쌍을 통한 안전한 인증
  • HMAC 웹훅 서명 - 수신 웹훅에 대한 SHA-256 서명 검증
  • HTTPS 필수 - API는 인증을 위해 TLS 암호화가 필요합니다
  • 권한 스코핑 - API 키를 Read, Write 또는 Read/Write로 설정할 수 있습니다
  • WordPress 보안 - WordPress 코어 보안 업데이트의 혜택을 받습니다
  • PCI 고려사항 - 결제 데이터는 WooCommerce 결제 게이트웨이가 처리하며 API를 통해 노출되지 않습니다

관련 리소스

Subscribe to updates

developer-docs

Drop your email or phone number — we'll send you what matters next.

AI 어시스턴트

안녕하세요! 문서에 대해 무엇이든 물어보세요.

Brevo로 무료로 시작하기