From e0c3ad720639f97e2b3178713e1d09a728540bcc Mon Sep 17 00:00:00 2001 From: Shane Smiskol Date: Tue, 25 Aug 2026 17:21:04 -0700 Subject: [PATCH 1/2] bring back affirm --- .../ProductDescriptions/CommaFour.svelte | 16 +++++++++++++++- src/lib/constants/prices.js | 1 + src/routes/shop/comma-four/+page.svelte | 6 ++++++ 3 files changed, 22 insertions(+), 1 deletion(-) diff --git a/src/lib/components/ProductDescriptions/CommaFour.svelte b/src/lib/components/ProductDescriptions/CommaFour.svelte index e41ec461..9233e19d 100644 --- a/src/lib/components/ProductDescriptions/CommaFour.svelte +++ b/src/lib/components/ProductDescriptions/CommaFour.svelte @@ -11,7 +11,7 @@ import MoneyBackGuaranteeIcon from "$lib/icons/features/money-back-guarantee.svg?raw"; import WarrantyIcon from "$lib/icons/features/warranty.svg?raw"; - import { FOUR_PRICE, FOUR_SALE, FOUR_STRIKETHROUGH_PRICE, FOUR_TRADE_IN_CREDIT, NO_HARNESS_DISCOUNT } from '$lib/constants/prices.js'; + import { FOUR_PRICE, FOUR_AFFIRM_PRICE, FOUR_SALE, FOUR_STRIKETHROUGH_PRICE, FOUR_TRADE_IN_CREDIT, NO_HARNESS_DISCOUNT } from '$lib/constants/prices.js'; import { NO_HARNESS_OPTION } from '$lib/constants/vehicles.js'; @@ -142,6 +142,16 @@ +
+ or ${FOUR_AFFIRM_PRICE}/mo with Affirm. + + Prequalify now + +
Free rush shipping {#if tradeInChecked && FOUR_TRADE_IN_CREDIT > 0} @@ -244,6 +254,10 @@ border-bottom: 1px solid rgba(0, 0, 0, 0.15); } + .financing { + text-wrap: pretty; + } + .badges { display: flex; flex-wrap: wrap; diff --git a/src/lib/constants/prices.js b/src/lib/constants/prices.js index c67736b9..d123bd92 100644 --- a/src/lib/constants/prices.js +++ b/src/lib/constants/prices.js @@ -6,5 +6,6 @@ export const FOUR_SALE = false; export const FOUR_STRIKETHROUGH_PRICE = null; export const FOUR_PRICE = 999; +export const FOUR_AFFIRM_PRICE = 91; // $/month export const FOUR_TRADE_IN_CREDIT = 250; export const NO_HARNESS_DISCOUNT = 50; diff --git a/src/routes/shop/comma-four/+page.svelte b/src/routes/shop/comma-four/+page.svelte index 1f0e14fe..a54e3868 100644 --- a/src/routes/shop/comma-four/+page.svelte +++ b/src/routes/shop/comma-four/+page.svelte @@ -306,6 +306,12 @@ International shipping is a $30 flat rate; customs/duties/taxes are between you and your country. Please see FAQ for more information.

+ Affirm +

+ Your rate will be based on credit, and is subject to an eligibility check. + Payment options through Affirm are provided by these lending partners: affirm.com/lenders. + Options depend on your purchase amount, and a down payment may be required. +

Warranty

1-year limited warranty against hardware defects. Extend it with commacare. Open and repair the comma four at your own risk. From 83c6a9ab2512b3c673d8f0ba712fd6e4963465d3 Mon Sep 17 00:00:00 2001 From: Shane Smiskol Date: Tue, 25 Aug 2026 18:37:34 -0700 Subject: [PATCH 2/2] reactive affirm price --- .../ProductDescriptions/CommaFour.svelte | 9 ++++++--- src/lib/constants/prices.js | 14 +++++++++++++- 2 files changed, 19 insertions(+), 4 deletions(-) diff --git a/src/lib/components/ProductDescriptions/CommaFour.svelte b/src/lib/components/ProductDescriptions/CommaFour.svelte index 9233e19d..121b0846 100644 --- a/src/lib/components/ProductDescriptions/CommaFour.svelte +++ b/src/lib/components/ProductDescriptions/CommaFour.svelte @@ -11,7 +11,7 @@ import MoneyBackGuaranteeIcon from "$lib/icons/features/money-back-guarantee.svg?raw"; import WarrantyIcon from "$lib/icons/features/warranty.svg?raw"; - import { FOUR_PRICE, FOUR_AFFIRM_PRICE, FOUR_SALE, FOUR_STRIKETHROUGH_PRICE, FOUR_TRADE_IN_CREDIT, NO_HARNESS_DISCOUNT } from '$lib/constants/prices.js'; + import { FOUR_PRICE, FOUR_SALE, FOUR_STRIKETHROUGH_PRICE, FOUR_TRADE_IN_CREDIT, NO_HARNESS_DISCOUNT, affirmMonthly } from '$lib/constants/prices.js'; import { NO_HARNESS_OPTION } from '$lib/constants/vehicles.js'; @@ -61,6 +61,9 @@ $: priceDueToday = showDiscount ? FOUR_PRICE - NO_HARNESS_DISCOUNT : FOUR_PRICE; $: priceAfterTradeIn = tradeInChecked ? priceDueToday - FOUR_TRADE_IN_CREDIT : priceDueToday; + // Affirm finances what's charged today — the trade-in credit lands after we receive the device + $: affirmPrice = affirmMonthly(priceDueToday); + $: additionalProductIds = (() => { const ids = []; if (selectedHarness && selectedHarness !== NO_HARNESS_OPTION) { @@ -143,9 +146,9 @@