---
title: "Activer les achats avec Flow Builder dans le SDK Capacitor"
description: "Guide de démarrage rapide pour activer les achats intégrés avec Adapty Flow Builder."
---

Pour activer les achats intégrés, vous devez comprendre trois concepts clés :

- [**Produits**](product) – tout ce que les utilisateurs peuvent acheter (abonnements, consommables, accès à vie)
- [**Flows**](adapty-flow-builder) – séquences d'écrans qui présentent des produits aux utilisateurs, construites dans le Flow Builder sans code. Le SDK les récupère via `getFlow`. Si vous préférez construire l'interface dans votre propre code, utilisez un paywall à la place — voir [Implémenter des paywalls manuellement](capacitor-quickstart-manual).
- [**Placements**](placements) – où et quand vous affichez des flows dans votre application (comme `main`, `onboarding`, `settings`). Vous associez des flows à des placements dans le tableau de bord, puis vous les demandez par ID de placement dans votre code. Cela facilite l'exécution de tests A/B et l'affichage de flows différents selon les utilisateurs.

Adapty vous propose trois façons d'activer les achats dans votre application. Choisissez celle qui correspond le mieux à vos besoins :

| Implémentation | Complexité | Quand l'utiliser |
|---|---|---|
| Adapty Flow Builder | ✅ Facile | Vous [créez un flow complet et prêt à l'achat dans le builder sans code](quickstart-paywalls). Adapty l'affiche automatiquement et gère tout le processus d'achat, la validation des reçus et la gestion des abonnements en coulisses. |
| Paywalls créés manuellement | 🟡 Moyen | Vous implémentez votre interface de paywall dans le code de votre application, mais récupérez quand même l'objet flow depuis Adapty pour garder de la flexibilité sur les offres de produits. Voir le [guide](capacitor-quickstart-manual). |
| Mode observateur | 🔴 Difficile | Vous disposez déjà de votre propre infrastructure de gestion des achats et souhaitez continuer à l'utiliser. Notez que le mode observateur a ses limitations dans Adapty. Voir l'[article](observer-vs-full-mode). |

:::important
**Les étapes ci-dessous montrent comment implémenter un flow créé dans Adapty Flow Builder.**

Si vous préférez construire vous-même l'interface du paywall, voir [Implémenter des paywalls manuellement](capacitor-quickstart-manual).
:::

Pour afficher un flow créé dans Adapty Flow Builder, vous n'avez besoin que de :

1. **Récupérer le flow** : Obtenez-le depuis Adapty.
2. **L'afficher et Adapty gérera les achats à votre place** : Affichez la vue dans votre application.
3. **Gérer les actions des boutons** : Associez les interactions utilisateur aux réponses de votre application. Par exemple, ouvrir des liens ou fermer le flow lorsque les utilisateurs cliquent sur des boutons.

## Avant de commencer \{#before-you-start\}

Avant de commencer, effectuez ces étapes :

1. Connectez votre application à l'[App Store](initial_ios) et/ou à [Google Play](initial-android) dans l'Adapty Dashboard.
2. [Créez vos produits](create-product) dans Adapty.
3. [Créez un flow et ajoutez-y des produits](create-paywall).
4. [Créez un placement et ajoutez-y votre flow](create-placement).
5. [Installez et activez le SDK Adapty](sdk-installation-capacitor) dans le code de votre application. Ce guide utilise les API Adapty Capacitor SDK v4.

## 1. Récupérer le flow \{#1-get-the-flow\}

Vos flows sont associés à des placements configurés dans le tableau de bord. Les placements vous permettent d'exécuter différents flows pour différentes audiences ou de lancer des [tests A/B](ab-tests).

Pour obtenir un flow créé dans Adapty Flow Builder, récupérez l'objet `flow` par l'ID de [placement](placements) à l'aide de la méthode `getFlow`. Le flow contient les éléments d'interface et le style nécessaires à son affichage.

```typescript showLineNumbers title="Capacitor"

try {
  const flow = await adapty.getFlow({
    placementId: 'YOUR_PLACEMENT_ID',
  });
  // the requested flow
} catch (error) {
  // handle the error
}
```

## 2. Afficher le flow \{#2-display-the-flow\}

Maintenant que vous avez le flow, quelques lignes suffisent pour l'afficher.

Créez une `view` avec la méthode `createFlowView`, définissez ses gestionnaires d'événements, puis appelez `view.present()`. Chaque `view` ne peut être utilisée qu'une seule fois. Si vous devez afficher le flow à nouveau, appelez `createFlowView` une nouvelle fois pour créer une nouvelle instance de `view`.

```typescript showLineNumbers title="Capacitor"

try {
  const view = await createFlowView(flow);

  await view.setEventHandlers({
    onPurchaseCompleted(purchaseResult, product) {
      return purchaseResult.type === 'success'; // close the flow on a successful purchase, keep it open for cancelled or pending purchases
    },
  });

  await view.present();
} catch (error) {
  // handle the error
}
```

:::tip
Pour plus de détails sur l'affichage d'un flow, consultez notre [guide](capacitor-present-paywalls).
:::

## 3. Gérer les actions des boutons \{#3-handle-button-actions\}

Lorsque les utilisateurs cliquent sur des boutons dans le flow, le SDK Capacitor gère automatiquement les achats, la restauration, la fermeture du flow et l'ouverture des URL.

Cependant, d'autres boutons ont des ID personnalisés ou prédéfinis et nécessitent de gérer les actions dans votre code. Vous pouvez également vouloir remplacer leur comportement par défaut.

Par exemple, voici le comportement par défaut du bouton de fermeture. Vous n'avez pas besoin de l'ajouter dans le code, mais vous pouvez voir ici comment procéder si nécessaire.

```typescript showLineNumbers title="Capacitor"
const unsubscribe = await view.setEventHandlers({
  onCloseButtonPress() {
    return true; // allow the flow to close
  },
});
```

:::tip
Consultez nos guides sur la gestion des [actions](capacitor-handle-paywall-actions) et des [événements](capacitor-handling-events) des boutons.
:::

## Étapes suivantes \{#next-steps\}

:::tip
Des questions ou des problèmes ? Consultez notre [forum d'assistance](https://adapty.featurebase.app/) où vous trouverez des réponses aux questions fréquentes ou pourrez poser les vôtres. Notre équipe et notre communauté sont là pour vous aider !
:::

Votre flow est prêt à être affiché dans l'application. [Testez vos achats](capacitor-test) pour vous assurer de pouvoir effectuer un achat test depuis le flow.

Vous devez ensuite [vérifier le niveau d'accès des utilisateurs](capacitor-check-subscription-status) pour vous assurer d'afficher un flow ou de donner accès aux fonctionnalités payantes aux bons utilisateurs.

## Exemple complet \{#full-example\}

Voici comment intégrer ensemble toutes les étapes de ce guide dans votre application.

```typescript showLineNumbers title="Capacitor"

export async function showFlow() {
  try {
    const flow = await adapty.getFlow({
      placementId: 'YOUR_PLACEMENT_ID',
    });

    const view = await createFlowView(flow);

    await view.setEventHandlers({
      onCloseButtonPress() {
        return true;
      },
      onPurchaseCompleted(purchaseResult, product) {
        return purchaseResult.type === 'success'; // close the flow on a successful purchase, keep it open for cancelled or pending purchases
      },
    });

    await view.present();
  } catch (error) {
    // handle any error that may occur during the process
    console.warn('Error showing flow:', error);
  }
}
```