---
title: "Actions et types de données du plugin Adapty FlutterFlow"
description: "Référence des actions personnalisées et des types de données Adapty disponibles dans FlutterFlow."
---

## Actions personnalisées \{#custom-actions\}

Voici les méthodes Adapty disponibles dans FlutterFlow via le plugin Adapty. Elles peuvent être utilisées comme actions personnalisées dans FlutterFlow.

| Custom Action | Description | Action Arguments | Adapty Data Types - Action Output Variable |
|---|----|--------|----|
| activate | Initialise le SDK Adapty | Aucun ||
| <p id="getPaywall">getPaywall</p> | Récupère un paywall. Ne retourne pas les produits du paywall. Utilisez l'action `getPaywallProducts` pour obtenir les produits réels | <ul><li>[Placement_ID](placements)</li><li>[Locale](localizations-and-locale-codes)</li></ul> | [AdaptyGetPaywallResult](ff-resources#adaptygetpaywallresult)|
| <p id="getPaywallProducts">getPaywallProducts</p> | Retourne une liste des produits réels du paywall | [AdaptyPaywall](ff-resources#adaptypaywall) | [AdaptyGetProductsResult](ff-resources#adaptygetproductsresult) |
| <p id="getproductsintroductoryoffereligibility">getProductsIntroductoryOfferEligibility</p> | Vérifie si l'utilisateur est éligible à une offre de lancement iOS | [AdaptyPaywallProduct](product) | [AdaptyGetIntroEligibilitiesResult](ff-resources#adaptygetintroeligibilitiesresult) |
| <p id="makePurchase">makePurchase</p> | Finalise un achat et déverrouille le contenu. Si un paywall comporte une offre promotionnelle, Adapty l'applique automatiquement lors du paiement | <ul><li> **product** : un objet AdaptyPaywallProduct récupéré depuis le paywall.</li><li> **subscriptionUpdateParams** : un objet [`AdaptySubscriptionUpdateParameters`](ff-resources#adaptysubscriptionupdateparameters) utilisé pour mettre à niveau ou rétrograder un abonnement (à utiliser pour Android).</li><li>**isOfferPersonalized** : indique si l'offre est personnalisée pour l'acheteur (à utiliser pour Android).</li></ul> | [AdaptyMakePurchaseResult](ff-resources#adaptymakepurchaseresult) |
| <p id="getprofile">getProfile</p> | <p>Récupère le profil de l'utilisateur actuel de l'application. Cela vous permet de définir les niveaux d'accès et d'autres paramètres</p><p>En cas d'échec (par ex. absence de connexion internet), les données en cache sont renvoyées. Adapty met régulièrement à jour le cache du profil pour que les informations restent aussi actuelles que possible</p> | Aucun | [AdaptyGetProfileResult](ff-resources#adaptygetprofileresult) |
| updateProfile | Modifie les attributs optionnels du profil de l'utilisateur actuel, comme l'adresse e-mail, le numéro de téléphone, etc. Vous pouvez ensuite utiliser ces attributs pour créer des [segments](segments) d'utilisateurs ou les consulter dans le CRM | L'ID et les paramètres à mettre à jour pour l'[AdaptyProfile](ff-resources#adaptyprofile) | [AdaptyError](ff-resources#adaptyerror) (Optionnel) |
| restorePurchases | Restaure tous les achats effectués par l'utilisateur | Aucun | [AdaptyGetProfileResult](ff-resources#adaptygetprofileresult) |
| logShowPaywall | Enregistre l'affichage d'un paywall spécifique à l'utilisateur | [AdaptyPaywall](ff-resources#adaptypaywall) | [AdaptyError](ff-resources#adaptyerror) (Optionnel) |
| identify | Identifie l'utilisateur à l'aide du `customerUserId` de votre système | customerUserId | [AdaptyError](ff-resources#adaptyerror) (Optionnel) |
| logout | Déconnecte l'utilisateur actuel de votre application | Aucun | [AdaptyError](ff-resources#adaptyerror) (Optionnel) |
| presentCodeRedemptionSheet | Affiche une feuille permettant aux utilisateurs de saisir des codes de remboursement (iOS uniquement) | Aucun | Aucun |

## Types de données \{#data-types\}

Les types de données Adapty (collections de valeurs de données) transmis à FlutterFlow via le plugin Adapty.

### AdaptyAccessLevel

Informations sur le [niveau d'accès](access-level) de l'utilisateur.

| Nom du champ | Type | Description |
|--------------------------|----------|-------------|
| activatedAt | DateTime | L'heure à laquelle ce niveau d'accès a été activé |
| activeIntroductoryOfferType | String | Le type d'offre de lancement active. Si défini, cela signifie qu'une offre a été appliquée durant cette période d'abonnement |
| activePromotionalOfferId | String | L'identifiant de l'offre promotionnelle active (achetée depuis iOS) |
| activePromotionalOfferType | String | Le type d'offre promotionnelle active (achetée depuis iOS). Si défini, cela signifie qu'une offre a été appliquée durant cette période d'abonnement |
| billingIssueDetectedAt | DateTime | L'heure à laquelle un problème de facturation a été détecté. L'abonnement peut toujours être actif. Défini à null si le paiement est traité avec succès |
| cancellationReason | String | La raison pour laquelle l'abonnement a été annulé |
| expiresAt | DateTime | La date d'expiration du niveau d'accès (peut être dans le passé ou non définie pour un accès à vie) |
| id | String | L'identifiant du niveau d'accès |
| isActive | Boolean | True si ce niveau d'accès est actif. En général, vous pouvez vérifier cette propriété pour déterminer si un utilisateur a accès aux fonctionnalités premium |
| isInGracePeriod | Boolean | True si cet abonnement auto-renouvelable est en [délai de grâce](https://developer.apple.com/help/app-store-connect/manage-subscriptions/enable-billing-grace-period-for-auto-renewable-subscriptions) |
| isLifetime | Boolean | True si ce niveau d'accès est actif à vie (sans date d'expiration) |
| isRefund | Boolean | True si cet achat a été remboursé |
| offerId | String | L'identifiant de l'offre promotionnelle active (achetée depuis Android) |
| renewedAt | DateTime | L'heure du dernier renouvellement du niveau d'accès |
| startsAt | DateTime | L'heure de début de ce niveau d'accès (peut être dans le futur) |
| store | String | Le store où l'achat a été effectué |
| unsubscribedAt | DateTime | L'heure à laquelle le renouvellement automatique a été désactivé pour l'abonnement. L'abonnement peut toujours être actif. Si non défini, l'utilisateur a réactivé l'abonnement |
| vendorProductId | String | L'identifiant du produit dans le store qui a déverrouillé ce niveau d'accès |
| willRenew | Boolean | True si cet abonnement auto-renouvelable est configuré pour se renouveler |

### AdaptyAccessLevelIdentifiers

Cette structure est destinée à remplacer la paire clé-valeur pour `Map<String, AdaptyAccessLevel` [AdaptyAccessLevel](ff-resources#adaptyaccesslevel).

| Nom du champ | Type | Description |
|------------|------|-------------|
| accessLevelIdentifier | String | L'identifiant du niveau d'accès |
| accessLevel | Data ([AdaptyAccessLevel](ff-resources#adaptyaccesslevel)) | Le [AdaptyAccessLevel](ff-resources#adaptyaccesslevel) associé |

### AdaptyCustomDoubleAttribute

Informations sur les attributs double personnalisés définis pour l'[utilisateur](ff-resources#adaptyprofile).

| Nom du champ | Type | Description |
|--------------|------|-------------|
| key | String | L'identifiant de l'attribut double personnalisé |
| value | Double | La valeur de l'attribut double personnalisé |

### AdaptyCustomStringAttribute

Informations sur les attributs de chaîne personnalisés définis pour l'[utilisateur](ff-resources#adaptyprofile).

| Field Name | Type | Description |
|------------|------|-------------|
| key | String | L'identifiant de l'attribut de chaîne personnalisé |
| value | String | La valeur de l'attribut de chaîne personnalisé |

### AdaptyError

Contient les détails d'une erreur. Pour la liste complète des codes d'erreur, consultez [React Native, Flutter, Unity - Gérer les erreurs](error-handling-on-flutter-react-native-unity).

| Nom du champ | Type | Description |
|--------------------------|----------|-------------|
| errorMessage | String | Une description lisible de l'erreur |
| errorCode | Integer | Code numérique identifiant l'erreur |

### AdaptyGetIntroEligibilitiesResult

Contient le résultat de l'action personnalisée `getProductsIntroductoryOfferEligibility`.

| Nom du champ | Type | Description |
|--------------------------|----------|-------------|
| value | List < Data ([AdaptyProductIntroEligibility](ff-resources#adaptyproductintroeligibility)) > | Liste des éligibilités de l'utilisateur aux offres de lancement |
| error | Data ([AdaptyError](ff-resources#adaptyerror)) | Contient les détails de l'erreur via [`AdaptyError`](ff-resources#adaptyerror) |

### AdaptyGetPaywallResult

Contient le résultat de l'action personnalisée `getPaywall`.

| Nom du champ              | Type | Description |
|--------------------------|----------|-------------|
| value | Data ([AdaptyPaywall](ff-resources#adaptypaywall)) | Contient une liste d'objets [AdaptyPaywall](ff-resources#adaptypaywall) |
| error | Data ([AdaptyError](ff-resources#adaptyerror)) | Contient les informations d'erreur via [AdaptyError](ff-resources#adaptyerror) |

### AdaptyGetProductsResult

Contient le résultat de l'action personnalisée `getPaywallProducts`.

| Nom du champ              | Type | Description |
|--------------------------|----------|-------------|
| value | List < Data ([AdaptyPaywallProduct](product)) > | Contient une liste d'[AdaptyPaywallProducts](product) |
| error | Data ([AdaptyError](ff-resources#adaptyerror)) | Contient les informations d'erreur via [AdaptyError](ff-resources#adaptyerror)  |

### AdaptyGetProfileResult

Contient le résultat de l'action personnalisée `getProfile`.

| Nom du champ              | Type | Description |
|--------------------------|----------|-------------|
| value | Data ([AdaptyProfile](ff-resources#adaptyprofile)) | Contient le profil utilisateur sous forme d'[AdaptyProfile](ff-resources#adaptyprofile) |
| error | Data (AdaptyError) | Contient les informations d'erreur via [AdaptyError](ff-resources#adaptyerror) |

### AdaptyMakePurchaseResult

Contient le résultat de l'action personnalisée `makePurchase`.

| Nom du champ              | Type | Description |
|--------------------------|----------|-------------|
| value | Data ([AdaptyProfile](ff-resources#adaptyprofile)) | Contient le profil de l'utilisateur sous forme d'[AdaptyProfile](ff-resources#adaptyprofile) |
| error | Data ([AdaptyError](ff-resources#adaptyerror)) | Contient les informations d'erreur via [AdaptyError](ff-resources#adaptyerror) |

### AdaptyNonSubscription

Informations sur les achats non liés à un abonnement. Il peut s'agir d'achats uniques (consommables), de déverrouillages (comme un nouveau niveau dans un jeu), etc.

| Nom du champ                | Type | Description |
|--------------------------|----------|-------------|
| isConsumable | Boolean | Indique si le produit est consommable |
| isOneTime | Boolean | Indique si le produit est un achat unique (par exemple, si true, l'achat n'est traité qu'une seule fois) |
| isRefund | Boolean | Indique si le produit a été remboursé |
| isSandbox | Boolean | Indique si le produit a été acheté dans un environnement sandbox |
| purchasedAt | DateTime | L'heure à laquelle le produit a été acheté |
| purchaseId | String | L'ID de l'achat dans Adapty. Peut être utilisé pour suivre les produits à achat unique |
| store | String | Le store où le produit a été acheté (par exemple, App Store, Google Play) |
| vendorProductId | String | ID du produit dans le système du vendeur |
| vendorTransactionId | String | ID de transaction dans le système du vendeur |

### AdaptyPaywall

Informations sur un [paywall](paywalls).

| Nom du champ         | Type | Description |
|----------------------|----------|-------------|
| abTestName           | String | Le nom du test A/B parent |
| hasViewConfiguration | Boolean | Indique s'il existe une configuration d'affichage pour le paywall |
| locale               | String | L'identifiant de locale du paywall |
| name                 | String | Nom du paywall |
| placement.id         | String | L'identifiant du placement parent |
| remoteConfigString   | String | Un dictionnaire personnalisé depuis l'Adapty Dashboard associé à ce paywall |
| placement.revision   | Integer | La révision/version actuelle du paywall. Chaque modification génère une nouvelle révision |
| variationId          | String | L'identifiant de variante utilisé pour attribuer les achats à ce paywall |
| vendorProductIds     | String | Tableau des identifiants de produits associés au paywall |

### AdaptyPaywallProduct

Informations sur le [produit](product).

| Nom du champ         | Type                                                         | Description                                                  |
| -------------------- | ------------------------------------------------------------ | ------------------------------------------------------------ |
| vendorProductId      | String                                                       | L'ID d'un produit dans un store                              |
| localizedDescription | String                                                       | Une description du produit dans la langue de l'utilisateur   |
| localizedTitle       | String                                                       | Le nom du produit dans la langue de l'utilisateur            |
| regionCode           | String                                                       | Le code région de la locale utilisée pour formater le prix du produit (pour iOS) |
| isFamilyShareable    | Boolean                                                      | Une valeur booléenne indiquant si le produit est disponible pour le partage familial dans App Store Connect. Sera toujours FALSE pour les versions iOS inférieures à 14.0 et macOS inférieures à 11.0 (pour iOS) |
| paywallVariationId   | String                                                       | L'ID d'une variante, utilisé pour attribuer les achats à ce paywall |
| paywallABTestName    | String                                                       | Nom du test A/B parent                                       |
| paywallName          | String                                                       | Nom du paywall parent                                        |
| price                | Data ([AdaptyPriceData](#adaptyprice)                        | Le prix du produit                                           |
| subscriptionDetails  | Data ([AdaptySubscriptionDetails](#adaptysubscriptiondetails)) | Informations sur l'abonnement                                |

### AdaptyPrice

Informations sur le prix du produit.

| Nom du champ    | Type   | Description                                        |
| --------------- | ------ | -------------------------------------------------- |
| amount          | Double | La valeur numérique du prix                        |
| currencyCode    | String | Le code de la devise du prix                       |
| currencySymbol  | String | Le symbole utilisé pour la devise                  |
| localizedString | String | Le prix affiché dans la langue de l'utilisateur    |

### AdaptyProductIntroEligibility

Définit si l'utilisateur est éligible à une offre de lancement pour un abonnement iOS.

| Field Name      | Type                                                        | Description                                                  |
| --------------- | ----------------------------------------------------------- | ------------------------------------------------------------ |
| vendorProductId | String                                                      | L'ID d'un produit dans un store                        |
| eligibility     | [AdaptyEligibilityEnum](ff-resources#adaptyeligibilityenum) | Indique si l'utilisateur est éligible à une offre de lancement pour un abonnement iOS |

### AdaptyProductNonsubscriptions

Détails de l'achat unique actif associé à ce produit.

| Nom du champ     | Type                                                        | Description                                                  |
| ---------------- | ----------------------------------------------------------- | ------------------------------------------------------------ |
| productId       | String                                                      | L'identifiant du produit dans le store                     |
| nonsubscriptions | [AdaptyNonSubscription](ff-resources#adaptynonsubscription) | Informations sur les achats hors abonnement. Il peut s'agir de produits achetés une seule fois (consommables), de déverrouillages (comme un nouveau niveau dans un jeu), etc. |

### AdaptyProductSubscriptions

Détails de l'abonnement actif lié à ce produit.

| Nom du champ | Type                                                  | Description                                         |
| ------------ | ----------------------------------------------------- | --------------------------------------------------- |
| productId   | String                                                | L'ID du produit dans un store                       |
| subscription | [AdaptySubscription](ff-resources#adaptysubscription) | Informations sur les achats d'abonnement            |

### AdaptyProfile

Informations sur le profil de l'utilisateur

| Field Name       | Type                                                         | Description                                                  |
| ---------------- | ------------------------------------------------------------ | ------------------------------------------------------------ |
| accessLevels     | List < Data ([AdaptyAccessLevelIdentifiers](ff-resources#adaptyaccesslevelidentifiers)) > | Liste de tous les niveaux d'accès appartenant à l'utilisateur |
| profileId        | String                                                       | L'identifiant du profil utilisateur                          |
| customerUserId   | String                                                       | L'identifiant de l'utilisateur dans le système du vendeur    |
| subscriptions    | List < Data ([MapKeySubscriptions](#mapkeysubscriptions)) >  | La liste de tous les abonnements achetés par l'utilisateur   |
| nonSubscriptions | List < Data ([MapKeyNonSubscriptions](#mapkeynonsubscriptions)) > | La liste de tous les produits hors abonnement achetés par l'utilisateur |

### AdaptyProfileParameters

Informations sur l'utilisateur.

| Nom du champ                  | Type                                                         | Description                                                  |
| ----------------------------- | ------------------------------------------------------------ | ------------------------------------------------------------ |
| firstName                     | String                                                       | Le prénom de l'utilisateur                                   |
| lastName                      | String                                                       | Le nom de famille de l'utilisateur                           |
| gender                        | [AdaptyGenderEnum](#adaptygenderenum)                        | Le genre de l'utilisateur                                    |
| birthday                      | String                                                       | La date de naissance de l'utilisateur                        |
| email                         | String                                                       | L'e-mail de l'utilisateur                                    |
| phoneNumber                   | String                                                       | Le numéro de téléphone de l'utilisateur                      |
| facebookAnonymousId           | String                                                       | L'identifiant de l'utilisateur dans l'[intégration Facebook Ads](facebook-ads) |
| amplitudeUserId               | String                                                       | L'identifiant de l'utilisateur dans l'[intégration Amplitude](amplitude) |
| amplitudeDeviceId             | String                                                       | L'identifiant de l'appareil de l'utilisateur dans l'[intégration Amplitude](amplitude) |
| mixpanelUserId                | String                                                       | L'identifiant de l'utilisateur dans l'[intégration Mixpanel](mixpanel) |
| appmetricaProfileId           | String                                                       | L'identifiant de l'utilisateur dans l'[intégration AppMetrica](appmetrica) |
| appmetricaDeviceId            | String                                                       | L'identifiant de l'appareil de l'utilisateur dans l'[intégration AppMetrica](appmetrica) |
| oneSignalPlayerId             | String                                                       | L'identifiant de l'utilisateur dans l'[intégration OneSignal](onesignal) |
| pushwooshHWID                 | String                                                       | L'identifiant de l'appareil de l'utilisateur dans l'[intégration Pushwoosh](pushwoosh) |
| firebaseAppInstanceId         | String                                                       | L'identifiant de l'utilisateur dans l'[intégration Firebase](firebase-and-google-analytics) |
| airbridgeDeviceId             | String                                                       | L'identifiant de l'appareil de l'utilisateur dans l'[intégration Airbridge](airbridge) |
| appTrackingTransparencyStatus | AdaptyATTStatus                                              | Le statut de l'accès à l'IDFA (à utiliser pour iOS)          |
| analyticsDisabled             | Boolean                                                      | Indique si l'[analytics externe est désactivé pour l'utilisateur](analytics-integration#disabling-external-analytics-for-a-specific-customer) |
| customStringAttributes        | List < Data ([AdaptyCustomStringAttribute](ff-resources#adaptycustomstringattribute)) > | Liste des attributs de chaîne personnalisés de l'utilisateur |
| customDoubleAttributes        | List < Data ([AdaptyCustomDoubleAttribute](ff-resources#adaptycustomdoubleattribute)) > | Liste des attributs double personnalisés de l'utilisateur    |

### AdaptySubscription

Informations sur l'abonnement existant de l'utilisateur.

| Nom du champ                | Type     | Description                                                  |
| --------------------------- | -------- | ------------------------------------------------------------ |
| activatedAt                 | DateTime | L'heure à laquelle cet abonnement a été activé               |
| activeIntroductoryOfferType | String   | Le type d'offre de lancement active. Si défini, cela signifie qu'une offre a été appliquée pendant cette période d'abonnement |
| activePromotionalOfferId    | String   | L'identifiant d'une offre promotionnelle active (à utiliser pour iOS) |
| activePromotionalOfferType  | String   | Le type d'offre promotionnelle active (à utiliser pour iOS). Si défini, cela signifie qu'une offre a été appliquée pendant cette période d'abonnement |
| cancellationReason          | String   | La raison pour laquelle l'abonnement a été annulé            |
| expiresAt                   | DateTime | La date d'expiration de l'abonnement                         |
| renewedAt                   | DateTime | La dernière heure de renouvellement de l'abonnement          |
| unsubscribedAt              | DateTime | L'heure à laquelle le renouvellement automatique a été désactivé pour l'abonnement. L'abonnement peut encore être actif. Si non défini, l'utilisateur a réactivé l'abonnement |
| billingIssueDetectedAt      | DateTime | L'heure à laquelle un problème de facturation a été détecté. L'abonnement peut encore être actif. Défini à null si le paiement est traité avec succès |
| isActive                    | Boolean  | True si cet abonnement est actif. En général, vous pouvez vérifier cette propriété pour déterminer si un utilisateur a accès aux fonctionnalités premium |
| isInGracePeriod             | Boolean  | True si cet abonnement à renouvellement automatique est en [délai de grâce](https://developer.apple.com/help/app-store-connect/manage-subscriptions/enable-billing-grace-period-for-auto-renewable-subscriptions) |
| isLifetime                  | Boolean  | True si cet abonnement est actif à vie (sans date d'expiration) |
| isRefund                    | Boolean  | True si cet achat a été remboursé                            |
| isSandbox                   | Boolean  | Indique si le produit a été acheté dans un environnement sandbox |
| offerId                     | String   | L'identifiant d'une offre promotionnelle active (à utiliser pour Android) |
| startsAt                    | DateTime | L'heure de début de ce niveau d'accès (peut être dans le futur) |
| store                       | String   | Le store où le produit a été acheté (ex. : App Store, Google Play) |
| vendorOriginalTransactionId | String   | Identifiant de l'abonnement initial dans le système du fournisseur |
| vendorProductId             | String   | Identifiant du produit dans le système du fournisseur        |
| vendorTransactionId         | String   | Identifiant de la transaction dans le système du fournisseur |
| willRenew                   | Boolean  | True si cet abonnement à renouvellement automatique est configuré pour se renouveler |

### AdaptySubscriptionDetails

Schéma d'un objet Subscription faisant partie de [AdaptyPaywallProduct](product).

| Nom du champ                        | Type                                                         | Description                                                  |
| ----------------------------------- | ------------------------------------------------------------ | ------------------------------------------------------------ |
| androidBasePlanId                   | String                                                       | [ID du plan de base](https://support.google.com/googleplay/android-developer/answer/12154973) dans le Google Play Store ou [ID de prix](https://docs.stripe.com/products-prices/how-products-and-prices-work#use-products-and-prices) dans Stripe. |
| androidIntroductoryOfferEligibility | [AdaptyEligibilityEnum](ff-resources#adaptyeligibilityenum)  | Indique si l'utilisateur est éligible à une offre de lancement pour un abonnement iOS |
| androidOfferId                      | String                                                       | L'ID d'une offre promotionnelle active (à utiliser pour Android) |
| androidOfferTags                    | List < String >                                              | Liste des [tags personnalisés](https://developers.google.com/android-publisher/api-ref/rest/v3/OfferTag) spécifiés pour les plans de base et les offres d'abonnement. |
| introductoryOffer                   | List < Data ([AdaptySubscriptionPhase](ff-resources#adaptysubscriptionphase)) > | L'ID d'une offre de lancement (à utiliser pour iOS)          |
| localizedSubscriptionPeriod         | String                                                       | La durée de l'abonnement dans la langue de l'utilisateur     |
| promotionalOffer                    | Data ([AdaptySubscriptionPhase](ff-resources#adaptysubscriptionphase)) | Les détails de l'offre promotionnelle (à utiliser pour iOS)  |
| promotionalOfferEligibility         | Boolean                                                      | Indique si l'utilisateur est éligible à une offre promotionnelle pour un abonnement iOS |
| promotionalOfferId                  | String                                                       | L'ID de l'offre promotionnelle (à utiliser pour iOS)         |
| renewalType                         | [AdaptyRenewalTypeEnum](#adaptyrenewaltypeenum)              | Indique si l'abonnement est à renouvellement automatique ou non via [AdaptyRenewalTypeEnum](ff-resources#adaptyrenewaltypeenum) |
| subscriptionGroupIdentifier         | String                                                       | L'ID du groupe de produits auquel appartient le produit (à utiliser pour iOS) |
| subscriptionPeriod                  | Data ([AdaptySubscriptionPeriod](#adaptysubscriptionperiod)) | La durée de l'abonnement                                     |

### AdaptySubscriptionPeriod

La durée de l'abonnement.

| Field Name    | Type                                          | Description                                                 |
| ------------- | --------------------------------------------- | ----------------------------------------------------------- |
| numberOfUnits | Integer                                       | Nombre de jours/semaines/mois/années que dure l'abonnement. |
| unit          | [AdaptyPeriodUnitEnum](#adaptyperiodunitenum) | Unité de mesure de la période : jours, semaines, mois, années. |

### AdaptySubscriptionPhase

Représente une phase d'abonnement, comme un essai gratuit ou une période d'offre de lancement.

| Nom du champ                | Type                                                         | Description                                                  |
| --------------------------- | ------------------------------------------------------------ | ------------------------------------------------------------ |
| identifier                  | String                                                       | L'identifiant de la phase                                    |
| localizedNumberOfPeriods    | String                                                       | La durée de la phase. Par exemple, une offre de 6 mois s'affichera comme `6 months` dans la langue de l'utilisateur. |
| localizedSubscriptionPeriod | String                                                       | La durée de l'abonnement dans la langue de l'utilisateur, par exemple `3 months`. |
| numberOfPeriods             | Integer                                                      | Le nombre de périodes d'abonnement dans cette phase. Par exemple, une offre de 6 mois comprend deux périodes de 3 mois. |
| paymentMode                 | [AdaptyPaymentModeEnum](#adaptypaymentmodeenum)              | Le mode de paiement utilisé pour cette phase.                |
| price                       | Data ([AdaptyPrice](#adaptyprice))                           | Le prix de cette phase.                                      |
| subscriptionPeriod          | Data ([AdaptySubscriptionPeriod](#adaptysubscriptionperiod)) | La période d'abonnement sur laquelle cette phase est basée.  |

### AdaptySubscriptionUpdateParameters

(*Android uniquement*)
Paramètres pour remplacer un abonnement par un autre.

| Field Name | Type                                                         | Description |
| ---------- | ------------------------------------------------------------ | ---------- |
| oldSubVendorProductId | String                                                       | L'ID de l'abonnement actuel dans le Play Store que vous souhaitez remplacer. |
| replacementMode       | [AdaptySubscriptionUpdateReplacementMode](ff-resources#adaptysubscriptionupdatereplacementmode) | Enum qui correspond aux valeurs de [`BillingFlowParams.ProrationMode`](https://developer.android.com/reference/com/android/billingclient/api/BillingFlowParams.SubscriptionUpdateParams.ReplacementMode). |

### MapKeyNonSubscriptions

Remplacement d'un dictionnaire pour [AdaptyNonSubscription](ff-resources#adaptynonsubscription).

| Nom du champ | Type                                                         |
| ------------ | ------------------------------------------------------------ |
| key          | String                                                       |
| value        | List < Data ([AdaptyNonSubscription](ff-resources#adaptynonsubscription)) > |

### MapKeySubscriptions

Remplacement d'un dictionnaire pour [AdaptySubscription](ff-resources#adaptysubscription).

| Field Name | Type                                                         |
| ---------- | ------------------------------------------------------------ |
| key        | String                                                       |
| value      | List < Data ([AdaptySubscription](ff-resources#adaptysubscription)) > |

## Enums \{#enums\}

Les enums Adapty (variables correspondant à des ensembles de constantes prédéfinies) sont transmis à FlutterFlow via le plugin Adapty.

### AdaptyEligibilityEnum

Définit si l'utilisateur est éligible à une offre de lancement pour un abonnement iOS.

| Nom du champ | Description |
|--------------------------|-------------|
| eligible | L'utilisateur est éligible à une offre de lancement ; vous pouvez afficher cette information dans votre interface |
| ineligible | L'utilisateur n'est pas éligible à une offre ; vous ne devez pas l'afficher dans votre interface |
| notApplicable | Ce produit n'est pas configuré pour proposer une offre |

### AdaptyGenderEnum

Définit le genre de l'utilisateur.

| Field Name | Description                                        |
| ---------- | -------------------------------------------------- |
| none       | Le genre n'est pas défini                          |
| female     | Le genre de l'utilisateur est féminin              |
| male       | Le genre de l'utilisateur est masculin             |
| Other      | L'utilisateur a défini son genre comme « autre »   |

### AdaptyPaymentModeEnum

Définit le modèle de paiement.

| Nom du champ | Description                                                  |
| ------------ | ------------------------------------------------------------ |
| payAsYouGo | Un modèle de tarification où les clients sont facturés en fonction de leur utilisation réelle d'un produit/service, plutôt que de payer un montant fixe à l'avance |
| payUpFront | Un modèle de tarification où les clients sont facturés avant de recevoir le produit/service. |
| freeTrial  | L'utilisateur est en période d'essai gratuit                               |
| unknown    | Le modèle de tarification n'est pas défini                                 |

### AdaptyPeriodUnitEnum

Définit les unités de mesure des périodes.

| Field Name | Description     |
| ---------- | --------------- |
| day        | En jours        |
| week       | En semaines     |
| month      | En mois         |
| year       | En années       |
| unknown    | Non défini      |

### AdaptyRenewalTypeEnum

Définit si l'abonnement est à renouvellement automatique ou non.

| Field Name    | Description                                                    |
| ------------- | -------------------------------------------------------------- |
| prepaid       | L'abonnement est prépayé et n'est pas à renouvellement automatique. |
| autorenewable | L'abonnement est à renouvellement automatique.                 |

### AdaptySubscriptionUpdateReplacementMode

Définit le mode de mise à jour d'abonnement pour Android.

| Nom du champ    | Description                                         |
| --------------- | --------------------------------------------------- |
| withTimeProration | (par défaut) Le nouveau plan prend effet immédiatement, et le temps restant est calculé au prorata et crédité à l'utilisateur. |
| chargeProratedPrice | Le nouveau plan prend effet immédiatement, et le cycle de facturation reste identique. Le prix pour la période restante est facturé. Cette option est uniquement disponible pour les mises à niveau d'abonnement. |
| withoutProration | Le nouveau plan prend effet immédiatement, et le nouveau prix sera facturé à la prochaine date de renouvellement. Le cycle de facturation reste identique. |
| deferred | Le nouvel achat prend effet immédiatement, et le nouveau plan entrera en vigueur à l'expiration de l'ancien article. |
| chargeFullPrice | Le nouveau plan prend effet immédiatement, et le cycle de facturation reste identique. Le prix pour la période restante est facturé. Cette option est uniquement disponible pour les mises à niveau d'abonnement. |

### États de l'application \{#app-states\}

Les variables d'état de l'application sont des variables spécifiques qui contiennent l'état actuel d'une application. Elles sont accessibles et modifiables dans toute l'application, sur toutes les pages et dans tous les composants. Ce type de variable est utile pour stocker des données devant être partagées entre différentes parties de l'app, comme les préférences utilisateur et les jetons d'authentification.

| Nom du champ   | Type de données                                    | Persisté | Description                                                  |
| -------------- | -------------------------------------------------- | --------- | ------------------------------------------------------------ |
| currentProfile | Data ([AdaptyProfile](ff-resources#adaptyprofile)) | False     | La variable contenant les informations sur le profil utilisateur actuel. Gardez-la à jour. |