---
title: "Agents d'achat IA et boutiques personnalisées"
description: "Les agents d'achat IA et les liens de l'app Shop ne peuvent pas encore choisir de date de livraison, mais vos règles de date s'appliquent quand même au paiement. Indiquez aux agents qu'une date est requise, et laissez les boutiques Hydrogen ou headless écrire la date pour que le paiement l'accepte."
contentType: "docs"
locale: "fr"
localized: true
source: "https://orderrules.com/fr/docs/delivery/ai-shopping-agents-and-headless"
slug: "delivery/ai-shopping-agents-and-headless"
---
## Agents d'achat IA (ChatGPT, Gemini, Copilot) et liens de l'app Shop

**Ils ne peuvent pas encore choisir de date de livraison. Shopify ne donne aucun moyen aux apps d'en demander une à un agent.** Vos règles de date s'appliquent quand même à leurs commandes au paiement :

- Avec **Bloquer**, le paiement demande au client de terminer sur votre boutique et d'y choisir la date.
- Avec **Accepter**, la commande passe et le client choisit la date sur la page de confirmation de commande (remerciement), ou plus tard sur la page d'état de la commande une fois connecté à son compte.

Voir [Commandes sans date de livraison](/docs/delivery/orders-without-a-delivery-date).

### Indiquer aux agents qu'une date est requise

OrderRules → **Dates de livraison** → **Commandes et traitement** → **Indiquer aux agents IA qu'une date est requise**. Copiez la FAQ prête à l'emploi et ajoutez-la à l'app gratuite **Knowledge Base** de Shopify, que les agents IA consultent quand les clients posent des questions sur votre boutique. Ajouter la même phrase à votre politique d'expédition aide aussi.

![L'encadré pour indiquer aux agents IA qu'une date est requise dans OrderRules, avec une FAQ prête à copier dans l'app Knowledge Base de Shopify](/images/docs/delivery-ai-agents-faq.png)

## Boutiques personnalisées (Hydrogen, headless, agents sur mesure)

Le sélecteur de date de livraison d'OrderRules est un bloc d'app de thème : il n'apparaît donc que sur les thèmes Online Store. Une boutique construite sur l'API Storefront le contourne, qu'il s'agisse de Hydrogen ou d'une app React ou Next.js sur mesure. **Le paiement applique quand même vos règles.**

Pour laisser les acheteurs choisir la date dans votre propre boutique, écrivez-la dans le panier avec les mêmes champs que le sélecteur. Les requêtes ci-dessous concernent l'API Storefront 2026-10.

### 1. Lire les dates ouvertes

```graphql
query OrderRulesDelivery {
  shop {
    metafield(namespace: "order_rules", key: "delivery") { value }
  }
}
```

`value` est du JSON. Les éléments dont vous avez besoin :

| Champ | Signification |
|---|---|
| `rules[]` | Règles de livraison : `id`, `scope` (`storewide` / `product` / `collection` / `tag`), `requireDate`, `requireSlot`, `slotTemplateId`, `allowedDates` (YYYY-MM-DD, déjà après l'heure limite et le délai de préparation) |
| `defaultRuleId` | La règle valable pour toute la boutique, s'il y en a une |
| `productRuleMap` | Identifiant numérique du produit → identifiant de la règle |
| `collectionProductIds` / `tagProductIds` | Les produits couverts par une règle de collection ou d'étiquette |
| `blackouts` | Dates fermées (YYYY-MM-DD) |
| `slotTemplates[id].windows[]` | Créneaux horaires : `id`, `label`, `start`, `end` |
| `capacity[date][slotId or "_all"]` | Réservations restantes ; `0` signifie complet |

N'affichez une date que si toutes ces conditions sont remplies :

- elle figure dans les `allowedDates` de la règle ;
- elle ne figure pas dans `blackouts` ;
- `capacity[date]._all` n'est pas `0`.

Quand `requireDate` est vrai, la date est obligatoire. Le metafield est actualisé à chaque modification de vos réglages de livraison et après l'arrivée de commandes. Traitez-le comme en lecture seule : son format est interne et peut changer.

### 2. Écrire la date choisie

**Une seule date pour toute la commande.** Attributs du panier :

```graphql
mutation SetDeliveryDate($cartId: ID!) {
  cartAttributesUpdate(cartId: $cartId, attributes: [
    { key: "_os_dp", value: "d|2026-11-04|am" }
    { key: "delivery_date", value: "2026-11-04" }
    { key: "delivery_slot", value: "am" }
  ]) {
    cart { id }
    userErrors { field message }
  }
}
```

- `_os_dp` est ce que lit la vérification du paiement. Son format est `d|YYYY-MM-DD|slotId` ; laissez le créneau vide quand il n'y a pas de créneaux horaires, par exemple `d|2026-11-04|`.
- `delivery_date` et `delivery_slot` sont ce que lisent votre liste de commandes, les étiquettes, l'export CSV et les décomptes de capacité.

**Ou une date par produit.** Un attribut de ligne :

```graphql
mutation AddDatedLine($cartId: ID!) {
  cartLinesAdd(cartId: $cartId, lines: [{
    merchandiseId: "gid://shopify/ProductVariant/123"
    quantity: 1
    attributes: [{ key: "_os_dpl", value: "d|2026-11-04|am" }]
  }]) {
    cart { id }
    userErrors { field message }
  }
}
```

Le `_os_dpl` propre à une ligne l'emporte sur le `_os_dp` de la commande. Les lignes qui n'en ont pas utilisent la date de la commande.

### 3. Vérifier

Allez au paiement avec un produit à date obligatoire.

- **Sans date :** le paiement affiche « Please choose a delivery date… ».
- **Avec une date valide :** le paiement se poursuit, et la commande affiche la date dans ses détails supplémentaires.

## Des liens plutôt qu'une boutique

Pour vendre par chat, e-mail ou réseaux sociaux, utilisez le [Lien de paiement avec date de livraison](/docs/delivery/checkout-links-with-delivery-date). Il crée un lien de panier avec la date déjà définie.

## Voir aussi

- [Commandes sans date de livraison](/docs/delivery/orders-without-a-delivery-date) · [Protection du paiement](/docs/delivery/checkout-protection) · [Date de livraison après la commande](/docs/delivery/delivery-date-after-order)
