Skip to content

[Billing Plans]: Dont support upFront compound product identifiers#6786

Merged
fire-at-will merged 1 commit into
billing-plans-devfrom
dont-support-upfront
May 14, 2026
Merged

[Billing Plans]: Dont support upFront compound product identifiers#6786
fire-at-will merged 1 commit into
billing-plans-devfrom
dont-support-upfront

Conversation

@fire-at-will

@fire-at-will fire-at-will commented May 13, 2026

Copy link
Copy Markdown
Contributor

Description

Don't support :upFront in product identifiers since the backend doesn't support them. This isn't a breaking change since nothing has been released yet.


Note

Medium Risk
Changes product identifier handling in ProductsManager and adds new public API (BillingPlanType, InstallmentsInfo) that affects how StoreKit2 products are returned when billing-plan suffixes are used; mistakes could cause products to be dropped or misidentified. Most behavior is gated behind Swift 6.3.2 / iOS 26.4 availability, reducing blast radius on older platforms.

Overview
Adds first-class support for StoreKit 2 billing-plan compound product identifiers (e.g. productId:monthly) by parsing identifiers, de-duplicating StoreKit fetches to base product IDs, and optionally returning billing-plan-specific SK2StoreProduct variants while removing the base product when it wasn’t explicitly requested.

Introduces new public types BillingPlanType and InstallmentsInfo, and exposes StoreProduct.installmentsInfo (iOS 26.4+) populated via a new InstallmentsInfoFactory for eligible monthly billing plans; unsupported/invalid plan identifiers (including :upFront) are ignored with new StoreKit log warnings.

Updates unit tests, API testers, and the PurchaseTester app to cover/display compound identifiers, billing plan types, and installments info, plus adds helper availability checks and adjusts SK2StoreProduct hashing/equality to include the compound identifier.

Reviewed by Cursor Bugbot for commit 56efb8a. Bugbot is set up for automated code reviews on this repo. Configure here.

@fire-at-will fire-at-will requested a review from a team as a code owner May 13, 2026 21:59
@fire-at-will fire-at-will changed the base branch from main to billing-plans-dev May 13, 2026 22:00
@fire-at-will fire-at-will merged commit d60e1c8 into billing-plans-dev May 14, 2026
43 of 45 checks passed
@fire-at-will fire-at-will deleted the dont-support-upfront branch May 14, 2026 15:20
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants