---
title: "Guide de migration vers Flutter Adapty SDK 3.10.0"
description: ""
---

> **AI agents**: to search Adapty docs faster and with fewer tokens, install the Adapty skill. Claude Code (self-updating via plugin): `claude plugin marketplace add adaptyteam/adapty-sdk-integration-skill && claude plugin install adapty-sdk-integration@adapty` — other tools: `npx skills add adaptyteam/adapty-sdk-integration-skill --all`

Adapty SDK 3.10.0 est une version majeure qui apporte des améliorations nécessitant toutefois quelques étapes de migration de votre part :

1. Mettre à jour la méthode `makePurchase` pour utiliser `AdaptyPurchaseParameters` à la place des paramètres individuels.
2. Remplacer `vendorProductIds` par `productIdentifiers` dans le modèle `AdaptyPaywall`.

## Mettre à jour la méthode makePurchase \{#update-makepurchase-method\}

La méthode `makePurchase` utilise désormais `AdaptyPurchaseParameters` à la place des arguments individuels `subscriptionUpdateParams` et `isOfferPersonalized`. Cela offre une meilleure sécurité des types et permet d'étendre les paramètres d'achat à l'avenir.

```diff showLineNumbers
- final purchaseResult = await adapty.makePurchase(
-   product: product,
-   subscriptionUpdateParams: subscriptionUpdateParams,
-   isOfferPersonalized: true,
- );

+ final parameters = AdaptyPurchaseParametersBuilder()
+   ..setSubscriptionUpdateParams(subscriptionUpdateParams)
+   ..setIsOfferPersonalized(true)
+   ..setObfuscatedAccountId('your-account-id')
+   ..setObfuscatedProfileId('your-profile-id');

+ final purchaseResult = await adapty.makePurchase(
+   product: product,
+   parameters: parameters.build(),
+ );
```

Si aucun paramètre supplémentaire n'est nécessaire, vous pouvez simplement utiliser :

```dart showLineNumbers
final purchaseResult = await adapty.makePurchase(
  product: product,
);
```

## Mettre à jour l'utilisation du modèle AdaptyPaywall \{#update-adaptypaywall-model-usage\}

La propriété `vendorProductIds` a été dépréciée au profit de `productIdentifiers`. La nouvelle propriété retourne des objets `AdaptyProductIdentifier` au lieu de simples chaînes de caractères, offrant une structure d'informations produit plus cohérente.

```diff showLineNumbers
- paywall.vendorProductIds.map((vendorId) => 
-   ListTextTile(title: vendorId)
- ).toList()

+ paywall.productIdentifiers.map((productId) => 
+   ListTextTile(title: productId.vendorProductId)
+ ).toList()
```

L'objet `AdaptyProductIdentifier` donne accès à l'identifiant de produit du vendor via la propriété `vendorProductId`, conservant ainsi la même fonctionnalité tout en offrant une meilleure structure pour les évolutions futures.

## Compatibilité ascendante \{#backward-compatibility\}

Les deux modifications maintiennent la compatibilité ascendante :
- Les anciens paramètres de `makePurchase` sont dépréciés mais restent fonctionnels
- La propriété `vendorProductIds` est dépréciée mais reste accessible
- Le code existant continuera de fonctionner, même si des avertissements de dépréciation apparaîtront

Nous vous recommandons de mettre à jour votre code pour utiliser les nouvelles API afin de garantir la compatibilité future et de profiter de la meilleure sécurité des types et extensibilité offertes.