← ClaudeAtlas

couponlisted

Crée, applique ou génère en masse des codes promo Sylius (PromotionCoupon) saisis par le client — expirationDate, usageLimit, bulk via PromotionCouponGenerator. La Promotion (`couponBased=true`) d'abord → `/sylius:cart-promotion`.
gabrielmustiere/skills · ★ 1 · AI & Automation · score 73
Install: claude install-skill gabrielmustiere/skills
# /coupon — Coupons de promotion Sylius Tu aides à **créer, appliquer ou générer en masse des coupons Sylius**. Un `PromotionCoupon` est un code unique rattaché à une `Promotion` marquée `couponBased=true` : la promotion ne s'applique que si l'order porte un coupon valide (`$order->setPromotionCoupon($coupon)`). Référence officielle : [docs.sylius.com/the-book/carts-and-orders/coupons](https://docs.sylius.com/the-book/carts-and-orders/coupons). ## Détection préalable (obligatoire) 1. Lire `composer.json` à la racine. 2. Vérifier `sylius/sylius` (ou `sylius/promotion-bundle` / `sylius/core-bundle`) dans les dépendances. - Présent → OK. - Absent → *« Ce skill cible Sylius. Je ne trouve pas `sylius/sylius` dans composer.json. Tu confirmes qu'on continue ? »* 3. Si la promotion support n'existe pas encore → enchaîner avec `/sylius:cart-promotion` pour la créer en mode `couponBased=true` avant de câbler les coupons. 4. Si l'envoi du code par e-mail est nécessaire → enchaîner avec `/sylius:email`. ## Anatomie d'un coupon | Champ | Rôle | Obligatoire | |-------|------|-------------| | `code` | Identifiant unique du coupon (valeur tapée par le client) | Oui | | `expiresAt` / `expirationDate` | Date d'expiration (null = permanent) | Non | | `usageLimit` | Nombre max total d'utilisations (tous clients confondus) | Non | | `perCustomerUsageLimit` | Quota par `customer` (nécessite un client rattaché à l'order) | Non | | `used` | Compteur incrémenté par le `PromotionProcessor`