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
Предварителни условия
Преди да започнеш, увери се, че имаш:
- WordPress сайт с инсталиран и активиран WooCommerce плъгин
- Активиран WooCommerce REST API (Settings > Advanced > REST API)
- Генерирани API Consumer Key и Consumer Secret
- Сайтът ти трябва да използва HTTPS за API автентикация
- Акаунт в Brevo с API достъп
- Акаунт в Tajo с API credentials
Автентикация
REST API ключове
WooCommerce използва двойки Consumer Key и Consumer Secret за автентикация. Генерирай ги от WooCommerce > Settings > Advanced > REST API.
OAuth 1.0a (HTTPS сайтове)
curl https://yourstore.com/wp-json/wc/v3/orders \ -u "consumer_key:consumer_secret"Автентикация чрез query string (HTTPS)
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 storeawait 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 APIconst 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 paginationconst 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 headersconst totalPages = response.headers['x-wp-totalpages'];const totalItems = response.headers['x-wp-total'];Обработка на уебхук събития
// WooCommerce webhook handlerapp.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 productsconst 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) |
Добри практики
- Използвай уебхуци за синхронизация в реално време – Конфигурирай уебхуци в WooCommerce, вместо да правиш polling към API
- Верифицирай подписите на уебхуците – Винаги валидирай хедъра
X-WC-Webhook-Signature - Пагинирай всички списъчни заявки – Използвай параметрите
pageиper_page; проверявай хедъраX-WP-TotalPages - Използвай параметъра
_fields– Заявявай само нужните полета, за да намалиш размера на отговора и да подобриш производителността - Пакетни операции – Използвай пакетни крайни точки за масово създаване/обновяване/изтриване (до 100 елемента)
- Планирай големи синхронизации – Първоначалните пълни синхронизации да се правят в непикови часове, за да се избегне натоварване на сървъра
- Активирай 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