Affiliate Portal

Welcome back, ReactLab

Gold tier · 15% retail / 8% wholesale · commissions on every attributed order.

Demo dashboard - illustrative data
Commission ledger

Attributed orders

Commissions accrue on both D2C and wholesale orders, computed at your channel rate.

DateOrderChannelCustomerSubtotalRateCommission
Your links

Codes, links & discount

Share these to attribute referrals. Copy any to your clipboard.

Coded spreadsheet round-trip

Generate → distribute → re-import → auto-attribute

Generate a CSV tied to your affiliate code. Your referred customers or sub-affiliates fill in orders and return it. Re-import the returned file and every line is attributed back to you - the code lives in a checksum-protected header block and a per-line column, so attribution survives even if the header is stripped.

1 · Generate coded sheet

Downloads a CSV embedding LGV-REACTLAB in a metadata header (with an integrity checksum) and in each line's affiliate_code column.

2 · Re-import returned sheet

Upload a completed CSV, paste one, or run the one-click demo to see attribution + checksum verification.

How attribution works (technical)

  • Header metadata block - comment lines (# affiliate_code=…) carry the code, tier, channel rates and an integrity_checksum (FNV-1a over the code + per-line subtotals). The importer reads the code from here first.
  • Per-line affiliate_code column - every data row also carries the code. If a spreadsheet editor strips comment headers on save, the importer falls back to this column so attribution still succeeds.
  • Checksum verification - when the header is intact, the importer recomputes the checksum from the returned rows. A match means the file is unaltered; a mismatch is flagged as tampered.
  • Channel-rate commission - each line is priced at the affiliate's D2C or B2B rate based on its channel value, then summed.

This is a front-end demonstration. A production payout system would run this same logic server-side, persist ledger rows against the code, and queue payment - see the README for the full explanation. XLSX would embed the code in defined-name/custom-property metadata plus a column; CSV is used here because it is transparent and dependency-free.