AFFYNOR
À proposAssistanceQuestions fréquentesContact
DOCUMENTATION · CONNECTEUR WOOCOMMERCE

Le connecteur WooCommerce d'AFFYNOR

Synchronisez les commandes, le catalogue et les remboursements de votre boutique WooCommerce et attribuez les ventes à vos campagnes publicitaires (références de clic et ttclid de TikTok) avec réconciliation automatique.

1. Installation

1.1 Créer les consumer keys (permissions Read/Write)

WooCommerce → Réglages → Avancé → API REST → « Ajouter une clé ». Permissions : lecture/écriture (la création de webhooks exige l'écriture). La boutique doit être accessible en HTTPS.

1.2 Connecter depuis la plateforme

Dans Ma boutique → carte WooCommerce, saisissez l'URL de base de la boutique, la consumer key et le consumer secret. La connexion est validée instantanément et reste active.

1.3 Installer le snippet d'attribution

Le snippet comporte deux parties : le hook PHP (functions.php ou un code snippet) qui affiche la commande sur la page de remerciement, et le JavaScript (GTM ou le thème) qui enregistre la référence et déclenche l'événement d'achat.

add_action('woocommerce_thankyou', function ($order_id) {
  if (!$order_id) return;
  $order = wc_get_order($order_id);
  echo '<div id="affynor-order" data-affynor-order-id="' . esc_attr($order->get_id())
    . '" data-affynor-order-total="' . esc_attr($order->get_total())
    . '" data-affynor-order-currency="' . esc_attr($order->get_currency()) . '" style="display:none"></div>';
}, 10);
<script>!function(){var S="https://affynor.com",K="TU_SECRETO";function u(n){try{return new URLSearchParams(location.search).get(n)}catch(e){}}function c(n){try{return document.cookie.split("; ").find(function(x){return x.indexOf(n+"=")===0}).slice(n.length+1)}catch(e){}}var r=u("affynor_ref")||c("affynor_ref")||c("tiktok_ttclid");if(r){try{document.cookie="affynor_ref="+encodeURIComponent(r)+"; path=/; max-age=31536000"}catch(e){}}var b=u("fbclid")||c("affynor_fbc");if(b&&!/^fb[.]/.test(b)){b="fb.1."+Date.now()+"."+b}if(b){try{document.cookie="affynor_fbc="+encodeURIComponent(b)+"; path=/; max-age=31536000"}catch(e){}}function f(o){try{fetch(S+"/store/pixel",{method:"POST",headers:{"Content-Type":"application/json","x-affynor-pixel-secret":K},body:JSON.stringify({order_id:o.id,revenue_cents:Math.round(+o.total*100),currency:o.cur||"EUR",ref_code:r,fbclid:b})})}catch(e){}}window.affynorPixel=f;function a(){var e=document.getElementById("affynor-order");if(e)f({id:e.getAttribute("data-affynor-order-id"),total:e.getAttribute("data-affynor-order-total")||"0",cur:e.getAttribute("data-affynor-order-currency")});}if(/thank|gracias|success|pedido|confirm/i.test(location.pathname))setTimeout(a,400)}();</script>

Remplacez TU_SECRETO par le secret de pixel affiché sur la carte de la boutique connectée.

2. Attribution

Le paramètre affynor_ref de l'URL de l'annonce (ou le ttclid de TikTok) est stocké dans un cookie et joint à la commande sur la page de remerciement. Le snippet stocke aussi le fbclid de Meta — au format fb.1.<moment>.<fbclid> — pour que la conversion puisse être associée au clic sur Meta. L'événement reste en attente et est réconcilié automatiquement avec les commandes synchronisées : seules les ventes vérifiées sont attribuées à vos campagnes.

3. Synchronisation

Les webhooks WooCommerce (order.created, order.updated, product.created, product.updated) livrent les changements en temps réel ; un synchroniseur de sécurité parcourt la boutique toutes les 10 minutes — y compris les remboursements via GET /orders/{id}/refunds — pour qu'aucune commande ne reste non enregistrée même si le cron de WordPress échoue.

4. Remboursements

Les remboursements sont synchronisés automatiquement et déduits du revenu attribué du mois. Une commande entièrement remboursée est rejetée lors de la réconciliation : elle ne génère jamais de commission.

5. Modèle de tarification

15 % du revenu attribué du mois, avec un minimum de 129,90 €. Si le mois ne comporte aucune vente attribuée, le minimum ne s'applique pas (mois 1 gratuit). Le minimum est unique par marchand même avec plusieurs boutiques connectées (par exemple Shopify + WooCommerce).

6. Dépannage

Le webhook n'arrive pas

Le cron WordPress du marchand est désactivé ou en retard

Vérifier le cron dans WP ; entre-temps la synchro de sécurité (toutes les 10 min) couvre les commandes. Documenté dans la FAQ.
Signature de webhook refusée (hmac_ok=0)

La variante de signature (body contre delivery_url+body) ou le consumer secret ne correspondent pas

Recalculer le HMAC avec le consumer secret actuel et recréer le webhook avec ce secret.
WOO_HTTP_401/403 pendant la synchro

Consumer key révoquée ou sans permission de lecture/écriture

Régénérer la clé dans WooCommerce et reconnecter depuis la carte.
Commande avec ref non attribuée

Le snippet ne s'est pas déclenché (adblock, cookie, page autre que celle de remerciement)

Vérifier le snippet sur la page de remerciement ; l'événement reste PENDING jusqu'à ce que la synchro le réconcilie.

7. État et feuille de route

Le connecteur est en validation avec des marchands pilotes : connexion, attribution et synchronisation complètes (phases A–D) ; la validation sur des boutiques réelles (phase E) est en cours. La publication comme extension sur le marketplace WooCommerce est la prochaine étape.

AFFYNORIntelligence de performance
  • AwinRéseau d'affiliation
  • AdmitadRéseau d'affiliation
  • Google AdsPlateforme publicitaire
  • MetaPlateforme publicitaire
SiteÀ proposNormes partenairesContactAideDocumentationAssistanceQuestions fréquentesConditionsConfidentialitéConformitéSimulateur de campagne ↗
AvisAvisClassements SaaSHébergementSécurité et VPNPaie et RH

Les marques appartiennent à leurs propriétaires respectifs. Leur présence identifie les réseaux et plateformes utilisés par AFFYNOR ; elle n'implique ni parrainage ni certification.

Bêta privée · Aucun rendement garanti · Fonds client OFF