WooCommerce hluboká integrace

Automatický tracking objednávek

Plugin se napojuje na WooCommerce přes hooky a sleduje celý lifecycle objednávky od checkout až po refund.

Klíčové hooky

  • woocommerce_checkout_create_order — při vytvoření orderu se přidá meta _affinite_affiliate_id a _affinite_click_id z cookies.
  • woocommerce_order_status_completed — vytvoří provize (tier 1 + subpartners).
  • woocommerce_order_status_processing — alternativní trigger pokud nepoužíváte status completed.
  • woocommerce_order_status_refunded — vytvoří záporné provize, invaliduje stats cache.

Order meta polí

  • _affinite_affiliate_id — ID affiliate, který přivedl konverzi.
  • _affinite_click_id — ID konkrétního kliknutí pro attribution.

Tato meta lze číst přes $order->get_meta('_affinite_affiliate_id') nebo přes WP CLI pro reporting.

Admin order panel

V detailu WC objednávky (admin) plugin renderuje panel Affiliate Information s:

  • Jméno affiliate (odkaz na edit)
  • Affiliate kód
  • Email affiliate

Výpočet provize

Při hooku woocommerce_order_status_completed plugin:

  1. Zjistí affiliate z order meta.
  2. Použije individuální commission_rate affiliate, jinak globální.
  3. Spočítá částku: order_total × rate / 100 (pro percentage) nebo fixní částku.
  4. Vytvoří provizi se statusem pending (nebo approved pokud auto-approve).
  5. Pokud má affiliate parent, opakuje pro tier 2-5 s odpovídajícími sazbami.

Refund handling

Při refundu objednávky plugin najde všechny provize s reference_id obsahující order_{order_id}:

  • Pro paid provize vytvoří záporné refund provize (status approved, negativní amount).
  • Pro pending/approved provize změní status na refunded.
  • Spustí update_statistics() pro každého unique affiliate.
  • Invaliduje stats cache.

WooCommerce verze a kompatibilita

  • Minimální verze: 5.0+
  • HPOS (High-Performance Order Storage): kompatibilní (plugin používá WC order API, ne přímý wp_posts/wp_postmeta přístup).
  • Multi-currency pluginy: provize se počítají v base currency.
  • Subscriptions: každý renewal generuje novou provizi, pokud cookie attribution stále platí.