# Livestore

Ce guide explique comment activer le **formulaire client externe** extension dans **Cegid Retail Live Store**.

Une fois activée, LiveStore ouvre un formulaire d'inscription hébergé par The Wallet Crew lorsque le personnel crée ou modifie un client. Après la soumission, le personnel est redirigé vers la page des détails du client dans LiveStore. Vous pouvez également activer un mode QR code afin que les clients puissent compléter l'inscription sur leur propre téléphone.

<details>

<summary><strong>Exemples concrets</strong></summary>

* Un vendeur crée un nouveau client fidélité dans Live Store. Le formulaire The Wallet Crew collecte les données et crée le client dans Cegid Y2.
* Un vendeur modifie un client existant. Le formulaire The Wallet Crew met à jour le client dans Cegid Y2, puis retourne à la page de détail du client.
* Un magasin utilise une tablette à l'entrée. Un client scanne un QR code et complète l'inscription en libre-service.

</details>

### Prérequis

Vous devez avoir accès pour configurer à la fois Live Store et The Wallet Crew.

Côté Cegid, vous devez avoir la permission de modifier **newpossettings** au **niveau**, **pays**, ou **magasin** niveau.

Côté The Wallet Crew, votre locataire doit disposer du **connecteur Cegid Retail Y2** configuré et opérationnel.

* Si vous n'avez pas encore connecté Y2, commencez par [Se connecter à Cegid Retail Y2](https://docs.thewalletcrew.io/fr/connecter/pos/cegid/connect-with-cegid-retail-y2).
* Si vous devez vérifier quels champs client sont synchronisés, consultez [mappage des champs Cegid Retail Y2](https://docs.thewalletcrew.io/fr/connecter/pos/cegid/cegid-retail-y2-fields-mapping).

### Configuration

{% stepper %}
{% step %}

#### Créer une clé API dans The Wallet Crew

Créez une clé API que Live Store utilisera pour appeler les endpoints de The Wallet Crew.

1. Ouvrir la page de gestion des clés API

<p align="center"><a href="https://admin.thewalletcrew.io/tenant/~/apiKeys" class="button secondary" data-icon="chevrons-right">Gestion des clés API</a><br></p>

2. Créez une nouvelle clé API avec le scope `tenant.y2.listener`.
3. Copiez la valeur générée et stockez-la dans votre gestionnaire de secrets.

Vous l'utiliserez comme `X-API-KEY` en-tête dans la configuration LiveStore.
{% endstep %}

{% step %}

#### Configurer The Wallet Crew (runtime)

Cette extension nécessite une configuration spécifique à LiveStore dans le runtime de votre locataire.

Mettez à jour la configuration de votre runtime :

1. Dans Configuration Avancée, sur le fichier `security.yml`, ajoutez un challenger de compte de type `livestore`.
2. Mettez à jour votre flux d'inscription pour ajouter un `livestore` élément de flux.
3. Create `server/livestore.yml`:

```yaml
layout: mobile_ls
useTabletMode: false
provider: y2
customerRedirectLayout: mobile_livestore
```

4. Créez ou mettez à jour les deux layouts référencés (`mobile_ls` et `mobile_livestore`).
   {% endstep %}

{% step %}

#### Configurer Live Store (newpossettings)

Ouvrez l'administration newpossettings dans votre environnement Live Store :

* Test : `https://<your-tenant>-test-retail-ondemand.cegid.cloud/Y2/newpossettings/`
* Prod : `https://<your-tenant>-retail-ondemand.cegid.cloud/Y2/newpossettings/`

Configurez l'extension au **niveau**, **pays**, ou **magasin** niveau. Elle n'est pas disponible au niveau de la caisse.

<div data-with-frame="true"><figure><img src="https://3097111101-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FWLc8AHXW4tdrAXUBfrYF%2Fuploads%2Fgit-blob-9f0ec5a2400496e78d2ed2ae1ea7a63e1d42ad0b%2Flivestore_1.png?alt=media" alt="Cegid newpossettings scope selection showing Global, Country, and Store level configuration."><figcaption><p>Choisissez la portée où l'extension s'applique (global, pays ou magasin).</p></figcaption></figure></div>

Définissez les `LiveStore_Connector_ExternalCustomerForm` entrée avec les valeurs de votre locataire :

{% tabs %}
{% tab title="Production" %}

```yaml
apiEndpoint: https://app.neostore.cloud/api/<YOUR_TENANTID>/external/livestore/session
endpoint: https://app.neostore.cloud/api/<YOUR_TENANTID>/external/livestore
headerName: X-API-KEY
headerValue: <YOUR_API_KEY>
```

{% hint style="info" %}
N'oubliez pas de remplacer \<YOUR\_TENANTID> et \<YOUR\_API\_KEY> par les valeurs associées
{% endhint %}

{% hint style="info" %}
Si vous avez configuré un domaine personnalisé, remplacez app.neostore.cloud par votre domaine personnalisé
{% endhint %}
{% endtab %}

{% tab title="Staging" %}

```yaml
active: true
apiEndpoint: https://app-qa.neostore.cloud/api/<YOUR_TENANTID>/external/livestore/session
endpoint: https://app-qa.neostore.cloud/api/<YOUR_TENANTID>/external/livestore
headerName: X-API-KEY
headerValue: <YOUR_API_KEY>
```

{% hint style="info" %}
N'oubliez pas de remplacer \<YOUR\_TENANTID> et \<YOUR\_API\_KEY> par les valeurs associées
{% endhint %}
{% endtab %}
{% endtabs %}

Si vous devez épingler un magasin spécifique, définissez l'extension au niveau du magasin et ajoutez `storeId`:

```yaml
endpoint: https://app.neostore.cloud/api/<tenantId>/external/livestore?storeId=<storeId>
```

{% endstep %}

{% step %}

#### Valider le flux

Validez d'abord dans un environnement de test.

1. Dans Live Store, ouvrez l'écran de création ou de modification du client.
2. Confirmez que Live Store redirige vers le formulaire d'inscription.
3. Soumettez le formulaire avec des données de test.
4. Confirmez que vous êtes redirigé vers la page des détails du client dans Live Store.

Si vous obtenez une erreur d'autorisation, vérifiez à nouveau la `X-API-KEY` valeur de l'en-tête et le scope de la clé API.
{% endstep %}
{% endstepper %}

### Optionnel : afficher un QR code pour l'inscription en libre-service

Utilisez ceci lorsqu'un magasin utilise une tablette et souhaite que les clients continuent sur leur propre téléphone.

Activez le mode tablette dans `server/livestore.yml` et pointez la mise en page de redirection vers une mise en page adaptée aux mobiles :

```yaml
layout: pos
useTabletMode: true
provider: y2
customerRedirectLayout: mobile
```

### FAQ

<details>

<summary><strong>Où configurer l'extension dans Live Store ?</strong></summary>

Utilisation **newpossettings**. Configurez-la au **niveau**, **pays**, ou **magasin** niveau. Live Store ne prend pas en charge cette extension au niveau de la caisse.

</details>

<details>

<summary><strong>Quelle URL dois-je utiliser pour <code>endpoint</code> et <code>apiEndpoint</code>?</strong></summary>

Utilisez le `https://app.neostore.cloud/api/<tenantId>/external/livestore` base et remplacez `<tenantId>` par votre ID de locataire dans The Wallet Crew.

Si votre projet utilise un environnement différent (staging, QA ou un domaine personnalisé), utilisez l'URL de base fournie par The Wallet Crew lors de la configuration.

</details>

<details>

<summary><strong>Puis-je réutiliser la même clé API pour les tests et la production ?</strong></summary>

Évitez-le. Utilisez des clés API distinctes par environnement. Faites pivoter les clés si vous suspectez qu'elles ont été exposées.

</details>

<details>

<summary><strong>Live Store redirige, mais j'atterris sur une page d'erreur. Que dois-je vérifier ?</strong></summary>

Commencez par les bases. Confirmez que l' `endpoint` URL est accessible depuis le réseau Live Store. Confirmez que l' `X-API-KEY` en-tête est présent et correct. Ensuite, confirmez que le connecteur Cegid Retail Y2 est activé dans The Wallet Crew et peut atteindre vos services Y2.

</details>
