Guide d'intégration WooCommerce

Ce guide complet vous explique comment intégrer Tajo à votre boutique WooCommerce pour débloquer de puissantes capacités d’engagement client, de programmes de fidélité et d’automatisation du marketing.

Vue d’ensemble

L’intégration Tajo-WooCommerce vous permet de :

  • Synchroniser les données client automatiquement depuis votre boutique WooCommerce
  • Suivre les commandes et les produits pour un marketing personnalisé
  • Gérer des programmes de fidélité avec points, niveaux et récompenses
  • Automatiser les campagnes marketing via Brevo (email, SMS, WhatsApp)
  • Segmenter les clients par comportement d’achat et engagement
  • Récupérer les paniers abandonnés avec des séquences automatisées

Prérequis

Avant de démarrer l’intégration, assurez-vous d’avoir :

  • Site WordPress avec WooCommerce installé (version 7.0+)
  • Compte Tajo avec un abonnement actif
  • Compte Brevo (optionnel, pour l’automatisation du marketing)
  • Accès administrateur à votre site WordPress
  • PHP 7.4+ et WordPress 6.0+

Étape 1 : Installer le plugin Tajo

Depuis le répertoire de plugins WordPress

  1. Accédez à votre tableau de bord WordPress
  2. Naviguez vers Extensions → Ajouter
  3. Recherchez “Tajo for WooCommerce”
  4. Cliquez sur Installer maintenant puis Activer
  5. Allez dans WooCommerce → Tajo pour configurer

Installation manuelle

Si vous préférez une configuration manuelle :

Terminal window
# Download the plugin
cd wp-content/plugins
wget https://downloads.tajo.io/woocommerce/tajo-woocommerce-latest.zip
# Unzip and install
unzip tajo-woocommerce-latest.zip

Activez ensuite depuis l’administration WordPress :

  1. Allez dans Extensions → Extensions installées
  2. Trouvez “Tajo for WooCommerce”
  3. Cliquez sur Activer

Configuration

Naviguez vers WooCommerce → Tajo → Paramètres et entrez vos identifiants :

// These settings are configured via the admin panel
// or can be added to wp-config.php for advanced setups
define('TAJO_API_KEY', 'your_tajo_api_key');
define('TAJO_API_SECRET', 'your_tajo_api_secret');
define('BREVO_API_KEY', 'your_brevo_api_key'); // Optional

Étape 2 : Configurer la synchronisation des données

Paramètres de synchronisation des clients

Dans votre tableau de bord Tajo, configurez quelles données client synchroniser :

{
"sync_settings": {
"customers": {
"enabled": true,
"sync_frequency": "real-time",
"fields": [
"email",
"first_name",
"last_name",
"billing_phone",
"accepts_marketing",
"total_spent",
"order_count",
"date_created",
"billing_address",
"shipping_address"
]
},
"orders": {
"enabled": true,
"sync_frequency": "real-time",
"include_line_items": true,
"include_shipping": true
},
"products": {
"enabled": true,
"sync_frequency": "hourly",
"include_variations": true,
"include_images": true
}
}
}

Hooks WooCommerce

Tajo se connecte automatiquement à ces actions WooCommerce :

HookObjectif
woocommerce_created_customerSynchroniser les nouveaux clients vers Tajo & Brevo
woocommerce_update_customerMaintenir les profils clients à jour
woocommerce_new_orderSuivre les achats, attribuer des points de fidélité
woocommerce_order_status_completedDéclencher des campagnes post-achat
woocommerce_order_status_processingEnvoyer la confirmation de commande
woocommerce_cart_updatedSuivre le panier pour l’abandon
woocommerce_update_productMaintenir le catalogue produits synchronisé

Import initial des données

Pour les boutiques existantes, importez les données historiques :

<?php
// Import existing customers to Tajo
function tajo_import_existing_customers() {
$customers = get_users([
'role' => 'customer',
'number' => -1
]);
foreach ($customers as $customer) {
$customer_data = new WC_Customer($customer->ID);
tajo_sync_customer([
'email' => $customer_data->get_email(),
'firstName' => $customer_data->get_first_name(),
'lastName' => $customer_data->get_last_name(),
'phone' => $customer_data->get_billing_phone(),
'totalSpent' => $customer_data->get_total_spent(),
'ordersCount' => $customer_data->get_order_count(),
'source' => 'woocommerce',
'externalId' => $customer->ID
]);
}
}
// Run import
tajo_import_existing_customers();

Étape 3 : Configurer le programme de fidélité

Configurer le système de points

Définissez comment les clients gagnent des points dans WooCommerce → Tajo → Fidélité :

<?php
// Points configuration
$points_config = [
// Points per dollar spent
'purchase_points' => [
'enabled' => true,
'rate' => 1, // 1 point per $1
'rounding_mode' => 'floor'
],
// Bonus actions
'bonus_points' => [
'account_creation' => 100,
'first_purchase' => 200,
'review_submitted' => 50,
'referral_made' => 500,
'birthday_bonus' => 100,
'newsletter_signup' => 25
],
// Tier multipliers
'tier_multipliers' => [
'Bronze' => 1.0,
'Silver' => 1.25,
'Gold' => 1.5,
'Platinum' => 2.0
]
];

Shortcodes du widget de fidélité

Affichez les informations de fidélité sur votre site :

// Customer points balance
[tajo_points_balance]
// Points history
[tajo_points_history limit="10"]
// Current tier status
[tajo_loyalty_tier]
// Available rewards
[tajo_rewards_catalog]
// Referral link
[tajo_referral_link]

Définir les niveaux de fidélité

<?php
$loyalty_tiers = [
[
'name' => 'Bronze',
'min_points' => 0,
'benefits' => [
'1 point per $1 spent',
'Birthday bonus points',
'Member-only promotions'
]
],
[
'name' => 'Silver',
'min_points' => 1000,
'benefits' => [
'1.25x points multiplier',
'Free shipping on orders $50+',
'Early access to sales'
]
],
[
'name' => 'Gold',
'min_points' => 5000,
'benefits' => [
'1.5x points multiplier',
'Free shipping on all orders',
'Exclusive product access',
'Priority customer support'
]
],
[
'name' => 'Platinum',
'min_points' => 15000,
'benefits' => [
'2x points multiplier',
'Free express shipping',
'VIP experiences',
'Personal shopping assistant',
'Annual gift'
]
]
];

Créer le catalogue de récompenses

<?php
$rewards = [
[
'id' => 'discount_5',
'name' => '$5 Off',
'points_cost' => 500,
'type' => 'fixed_cart',
'value' => 5,
'min_purchase' => 25
],
[
'id' => 'discount_10',
'name' => '$10 Off',
'points_cost' => 900,
'type' => 'fixed_cart',
'value' => 10,
'min_purchase' => 50
],
[
'id' => 'percent_10',
'name' => '10% Off',
'points_cost' => 750,
'type' => 'percent',
'value' => 10,
'max_discount' => 50
],
[
'id' => 'free_shipping',
'name' => 'Free Shipping',
'points_cost' => 300,
'type' => 'free_shipping'
]
];

Étape 4 : Récupération de panier abandonné

Configurer le suivi du panier

<?php
// Track cart updates
add_action('woocommerce_cart_updated', 'tajo_track_cart');
function tajo_track_cart() {
if (!is_user_logged_in() && !WC()->session->get('tajo_guest_email')) {
return; // Need email for tracking
}
$cart = WC()->cart;
if ($cart->is_empty()) {
return;
}
$customer_email = is_user_logged_in()
? wp_get_current_user()->user_email
: WC()->session->get('tajo_guest_email');
$cart_items = [];
foreach ($cart->get_cart() as $item) {
$product = $item['data'];
$cart_items[] = [
'productId' => $item['product_id'],
'variantId' => $item['variation_id'] ?: null,
'title' => $product->get_name(),
'quantity' => $item['quantity'],
'price' => $product->get_price(),
'image' => wp_get_attachment_url($product->get_image_id())
];
}
tajo_api_call('carts/track', [
'email' => $customer_email,
'cartToken' => WC()->session->get_customer_id(),
'items' => $cart_items,
'totalPrice' => $cart->get_total('edit'),
'currency' => get_woocommerce_currency(),
'checkoutUrl' => wc_get_checkout_url()
]);
}

Capturer l’email des visiteurs invités

<?php
// Capture email at checkout for guest recovery
add_action('woocommerce_after_checkout_billing_form', 'tajo_capture_guest_email_js');
function tajo_capture_guest_email_js() {
?>
<script>
jQuery(function($) {
$('#billing_email').on('blur', function() {
var email = $(this).val();
if (email && email.includes('@')) {
$.post('<?php echo admin_url('admin-ajax.php'); ?>', {
action: 'tajo_capture_email',
email: email,
nonce: '<?php echo wp_create_nonce('tajo_email_capture'); ?>'
});
}
});
});
</script>
<?php
}
add_action('wp_ajax_nopriv_tajo_capture_email', 'tajo_capture_email_handler');
function tajo_capture_email_handler() {
check_ajax_referer('tajo_email_capture', 'nonce');
WC()->session->set('tajo_guest_email', sanitize_email($_POST['email']));
wp_die();
}

Configurer la séquence de récupération

{
"abandoned_cart_sequence": {
"trigger": {
"event": "cart_abandoned",
"delay": "1 hour"
},
"messages": [
{
"delay": "1 hour",
"channel": "email",
"template": "cart_reminder_1",
"subject": "You left something behind!"
},
{
"delay": "24 hours",
"channel": "email",
"template": "cart_reminder_2",
"subject": "Your cart is waiting - 10% off inside"
},
{
"delay": "72 hours",
"channel": "sms",
"template": "cart_sms_final",
"message": "Last chance! Your cart expires soon. Complete your order: {{checkout_url}}"
}
],
"exit_conditions": [
"order_completed",
"cart_emptied",
"unsubscribed"
]
}
}

Étape 5 : Automatisation du marketing avec Brevo

Segments clients

Créez des segments basés sur les données WooCommerce :

<?php
$woo_segments = [
// Purchase behavior
[
'name' => 'First-Time Buyers',
'conditions' => ['order_count' => 1]
],
[
'name' => 'Repeat Customers',
'conditions' => ['order_count' => ['$gte' => 2]]
],
[
'name' => 'VIP Customers',
'conditions' => ['total_spent' => ['$gte' => 500]]
],
[
'name' => 'At-Risk Customers',
'conditions' => [
'last_order_date' => ['$lt' => '-90 days'],
'order_count' => ['$gte' => 2]
]
],
// Product interest
[
'name' => 'Category: Electronics',
'conditions' => ['purchased_categories' => ['$contains' => 'Electronics']]
],
// Engagement
[
'name' => 'Abandoned Cart',
'conditions' => ['has_abandoned_cart' => true]
]
];

Déclencheurs de campagnes automatisées

<?php
// Order completed - award points and trigger campaigns
add_action('woocommerce_order_status_completed', 'tajo_order_completed', 10, 1);
function tajo_order_completed($order_id) {
$order = wc_get_order($order_id);
$customer_email = $order->get_billing_email();
// Get or create customer in Tajo
$customer = tajo_get_customer($customer_email);
// Calculate and award points
$points_earned = tajo_calculate_points($order, $customer);
tajo_award_points($customer['id'], $points_earned, [
'reason' => 'purchase',
'orderId' => $order_id
]);
// Send to Brevo for campaigns
brevo_track_event($customer_email, 'order_completed', [
'order_id' => $order_id,
'order_total' => $order->get_total(),
'points_earned' => $points_earned,
'loyalty_tier' => $customer['loyaltyTier'],
'products' => array_map(function($item) {
return $item->get_name();
}, $order->get_items())
]);
}
// Post-purchase review request
$review_request_campaign = [
'trigger' => 'order_completed',
'delay' => '14 days', // Give time for delivery
'template' => 'review_request',
'conditions' => [
'customer_opted_in' => true
]
];
// Win-back campaign
$win_back_campaign = [
'trigger' => 'customer_inactive',
'conditions' => [
'last_order_date' => '-90 days',
'order_count' => ['$gte' => 1]
],
'sequence' => [
['delay' => '0', 'template' => 'we_miss_you', 'offer' => '15% off'],
['delay' => '7 days', 'template' => 'win_back_2', 'offer' => '20% off'],
['delay' => '14 days', 'template' => 'final_offer', 'offer' => '25% off']
]
];

Étape 6 : Recommandations de produits

Configurer le moteur de recommandations

<?php
$recommendation_config = [
'algorithms' => [
[
'name' => 'frequently_bought_together',
'weight' => 0.3
],
[
'name' => 'similar_products',
'weight' => 0.25
],
[
'name' => 'customer_also_viewed',
'weight' => 0.2
],
[
'name' => 'trending_in_category',
'weight' => 0.15
],
[
'name' => 'personalized_for_you',
'weight' => 0.1
]
],
'filters' => [
'exclude_purchased' => true,
'exclude_out_of_stock' => true,
'min_rating' => 3.5
]
];

Afficher les recommandations

// Shortcode for product recommendations
[tajo_recommendations limit="4" algorithm="frequently_bought_together"]
// Or use in templates
<?php
$recommendations = tajo_get_recommendations([
'customer_id' => get_current_user_id(),
'limit' => 4,
'context' => 'product_page',
'current_product' => get_the_ID()
]);
foreach ($recommendations as $product_id) {
$product = wc_get_product($product_id);
// Display product
}
?>

Étape 7 : Analytics et rapports

Tableau de bord des métriques clés

Accédez aux analytics dans WooCommerce → Tajo → Analytics ou via l’API :

<?php
$dashboard_metrics = [
// Customer metrics
'customers' => [
'total' => tajo_analytics_count('customers'),
'new_this_month' => tajo_analytics_count('customers', [
'created_at' => ['$gte' => 'this_month']
]),
'returning_rate' => tajo_analytics_returning_customer_rate()
],
// Revenue metrics
'revenue' => [
'total' => tajo_analytics_sum('orders.total'),
'average_order_value' => tajo_analytics_avg('orders.total'),
'revenue_per_customer' => tajo_analytics_revenue_per_customer()
],
// Loyalty metrics
'loyalty' => [
'active_members' => tajo_analytics_count('loyalty_members', [
'status' => 'active'
]),
'points_issued' => tajo_analytics_sum('points.awarded'),
'points_redeemed' => tajo_analytics_sum('points.redeemed'),
'redemption_rate' => tajo_analytics_points_redemption_rate()
],
// Campaign metrics
'campaigns' => [
'emails_sent' => brevo_analytics_emails_sent('this_month'),
'open_rate' => brevo_analytics_open_rate('this_month'),
'click_rate' => brevo_analytics_click_rate('this_month'),
'revenue_attributed' => tajo_analytics_campaign_revenue('this_month')
]
];

Dépannage

Problèmes courants

Conflits de plugins

<?php
// Check for conflicting plugins
function tajo_check_conflicts() {
$conflicts = [];
$problematic_plugins = [
'some-caching-plugin/plugin.php',
'aggressive-minifier/plugin.php'
];
foreach ($problematic_plugins as $plugin) {
if (is_plugin_active($plugin)) {
$conflicts[] = $plugin;
}
}
return $conflicts;
}

Vérification des webhooks

<?php
// Verify webhook signature from Tajo
function tajo_verify_webhook($payload, $signature) {
$expected = hash_hmac(
'sha256',
$payload,
get_option('tajo_webhook_secret')
);
return hash_equals($expected, $signature);
}

Problèmes de synchronisation

<?php
// Debug sync issues
function tajo_debug_sync($customer_id) {
$customer = new WC_Customer($customer_id);
error_log('Tajo Sync Debug for Customer ' . $customer_id);
error_log('Email: ' . $customer->get_email());
error_log('Total Spent: ' . $customer->get_total_spent());
error_log('Order Count: ' . $customer->get_order_count());
// Test API connection
$response = tajo_api_call('ping');
error_log('API Response: ' . print_r($response, true));
}

Limitation de débit

<?php
// Implement rate limiting for API calls
function tajo_rate_limited_call($endpoint, $data, $retries = 3) {
for ($i = 0; $i < $retries; $i++) {
$response = tajo_api_call($endpoint, $data);
if (!is_wp_error($response)) {
return $response;
}
if ($response->get_error_code() === 'rate_limited') {
$delay = pow(2, $i) * 1000000; // Exponential backoff in microseconds
usleep($delay);
continue;
}
break;
}
return $response;
}

Prochaines étapes

  1. Configurer l’intégration Brevo pour les campagnes email/SMS
  2. Configurer les webhooks pour les événements en temps réel
  3. Créer des segments clients pour le marketing ciblé
  4. Créer des modèles email pour les campagnes automatisées

Support

Assistant AI

Bonjour ! Posez-moi vos questions sur la documentation.

Commencez gratuitement avec Brevo