WooCommerce-koppling
WooCommerce-koppling
Anslut din WooCommerce-butik till Brevo via Tajo för komplett synkronisering av e-handelsdata. Utnyttja WooCommerce REST API för att synka kunder, ordrar, produkter och rabattkoder för målinriktade marknadsföringskampanjer och automatiserade flöden.
Översikt
| Egenskap | Värde |
|---|---|
| Plattform | WooCommerce (WordPress) |
| Kategori | E-handel |
| Installationskomplexitet | Medel |
| Officiell integration | Nej |
| Data som synkas | Kunder, ordrar, produkter, rabattkoder |
| Tillgängliga skills | 10 |
Funktioner
- Kundsynk - Synkronisering av kunddata till Brevo-kontakter i realtid
- Orderspårning - Spårning av hela orderns livscykel för flöden efter köp
- Synk av produktkatalog - Synka produkter och varianter för e-postrekommendationer
- Hantering av rabattkoder - Synka rabattkoder för kampanjer
- Webhook-stöd - Uppdateringar i realtid via WooCommerce-webhooks
- Övergivna kundvagnar - Spåra och återvinn övergivna kundvagnar
- Flersidigt stöd - Anslut WordPress multisite-installationer av WooCommerce
- Anpassade metafält - Mappa anpassade WooCommerce-metadata till Brevo-attribut
Förutsättningar
Innan du börjar, se till att du har:
- En WordPress-sajt med WooCommerce-pluginet installerat och aktiverat
- WooCommerce REST API aktiverat (Settings > Advanced > REST API)
- Consumer Key och Consumer Secret genererade
- Din sajt måste använda HTTPS för API-autentisering
- Ett Brevo-konto med API-åtkomst
- Ett Tajo-konto med API-uppgifter
Autentisering
REST API-nycklar
WooCommerce använder par av Consumer Key och Consumer Secret för autentisering. Generera dessa under WooCommerce > Settings > Advanced > REST API.
OAuth 1.0a (HTTPS-sajter)
curl https://yourstore.com/wp-json/wc/v3/orders \ -u "consumer_key:consumer_secret"Autentisering via query-sträng (HTTPS)
curl "https://yourstore.com/wp-json/wc/v3/orders?consumer_key=ck_xxx&consumer_secret=cs_xxx"Behörighetsnivåer
| Behörighet | Åtkomst |
|---|---|
| Read | Endast visa resurser |
| Write | Skapa och redigera resurser |
| Read/Write | Fullständig CRUD-åtkomst |
Konfiguration
Grundläggande konfiguration
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: 52Fältmappning för kunder
Mappa WooCommerce-kundfält till Brevo-attribut:
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_CATEGORYWebhook-konfiguration
Registrera webhooks under 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-ändpunkter
| Metod | Ändpunkt | Beskrivning |
|---|---|---|
GET | /wc/v3/customers | Lista kunder |
POST | /wc/v3/customers | Skapa en kund |
GET | /wc/v3/customers/{id} | Hämta en kund |
PUT | /wc/v3/customers/{id} | Uppdatera en kund |
GET | /wc/v3/orders | Lista ordrar |
POST | /wc/v3/orders | Skapa en order |
GET | /wc/v3/orders/{id} | Hämta en order |
GET | /wc/v3/products | Lista produkter |
GET | /wc/v3/products/{id} | Hämta en produkt |
GET | /wc/v3/products/{id}/variations | Lista produktvarianter |
GET | /wc/v3/coupons | Lista rabattkoder |
GET | /wc/v3/reports/sales | Hämta försäljningsrapporter |
GET | /wc/v3/reports/top_sellers | Hämta bästsäljare |
POST | /wc/v3/webhooks | Skapa en webhook |
Kodexempel
Initiera WooCommerce-kopplingen
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});Hämta och synka kunder
// 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'];Hantera webhook-händelser
// 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-operationer
// 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]});API-gränser
WooCommerce tvingar inte själv fram några API-gränser, men den underliggande WordPress-servern och ditt webbhotell kan göra det:
| Faktor | Typisk gräns | Detaljer |
|---|---|---|
| Delat webbhotell | 50–100 req/min | Varierar mellan leverantörer |
| Managed WP-hosting | 200–500 req/min | WP Engine, Kinsta med flera |
| Egen server | Ingen hård gräns | Begränsas av serverresurser |
| Per sida | Max 100 poster | Standard är 10 |
| Batchoperationer | 100 objekt per batch | Create, update eller delete |
Serverprestanda
Stora WooCommerce-butiker kan uppleva långsamma API-svar. Använd paginering, begränsa fält med parametern _fields och schemalägg massynkar utanför högtrafiktid.
Felsökning
| Problem | Orsak | Lösning |
|---|---|---|
401 Unauthorized | Ogiltiga API-nycklar | Generera om Consumer Key/Secret i WooCommerce-inställningarna |
403 Forbidden | Otillräckliga behörigheter | Sätt API-nyckeln till Read/Write-åtkomst |
| SSL-certifikatfel | Ogiltigt SSL på sajten | Se till att du har ett giltigt SSL-certifikat; sätt verify_ssl: false endast för tester |
| Webhooks aktiveras inte | WordPress-cron inaktiverat | Aktivera WP-Cron eller konfigurera cron på serversidan |
| Långsamma API-svar | Stor databas | Optimera WordPress-databasen och använd parametern _fields |
| Anpassade fält saknas | Metadata ej exponerad | Använd fältet meta_data för att komma åt anpassade metadata |
| Pagineringsproblem | Standardsidstorlek | Ange parametern per_page explicit (max 100) |
Bästa praxis
- Använd webhooks för realtidssynk - Konfigurera WooCommerce-webhooks istället för att pollla API:et
- Verifiera webhook-signaturer - Validera alltid headern
X-WC-Webhook-Signature - Paginera alla listförfrågningar - Använd parametrarna
pageochper_page; kontrollera headernX-WP-TotalPages - Använd parametern
_fields- Begär endast de fält du behöver för att minska svarsstorleken och förbättra prestandan - Batchoperationer - Använd batch-ändpunkter för massoperationer (upp till 100 objekt)
- Schemalägg stora synkar - Kör initiala fulla synkar utanför högtrafiktid för att undvika att belasta servern
- Aktivera HTTPS - WooCommerce API kräver HTTPS för OAuth-autentisering
Säkerhet
- OAuth 1.0a - Säker autentisering via Consumer Key/Secret-par
- HMAC-webhook-signaturer - Verifiering av SHA-256-signatur för inkommande webhooks
- HTTPS krävs - API:et kräver TLS-kryptering för autentisering
- Scope-baserad åtkomst - API-nycklar kan sättas till Read, Write eller Read/Write
- WordPress-säkerhet - Drar nytta av säkerhetsuppdateringar i WordPress-kärnan
- PCI-överväganden - Betalningsdata hanteras av WooCommerce-betaltjänster och exponeras inte via API:et