AFFYNOR
AboutSupportFAQContact
DOCUMENTACIÓN · CONECTOR WOOCOMMERCE

Conector WooCommerce de AFFYNOR

Sincroniza pedidos, catálogo y devoluciones de tu tienda WooCommerce y atribuye las ventas a tus campañas de publicidad (refs de clic y ttclid de TikTok) con reconciliación automática.

1. Instalación

1.1 Crear consumer keys (permisos Read/Write)

WooCommerce → Ajustes → Avanzado → API REST → «Añadir clave». Permisos: lectura/escritura (el alta de webhooks requiere escritura). La tienda debe ser accesible por HTTPS.

1.2 Conectar desde la plataforma

En Mi Tienda → tarjeta WooCommerce, introduce la URL base de la tienda, la consumer key y el consumer secret. La conexión se valida al instante y queda activa.

1.3 Instalar el snippet de atribución

El snippet tiene dos partes: el hook PHP (functions.php o un code snippet) que pinta el pedido en la página de gracias, y el JavaScript (GTM o el theme) que registra la referencia y dispara el evento de compra.

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>

Sustituye TU_SECRETO por el secreto de píxel que se muestra en la tarjeta de la tienda conectada.

2. Atribución

El parámetro affynor_ref de la URL del anuncio (o el ttclid de TikTok) se guarda en una cookie y se adjunta al pedido en la página de gracias. El snippet guarda también el fbclid de Meta —en formato fb.1.<momento>.<fbclid>— para que la conversión pueda emparejarse con el clic en Meta. El evento queda en estado pendiente y se reconcilia automáticamente contra los pedidos sincronizados: solo las ventas verificadas se atribuyen a tus campañas.

3. Sincronización

Los webhooks de WooCommerce (order.created, order.updated, product.created, product.updated) entregan los cambios en tiempo real; un sincronizador de seguridad recorre la tienda cada 10 minutos — incluidas las devoluciones vía GET /orders/{id}/refunds — para que ningún pedido se quede sin registrar aunque el cron de WordPress falle.

4. Devoluciones

Las devoluciones se sincronizan automáticamente y se restan del revenue atribuido del mes. Un pedido totalmente devuelto se rechaza en la reconciliación: nunca genera comisión.

5. Modelo de tarifas

15% del revenue atribuido del mes, con mínimo de 129,90 €. Si el mes no tiene ventas atribuidas, no se aplica el mínimo (mes 1 gratis). El mínimo es único por merchant aunque tenga varias tiendas conectadas (por ejemplo Shopify + WooCommerce).

6. Solución de problemas

El webhook no llega

El cron de WordPress del merchant está deshabilitado o retrasado

Verificar el cron en WP; mientras tanto el sync de seguridad (cada 10 min) cubre los pedidos. Documentado en la FAQ.
Firma de webhook rechazada (hmac_ok=0)

La variante de firma (body vs delivery_url+body) o el consumer secret no coinciden

Recalcular el HMAC con el consumer secret actual y recrear el webhook con ese secret.
WOO_HTTP_401/403 en el sync

Consumer key revocada o sin permisos de lectura/escritura

Regenerar la clave en WooCommerce y reconectar desde la tarjeta.
Pedido con ref no atribuido

El snippet no disparó (adblock, cookie, página distinta a la de gracias)

Verificar el snippet en la página de gracias; el evento queda PENDING hasta que el sync lo reconcilia.

7. Estado y hoja de ruta

El conector está en validación con merchants piloto: conexión, atribución y sincronización completas (Fases A–D); la validación en tiendas reales (Fase E) está en curso. La publicación como extensión en el marketplace de WooCommerce es el siguiente hito.

AFFYNORPerformance intelligence
  • AwinAffiliate network
  • AdmitadAffiliate network
  • Google AdsAdvertising platform
  • MetaAdvertising platform
SiteAboutPartner standardsContactHelpDocsSupportFAQTermsPrivacyComplianceCampaign simulator ↗
ReviewsReviewsSaaS rankingsHostingSecurity & VPNPayroll & HR

Trademarks belong to their respective owners. Their presence identifies the networks and platforms used by AFFYNOR; it does not imply sponsorship or certification.

Private beta · No guaranteed returns · Customer funds OFF