diff --git a/content/changelog/brand-onboarding-flow.mdx b/content/changelog/brand-onboarding-flow.mdx new file mode 100644 index 00000000..157f68ee --- /dev/null +++ b/content/changelog/brand-onboarding-flow.mdx @@ -0,0 +1,52 @@ +--- +title: Set up your program in one full-screen flow +date: 2026-10-18 +type: feature +audience: [brands] +surfaces: [dashboard] +description: Creating a program opens five full-screen steps, from Business to Go live, with Save and exit on every step. +context: + facts: + - "Creating a program on Affitor opens a full-screen setup at https://affitor.com/brand/new with five steps in this order: Business, Commission, Tracking, Payments, Go live." + - "Each step shows Step n of 5, a progress bar and a Save and exit button." + - "Business asks for two things: a business name and a website. Continue creates the program and opens Commission." + - "Tracking and Payments have one Continue button that works while the check is still pending; it does not mark the step done." + - "A program that is already live has no setup; its setup links open the matching Program settings page." + ui: ["Step 1 of 5", "Your business", "Business name", "Website", "Continue", "Save and exit", "Back", "Commission", "Install tracking", "Payments", "Go live", "Create a program"] + avoid: + - "Saying setup copies settings, a logo or partners from another program" + - "Saying Continue on Tracking or Payments marks them done or skips the Go live checks" + - "A setup time such as five minutes" + - "A Skip button (there is none)" + cta: { label: "Create a program", url: "https://affitor.com/brand/new" } +--- + +Set up a new program in one full-screen flow, one step at a time, at [affitor.com/brand/new](https://affitor.com/brand/new). + +Until today, creating a program started on a separate form that also asked for a program handle, and the setup steps after it sat next to a step list and, on a wide screen, a preview of what partners see, with a Skip for now button on Tracking and Payments. Now every step is one screen in the same flow. + +## How it works + +- **Five steps**: Business, Commission, Tracking, Payments and Go live, each with **Step n of 5** and a progress bar. +- **Two fields to start**: Business asks only for a business name and a website. +- **Leave any time**: **Save and exit** is on every step. + +## Start with your business + +Enter your business name and website, then click **Continue**. Affitor creates the program and opens Commission for it. If you already run a program, Business starts with its name and website; change them for the new one. + + + +## Keep going, or come back later + +Commission, Tracking and Payments each have **Back** and **Continue**. On Tracking and Payments, **Continue** works while Affitor is still checking; the step is not marked done until the check passes. Go live still checks that everything is in place before your program goes live. + +**Save and exit** saves your progress and opens the program's dashboard. On Business, it creates the program from the two fields; with both fields empty, it leaves without creating one. + +## Where to change it later + +Once a program is live, it has no setup: each step is its page in Program settings, and old setup links open that page. + +## Conclusion + +Setting up a program is now one guided flow from Business to Go live. [Learn more by creating a program](https://affitor.com/brand/new), and write to support@affitor.com with any question. diff --git a/content/changelog/improvements-2026-10-18.mdx b/content/changelog/improvements-2026-10-18.mdx index 1a5935b9..c66c77a0 100644 --- a/content/changelog/improvements-2026-10-18.mdx +++ b/content/changelog/improvements-2026-10-18.mdx @@ -3,7 +3,7 @@ title: Improvements and fixes, Oct 12–18 date: 2026-10-18 type: digest audience: [brands, partners, developers] -surfaces: [dashboard, cli, sdk] +surfaces: [dashboard, marketplace, api, cli, sdk, mcp] description: Simpler username rules, website suggestions for your Business details, faster partner pages, and fixes to renewals, phones and sign-up. --- @@ -27,6 +27,11 @@ description: Simpler username rules, website suggestions for your Business detai - Program settings › Payments shows two cards, Stripe and Server API, each with its own status. Either one counts for Payments when you go live. - A partner invite to a program listed on the marketplace shows the commission, how long it pays and the attribution window before the partner signs in. - Team members with the Member role no longer see Invite member, Resend invite or Regenerate on the API keys page. Owners keep them. +- On the API keys page, a new key comes with a **Copy key** button, Regenerate confirms in a dialog that names the key it stops, and an expired key tells Owners to update `AFFITOR_API_KEY`. +- [affitor.com/switch](https://affitor.com/switch) shows how to move from another affiliate tool: connect payments, test tracking, then invite your partners by CSV. Partners get new links. +- Finished steps on Get started and most success tags use Affitor blue instead of green. +- On Account › Payouts, the Get ready to be paid list no longer repeats the Add payout method button. The Legal name and Payout method rows jump to their cards on the page. +- Marketplace programs without an uploaded logo can show their website's icon instead of initials. An uploaded logo always wins. ### Fixed @@ -37,6 +42,9 @@ description: Simpler username rules, website suggestions for your Business detai - Signing up with email keeps the name you typed. - A renamed Refer a brand link still credits the brands who sign up through it. - Program pages show their whole About, with no Read more. +- The invoice number in the How to pay part of invoice emails stays on one line on a phone. +- Paying an Affitor invoice by card stays in the invoice currency, with no conversion to a local currency at checkout. +- In Partner › Programs, a program's dashboard shows the same logo as your Programs list instead of an initial, and Copy buttons line up for short and long links. ### For developers @@ -46,3 +54,9 @@ description: Simpler username rules, website suggestions for your Business detai - `affitor onboard` leaves your Stripe webhook alone when Stripe is connected in Affitor, so sales are not counted twice. - `@affitor/sdk` 2.1.3 marks its React entry `"use client"`, so it imports cleanly in the Next.js App Router. - `affitor status` and `affitor test` run with an API key alone, with no project config. +- Stripe invoices now record their sale from `invoice.paid` as well as `invoice.payment_succeeded`, once per invoice. An invoice already refunded, even partly, when Affitor records it adds no sale. +- A Stripe invoice paid with several payments, or by a payment that also pays other invoices, does not record a sale on its own. +- `POST /api/v1/track/refund` with an empty Bearer token returns 401 `Empty Bearer token`. +- `affitor` 0.4.6: `affitor agent setup --program-id ` gives each coding agent its own restricted key, separate from your live key. Run `affitor login` first; only program Owners can create keys. +- MCP tools describe every input: what it means, where it comes from and what leaving it out does. `list_my_payouts` says bank or Wise. +- `@affitor/recipes` 0.1.1: the Stripe sale and renewal snippets skip a checkout with no Affitor customer key instead of failing the webhook. diff --git a/content/changelog/refer-program-page.mdx b/content/changelog/refer-program-page.mdx new file mode 100644 index 00000000..16ca234c --- /dev/null +++ b/content/changelog/refer-program-page.mdx @@ -0,0 +1,53 @@ +--- +title: A new Refer Program page, with milestones tied to paid invoices +date: 2026-10-18 +type: feature +audience: [partners, brands] +surfaces: [marketplace, dashboard] +description: The Refer Program page shows an example of what a referral can earn, and the $50 and $350 milestones now follow paid invoices, checked in a review. +context: + facts: + - "The Affitor Refer Program page is https://affitor.com/marketplace/referral-program. Get your link opens Referrals when you are signed in, or sign-up when you are not." + - "The page has an Example card: pick Brands you bring and Partner sales per brand, a month ($5k, $25k or $50k) to see what the three rewards could add up to." + - "The rewards for referring a brand are $50 after the brand pays its first fee invoice, $350 at $10k in paid sales with paid Affitor invoices and paid partners, and 15% of its Affitor fees for 12 months." + - "Each reward is held for 30 days. The $50 and $350 are then reviewed one by one before they reach your balance; the 15% releases on its own after its hold." + - "Refer a partner shows Soon. It has no published terms yet." + ui: ["Affitor Refer Program", "Get your link", "Refer a brand", "Refer a partner", "Soon", "Example", "Brands you bring", "Partner sales per brand, a month", "How it works", "Why refer", "Who it is for", "Questions", "Referrals", "Your link", "Copy", "Invite via email", "M1 and M2 require admin approval after the hold.", "Program terms"] + avoid: + - "Presenting the Example total as a promise or an average; it is an example the reader sets" + - "Saying the $50 comes when a brand goes live (that was the earlier wording)" + - "Saying the review or the paid-invoice check is automatic" + - "Amounts or terms for referring partners" + - "Partner or program counts shown on the page (they change)" + cta: { label: "Get your link", url: "https://affitor.com/marketplace/referral-program" } +--- + +See what a referral can earn and get your link on the new [Refer Program page](https://affitor.com/marketplace/referral-program). + +Until today, the page listed the three rewards, a link and the terms. The $50 came when a referred brand's program went live, the $350 at $10,000 in tracked sales, and both reached your balance when their hold ended. Now the page shows a worked example, and the terms tie both milestones to paid invoices: each one is reviewed against those payments before it reaches your balance. + +## How it works + +- **Example**: set how many brands you bring and their monthly partner sales to see the three rewards add up. +- **Paid milestones**: $50 after the brand pays its first fee invoice; $350 at $10k in paid sales, with paid Affitor invoices and paid partners. +- **Reviewed release**: after the 30-day hold, the $50 and $350 are reviewed one by one. The 15% releases on its own. + +## See what a referral could earn + +The **Example** card starts at 3 brands and $25k in partner sales a month. Change either one and each reward line updates. Below it, the page explains how it works, why to refer, who it is for, and answers common questions. + + + +## Get your link + +Click **Get your link**. Signed in, it opens **Referrals**; otherwise you sign up first. Referrals shows your link with **Copy** and **Invite via email**, the same three rewards, and a note that the milestones are approved after the hold. + + + +## Where to read the rules + +The [Refer Program terms](https://affitor.com/legal/refer-program) are the rules. **Refer a partner** shows **Soon** until its terms are published. + +## Conclusion + +The Refer Program page now shows what a referral can earn, and its milestones are reviewed against paid invoices before release. [Learn more about referral rewards](https://affitor.com/docs/partners/referral-rewards), and write to support@affitor.com with any question. diff --git a/public/docs/changelog/brand-onboarding-flow/business-dark.png b/public/docs/changelog/brand-onboarding-flow/business-dark.png new file mode 100644 index 00000000..e89ae237 Binary files /dev/null and b/public/docs/changelog/brand-onboarding-flow/business-dark.png differ diff --git a/public/docs/changelog/brand-onboarding-flow/business-light.png b/public/docs/changelog/brand-onboarding-flow/business-light.png new file mode 100644 index 00000000..89c922de Binary files /dev/null and b/public/docs/changelog/brand-onboarding-flow/business-light.png differ diff --git a/public/docs/changelog/brand-onboarding-flow/business-phone-dark.png b/public/docs/changelog/brand-onboarding-flow/business-phone-dark.png new file mode 100644 index 00000000..6fde7f00 Binary files /dev/null and b/public/docs/changelog/brand-onboarding-flow/business-phone-dark.png differ diff --git a/public/docs/changelog/brand-onboarding-flow/business-phone-light.png b/public/docs/changelog/brand-onboarding-flow/business-phone-light.png new file mode 100644 index 00000000..5dde613e Binary files /dev/null and b/public/docs/changelog/brand-onboarding-flow/business-phone-light.png differ diff --git a/public/docs/changelog/brand-onboarding-flow/business-raw.png b/public/docs/changelog/brand-onboarding-flow/business-raw.png new file mode 100644 index 00000000..4967424b Binary files /dev/null and b/public/docs/changelog/brand-onboarding-flow/business-raw.png differ diff --git a/public/docs/changelog/refer-program-page/example-dark.png b/public/docs/changelog/refer-program-page/example-dark.png new file mode 100644 index 00000000..425fa100 Binary files /dev/null and b/public/docs/changelog/refer-program-page/example-dark.png differ diff --git a/public/docs/changelog/refer-program-page/example-light.png b/public/docs/changelog/refer-program-page/example-light.png new file mode 100644 index 00000000..857c8228 Binary files /dev/null and b/public/docs/changelog/refer-program-page/example-light.png differ diff --git a/public/docs/changelog/refer-program-page/example-phone-dark.png b/public/docs/changelog/refer-program-page/example-phone-dark.png new file mode 100644 index 00000000..90e92dc4 Binary files /dev/null and b/public/docs/changelog/refer-program-page/example-phone-dark.png differ diff --git a/public/docs/changelog/refer-program-page/example-phone-light.png b/public/docs/changelog/refer-program-page/example-phone-light.png new file mode 100644 index 00000000..fb8c7352 Binary files /dev/null and b/public/docs/changelog/refer-program-page/example-phone-light.png differ diff --git a/public/docs/changelog/refer-program-page/example-raw.png b/public/docs/changelog/refer-program-page/example-raw.png new file mode 100644 index 00000000..18df509b Binary files /dev/null and b/public/docs/changelog/refer-program-page/example-raw.png differ diff --git a/public/docs/changelog/refer-program-page/link-dark.png b/public/docs/changelog/refer-program-page/link-dark.png new file mode 100644 index 00000000..265a53a0 Binary files /dev/null and b/public/docs/changelog/refer-program-page/link-dark.png differ diff --git a/public/docs/changelog/refer-program-page/link-light.png b/public/docs/changelog/refer-program-page/link-light.png new file mode 100644 index 00000000..450d9308 Binary files /dev/null and b/public/docs/changelog/refer-program-page/link-light.png differ diff --git a/public/docs/changelog/refer-program-page/link-phone-dark.png b/public/docs/changelog/refer-program-page/link-phone-dark.png new file mode 100644 index 00000000..d7bf223e Binary files /dev/null and b/public/docs/changelog/refer-program-page/link-phone-dark.png differ diff --git a/public/docs/changelog/refer-program-page/link-phone-light.png b/public/docs/changelog/refer-program-page/link-phone-light.png new file mode 100644 index 00000000..7e647c84 Binary files /dev/null and b/public/docs/changelog/refer-program-page/link-phone-light.png differ diff --git a/public/docs/changelog/refer-program-page/link-raw.png b/public/docs/changelog/refer-program-page/link-raw.png new file mode 100644 index 00000000..f80d124e Binary files /dev/null and b/public/docs/changelog/refer-program-page/link-raw.png differ