Skip to content

Created: 2026-05-20 Executor: Cursor (autonomous — can run parallel to ts-site-rebuild) Repo: /home/ta/projects/monorepo Site path: sites/ts/ Depends on: ts-site-rebuild task (product pages must exist)


Section titled “Approach: Stripe Payment Links (95% solution, 5% effort)”

No backend, no checkout code, no server-side logic. Stripe hosts the entire payment experience.

How it works:

  1. Talbot creates a Product in the Stripe dashboard
  2. Stripe generates a Payment Link URL (e.g. https://buy.stripe.com/xxxxx)
  3. A “Buy Now” button on the product page opens that Stripe-hosted checkout URL
  4. Customer pays on Stripe’s secure page; Talbot gets a notification + payout

What this task builds: The product page “Buy Now” buttons and UI. The Stripe dashboard setup is done by Talbot (Cursor cannot access the Stripe dashboard).


  1. Create a Stripe account at https://stripe.com if not already done
  2. For each product below: create a Product + Price in Stripe dashboard → Products
  3. Generate a Payment Link for each (Products → [Product] → Payment Links → Create link)
  4. Copy each Payment Link URL and add it to the relevant product page

ProductFormatSuggested Price
The Smart Debt CoachBook (physical or PDF)$24.95 CAD
Financial Freedom Without SacrificeBook (physical or PDF)$24.95 CAD
Dispelling the Myths of Borrowing to InvestBooklet$14.95 CAD
Introduction to Conservative LeveragePamphlet$9.95 CAD
b-Books (Branded PDF)Digital — variable (contact for quote)Contact only
Leverage Professional SoftwareSoftware — 30-day trial free; full licenseContact only
Seminar Package on LeveragePackage — contact for quoteContact only

Note: b-Books, Leverage Professional, and Seminar Package are likely custom-quote items — these use “Contact to Order” CTA only, no Buy Now button. The first 4 products are suitable for direct purchase.


Section titled “Step 1: Add payment link prop to individual product pages”

Each product page in sites/ts/src/pages/products/ needs a stripePaymentLink variable at the top. Talbot will fill these in after Stripe setup.

Example pattern for smart-debt-coach.astro:

---
import BaseLayout from '../../layouts/BaseLayout.astro';
// Set this after creating the Stripe Payment Link
const stripePaymentLink = ''; // e.g. 'https://buy.stripe.com/xxxxx'
const price = '$24.95 CAD';
---
<BaseLayout title="The Smart Debt Coach — Talbot Stevens">
<div class="container page-content">
<h1>The Smart Debt Coach</h1>
<!-- ... product content ... -->
<div class="product-cta">
{stripePaymentLink ? (
<a href={stripePaymentLink} class="btn btn-primary" target="_blank" rel="noopener">
Buy Now — {price}
</a>
) : (
<a href="/contact" class="btn">Contact to Order</a>
)}
</div>
</div>
</BaseLayout>

When stripePaymentLink is empty, it falls back to “Contact to Order”. Once Talbot adds the Stripe URL, the Buy Now button appears automatically on next build.

Step 2: Apply to all purchasable product pages

Section titled “Step 2: Apply to all purchasable product pages”

Apply this pattern to:

  • products/smart-debt-coach.astro
  • products/financial-freedom.astro
  • products/dispelling-myths.astro
  • products/conservative-leverage-intro.astro

For b-Books, Leverage Professional, Seminar Package — “Contact to Order” only (no stripePaymentLink prop needed).

Near each Buy Now button, add:

<p class="trust-badge">
<svg><!-- lock icon --></svg>
Secure checkout via Stripe
</p>

And include Talbot’s money-back guarantee (where applicable):

  • Smart Debt Coach: “Guaranteed to benefit you at least $1,000 or your money back”
  • Financial Freedom: “Guaranteed to benefit you at least $500 or your money back”
Section titled “Step 4: Optional — Products index page “buy” links”

On the Products index (products.astro), each product card can show price + a small “Buy Now” or “Learn More” link. “Learn More” links to the individual product page. This is the preferred approach — keep the index clean.


Currency: Set all products to CAD in Stripe.

Delivery:

  • For physical books: enable “Collect shipping address” in payment link settings
  • For digital/PDF: no shipping needed; you’ll manually email the file after payment (or automate later)

Post-payment redirect: Set to https://talbotstevens.com/contact or a thank-you page. A basic thank-you page at sites/ts/src/pages/thank-you.astro is a good addition (Cursor can create this).

Test mode: Use Stripe test mode (toggle in dashboard) during development. Switch to live mode before launch.


Future Enhancements (out of scope for this task)

Section titled “Future Enhancements (out of scope for this task)”
  • Stripe webhook → auto-email PDF after purchase (requires a serverless function)
  • Stripe Customer Portal for subscription products
  • Bundle pricing
  • Affiliate/referral tracking

  • All 4 purchasable product pages have stripePaymentLink variable (empty string OK initially)
  • When stripePaymentLink is empty, page shows “Contact to Order” button
  • When stripePaymentLink is set, page shows “Buy Now — $XX.XX CAD” button linking to Stripe
  • Buy button opens Stripe checkout in new tab (target="_blank")
  • Trust badge (“Secure checkout via Stripe”) shown near buy button
  • Money-back guarantee text shown where applicable
  • b-Books, Leverage Pro, Seminar Package show “Contact to Order” only
  • A thank-you.astro page exists at /thank-you (basic confirmation page)
  • pnpm build succeeds with no errors
  • pnpm test (astro check) passes