From 34a4f53719a76f63f4503ceca710bd4b87194387 Mon Sep 17 00:00:00 2001 From: Cursor Agent Date: Tue, 20 Jan 2026 18:41:14 +0000 Subject: [PATCH] docs(flutter): update for 2.4.7 Co-authored-by: duncan --- content/docs/flutter/changelog.mdx | 7 ++ content/docs/flutter/index.mdx | 2 +- content/docs/flutter/meta.json | 2 + .../NonSubscriptionTransaction.mdx | 70 ++++++++++++ .../sdk-reference/SubscriptionTransaction.mdx | 104 ++++++++++++++++++ .../sdk-reference/SuperwallDelegate.mdx | 7 ++ content/docs/flutter/sdk-reference/index.mdx | 2 +- .../sdk-reference/setUserAttributes.mdx | 2 + 8 files changed, 194 insertions(+), 2 deletions(-) create mode 100644 content/docs/flutter/sdk-reference/NonSubscriptionTransaction.mdx create mode 100644 content/docs/flutter/sdk-reference/SubscriptionTransaction.mdx diff --git a/content/docs/flutter/changelog.mdx b/content/docs/flutter/changelog.mdx index 2db3016..012e90a 100644 --- a/content/docs/flutter/changelog.mdx +++ b/content/docs/flutter/changelog.mdx @@ -4,6 +4,13 @@ description: "Release notes for the Superwall Flutter SDK" --- +## 2.4.7 + +### Enhancements + +- Updates iOS SDK to 4.12.7 [View iOS SDK release notes](https://github.com/superwall/Superwall-iOS/releases/tag/4.12.7). +- Updates Android SDK to 2.6.8 [View Android SDK release notes](https://github.com/superwall/Superwall-Android/releases/tag/2.6.8). + ## 2.4.6 ## Enhancements diff --git a/content/docs/flutter/index.mdx b/content/docs/flutter/index.mdx index 89b528c..2a7610d 100644 --- a/content/docs/flutter/index.mdx +++ b/content/docs/flutter/index.mdx @@ -34,4 +34,4 @@ If you have feedback on any of our docs, please leave a rating and message at th If you have any issues with the SDK, please [open an issue on GitHub](https://github.com/superwall/superwall-flutter/issues). - \ No newline at end of file + \ No newline at end of file diff --git a/content/docs/flutter/meta.json b/content/docs/flutter/meta.json index 276c6a2..a931078 100644 --- a/content/docs/flutter/meta.json +++ b/content/docs/flutter/meta.json @@ -45,6 +45,8 @@ "sdk-reference/PurchaseController", "sdk-reference/PresentationResult", "sdk-reference/CustomerInfo", + "sdk-reference/SubscriptionTransaction", + "sdk-reference/NonSubscriptionTransaction", "sdk-reference/Entitlements", "sdk-reference/IntegrationAttribute", "sdk-reference/handleDeepLink", diff --git a/content/docs/flutter/sdk-reference/NonSubscriptionTransaction.mdx b/content/docs/flutter/sdk-reference/NonSubscriptionTransaction.mdx new file mode 100644 index 0000000..3c8ba73 --- /dev/null +++ b/content/docs/flutter/sdk-reference/NonSubscriptionTransaction.mdx @@ -0,0 +1,70 @@ +--- +title: "NonSubscriptionTransaction" +description: "Represents a non-subscription transaction (consumables and non-consumables)." +--- + + +The `store` field was added in 2.4.7. + + +## Purpose +Provides details about one-time purchases in [`CustomerInfo`](/flutter/sdk-reference/CustomerInfo), including which store fulfilled the purchase. + +## Properties + + + +## Store values (2.4.7+) +`appStore`, `stripe`, `paddle`, `playStore`, `superwall`, `other`. + +## Usage + +Inspect non-subscription purchases: +```dart +final customerInfo = await Superwall.shared.getCustomerInfo(); + +for (final purchase in customerInfo.nonSubscriptions) { + print('Product: ${purchase.productId}'); + print('Store: ${purchase.store}'); + print('Consumable: ${purchase.isConsumable}'); + print('Revoked: ${purchase.isRevoked}'); +} +``` + +## Related + +- [`CustomerInfo`](/flutter/sdk-reference/CustomerInfo) - Source of transaction data +- [`SubscriptionTransaction`](/flutter/sdk-reference/SubscriptionTransaction) - Subscription transactions +- [`getCustomerInfo()`](/flutter/sdk-reference/getCustomerInfo) - Fetch customer info diff --git a/content/docs/flutter/sdk-reference/SubscriptionTransaction.mdx b/content/docs/flutter/sdk-reference/SubscriptionTransaction.mdx new file mode 100644 index 0000000..06caefd --- /dev/null +++ b/content/docs/flutter/sdk-reference/SubscriptionTransaction.mdx @@ -0,0 +1,104 @@ +--- +title: "SubscriptionTransaction" +description: "Represents a subscription transaction in the customer's purchase history." +--- + + +The `offerType`, `subscriptionGroupId`, and `store` fields were added in 2.4.7. + + +## Purpose +Provides details about a single subscription transaction returned from [`CustomerInfo`](/flutter/sdk-reference/CustomerInfo). Use this to understand renewal status, applied offers, and the store that fulfilled the purchase. + +## Properties + + + +## Offer types (2.4.7+) +- `trial` - introductory offer. +- `code` - offer redeemed with a promo code. +- `promotional` - promotional offer. +- `winback` - win-back offer (iOS 17.2+ only). + +## Store values (2.4.7+) +`appStore`, `stripe`, `paddle`, `playStore`, `superwall`, `other`. + +## Usage + +Inspect subscription transactions: +```dart +final customerInfo = await Superwall.shared.getCustomerInfo(); + +for (final subscription in customerInfo.subscriptions) { + print('Product: ${subscription.productId}'); + print('Active: ${subscription.isActive}'); + print('Store: ${subscription.store}'); + print('Offer: ${subscription.offerType}'); + print('Group: ${subscription.subscriptionGroupId ?? "unknown"}'); +} +``` + +## Related + +- [`CustomerInfo`](/flutter/sdk-reference/CustomerInfo) - Source of subscription data +- [`NonSubscriptionTransaction`](/flutter/sdk-reference/NonSubscriptionTransaction) - Non-subscription transactions +- [`getCustomerInfo()`](/flutter/sdk-reference/getCustomerInfo) - Fetch customer info diff --git a/content/docs/flutter/sdk-reference/SuperwallDelegate.mdx b/content/docs/flutter/sdk-reference/SuperwallDelegate.mdx index 9f1a0da..7860244 100644 --- a/content/docs/flutter/sdk-reference/SuperwallDelegate.mdx +++ b/content/docs/flutter/sdk-reference/SuperwallDelegate.mdx @@ -24,6 +24,7 @@ abstract class SuperwallDelegate { void paywallWillOpenDeepLink(Uri url); void handleSuperwallDeepLink(Uri fullURL, List pathComponents, Map queryParameters); void customerInfoDidChange(CustomerInfo from, CustomerInfo to); + void userAttributesDidChange(Map newAttributes); } ``` @@ -84,6 +85,12 @@ class MySuperwallDelegate extends SuperwallDelegate { print('Customer info changed'); // Sync with your backend, update UI, etc. } + + @override + void userAttributesDidChange(Map newAttributes) { + print('User attributes updated: $newAttributes'); + // Sync with analytics or update in-memory state. + } } ``` diff --git a/content/docs/flutter/sdk-reference/index.mdx b/content/docs/flutter/sdk-reference/index.mdx index 0239f4e..5e141e1 100644 --- a/content/docs/flutter/sdk-reference/index.mdx +++ b/content/docs/flutter/sdk-reference/index.mdx @@ -15,4 +15,4 @@ If you have feedback on any of our docs, please leave a rating and message at th If you have any issues with the SDK, please [open an issue on GitHub](https://github.com/superwall/superwall-flutter/issues). - \ No newline at end of file + \ No newline at end of file diff --git a/content/docs/flutter/sdk-reference/setUserAttributes.mdx b/content/docs/flutter/sdk-reference/setUserAttributes.mdx index c5e483e..1a2256e 100644 --- a/content/docs/flutter/sdk-reference/setUserAttributes.mdx +++ b/content/docs/flutter/sdk-reference/setUserAttributes.mdx @@ -30,6 +30,8 @@ Future setUserAttributes(Map userAttributes) ## Returns / State Returns a `Future` that completes when the user attributes are set. +If you have a [`SuperwallDelegate`](/flutter/sdk-reference/SuperwallDelegate) set, `userAttributesDidChange` is invoked after the SDK applies the updated attributes. + ## Usage Basic usage: