WooCommerce конектор

WooCommerce конектор

Свържи магазина си в WooCommerce с Brevo през Tajo за пълна синхронизация на e-commerce данни. Използвай WooCommerce REST API, за да синхронизираш клиенти, поръчки, продукти и купони за таргетирани маркетингови кампании и автоматизирани работни потоци.

Преглед

СвойствоСтойност
ПлатформаWooCommerce (WordPress)
КатегорияE-commerce
Сложност на настройкаСредна
Официална интеграцияНе
Синхронизирани данниКлиенти, поръчки, продукти, купони
Налични скилове10

Функции

  • Синхронизация на клиенти – Синхронизация на клиентски данни в реално време към контактите в Brevo
  • Проследяване на поръчки – Пълно проследяване на събития от жизнения цикъл на поръчките за потоци след покупка
  • Синхронизация на продуктов каталог – Синхронизирай продукти и вариации за имейл препоръки
  • Управление на купони – Синхронизирай кодове за купони за промоционални кампании
  • Поддръжка на уебхуци – Обновления в реално време чрез уебхуците на WooCommerce
  • Изоставена кошница – Проследяване и възстановяване на изоставени кошници
  • Поддръжка на multi-site – Свързване на WordPress multisite WooCommerce инсталации
  • Персонализирани meta полета – Мапвай персонализирани meta данни в WooCommerce към атрибути в Brevo

Предварителни условия

Преди да започнеш, увери се, че имаш:

  1. WordPress сайт с инсталиран и активиран WooCommerce плъгин
  2. Активиран WooCommerce REST API (Settings > Advanced > REST API)
  3. Генерирани API Consumer Key и Consumer Secret
  4. Сайтът ти трябва да използва HTTPS за API автентикация
  5. Акаунт в Brevo с API достъп
  6. Акаунт в Tajo с API credentials

Автентикация

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"

Автентикация чрез query string (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 крайни точки

МетодКрайна точкаОписание
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Списък с вариации на продукт
GET/wc/v3/couponsСписък с купони
GET/wc/v3/reports/salesПолучаване на отчети за продажби
GET/wc/v3/reports/top_sellersПолучаване на 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 заявки/минЗависи от хоста
Managed WP хостинг200-500 заявки/минWP Engine, Kinsta и др.
Self-hostedБез твърд лимитОграничен от сървърните ресурси
На страница100 записа максПо подразбиране е 10
Пакетни операции100 артикула/пакетСъздаване, обновяване или изтриване

Производителност на сървъра

Големите WooCommerce магазини може да имат бавни API отговори. Използвай пагинация, ограничавай полетата с параметъра _fields и планирай масови синхронизации в непиковите часове.

Отстраняване на проблеми

ПроблемПричинаРешение
401 UnauthorizedНевалидни API ключовеРегенерирай Consumer Key/Secret в настройките на WooCommerce
403 ForbiddenНедостатъчни разрешенияЗадай API ключа на Read/Write достъп
SSL certificate грешкиНевалиден SSL на сайтаУвери се, че SSL сертификатът е валиден; задай verify_ssl: false само за тестове
Уебхуците не се задействатWordPress cron деактивиранАктивирай WP-Cron или конфигурирай cron на сървърно ниво
Бавни API отговориГоляма база данниОптимизирай WordPress базата, използвай параметъра _fields
Липсват персонализирани полетаMeta данните не са изложениИзползвай полето meta_data за достъп до персонализирани meta
Проблеми с пагинациятаРазмер на страницата по подразбиранеЗадай изрично параметъра per_page (макс. 100)

Добри практики

  1. Използвай уебхуци за синхронизация в реално време – Конфигурирай уебхуци в WooCommerce, вместо да правиш polling към API
  2. Верифицирай подписите на уебхуците – Винаги валидирай хедъра X-WC-Webhook-Signature
  3. Пагинирай всички списъчни заявки – Използвай параметрите page и per_page; проверявай хедъра X-WP-TotalPages
  4. Използвай параметъра _fields – Заявявай само нужните полета, за да намалиш размера на отговора и да подобриш производителността
  5. Пакетни операции – Използвай пакетни крайни точки за масово създаване/обновяване/изтриване (до 100 елемента)
  6. Планирай големи синхронизации – Първоначалните пълни синхронизации да се правят в непикови часове, за да се избегне натоварване на сървъра
  7. Активирай HTTPS – WooCommerce API изисква HTTPS за OAuth автентикация

Сигурност

  • OAuth 1.0a – Сигурна автентикация чрез двойки Consumer Key/Secret
  • HMAC подписи на уебхуци – SHA-256 верификация на подпис за входящи уебхуци
  • Изисква се HTTPS – API изисква TLS криптиране за автентикация
  • Обхват на разрешения – API ключовете могат да се задават на Read, Write или Read/Write
  • WordPress сигурност – Печели от security обновленията на WordPress core
  • PCI съображения – Данните за плащания се обработват от payment gateways на WooCommerce, не се излагат през API

Свързани ресурси

Subscribe to updates

developer-docs

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

AI асистент

Здравейте! Попитайте ме за документацията.

Започнете безплатно с Brevo