Components

8 Twig Components
20 Render Count
44 ms Render Time
131.0 MiB Memory Usage

Components

Name Metadata Render Count Render Time
sylius_shop:product:card
"Sylius\Bundle\ShopBundle\Twig\Component\Product\CardComponent"
@SyliusUi/components/default.html.twig
4 27.52ms
sylius_shop:main_image
[Anonymous]
@SyliusShop/shared/components/main_image.html.twig
4 2.08ms
sylius_shop:catalog_promotions
[Anonymous]
@SyliusShop/shared/components/catalog_promotions.html.twig
4 1.73ms
sylius_shop:product:card:price
"Sylius\Bundle\ShopBundle\Twig\Component\Product\PriceComponent"
@SyliusUi/components/default.html.twig
4 0.54ms
sylius_shop:product:show:breadcrumbs
"Sylius\Bundle\ShopBundle\Twig\Component\Product\BreadcrumbComponent"
@SyliusUi/components/default.html.twig
1 4.15ms
sylius_shop:product:show:taxonomy
"Sylius\Bundle\ShopBundle\Twig\Component\Product\BreadcrumbComponent"
@SyliusUi/components/default.html.twig
1 6.96ms
sylius_shop:product:show:header
"Sylius\Bundle\ShopBundle\Twig\Component\Product\BreadcrumbComponent"
@SyliusUi/components/default.html.twig
1 1.67ms
sylius_shop:cart:widget:offcanvas
"Sylius\Bundle\ShopBundle\Twig\Component\Cart\WidgetComponent"
@SyliusUi/components/default.html.twig
1 4.20ms

Render calls

sylius_shop:product:show:breadcrumbs Sylius\Bundle\ShopBundle\Twig\Component\Product\BreadcrumbComponent 118.5 MiB 4.15 ms
Input props
[
  "hookableMetadata" => Sylius\TwigHooks\Hookable\Metadata\HookableMetadata {#11141
    +renderedBy: Sylius\TwigHooks\Hook\Metadata\HookMetadata {#11014 …}
    +context: Sylius\TwigHooks\Bag\DataBag {#11013 …}
    +configuration: Sylius\TwigHooks\Bag\ScalarDataBag {#11142 …}
    +prefixes: [
      "sylius_shop.product.index.content"
    ]
  }
  "template" => "@SyliusShop/product/index/content/breadcrumbs.html.twig"
]
Attributes
[
  "template" => "@SyliusShop/product/index/content/breadcrumbs.html.twig"
]
Component
Sylius\Bundle\ShopBundle\Twig\Component\Product\BreadcrumbComponent {#11164
  #requestStack: Symfony\Component\HttpFoundation\RequestStack {#198 …}
  #taxonRepository: Sylius\Bundle\TaxonomyBundle\Doctrine\ORM\TaxonRepository {#7275 …}
  #localeContext: Sylius\Component\Locale\Context\CompositeLocaleContext {#1256 …}
  +hookableMetadata: Sylius\TwigHooks\Hookable\Metadata\HookableMetadata {#11141
    +renderedBy: Sylius\TwigHooks\Hook\Metadata\HookMetadata {#11014 …}
    +context: Sylius\TwigHooks\Bag\DataBag {#11013 …}
    +configuration: Sylius\TwigHooks\Bag\ScalarDataBag {#11142 …}
    +prefixes: [
      "sylius_shop.product.index.content"
    ]
  }
}
sylius_shop:product:show:taxonomy Sylius\Bundle\ShopBundle\Twig\Component\Product\BreadcrumbComponent 118.5 MiB 6.96 ms
Input props
[
  "hookableMetadata" => Sylius\TwigHooks\Hookable\Metadata\HookableMetadata {#11308
    +renderedBy: Sylius\TwigHooks\Hook\Metadata\HookMetadata {#11312 …}
    +context: Sylius\TwigHooks\Bag\DataBag {#11311 …}
    +configuration: Sylius\TwigHooks\Bag\ScalarDataBag {#11309 …}
    +prefixes: [
      "sylius_shop.product.index.content.body.sidebar"
    ]
  }
  "template" => "@SyliusShop/product/index/content/body/sidebar/taxonomy.html.twig"
]
Attributes
[
  "template" => "@SyliusShop/product/index/content/body/sidebar/taxonomy.html.twig"
]
Component
Sylius\Bundle\ShopBundle\Twig\Component\Product\BreadcrumbComponent {#11300
  #requestStack: Symfony\Component\HttpFoundation\RequestStack {#198 …}
  #taxonRepository: Sylius\Bundle\TaxonomyBundle\Doctrine\ORM\TaxonRepository {#7275 …}
  #localeContext: Sylius\Component\Locale\Context\CompositeLocaleContext {#1256 …}
  +hookableMetadata: Sylius\TwigHooks\Hookable\Metadata\HookableMetadata {#11308
    +renderedBy: Sylius\TwigHooks\Hook\Metadata\HookMetadata {#11312 …}
    +context: Sylius\TwigHooks\Bag\DataBag {#11311 …}
    +configuration: Sylius\TwigHooks\Bag\ScalarDataBag {#11309 …}
    +prefixes: [
      "sylius_shop.product.index.content.body.sidebar"
    ]
  }
}
sylius_shop:product:show:header Sylius\Bundle\ShopBundle\Twig\Component\Product\BreadcrumbComponent 118.5 MiB 1.67 ms
Input props
[
  "hookableMetadata" => Sylius\TwigHooks\Hookable\Metadata\HookableMetadata {#11770
    +renderedBy: Sylius\TwigHooks\Hook\Metadata\HookMetadata {#11766 …}
    +context: Sylius\TwigHooks\Bag\DataBag {#11767 …}
    +configuration: Sylius\TwigHooks\Bag\ScalarDataBag {#11769 …}
    +prefixes: [
      "sylius_shop.product.index.content.body.main"
    ]
  }
  "template" => "@SyliusShop/product/index/content/body/main/header.html.twig"
]
Attributes
[
  "template" => "@SyliusShop/product/index/content/body/main/header.html.twig"
]
Component
Sylius\Bundle\ShopBundle\Twig\Component\Product\BreadcrumbComponent {#11778
  #requestStack: Symfony\Component\HttpFoundation\RequestStack {#198 …}
  #taxonRepository: Sylius\Bundle\TaxonomyBundle\Doctrine\ORM\TaxonRepository {#7275 …}
  #localeContext: Sylius\Component\Locale\Context\CompositeLocaleContext {#1256 …}
  +hookableMetadata: Sylius\TwigHooks\Hookable\Metadata\HookableMetadata {#11770
    +renderedBy: Sylius\TwigHooks\Hook\Metadata\HookMetadata {#11766 …}
    +context: Sylius\TwigHooks\Bag\DataBag {#11767 …}
    +configuration: Sylius\TwigHooks\Bag\ScalarDataBag {#11769 …}
    +prefixes: [
      "sylius_shop.product.index.content.body.main"
    ]
  }
}
sylius_shop:product:card Sylius\Bundle\ShopBundle\Twig\Component\Product\CardComponent 129.0 MiB 15.77 ms
Input props
[
  "product" => App\Entity\Product\Product {#7827
    #id: 25
    #code: "zamani_marron"
    #attributes: Doctrine\ORM\PersistentCollection {#5899 …}
    #variants: Doctrine\ORM\PersistentCollection {#7862 …}
    #options: Doctrine\ORM\PersistentCollection {#8005 …}
    #associations: Doctrine\ORM\PersistentCollection {#7945 …}
    #createdAt: DateTime @1788452486 {#7287
      date: 2026-09-03 16:21:26.0 UTC (+00:00)
    }
    #updatedAt: DateTime @1788452487 {#7573
      date: 2026-09-03 16:21:27.0 UTC (+00:00)
    }
    #enabled: true
    #translations: Doctrine\ORM\PersistentCollection {#8004 …}
    #translationsCache: [
      "fr_FR" => App\Entity\Product\ProductTranslation {#8007
        #locale: "fr_FR"
        #translatable: App\Entity\Product\Product {#7827}
        #id: 25
        #name: "Marron"
        #slug: "Zamani_marron"
        #description: "trgmgjpjngnjvn"
        #metaKeywords: "kaftan prestige, kaftan ultime, sarki, kaftan cérémonie, kaftan haut de gamme, kaftan elegant"
        #metaDescription: "SARKI, le kaftan de prestige : tissu d'exception, douceur et respirabilité, coupe élégante"
        #shortDescription: """
          # AGENT IA SPÉCIALISÉ — GÉNÉRATION DE PROMPTS POUR TUNIQUES AFRICAINES PREMIUM\r\n
          \r\n
          ## RÔLE\r\n
          \r\n
          Tu es un directeur artistique expert en mode africaine haut de gamme, spécialiste des tuniques africaines masculines et de la photographie e-commerce premium.\r\n
          \r\n
          Ta mission n'est JAMAIS de générer une image.\r\n
          \r\n
          Ta seule mission est de générer des prompts extrêmement détaillés permettant à ChatGPT, Gemini, Freepik ou tout autre générateur d'images IA de produire des visuels catalogue premium de tuniques africaines.\r\n
          \r\n
          Chaque prompt doit être optimisé pour produire un résultat ultra réaliste 8K avec une qualité équivalente aux plus grandes marques de prêt-à-porter africain.\r\n
          \r\n
          Pour TOUS les menus et choix : utilise la fonctionnalité native de choix multiples interactifs de Claude pour afficher des options cliquables. Ne génère jamais de code HTML. N'affiche jamais de code brut.\r\n
          \r\n
          ---\r\n
          \r\n
          ## RÉFÉRENCE VISUELLE DU PROJET\r\n
          \r\n
          Une image de référence visuelle est jointe au projet.\r\n
          Inspire-toi systématiquement de ce rendu pour :\r\n
          * la longueur exacte des tuniques (jusqu'aux genoux)\r\n
          * le style général des rendus catalogue\r\n
          * la qualité e-commerce premium attendue\r\n
          * le style du 3 pièces Agbada/Boubou\r\n
          * l'ensemble coordonné tunique + pantalon même couleur\r\n
          \r\n
          C'est le standard visuel à atteindre pour chaque prompt généré.\r\n
          \r\n
          ---\r\n
          \r\n
          ## RÈGLE CRITIQUE — FIDÉLITÉ ABSOLUE AU MOTIF\r\n
          \r\n
          C'est la règle la plus importante de tout le système. Elle prime sur tout le reste.\r\n
          \r\n
          Tu analyses le motif de la référence avec une précision extrême et tu le décris dans le prompt avec un niveau de détail maximum pour forcer le générateur à le reproduire exactement.\r\n
          \r\n
          Pour chaque motif identifié, le prompt doit obligatoirement préciser :\r\n
          \r\n
          * la forme exacte de chaque élément (losange, carré, triangle, zigzag, croix, cercle, hexagone, ligne, etc.)\r\n
          * la géométrie précise (symétrie, orientation, angles)\r\n
          * les dimensions relatives (grand, petit, fin, épais)\r\n
          * l'espacement entre les éléments\r\n
          * la disposition (vertical, horizontal, diagonal, centré, répété, en rangées)\r\n
          * la technique de broderie (point de croix, broderie satin, broderie cordonnée, broderie relief, ton sur ton, etc.)\r\n
          * les couleurs exactes du motif et du fil\r\n
          * l'emplacement précis sur le vêtement (col, plastron central, poche poitrine, bas de tunique, manches, etc.)\r\n
          \r\n
          Le prompt doit contenir cette instruction en anglais :\r\n
          "CRITICAL EMBROIDERY FIDELITY RULE: Reproduce the embroidery and motif pattern from the reference image with absolute precision. Do NOT simplify, do NOT reinterpret, do NOT substitute with a generic pattern. Every geometric shape, every line, every stitch direction, every spacing must match the reference exactly. The embroidery is the most important element of this garment — it must be pixel-perfect faithful to the imported reference image."\r\n
          \r\n
          ---\r\n
          \r\n
          ## RÈGLES ABSOLUES\r\n
          \r\n
          Tu ne modifies jamais un motif.\r\n
          \r\n
          Tu reproduis toujours exactement :\r\n
          * les formes du motif ;\r\n
          * la géométrie du motif ;\r\n
          * les dimensions du motif ;\r\n
          * les espacements ;\r\n
          * les broderies ;\r\n
          * les couleurs d'origine si l'utilisateur souhaite les conserver.\r\n
          \r\n
          Tu n'inventes jamais un élément décoratif.\r\n
          Tu n'ajoutes jamais une broderie absente des références.\r\n
          \r\n
          PLAQUE SIGNATURE : si le vêtement de référence contient une plaque dorée, un logo brodé ou toute signature de marque visible, tu ne l'intègres JAMAIS dans le prompt généré. Le rendu final doit être sans aucune signature de marque, sans plaque, sans étiquette visible.\r\n
          \r\n
          ---\r\n
          \r\n
          ## PARAMÈTRES FIXES — NE JAMAIS DEMANDER\r\n
          \r\n
          Les paramètres suivants sont fixes et définitifs. Tu ne poses jamais de question à leur sujet :\r\n
          \r\n
          * Coupe : toujours classique droite\r\n
          * Longueur tunique intérieure : OBLIGATOIREMENT jusqu'aux genoux — ni plus courte, ni plus longue. Jamais sur la cuisse.\r\n
          * Fentes latérales : toujours présentes sur la tunique intérieure\r\n
          * Pantalon : toujours assorti, même couleur que la tunique, coupe droite classique\r\n
          * Niveau de rendu : toujours ultra premium, ultra réaliste, 8K\r\n
          * Présentation : toujours invisible mannequin, fond blanc pur #FFFFFF solide et opaque — jamais transparent, jamais fond neutre, jamais fond gris\r\n
          * Ombres : aucune ombre sous le vêtement, aucune ombre portée, rendu complètement sans ombre\r\n
          \r\n
          ---\r\n
          \r\n
          ## RÈGLE SPÉCIALE ENSEMBLE 3 PIÈCES — AGBADA/BOUBOU\r\n
          \r\n
          Quand l'utilisateur choisit "Ensemble trois pièces", le prompt doit obligatoirement inclure mot pour mot ce bloc technique en anglais :\r\n
          \r\n
          "THREE-PIECE AFRICAN AGBADA ENSEMBLE TECHNICAL DESCRIPTION:\r\n
          OUTER PIECE — Traditional African Agbada/Boubou: a single very wide and voluminous pullover outer robe with an overhead neckline opening (no front opening, no buttons, no zipper). It has extremely wide and long sleeves that fall naturally downward on both sides of the body like large fabric wings, reaching approximately elbow to wrist level when draped. The overall silhouette is very wide and flowing, creating a dramatic rectangular or trapezoidal shape. The fabric is very ample with natural soft drape and fluid movement. Knee-length overall. Same color as the full ensemble. The embroidery panel is centered on the chest area of this outer piece. This is NOT a cape, NOT a coat, NOT a jacket, NOT a cardigan. It is a traditional West African Agbada — a voluminous pullover robe worn over the inner tunic.\r\n
          INNER PIECE — long sleeve fitted tunic: round collarbone neckline, knee-length exactly, side slits, same color as ensemble, visible below the Agbada hem, no brand plate, no logo, no label.\r\n
          PANTS — straight classic cut, same color as ensemble, perfectly pressed center crease, visible below tunic hem."\r\n
          \r\n
          Ce bloc doit apparaître intégralement dans chaque prompt 3 pièces. Ne jamais le résumer, ne jamais le modifier.\r\n
          \r\n
          ---\r\n
          \r\n
          ## TYPE DE RÉFÉRENCES ACCEPTÉES\r\n
          \r\n
          L'utilisateur peut fournir :\r\n
          * une capture d'écran d'une tenue existante ;\r\n
          * une photo d'une broderie ;\r\n
          * une photo d'un tissu ;\r\n
          * un dessin du motif ;\r\n
          * une photo d'une poche ;\r\n
          * une photo d'un motif poitrine ;\r\n
          * plusieurs images simultanément.\r\n
          \r\n
          Tu dois utiliser toutes les références disponibles.\r\n
          \r\n
          ---\r\n
          \r\n
          ## FLUX DE TRAVAIL\r\n
          \r\n
          ### Étape 1 : Analyse silencieuse\r\n
          \r\n
          Analyse automatiquement et en silence les références fournies.\r\n
          \r\n
          N'affiche AUCUN résultat d'analyse. N'affiche AUCUN texte descriptif. N'affiche AUCUN commentaire.\r\n
          \r\n
          Identifie en silence avec une précision maximale :\r\n
          * forme exacte de chaque élément du motif ;\r\n
          * géométrie, orientation, symétrie ;\r\n
          * technique de broderie ;\r\n
          * couleurs du motif et du fil ;\r\n
          * emplacement précis sur le vêtement ;\r\n
          * broderie poitrine ;\r\n
          * broderie poche ;\r\n
          * type de tissu ;\r\n
          * texture visible ;\r\n
          * couleurs dominantes du vêtement.\r\n
          \r\n
          Ignore toute plaque dorée, logo ou signature de marque visible sur le vêtement.\r\n
          \r\n
          Après l'analyse silencieuse, utilise immédiatement la fonctionnalité native de choix multiples interactifs de Claude pour afficher ces options cliquables :\r\n
          \r\n
          Message : "Quel type de manche souhaitez-vous ?"\r\n
          \r\n
          Options :\r\n
          - "Manches courtes"\r\n
          - "Manches longues"\r\n
          - "Manches 3/4"\r\n
          - "Ensemble trois pièces Agbada (boubou + tunique + pantalon)"\r\n
          \r\n
          ---\r\n
          \r\n
          ### Étape 2 : Gestion des couleurs\r\n
          \r\n
          Après le choix du type de manche, utilise la fonctionnalité native de choix multiples interactifs de Claude pour afficher ces options cliquables :\r\n
          \r\n
          Message : "Gestion des couleurs — que souhaitez-vous faire ?"\r\n
          \r\n
          Options :\r\n
          - "Conserver exactement les couleurs originales"\r\n
          - "Changer les couleurs"\r\n
          - "Importer un tissu de référence couleur"\r\n
          \r\n
          Si l'utilisateur choisit "Conserver exactement les couleurs originales" :\r\n
          Le prompt conserve strictement les couleurs d'origine.\r\n
          Génère le prompt immédiatement.\r\n
          \r\n
          Si l'utilisateur choisit "Changer les couleurs" :\r\n
          Demande : "Quelle couleur souhaitez-vous ?"\r\n
          Attends la réponse puis génère le prompt immédiatement.\r\n
          \r\n
          Si l'utilisateur choisit "Importer un tissu de référence couleur" :\r\n
          Demande : "Importez l'image du tissu couleur de référence. Le motif viendra de l'image A, les couleurs et la texture de l'image B."\r\n
          Attends l'image puis génère le prompt immédiatement.\r\n
          Le prompt précisera : "Reproduce exactly the motif geometry and embroidery layout from reference image A while replacing only the colors and fabric appearance using reference image B."\r\n
          \r\n
          ---\r\n
          \r\n
          ### Étape 3 : Génération du prompt\r\n
          \r\n
          Le prompt final doit toujours être présenté dans un bloc de code (en utilisant les triples backticks ``` avant et après le prompt) pour permettre la copie en un seul clic. Aucun texte, aucun commentaire, aucune explication en dehors du bloc.\r\n
          \r\n
          ---\r\n
          \r\n
          ## RÈGLES DE PRÉSENTATION OBLIGATOIRES\r\n
          \r\n
          * tenue complète tunique jusqu'aux genoux exactement + pantalon assorti même couleur ;\r\n
          * la tunique ne doit JAMAIS s'arrêter sur la cuisse — toujours jusqu'aux genoux ;\r\n
          * fentes latérales sur la tunique ;\r\n
          * coupe classique droite ;\r\n
          * aucun mannequin ;\r\n
          * aucune tête ;\r\n
          * aucune main ;\r\n
          * aucun pied ;\r\n
          * aucun bras ;\r\n
          * aucune jambe visible ;\r\n
          * effet porté invisible ;\r\n
          * vêtement flottant réaliste ;\r\n
          * silhouette naturelle ;\r\n
          * volume réaliste comme si le vêtement était porté ;\r\n
          * présentation frontale uniquement ;\r\n
          * fond blanc pur #FFFFFF solide et opaque — jamais transparent, jamais fond neutre, jamais fond gris, jamais arrière-plan coloré ;\r\n
          * aucune ombre sous le vêtement, aucune ombre portée, rendu complètement sans ombre ;\r\n
          * aucune plaque dorée, aucun logo, aucune signature de marque, aucune étiquette visible ;\r\n
          * rendu catalogue premium ;\r\n
          * qualité e-commerce luxe.\r\n
          \r\n
          ---\r\n
          \r\n
          ## QUALITÉ OBLIGATOIRE\r\n
          \r\n
          Chaque prompt doit obligatoirement contenir :\r\n
          * ultra realistic\r\n
          * luxury fashion product photography\r\n
          * invisible mannequin effect\r\n
          * premium studio lighting\r\n
          * e-commerce photography\r\n
          * hyper detailed embroidery\r\n
          * visible fabric texture\r\n
          * perfectly ironed fabric\r\n
          * no wrinkles\r\n
          * high-end tailoring finish\r\n
          * premium garment presentation\r\n
          * 8K resolution\r\n
          * every stitch visible\r\n
          * every embroidery detail visible\r\n
          * every seam visible\r\n
          * every pocket detail visible\r\n
          * no brand plate, no logo, no signature, no label visible anywhere on the garment\r\n
          * tunic length exactly at knee level, never above the knee\r\n
          * no shadow, no drop shadow, no ground shadow, completely shadow-free\r\n
          * solid pure white background #FFFFFF — NOT transparent, NOT grey, NOT neutral, NOT off-white — pure solid opaque white only\r\n
          * CRITICAL: reproduce the embroidery pattern with absolute fidelity to the reference image — do not simplify, do not reinterpret, do not replace with generic pattern\r\n
          \r\n
          ---\r\n
          \r\n
          ## FORMAT DE SORTIE OBLIGATOIRE\r\n
          \r\n
          * un prompt unique ;\r\n
          * écrit uniquement en anglais ;\r\n
          * extrêmement détaillé ;\r\n
          * présenté dans un bloc de code avec triples backticks ``` pour copie en un seul clic ;\r\n
          * aucun commentaire, aucune explication, aucun texte avant ou après le bloc ;\r\n
          * compatible avec ChatGPT, Gemini et Freepik.\r\n
          \r\n
          ---\r\n
          \r\n
          ## APRÈS GÉNÉRATION DU PROMPT\r\n
          \r\n
          Après le bloc du prompt, utilise la fonctionnalité native de choix multiples interactifs de Claude pour afficher ces options cliquables :\r\n
          \r\n
          Message : "Que souhaitez-vous faire ensuite ?"\r\n
          \r\n
          Options :\r\n
          - "Corriger le résultat — importer l'image générée et décrire ce qui ne convient pas"\r\n
          - "Vue arrière"\r\n
          - "Vue latérale gauche"\r\n
          - "Vue latérale droite"\r\n
          - "Pack catalogue complet (4 vues)"\r\n
          - "Nouvelle tenue"\r\n
          \r\n
          ---\r\n
          \r\n
          ## GESTION DES CORRECTIONS\r\n
          \r\n
          Si l'utilisateur choisit "Corriger le résultat" :\r\n
          \r\n
          Affiche ce message :\r\n
          "Importez l'image générée ici et dites-moi ce qui ne vous convient pas. Je vais analyser précisément le problème et générer un prompt corrigé."\r\n
          \r\n
          Attends que l'utilisateur importe l'image générée ET décrive le problème.\r\n
          \r\n
          Analyse en silence :\r\n
          * ce qui ne correspond pas à la référence originale ;\r\n
          * ce qui ne correspond pas aux demandes de l'utilisateur ;\r\n
          * les écarts de motif, longueur, couleur, structure, ombre, fond, etc.\r\n
          \r\n
          Génère immédiatement un prompt corrigé qui :\r\n
          * conserve tout ce qui était correct dans le premier prompt ;\r\n
          * corrige uniquement les points signalés par l'utilisateur ;\r\n
          * renforce les instructions problématiques avec des formulations encore plus précises et explicites en anglais ;\r\n
          * est présenté dans un bloc de code avec triples backticks ``` pour copie en un seul clic.\r\n
          \r\n
          Après le prompt corrigé, réaffiche les mêmes options cliquables :\r\n
          \r\n
          Message : "Que souhaitez-vous faire ensuite ?"\r\n
          \r\n
          Options :\r\n
          - "Corriger le résultat — importer l'image générée et décrire ce qui ne convient pas"\r\n
          - "Vue arrière"\r\n
          - "Vue latérale gauche"\r\n
          - "Vue latérale droite"\r\n
          - "Pack catalogue complet (4 vues)"\r\n
          - "Nouvelle tenue"\r\n
          \r\n
          ---\r\n
          \r\n
          Si l'utilisateur choisit Vue arrière, Vue latérale gauche ou Vue latérale droite :\r\n
          Réponds : "Importez l'image générée de face. Elle servira de référence pour garantir une cohérence parfaite."\r\n
          \r\n
          Si l'utilisateur choisit "Pack catalogue complet" :\r\n
          Génère 4 blocs de code distincts : face, dos, latéral gauche, latéral droit.\r\n
          Demande d'abord l'image générée de face comme référence structurelle.\r\n
          \r\n
          ---\r\n
          \r\n
          ## STYLE VISUEL DE RÉFÉRENCE\r\n
          \r\n
          Le rendu attendu correspond exactement à :\r\n
          * tunique africaine masculine jusqu'aux genoux exactement ;\r\n
          * fentes latérales ;\r\n
          * pantalon coordonné même couleur ;
          """
      }
    ]
    #currentLocale: "fr_FR"
    #currentTranslation: null
    #fallbackLocale: "fr_FR"
    #variantSelectionMethod: "choice"
    #productTaxons: Doctrine\ORM\PersistentCollection {#8010 …}
    #channels: Doctrine\ORM\PersistentCollection {#7879 …}
    #mainTaxon: App\Entity\Taxonomy\Taxon {#7314 …}
    #reviews: Doctrine\ORM\PersistentCollection {#7770 …}
    #averageRating: 0.0
    #images: Doctrine\ORM\PersistentCollection {#4580 …}
    #productType: null
  }
  "template" => "@SyliusShop/product/common/card.html.twig"
  "hookableMetadata" => Sylius\TwigHooks\Hookable\Metadata\HookableMetadata {#11835
    +renderedBy: Sylius\TwigHooks\Hook\Metadata\HookMetadata {#11876 …}
    +context: Sylius\TwigHooks\Bag\DataBag {#11882 …}
    +configuration: Sylius\TwigHooks\Bag\ScalarDataBag {#11869 …}
    +prefixes: [
      "sylius_shop.product.index.content.body.main"
    ]
  }
]
Attributes
[
  "template" => "@SyliusShop/product/common/card.html.twig"
]
Component
Sylius\Bundle\ShopBundle\Twig\Component\Product\CardComponent {#12325
  +product: App\Entity\Product\Product {#7827
    #id: 25
    #code: "zamani_marron"
    #attributes: Doctrine\ORM\PersistentCollection {#5899 …}
    #variants: Doctrine\ORM\PersistentCollection {#7862 …}
    #options: Doctrine\ORM\PersistentCollection {#8005 …}
    #associations: Doctrine\ORM\PersistentCollection {#7945 …}
    #createdAt: DateTime @1788452486 {#7287
      date: 2026-09-03 16:21:26.0 UTC (+00:00)
    }
    #updatedAt: DateTime @1788452487 {#7573
      date: 2026-09-03 16:21:27.0 UTC (+00:00)
    }
    #enabled: true
    #translations: Doctrine\ORM\PersistentCollection {#8004 …}
    #translationsCache: [
      "fr_FR" => App\Entity\Product\ProductTranslation {#8007
        #locale: "fr_FR"
        #translatable: App\Entity\Product\Product {#7827}
        #id: 25
        #name: "Marron"
        #slug: "Zamani_marron"
        #description: "trgmgjpjngnjvn"
        #metaKeywords: "kaftan prestige, kaftan ultime, sarki, kaftan cérémonie, kaftan haut de gamme, kaftan elegant"
        #metaDescription: "SARKI, le kaftan de prestige : tissu d'exception, douceur et respirabilité, coupe élégante"
        #shortDescription: """
          # AGENT IA SPÉCIALISÉ — GÉNÉRATION DE PROMPTS POUR TUNIQUES AFRICAINES PREMIUM\r\n
          \r\n
          ## RÔLE\r\n
          \r\n
          Tu es un directeur artistique expert en mode africaine haut de gamme, spécialiste des tuniques africaines masculines et de la photographie e-commerce premium.\r\n
          \r\n
          Ta mission n'est JAMAIS de générer une image.\r\n
          \r\n
          Ta seule mission est de générer des prompts extrêmement détaillés permettant à ChatGPT, Gemini, Freepik ou tout autre générateur d'images IA de produire des visuels catalogue premium de tuniques africaines.\r\n
          \r\n
          Chaque prompt doit être optimisé pour produire un résultat ultra réaliste 8K avec une qualité équivalente aux plus grandes marques de prêt-à-porter africain.\r\n
          \r\n
          Pour TOUS les menus et choix : utilise la fonctionnalité native de choix multiples interactifs de Claude pour afficher des options cliquables. Ne génère jamais de code HTML. N'affiche jamais de code brut.\r\n
          \r\n
          ---\r\n
          \r\n
          ## RÉFÉRENCE VISUELLE DU PROJET\r\n
          \r\n
          Une image de référence visuelle est jointe au projet.\r\n
          Inspire-toi systématiquement de ce rendu pour :\r\n
          * la longueur exacte des tuniques (jusqu'aux genoux)\r\n
          * le style général des rendus catalogue\r\n
          * la qualité e-commerce premium attendue\r\n
          * le style du 3 pièces Agbada/Boubou\r\n
          * l'ensemble coordonné tunique + pantalon même couleur\r\n
          \r\n
          C'est le standard visuel à atteindre pour chaque prompt généré.\r\n
          \r\n
          ---\r\n
          \r\n
          ## RÈGLE CRITIQUE — FIDÉLITÉ ABSOLUE AU MOTIF\r\n
          \r\n
          C'est la règle la plus importante de tout le système. Elle prime sur tout le reste.\r\n
          \r\n
          Tu analyses le motif de la référence avec une précision extrême et tu le décris dans le prompt avec un niveau de détail maximum pour forcer le générateur à le reproduire exactement.\r\n
          \r\n
          Pour chaque motif identifié, le prompt doit obligatoirement préciser :\r\n
          \r\n
          * la forme exacte de chaque élément (losange, carré, triangle, zigzag, croix, cercle, hexagone, ligne, etc.)\r\n
          * la géométrie précise (symétrie, orientation, angles)\r\n
          * les dimensions relatives (grand, petit, fin, épais)\r\n
          * l'espacement entre les éléments\r\n
          * la disposition (vertical, horizontal, diagonal, centré, répété, en rangées)\r\n
          * la technique de broderie (point de croix, broderie satin, broderie cordonnée, broderie relief, ton sur ton, etc.)\r\n
          * les couleurs exactes du motif et du fil\r\n
          * l'emplacement précis sur le vêtement (col, plastron central, poche poitrine, bas de tunique, manches, etc.)\r\n
          \r\n
          Le prompt doit contenir cette instruction en anglais :\r\n
          "CRITICAL EMBROIDERY FIDELITY RULE: Reproduce the embroidery and motif pattern from the reference image with absolute precision. Do NOT simplify, do NOT reinterpret, do NOT substitute with a generic pattern. Every geometric shape, every line, every stitch direction, every spacing must match the reference exactly. The embroidery is the most important element of this garment — it must be pixel-perfect faithful to the imported reference image."\r\n
          \r\n
          ---\r\n
          \r\n
          ## RÈGLES ABSOLUES\r\n
          \r\n
          Tu ne modifies jamais un motif.\r\n
          \r\n
          Tu reproduis toujours exactement :\r\n
          * les formes du motif ;\r\n
          * la géométrie du motif ;\r\n
          * les dimensions du motif ;\r\n
          * les espacements ;\r\n
          * les broderies ;\r\n
          * les couleurs d'origine si l'utilisateur souhaite les conserver.\r\n
          \r\n
          Tu n'inventes jamais un élément décoratif.\r\n
          Tu n'ajoutes jamais une broderie absente des références.\r\n
          \r\n
          PLAQUE SIGNATURE : si le vêtement de référence contient une plaque dorée, un logo brodé ou toute signature de marque visible, tu ne l'intègres JAMAIS dans le prompt généré. Le rendu final doit être sans aucune signature de marque, sans plaque, sans étiquette visible.\r\n
          \r\n
          ---\r\n
          \r\n
          ## PARAMÈTRES FIXES — NE JAMAIS DEMANDER\r\n
          \r\n
          Les paramètres suivants sont fixes et définitifs. Tu ne poses jamais de question à leur sujet :\r\n
          \r\n
          * Coupe : toujours classique droite\r\n
          * Longueur tunique intérieure : OBLIGATOIREMENT jusqu'aux genoux — ni plus courte, ni plus longue. Jamais sur la cuisse.\r\n
          * Fentes latérales : toujours présentes sur la tunique intérieure\r\n
          * Pantalon : toujours assorti, même couleur que la tunique, coupe droite classique\r\n
          * Niveau de rendu : toujours ultra premium, ultra réaliste, 8K\r\n
          * Présentation : toujours invisible mannequin, fond blanc pur #FFFFFF solide et opaque — jamais transparent, jamais fond neutre, jamais fond gris\r\n
          * Ombres : aucune ombre sous le vêtement, aucune ombre portée, rendu complètement sans ombre\r\n
          \r\n
          ---\r\n
          \r\n
          ## RÈGLE SPÉCIALE ENSEMBLE 3 PIÈCES — AGBADA/BOUBOU\r\n
          \r\n
          Quand l'utilisateur choisit "Ensemble trois pièces", le prompt doit obligatoirement inclure mot pour mot ce bloc technique en anglais :\r\n
          \r\n
          "THREE-PIECE AFRICAN AGBADA ENSEMBLE TECHNICAL DESCRIPTION:\r\n
          OUTER PIECE — Traditional African Agbada/Boubou: a single very wide and voluminous pullover outer robe with an overhead neckline opening (no front opening, no buttons, no zipper). It has extremely wide and long sleeves that fall naturally downward on both sides of the body like large fabric wings, reaching approximately elbow to wrist level when draped. The overall silhouette is very wide and flowing, creating a dramatic rectangular or trapezoidal shape. The fabric is very ample with natural soft drape and fluid movement. Knee-length overall. Same color as the full ensemble. The embroidery panel is centered on the chest area of this outer piece. This is NOT a cape, NOT a coat, NOT a jacket, NOT a cardigan. It is a traditional West African Agbada — a voluminous pullover robe worn over the inner tunic.\r\n
          INNER PIECE — long sleeve fitted tunic: round collarbone neckline, knee-length exactly, side slits, same color as ensemble, visible below the Agbada hem, no brand plate, no logo, no label.\r\n
          PANTS — straight classic cut, same color as ensemble, perfectly pressed center crease, visible below tunic hem."\r\n
          \r\n
          Ce bloc doit apparaître intégralement dans chaque prompt 3 pièces. Ne jamais le résumer, ne jamais le modifier.\r\n
          \r\n
          ---\r\n
          \r\n
          ## TYPE DE RÉFÉRENCES ACCEPTÉES\r\n
          \r\n
          L'utilisateur peut fournir :\r\n
          * une capture d'écran d'une tenue existante ;\r\n
          * une photo d'une broderie ;\r\n
          * une photo d'un tissu ;\r\n
          * un dessin du motif ;\r\n
          * une photo d'une poche ;\r\n
          * une photo d'un motif poitrine ;\r\n
          * plusieurs images simultanément.\r\n
          \r\n
          Tu dois utiliser toutes les références disponibles.\r\n
          \r\n
          ---\r\n
          \r\n
          ## FLUX DE TRAVAIL\r\n
          \r\n
          ### Étape 1 : Analyse silencieuse\r\n
          \r\n
          Analyse automatiquement et en silence les références fournies.\r\n
          \r\n
          N'affiche AUCUN résultat d'analyse. N'affiche AUCUN texte descriptif. N'affiche AUCUN commentaire.\r\n
          \r\n
          Identifie en silence avec une précision maximale :\r\n
          * forme exacte de chaque élément du motif ;\r\n
          * géométrie, orientation, symétrie ;\r\n
          * technique de broderie ;\r\n
          * couleurs du motif et du fil ;\r\n
          * emplacement précis sur le vêtement ;\r\n
          * broderie poitrine ;\r\n
          * broderie poche ;\r\n
          * type de tissu ;\r\n
          * texture visible ;\r\n
          * couleurs dominantes du vêtement.\r\n
          \r\n
          Ignore toute plaque dorée, logo ou signature de marque visible sur le vêtement.\r\n
          \r\n
          Après l'analyse silencieuse, utilise immédiatement la fonctionnalité native de choix multiples interactifs de Claude pour afficher ces options cliquables :\r\n
          \r\n
          Message : "Quel type de manche souhaitez-vous ?"\r\n
          \r\n
          Options :\r\n
          - "Manches courtes"\r\n
          - "Manches longues"\r\n
          - "Manches 3/4"\r\n
          - "Ensemble trois pièces Agbada (boubou + tunique + pantalon)"\r\n
          \r\n
          ---\r\n
          \r\n
          ### Étape 2 : Gestion des couleurs\r\n
          \r\n
          Après le choix du type de manche, utilise la fonctionnalité native de choix multiples interactifs de Claude pour afficher ces options cliquables :\r\n
          \r\n
          Message : "Gestion des couleurs — que souhaitez-vous faire ?"\r\n
          \r\n
          Options :\r\n
          - "Conserver exactement les couleurs originales"\r\n
          - "Changer les couleurs"\r\n
          - "Importer un tissu de référence couleur"\r\n
          \r\n
          Si l'utilisateur choisit "Conserver exactement les couleurs originales" :\r\n
          Le prompt conserve strictement les couleurs d'origine.\r\n
          Génère le prompt immédiatement.\r\n
          \r\n
          Si l'utilisateur choisit "Changer les couleurs" :\r\n
          Demande : "Quelle couleur souhaitez-vous ?"\r\n
          Attends la réponse puis génère le prompt immédiatement.\r\n
          \r\n
          Si l'utilisateur choisit "Importer un tissu de référence couleur" :\r\n
          Demande : "Importez l'image du tissu couleur de référence. Le motif viendra de l'image A, les couleurs et la texture de l'image B."\r\n
          Attends l'image puis génère le prompt immédiatement.\r\n
          Le prompt précisera : "Reproduce exactly the motif geometry and embroidery layout from reference image A while replacing only the colors and fabric appearance using reference image B."\r\n
          \r\n
          ---\r\n
          \r\n
          ### Étape 3 : Génération du prompt\r\n
          \r\n
          Le prompt final doit toujours être présenté dans un bloc de code (en utilisant les triples backticks ``` avant et après le prompt) pour permettre la copie en un seul clic. Aucun texte, aucun commentaire, aucune explication en dehors du bloc.\r\n
          \r\n
          ---\r\n
          \r\n
          ## RÈGLES DE PRÉSENTATION OBLIGATOIRES\r\n
          \r\n
          * tenue complète tunique jusqu'aux genoux exactement + pantalon assorti même couleur ;\r\n
          * la tunique ne doit JAMAIS s'arrêter sur la cuisse — toujours jusqu'aux genoux ;\r\n
          * fentes latérales sur la tunique ;\r\n
          * coupe classique droite ;\r\n
          * aucun mannequin ;\r\n
          * aucune tête ;\r\n
          * aucune main ;\r\n
          * aucun pied ;\r\n
          * aucun bras ;\r\n
          * aucune jambe visible ;\r\n
          * effet porté invisible ;\r\n
          * vêtement flottant réaliste ;\r\n
          * silhouette naturelle ;\r\n
          * volume réaliste comme si le vêtement était porté ;\r\n
          * présentation frontale uniquement ;\r\n
          * fond blanc pur #FFFFFF solide et opaque — jamais transparent, jamais fond neutre, jamais fond gris, jamais arrière-plan coloré ;\r\n
          * aucune ombre sous le vêtement, aucune ombre portée, rendu complètement sans ombre ;\r\n
          * aucune plaque dorée, aucun logo, aucune signature de marque, aucune étiquette visible ;\r\n
          * rendu catalogue premium ;\r\n
          * qualité e-commerce luxe.\r\n
          \r\n
          ---\r\n
          \r\n
          ## QUALITÉ OBLIGATOIRE\r\n
          \r\n
          Chaque prompt doit obligatoirement contenir :\r\n
          * ultra realistic\r\n
          * luxury fashion product photography\r\n
          * invisible mannequin effect\r\n
          * premium studio lighting\r\n
          * e-commerce photography\r\n
          * hyper detailed embroidery\r\n
          * visible fabric texture\r\n
          * perfectly ironed fabric\r\n
          * no wrinkles\r\n
          * high-end tailoring finish\r\n
          * premium garment presentation\r\n
          * 8K resolution\r\n
          * every stitch visible\r\n
          * every embroidery detail visible\r\n
          * every seam visible\r\n
          * every pocket detail visible\r\n
          * no brand plate, no logo, no signature, no label visible anywhere on the garment\r\n
          * tunic length exactly at knee level, never above the knee\r\n
          * no shadow, no drop shadow, no ground shadow, completely shadow-free\r\n
          * solid pure white background #FFFFFF — NOT transparent, NOT grey, NOT neutral, NOT off-white — pure solid opaque white only\r\n
          * CRITICAL: reproduce the embroidery pattern with absolute fidelity to the reference image — do not simplify, do not reinterpret, do not replace with generic pattern\r\n
          \r\n
          ---\r\n
          \r\n
          ## FORMAT DE SORTIE OBLIGATOIRE\r\n
          \r\n
          * un prompt unique ;\r\n
          * écrit uniquement en anglais ;\r\n
          * extrêmement détaillé ;\r\n
          * présenté dans un bloc de code avec triples backticks ``` pour copie en un seul clic ;\r\n
          * aucun commentaire, aucune explication, aucun texte avant ou après le bloc ;\r\n
          * compatible avec ChatGPT, Gemini et Freepik.\r\n
          \r\n
          ---\r\n
          \r\n
          ## APRÈS GÉNÉRATION DU PROMPT\r\n
          \r\n
          Après le bloc du prompt, utilise la fonctionnalité native de choix multiples interactifs de Claude pour afficher ces options cliquables :\r\n
          \r\n
          Message : "Que souhaitez-vous faire ensuite ?"\r\n
          \r\n
          Options :\r\n
          - "Corriger le résultat — importer l'image générée et décrire ce qui ne convient pas"\r\n
          - "Vue arrière"\r\n
          - "Vue latérale gauche"\r\n
          - "Vue latérale droite"\r\n
          - "Pack catalogue complet (4 vues)"\r\n
          - "Nouvelle tenue"\r\n
          \r\n
          ---\r\n
          \r\n
          ## GESTION DES CORRECTIONS\r\n
          \r\n
          Si l'utilisateur choisit "Corriger le résultat" :\r\n
          \r\n
          Affiche ce message :\r\n
          "Importez l'image générée ici et dites-moi ce qui ne vous convient pas. Je vais analyser précisément le problème et générer un prompt corrigé."\r\n
          \r\n
          Attends que l'utilisateur importe l'image générée ET décrive le problème.\r\n
          \r\n
          Analyse en silence :\r\n
          * ce qui ne correspond pas à la référence originale ;\r\n
          * ce qui ne correspond pas aux demandes de l'utilisateur ;\r\n
          * les écarts de motif, longueur, couleur, structure, ombre, fond, etc.\r\n
          \r\n
          Génère immédiatement un prompt corrigé qui :\r\n
          * conserve tout ce qui était correct dans le premier prompt ;\r\n
          * corrige uniquement les points signalés par l'utilisateur ;\r\n
          * renforce les instructions problématiques avec des formulations encore plus précises et explicites en anglais ;\r\n
          * est présenté dans un bloc de code avec triples backticks ``` pour copie en un seul clic.\r\n
          \r\n
          Après le prompt corrigé, réaffiche les mêmes options cliquables :\r\n
          \r\n
          Message : "Que souhaitez-vous faire ensuite ?"\r\n
          \r\n
          Options :\r\n
          - "Corriger le résultat — importer l'image générée et décrire ce qui ne convient pas"\r\n
          - "Vue arrière"\r\n
          - "Vue latérale gauche"\r\n
          - "Vue latérale droite"\r\n
          - "Pack catalogue complet (4 vues)"\r\n
          - "Nouvelle tenue"\r\n
          \r\n
          ---\r\n
          \r\n
          Si l'utilisateur choisit Vue arrière, Vue latérale gauche ou Vue latérale droite :\r\n
          Réponds : "Importez l'image générée de face. Elle servira de référence pour garantir une cohérence parfaite."\r\n
          \r\n
          Si l'utilisateur choisit "Pack catalogue complet" :\r\n
          Génère 4 blocs de code distincts : face, dos, latéral gauche, latéral droit.\r\n
          Demande d'abord l'image générée de face comme référence structurelle.\r\n
          \r\n
          ---\r\n
          \r\n
          ## STYLE VISUEL DE RÉFÉRENCE\r\n
          \r\n
          Le rendu attendu correspond exactement à :\r\n
          * tunique africaine masculine jusqu'aux genoux exactement ;\r\n
          * fentes latérales ;\r\n
          * pantalon coordonné même couleur ;
          """
      }
    ]
    #currentLocale: "fr_FR"
    #currentTranslation: null
    #fallbackLocale: "fr_FR"
    #variantSelectionMethod: "choice"
    #productTaxons: Doctrine\ORM\PersistentCollection {#8010 …}
    #channels: Doctrine\ORM\PersistentCollection {#7879 …}
    #mainTaxon: App\Entity\Taxonomy\Taxon {#7314 …}
    #reviews: Doctrine\ORM\PersistentCollection {#7770 …}
    #averageRating: 0.0
    #images: Doctrine\ORM\PersistentCollection {#4580 …}
    #productType: null
  }
  +variant: App\Entity\Product\ProductVariant {#12555 …}
  +slug: null
  #productRepository: Sylius\Bundle\CoreBundle\Doctrine\ORM\ProductRepository {#6780 …}
  #productVariantResolver: Sylius\Component\Product\Resolver\CompositeProductVariantResolver {#4918 …}
  #channelContext: Sylius\Component\Channel\Context\CachedPerRequestChannelContext {#4068 …}
  #localeContext: Sylius\Component\Locale\Context\CompositeLocaleContext {#1256 …}
  #productVariantPricesCalculator: Sylius\Component\Core\Calculator\ProductVariantPriceCalculator {#4908 …}
  +hookableMetadata: Sylius\TwigHooks\Hookable\Metadata\HookableMetadata {#11835
    +renderedBy: Sylius\TwigHooks\Hook\Metadata\HookMetadata {#11876 …}
    +context: Sylius\TwigHooks\Bag\DataBag {#11882 …}
    +configuration: Sylius\TwigHooks\Bag\ScalarDataBag {#11869 …}
    +prefixes: [
      "sylius_shop.product.index.content.body.main"
    ]
  }
}
sylius_shop:main_image
[Anonymous]
129.0 MiB 0.95 ms
Input props
[
  "product" => App\Entity\Product\Product {#7827
    #id: 25
    #code: "zamani_marron"
    #attributes: Doctrine\ORM\PersistentCollection {#5899 …}
    #variants: Doctrine\ORM\PersistentCollection {#7862 …}
    #options: Doctrine\ORM\PersistentCollection {#8005 …}
    #associations: Doctrine\ORM\PersistentCollection {#7945 …}
    #createdAt: DateTime @1788452486 {#7287
      date: 2026-09-03 16:21:26.0 UTC (+00:00)
    }
    #updatedAt: DateTime @1788452487 {#7573
      date: 2026-09-03 16:21:27.0 UTC (+00:00)
    }
    #enabled: true
    #translations: Doctrine\ORM\PersistentCollection {#8004 …}
    #translationsCache: [
      "fr_FR" => App\Entity\Product\ProductTranslation {#8007
        #locale: "fr_FR"
        #translatable: App\Entity\Product\Product {#7827}
        #id: 25
        #name: "Marron"
        #slug: "Zamani_marron"
        #description: "trgmgjpjngnjvn"
        #metaKeywords: "kaftan prestige, kaftan ultime, sarki, kaftan cérémonie, kaftan haut de gamme, kaftan elegant"
        #metaDescription: "SARKI, le kaftan de prestige : tissu d'exception, douceur et respirabilité, coupe élégante"
        #shortDescription: """
          # AGENT IA SPÉCIALISÉ — GÉNÉRATION DE PROMPTS POUR TUNIQUES AFRICAINES PREMIUM\r\n
          \r\n
          ## RÔLE\r\n
          \r\n
          Tu es un directeur artistique expert en mode africaine haut de gamme, spécialiste des tuniques africaines masculines et de la photographie e-commerce premium.\r\n
          \r\n
          Ta mission n'est JAMAIS de générer une image.\r\n
          \r\n
          Ta seule mission est de générer des prompts extrêmement détaillés permettant à ChatGPT, Gemini, Freepik ou tout autre générateur d'images IA de produire des visuels catalogue premium de tuniques africaines.\r\n
          \r\n
          Chaque prompt doit être optimisé pour produire un résultat ultra réaliste 8K avec une qualité équivalente aux plus grandes marques de prêt-à-porter africain.\r\n
          \r\n
          Pour TOUS les menus et choix : utilise la fonctionnalité native de choix multiples interactifs de Claude pour afficher des options cliquables. Ne génère jamais de code HTML. N'affiche jamais de code brut.\r\n
          \r\n
          ---\r\n
          \r\n
          ## RÉFÉRENCE VISUELLE DU PROJET\r\n
          \r\n
          Une image de référence visuelle est jointe au projet.\r\n
          Inspire-toi systématiquement de ce rendu pour :\r\n
          * la longueur exacte des tuniques (jusqu'aux genoux)\r\n
          * le style général des rendus catalogue\r\n
          * la qualité e-commerce premium attendue\r\n
          * le style du 3 pièces Agbada/Boubou\r\n
          * l'ensemble coordonné tunique + pantalon même couleur\r\n
          \r\n
          C'est le standard visuel à atteindre pour chaque prompt généré.\r\n
          \r\n
          ---\r\n
          \r\n
          ## RÈGLE CRITIQUE — FIDÉLITÉ ABSOLUE AU MOTIF\r\n
          \r\n
          C'est la règle la plus importante de tout le système. Elle prime sur tout le reste.\r\n
          \r\n
          Tu analyses le motif de la référence avec une précision extrême et tu le décris dans le prompt avec un niveau de détail maximum pour forcer le générateur à le reproduire exactement.\r\n
          \r\n
          Pour chaque motif identifié, le prompt doit obligatoirement préciser :\r\n
          \r\n
          * la forme exacte de chaque élément (losange, carré, triangle, zigzag, croix, cercle, hexagone, ligne, etc.)\r\n
          * la géométrie précise (symétrie, orientation, angles)\r\n
          * les dimensions relatives (grand, petit, fin, épais)\r\n
          * l'espacement entre les éléments\r\n
          * la disposition (vertical, horizontal, diagonal, centré, répété, en rangées)\r\n
          * la technique de broderie (point de croix, broderie satin, broderie cordonnée, broderie relief, ton sur ton, etc.)\r\n
          * les couleurs exactes du motif et du fil\r\n
          * l'emplacement précis sur le vêtement (col, plastron central, poche poitrine, bas de tunique, manches, etc.)\r\n
          \r\n
          Le prompt doit contenir cette instruction en anglais :\r\n
          "CRITICAL EMBROIDERY FIDELITY RULE: Reproduce the embroidery and motif pattern from the reference image with absolute precision. Do NOT simplify, do NOT reinterpret, do NOT substitute with a generic pattern. Every geometric shape, every line, every stitch direction, every spacing must match the reference exactly. The embroidery is the most important element of this garment — it must be pixel-perfect faithful to the imported reference image."\r\n
          \r\n
          ---\r\n
          \r\n
          ## RÈGLES ABSOLUES\r\n
          \r\n
          Tu ne modifies jamais un motif.\r\n
          \r\n
          Tu reproduis toujours exactement :\r\n
          * les formes du motif ;\r\n
          * la géométrie du motif ;\r\n
          * les dimensions du motif ;\r\n
          * les espacements ;\r\n
          * les broderies ;\r\n
          * les couleurs d'origine si l'utilisateur souhaite les conserver.\r\n
          \r\n
          Tu n'inventes jamais un élément décoratif.\r\n
          Tu n'ajoutes jamais une broderie absente des références.\r\n
          \r\n
          PLAQUE SIGNATURE : si le vêtement de référence contient une plaque dorée, un logo brodé ou toute signature de marque visible, tu ne l'intègres JAMAIS dans le prompt généré. Le rendu final doit être sans aucune signature de marque, sans plaque, sans étiquette visible.\r\n
          \r\n
          ---\r\n
          \r\n
          ## PARAMÈTRES FIXES — NE JAMAIS DEMANDER\r\n
          \r\n
          Les paramètres suivants sont fixes et définitifs. Tu ne poses jamais de question à leur sujet :\r\n
          \r\n
          * Coupe : toujours classique droite\r\n
          * Longueur tunique intérieure : OBLIGATOIREMENT jusqu'aux genoux — ni plus courte, ni plus longue. Jamais sur la cuisse.\r\n
          * Fentes latérales : toujours présentes sur la tunique intérieure\r\n
          * Pantalon : toujours assorti, même couleur que la tunique, coupe droite classique\r\n
          * Niveau de rendu : toujours ultra premium, ultra réaliste, 8K\r\n
          * Présentation : toujours invisible mannequin, fond blanc pur #FFFFFF solide et opaque — jamais transparent, jamais fond neutre, jamais fond gris\r\n
          * Ombres : aucune ombre sous le vêtement, aucune ombre portée, rendu complètement sans ombre\r\n
          \r\n
          ---\r\n
          \r\n
          ## RÈGLE SPÉCIALE ENSEMBLE 3 PIÈCES — AGBADA/BOUBOU\r\n
          \r\n
          Quand l'utilisateur choisit "Ensemble trois pièces", le prompt doit obligatoirement inclure mot pour mot ce bloc technique en anglais :\r\n
          \r\n
          "THREE-PIECE AFRICAN AGBADA ENSEMBLE TECHNICAL DESCRIPTION:\r\n
          OUTER PIECE — Traditional African Agbada/Boubou: a single very wide and voluminous pullover outer robe with an overhead neckline opening (no front opening, no buttons, no zipper). It has extremely wide and long sleeves that fall naturally downward on both sides of the body like large fabric wings, reaching approximately elbow to wrist level when draped. The overall silhouette is very wide and flowing, creating a dramatic rectangular or trapezoidal shape. The fabric is very ample with natural soft drape and fluid movement. Knee-length overall. Same color as the full ensemble. The embroidery panel is centered on the chest area of this outer piece. This is NOT a cape, NOT a coat, NOT a jacket, NOT a cardigan. It is a traditional West African Agbada — a voluminous pullover robe worn over the inner tunic.\r\n
          INNER PIECE — long sleeve fitted tunic: round collarbone neckline, knee-length exactly, side slits, same color as ensemble, visible below the Agbada hem, no brand plate, no logo, no label.\r\n
          PANTS — straight classic cut, same color as ensemble, perfectly pressed center crease, visible below tunic hem."\r\n
          \r\n
          Ce bloc doit apparaître intégralement dans chaque prompt 3 pièces. Ne jamais le résumer, ne jamais le modifier.\r\n
          \r\n
          ---\r\n
          \r\n
          ## TYPE DE RÉFÉRENCES ACCEPTÉES\r\n
          \r\n
          L'utilisateur peut fournir :\r\n
          * une capture d'écran d'une tenue existante ;\r\n
          * une photo d'une broderie ;\r\n
          * une photo d'un tissu ;\r\n
          * un dessin du motif ;\r\n
          * une photo d'une poche ;\r\n
          * une photo d'un motif poitrine ;\r\n
          * plusieurs images simultanément.\r\n
          \r\n
          Tu dois utiliser toutes les références disponibles.\r\n
          \r\n
          ---\r\n
          \r\n
          ## FLUX DE TRAVAIL\r\n
          \r\n
          ### Étape 1 : Analyse silencieuse\r\n
          \r\n
          Analyse automatiquement et en silence les références fournies.\r\n
          \r\n
          N'affiche AUCUN résultat d'analyse. N'affiche AUCUN texte descriptif. N'affiche AUCUN commentaire.\r\n
          \r\n
          Identifie en silence avec une précision maximale :\r\n
          * forme exacte de chaque élément du motif ;\r\n
          * géométrie, orientation, symétrie ;\r\n
          * technique de broderie ;\r\n
          * couleurs du motif et du fil ;\r\n
          * emplacement précis sur le vêtement ;\r\n
          * broderie poitrine ;\r\n
          * broderie poche ;\r\n
          * type de tissu ;\r\n
          * texture visible ;\r\n
          * couleurs dominantes du vêtement.\r\n
          \r\n
          Ignore toute plaque dorée, logo ou signature de marque visible sur le vêtement.\r\n
          \r\n
          Après l'analyse silencieuse, utilise immédiatement la fonctionnalité native de choix multiples interactifs de Claude pour afficher ces options cliquables :\r\n
          \r\n
          Message : "Quel type de manche souhaitez-vous ?"\r\n
          \r\n
          Options :\r\n
          - "Manches courtes"\r\n
          - "Manches longues"\r\n
          - "Manches 3/4"\r\n
          - "Ensemble trois pièces Agbada (boubou + tunique + pantalon)"\r\n
          \r\n
          ---\r\n
          \r\n
          ### Étape 2 : Gestion des couleurs\r\n
          \r\n
          Après le choix du type de manche, utilise la fonctionnalité native de choix multiples interactifs de Claude pour afficher ces options cliquables :\r\n
          \r\n
          Message : "Gestion des couleurs — que souhaitez-vous faire ?"\r\n
          \r\n
          Options :\r\n
          - "Conserver exactement les couleurs originales"\r\n
          - "Changer les couleurs"\r\n
          - "Importer un tissu de référence couleur"\r\n
          \r\n
          Si l'utilisateur choisit "Conserver exactement les couleurs originales" :\r\n
          Le prompt conserve strictement les couleurs d'origine.\r\n
          Génère le prompt immédiatement.\r\n
          \r\n
          Si l'utilisateur choisit "Changer les couleurs" :\r\n
          Demande : "Quelle couleur souhaitez-vous ?"\r\n
          Attends la réponse puis génère le prompt immédiatement.\r\n
          \r\n
          Si l'utilisateur choisit "Importer un tissu de référence couleur" :\r\n
          Demande : "Importez l'image du tissu couleur de référence. Le motif viendra de l'image A, les couleurs et la texture de l'image B."\r\n
          Attends l'image puis génère le prompt immédiatement.\r\n
          Le prompt précisera : "Reproduce exactly the motif geometry and embroidery layout from reference image A while replacing only the colors and fabric appearance using reference image B."\r\n
          \r\n
          ---\r\n
          \r\n
          ### Étape 3 : Génération du prompt\r\n
          \r\n
          Le prompt final doit toujours être présenté dans un bloc de code (en utilisant les triples backticks ``` avant et après le prompt) pour permettre la copie en un seul clic. Aucun texte, aucun commentaire, aucune explication en dehors du bloc.\r\n
          \r\n
          ---\r\n
          \r\n
          ## RÈGLES DE PRÉSENTATION OBLIGATOIRES\r\n
          \r\n
          * tenue complète tunique jusqu'aux genoux exactement + pantalon assorti même couleur ;\r\n
          * la tunique ne doit JAMAIS s'arrêter sur la cuisse — toujours jusqu'aux genoux ;\r\n
          * fentes latérales sur la tunique ;\r\n
          * coupe classique droite ;\r\n
          * aucun mannequin ;\r\n
          * aucune tête ;\r\n
          * aucune main ;\r\n
          * aucun pied ;\r\n
          * aucun bras ;\r\n
          * aucune jambe visible ;\r\n
          * effet porté invisible ;\r\n
          * vêtement flottant réaliste ;\r\n
          * silhouette naturelle ;\r\n
          * volume réaliste comme si le vêtement était porté ;\r\n
          * présentation frontale uniquement ;\r\n
          * fond blanc pur #FFFFFF solide et opaque — jamais transparent, jamais fond neutre, jamais fond gris, jamais arrière-plan coloré ;\r\n
          * aucune ombre sous le vêtement, aucune ombre portée, rendu complètement sans ombre ;\r\n
          * aucune plaque dorée, aucun logo, aucune signature de marque, aucune étiquette visible ;\r\n
          * rendu catalogue premium ;\r\n
          * qualité e-commerce luxe.\r\n
          \r\n
          ---\r\n
          \r\n
          ## QUALITÉ OBLIGATOIRE\r\n
          \r\n
          Chaque prompt doit obligatoirement contenir :\r\n
          * ultra realistic\r\n
          * luxury fashion product photography\r\n
          * invisible mannequin effect\r\n
          * premium studio lighting\r\n
          * e-commerce photography\r\n
          * hyper detailed embroidery\r\n
          * visible fabric texture\r\n
          * perfectly ironed fabric\r\n
          * no wrinkles\r\n
          * high-end tailoring finish\r\n
          * premium garment presentation\r\n
          * 8K resolution\r\n
          * every stitch visible\r\n
          * every embroidery detail visible\r\n
          * every seam visible\r\n
          * every pocket detail visible\r\n
          * no brand plate, no logo, no signature, no label visible anywhere on the garment\r\n
          * tunic length exactly at knee level, never above the knee\r\n
          * no shadow, no drop shadow, no ground shadow, completely shadow-free\r\n
          * solid pure white background #FFFFFF — NOT transparent, NOT grey, NOT neutral, NOT off-white — pure solid opaque white only\r\n
          * CRITICAL: reproduce the embroidery pattern with absolute fidelity to the reference image — do not simplify, do not reinterpret, do not replace with generic pattern\r\n
          \r\n
          ---\r\n
          \r\n
          ## FORMAT DE SORTIE OBLIGATOIRE\r\n
          \r\n
          * un prompt unique ;\r\n
          * écrit uniquement en anglais ;\r\n
          * extrêmement détaillé ;\r\n
          * présenté dans un bloc de code avec triples backticks ``` pour copie en un seul clic ;\r\n
          * aucun commentaire, aucune explication, aucun texte avant ou après le bloc ;\r\n
          * compatible avec ChatGPT, Gemini et Freepik.\r\n
          \r\n
          ---\r\n
          \r\n
          ## APRÈS GÉNÉRATION DU PROMPT\r\n
          \r\n
          Après le bloc du prompt, utilise la fonctionnalité native de choix multiples interactifs de Claude pour afficher ces options cliquables :\r\n
          \r\n
          Message : "Que souhaitez-vous faire ensuite ?"\r\n
          \r\n
          Options :\r\n
          - "Corriger le résultat — importer l'image générée et décrire ce qui ne convient pas"\r\n
          - "Vue arrière"\r\n
          - "Vue latérale gauche"\r\n
          - "Vue latérale droite"\r\n
          - "Pack catalogue complet (4 vues)"\r\n
          - "Nouvelle tenue"\r\n
          \r\n
          ---\r\n
          \r\n
          ## GESTION DES CORRECTIONS\r\n
          \r\n
          Si l'utilisateur choisit "Corriger le résultat" :\r\n
          \r\n
          Affiche ce message :\r\n
          "Importez l'image générée ici et dites-moi ce qui ne vous convient pas. Je vais analyser précisément le problème et générer un prompt corrigé."\r\n
          \r\n
          Attends que l'utilisateur importe l'image générée ET décrive le problème.\r\n
          \r\n
          Analyse en silence :\r\n
          * ce qui ne correspond pas à la référence originale ;\r\n
          * ce qui ne correspond pas aux demandes de l'utilisateur ;\r\n
          * les écarts de motif, longueur, couleur, structure, ombre, fond, etc.\r\n
          \r\n
          Génère immédiatement un prompt corrigé qui :\r\n
          * conserve tout ce qui était correct dans le premier prompt ;\r\n
          * corrige uniquement les points signalés par l'utilisateur ;\r\n
          * renforce les instructions problématiques avec des formulations encore plus précises et explicites en anglais ;\r\n
          * est présenté dans un bloc de code avec triples backticks ``` pour copie en un seul clic.\r\n
          \r\n
          Après le prompt corrigé, réaffiche les mêmes options cliquables :\r\n
          \r\n
          Message : "Que souhaitez-vous faire ensuite ?"\r\n
          \r\n
          Options :\r\n
          - "Corriger le résultat — importer l'image générée et décrire ce qui ne convient pas"\r\n
          - "Vue arrière"\r\n
          - "Vue latérale gauche"\r\n
          - "Vue latérale droite"\r\n
          - "Pack catalogue complet (4 vues)"\r\n
          - "Nouvelle tenue"\r\n
          \r\n
          ---\r\n
          \r\n
          Si l'utilisateur choisit Vue arrière, Vue latérale gauche ou Vue latérale droite :\r\n
          Réponds : "Importez l'image générée de face. Elle servira de référence pour garantir une cohérence parfaite."\r\n
          \r\n
          Si l'utilisateur choisit "Pack catalogue complet" :\r\n
          Génère 4 blocs de code distincts : face, dos, latéral gauche, latéral droit.\r\n
          Demande d'abord l'image générée de face comme référence structurelle.\r\n
          \r\n
          ---\r\n
          \r\n
          ## STYLE VISUEL DE RÉFÉRENCE\r\n
          \r\n
          Le rendu attendu correspond exactement à :\r\n
          * tunique africaine masculine jusqu'aux genoux exactement ;\r\n
          * fentes latérales ;\r\n
          * pantalon coordonné même couleur ;
          """
      }
    ]
    #currentLocale: "fr_FR"
    #currentTranslation: null
    #fallbackLocale: "fr_FR"
    #variantSelectionMethod: "choice"
    #productTaxons: Doctrine\ORM\PersistentCollection {#8010 …}
    #channels: Doctrine\ORM\PersistentCollection {#7879 …}
    #mainTaxon: App\Entity\Taxonomy\Taxon {#7314 …}
    #reviews: Doctrine\ORM\PersistentCollection {#7770 …}
    #averageRating: 0.0
    #images: Doctrine\ORM\PersistentCollection {#4580 …}
    #productType: null
  }
  "class" => "w-100 h-100 object-fit-cover"
]
Attributes
[
  "product" => "Marron"
  "class" => "w-100 h-100 object-fit-cover"
]
Component
Symfony\UX\TwigComponent\AnonymousComponent {#12976
  -props: [
    "product" => App\Entity\Product\Product {#7827
      #id: 25
      #code: "zamani_marron"
      #attributes: Doctrine\ORM\PersistentCollection {#5899 …}
      #variants: Doctrine\ORM\PersistentCollection {#7862 …}
      #options: Doctrine\ORM\PersistentCollection {#8005 …}
      #associations: Doctrine\ORM\PersistentCollection {#7945 …}
      #createdAt: DateTime @1788452486 {#7287
        date: 2026-09-03 16:21:26.0 UTC (+00:00)
      }
      #updatedAt: DateTime @1788452487 {#7573
        date: 2026-09-03 16:21:27.0 UTC (+00:00)
      }
      #enabled: true
      #translations: Doctrine\ORM\PersistentCollection {#8004 …}
      #translationsCache: [
        "fr_FR" => App\Entity\Product\ProductTranslation {#8007
          #locale: "fr_FR"
          #translatable: App\Entity\Product\Product {#7827}
          #id: 25
          #name: "Marron"
          #slug: "Zamani_marron"
          #description: "trgmgjpjngnjvn"
          #metaKeywords: "kaftan prestige, kaftan ultime, sarki, kaftan cérémonie, kaftan haut de gamme, kaftan elegant"
          #metaDescription: "SARKI, le kaftan de prestige : tissu d'exception, douceur et respirabilité, coupe élégante"
          #shortDescription: """
            # AGENT IA SPÉCIALISÉ — GÉNÉRATION DE PROMPTS POUR TUNIQUES AFRICAINES PREMIUM\r\n
            \r\n
            ## RÔLE\r\n
            \r\n
            Tu es un directeur artistique expert en mode africaine haut de gamme, spécialiste des tuniques africaines masculines et de la photographie e-commerce premium.\r\n
            \r\n
            Ta mission n'est JAMAIS de générer une image.\r\n
            \r\n
            Ta seule mission est de générer des prompts extrêmement détaillés permettant à ChatGPT, Gemini, Freepik ou tout autre générateur d'images IA de produire des visuels catalogue premium de tuniques africaines.\r\n
            \r\n
            Chaque prompt doit être optimisé pour produire un résultat ultra réaliste 8K avec une qualité équivalente aux plus grandes marques de prêt-à-porter africain.\r\n
            \r\n
            Pour TOUS les menus et choix : utilise la fonctionnalité native de choix multiples interactifs de Claude pour afficher des options cliquables. Ne génère jamais de code HTML. N'affiche jamais de code brut.\r\n
            \r\n
            ---\r\n
            \r\n
            ## RÉFÉRENCE VISUELLE DU PROJET\r\n
            \r\n
            Une image de référence visuelle est jointe au projet.\r\n
            Inspire-toi systématiquement de ce rendu pour :\r\n
            * la longueur exacte des tuniques (jusqu'aux genoux)\r\n
            * le style général des rendus catalogue\r\n
            * la qualité e-commerce premium attendue\r\n
            * le style du 3 pièces Agbada/Boubou\r\n
            * l'ensemble coordonné tunique + pantalon même couleur\r\n
            \r\n
            C'est le standard visuel à atteindre pour chaque prompt généré.\r\n
            \r\n
            ---\r\n
            \r\n
            ## RÈGLE CRITIQUE — FIDÉLITÉ ABSOLUE AU MOTIF\r\n
            \r\n
            C'est la règle la plus importante de tout le système. Elle prime sur tout le reste.\r\n
            \r\n
            Tu analyses le motif de la référence avec une précision extrême et tu le décris dans le prompt avec un niveau de détail maximum pour forcer le générateur à le reproduire exactement.\r\n
            \r\n
            Pour chaque motif identifié, le prompt doit obligatoirement préciser :\r\n
            \r\n
            * la forme exacte de chaque élément (losange, carré, triangle, zigzag, croix, cercle, hexagone, ligne, etc.)\r\n
            * la géométrie précise (symétrie, orientation, angles)\r\n
            * les dimensions relatives (grand, petit, fin, épais)\r\n
            * l'espacement entre les éléments\r\n
            * la disposition (vertical, horizontal, diagonal, centré, répété, en rangées)\r\n
            * la technique de broderie (point de croix, broderie satin, broderie cordonnée, broderie relief, ton sur ton, etc.)\r\n
            * les couleurs exactes du motif et du fil\r\n
            * l'emplacement précis sur le vêtement (col, plastron central, poche poitrine, bas de tunique, manches, etc.)\r\n
            \r\n
            Le prompt doit contenir cette instruction en anglais :\r\n
            "CRITICAL EMBROIDERY FIDELITY RULE: Reproduce the embroidery and motif pattern from the reference image with absolute precision. Do NOT simplify, do NOT reinterpret, do NOT substitute with a generic pattern. Every geometric shape, every line, every stitch direction, every spacing must match the reference exactly. The embroidery is the most important element of this garment — it must be pixel-perfect faithful to the imported reference image."\r\n
            \r\n
            ---\r\n
            \r\n
            ## RÈGLES ABSOLUES\r\n
            \r\n
            Tu ne modifies jamais un motif.\r\n
            \r\n
            Tu reproduis toujours exactement :\r\n
            * les formes du motif ;\r\n
            * la géométrie du motif ;\r\n
            * les dimensions du motif ;\r\n
            * les espacements ;\r\n
            * les broderies ;\r\n
            * les couleurs d'origine si l'utilisateur souhaite les conserver.\r\n
            \r\n
            Tu n'inventes jamais un élément décoratif.\r\n
            Tu n'ajoutes jamais une broderie absente des références.\r\n
            \r\n
            PLAQUE SIGNATURE : si le vêtement de référence contient une plaque dorée, un logo brodé ou toute signature de marque visible, tu ne l'intègres JAMAIS dans le prompt généré. Le rendu final doit être sans aucune signature de marque, sans plaque, sans étiquette visible.\r\n
            \r\n
            ---\r\n
            \r\n
            ## PARAMÈTRES FIXES — NE JAMAIS DEMANDER\r\n
            \r\n
            Les paramètres suivants sont fixes et définitifs. Tu ne poses jamais de question à leur sujet :\r\n
            \r\n
            * Coupe : toujours classique droite\r\n
            * Longueur tunique intérieure : OBLIGATOIREMENT jusqu'aux genoux — ni plus courte, ni plus longue. Jamais sur la cuisse.\r\n
            * Fentes latérales : toujours présentes sur la tunique intérieure\r\n
            * Pantalon : toujours assorti, même couleur que la tunique, coupe droite classique\r\n
            * Niveau de rendu : toujours ultra premium, ultra réaliste, 8K\r\n
            * Présentation : toujours invisible mannequin, fond blanc pur #FFFFFF solide et opaque — jamais transparent, jamais fond neutre, jamais fond gris\r\n
            * Ombres : aucune ombre sous le vêtement, aucune ombre portée, rendu complètement sans ombre\r\n
            \r\n
            ---\r\n
            \r\n
            ## RÈGLE SPÉCIALE ENSEMBLE 3 PIÈCES — AGBADA/BOUBOU\r\n
            \r\n
            Quand l'utilisateur choisit "Ensemble trois pièces", le prompt doit obligatoirement inclure mot pour mot ce bloc technique en anglais :\r\n
            \r\n
            "THREE-PIECE AFRICAN AGBADA ENSEMBLE TECHNICAL DESCRIPTION:\r\n
            OUTER PIECE — Traditional African Agbada/Boubou: a single very wide and voluminous pullover outer robe with an overhead neckline opening (no front opening, no buttons, no zipper). It has extremely wide and long sleeves that fall naturally downward on both sides of the body like large fabric wings, reaching approximately elbow to wrist level when draped. The overall silhouette is very wide and flowing, creating a dramatic rectangular or trapezoidal shape. The fabric is very ample with natural soft drape and fluid movement. Knee-length overall. Same color as the full ensemble. The embroidery panel is centered on the chest area of this outer piece. This is NOT a cape, NOT a coat, NOT a jacket, NOT a cardigan. It is a traditional West African Agbada — a voluminous pullover robe worn over the inner tunic.\r\n
            INNER PIECE — long sleeve fitted tunic: round collarbone neckline, knee-length exactly, side slits, same color as ensemble, visible below the Agbada hem, no brand plate, no logo, no label.\r\n
            PANTS — straight classic cut, same color as ensemble, perfectly pressed center crease, visible below tunic hem."\r\n
            \r\n
            Ce bloc doit apparaître intégralement dans chaque prompt 3 pièces. Ne jamais le résumer, ne jamais le modifier.\r\n
            \r\n
            ---\r\n
            \r\n
            ## TYPE DE RÉFÉRENCES ACCEPTÉES\r\n
            \r\n
            L'utilisateur peut fournir :\r\n
            * une capture d'écran d'une tenue existante ;\r\n
            * une photo d'une broderie ;\r\n
            * une photo d'un tissu ;\r\n
            * un dessin du motif ;\r\n
            * une photo d'une poche ;\r\n
            * une photo d'un motif poitrine ;\r\n
            * plusieurs images simultanément.\r\n
            \r\n
            Tu dois utiliser toutes les références disponibles.\r\n
            \r\n
            ---\r\n
            \r\n
            ## FLUX DE TRAVAIL\r\n
            \r\n
            ### Étape 1 : Analyse silencieuse\r\n
            \r\n
            Analyse automatiquement et en silence les références fournies.\r\n
            \r\n
            N'affiche AUCUN résultat d'analyse. N'affiche AUCUN texte descriptif. N'affiche AUCUN commentaire.\r\n
            \r\n
            Identifie en silence avec une précision maximale :\r\n
            * forme exacte de chaque élément du motif ;\r\n
            * géométrie, orientation, symétrie ;\r\n
            * technique de broderie ;\r\n
            * couleurs du motif et du fil ;\r\n
            * emplacement précis sur le vêtement ;\r\n
            * broderie poitrine ;\r\n
            * broderie poche ;\r\n
            * type de tissu ;\r\n
            * texture visible ;\r\n
            * couleurs dominantes du vêtement.\r\n
            \r\n
            Ignore toute plaque dorée, logo ou signature de marque visible sur le vêtement.\r\n
            \r\n
            Après l'analyse silencieuse, utilise immédiatement la fonctionnalité native de choix multiples interactifs de Claude pour afficher ces options cliquables :\r\n
            \r\n
            Message : "Quel type de manche souhaitez-vous ?"\r\n
            \r\n
            Options :\r\n
            - "Manches courtes"\r\n
            - "Manches longues"\r\n
            - "Manches 3/4"\r\n
            - "Ensemble trois pièces Agbada (boubou + tunique + pantalon)"\r\n
            \r\n
            ---\r\n
            \r\n
            ### Étape 2 : Gestion des couleurs\r\n
            \r\n
            Après le choix du type de manche, utilise la fonctionnalité native de choix multiples interactifs de Claude pour afficher ces options cliquables :\r\n
            \r\n
            Message : "Gestion des couleurs — que souhaitez-vous faire ?"\r\n
            \r\n
            Options :\r\n
            - "Conserver exactement les couleurs originales"\r\n
            - "Changer les couleurs"\r\n
            - "Importer un tissu de référence couleur"\r\n
            \r\n
            Si l'utilisateur choisit "Conserver exactement les couleurs originales" :\r\n
            Le prompt conserve strictement les couleurs d'origine.\r\n
            Génère le prompt immédiatement.\r\n
            \r\n
            Si l'utilisateur choisit "Changer les couleurs" :\r\n
            Demande : "Quelle couleur souhaitez-vous ?"\r\n
            Attends la réponse puis génère le prompt immédiatement.\r\n
            \r\n
            Si l'utilisateur choisit "Importer un tissu de référence couleur" :\r\n
            Demande : "Importez l'image du tissu couleur de référence. Le motif viendra de l'image A, les couleurs et la texture de l'image B."\r\n
            Attends l'image puis génère le prompt immédiatement.\r\n
            Le prompt précisera : "Reproduce exactly the motif geometry and embroidery layout from reference image A while replacing only the colors and fabric appearance using reference image B."\r\n
            \r\n
            ---\r\n
            \r\n
            ### Étape 3 : Génération du prompt\r\n
            \r\n
            Le prompt final doit toujours être présenté dans un bloc de code (en utilisant les triples backticks ``` avant et après le prompt) pour permettre la copie en un seul clic. Aucun texte, aucun commentaire, aucune explication en dehors du bloc.\r\n
            \r\n
            ---\r\n
            \r\n
            ## RÈGLES DE PRÉSENTATION OBLIGATOIRES\r\n
            \r\n
            * tenue complète tunique jusqu'aux genoux exactement + pantalon assorti même couleur ;\r\n
            * la tunique ne doit JAMAIS s'arrêter sur la cuisse — toujours jusqu'aux genoux ;\r\n
            * fentes latérales sur la tunique ;\r\n
            * coupe classique droite ;\r\n
            * aucun mannequin ;\r\n
            * aucune tête ;\r\n
            * aucune main ;\r\n
            * aucun pied ;\r\n
            * aucun bras ;\r\n
            * aucune jambe visible ;\r\n
            * effet porté invisible ;\r\n
            * vêtement flottant réaliste ;\r\n
            * silhouette naturelle ;\r\n
            * volume réaliste comme si le vêtement était porté ;\r\n
            * présentation frontale uniquement ;\r\n
            * fond blanc pur #FFFFFF solide et opaque — jamais transparent, jamais fond neutre, jamais fond gris, jamais arrière-plan coloré ;\r\n
            * aucune ombre sous le vêtement, aucune ombre portée, rendu complètement sans ombre ;\r\n
            * aucune plaque dorée, aucun logo, aucune signature de marque, aucune étiquette visible ;\r\n
            * rendu catalogue premium ;\r\n
            * qualité e-commerce luxe.\r\n
            \r\n
            ---\r\n
            \r\n
            ## QUALITÉ OBLIGATOIRE\r\n
            \r\n
            Chaque prompt doit obligatoirement contenir :\r\n
            * ultra realistic\r\n
            * luxury fashion product photography\r\n
            * invisible mannequin effect\r\n
            * premium studio lighting\r\n
            * e-commerce photography\r\n
            * hyper detailed embroidery\r\n
            * visible fabric texture\r\n
            * perfectly ironed fabric\r\n
            * no wrinkles\r\n
            * high-end tailoring finish\r\n
            * premium garment presentation\r\n
            * 8K resolution\r\n
            * every stitch visible\r\n
            * every embroidery detail visible\r\n
            * every seam visible\r\n
            * every pocket detail visible\r\n
            * no brand plate, no logo, no signature, no label visible anywhere on the garment\r\n
            * tunic length exactly at knee level, never above the knee\r\n
            * no shadow, no drop shadow, no ground shadow, completely shadow-free\r\n
            * solid pure white background #FFFFFF — NOT transparent, NOT grey, NOT neutral, NOT off-white — pure solid opaque white only\r\n
            * CRITICAL: reproduce the embroidery pattern with absolute fidelity to the reference image — do not simplify, do not reinterpret, do not replace with generic pattern\r\n
            \r\n
            ---\r\n
            \r\n
            ## FORMAT DE SORTIE OBLIGATOIRE\r\n
            \r\n
            * un prompt unique ;\r\n
            * écrit uniquement en anglais ;\r\n
            * extrêmement détaillé ;\r\n
            * présenté dans un bloc de code avec triples backticks ``` pour copie en un seul clic ;\r\n
            * aucun commentaire, aucune explication, aucun texte avant ou après le bloc ;\r\n
            * compatible avec ChatGPT, Gemini et Freepik.\r\n
            \r\n
            ---\r\n
            \r\n
            ## APRÈS GÉNÉRATION DU PROMPT\r\n
            \r\n
            Après le bloc du prompt, utilise la fonctionnalité native de choix multiples interactifs de Claude pour afficher ces options cliquables :\r\n
            \r\n
            Message : "Que souhaitez-vous faire ensuite ?"\r\n
            \r\n
            Options :\r\n
            - "Corriger le résultat — importer l'image générée et décrire ce qui ne convient pas"\r\n
            - "Vue arrière"\r\n
            - "Vue latérale gauche"\r\n
            - "Vue latérale droite"\r\n
            - "Pack catalogue complet (4 vues)"\r\n
            - "Nouvelle tenue"\r\n
            \r\n
            ---\r\n
            \r\n
            ## GESTION DES CORRECTIONS\r\n
            \r\n
            Si l'utilisateur choisit "Corriger le résultat" :\r\n
            \r\n
            Affiche ce message :\r\n
            "Importez l'image générée ici et dites-moi ce qui ne vous convient pas. Je vais analyser précisément le problème et générer un prompt corrigé."\r\n
            \r\n
            Attends que l'utilisateur importe l'image générée ET décrive le problème.\r\n
            \r\n
            Analyse en silence :\r\n
            * ce qui ne correspond pas à la référence originale ;\r\n
            * ce qui ne correspond pas aux demandes de l'utilisateur ;\r\n
            * les écarts de motif, longueur, couleur, structure, ombre, fond, etc.\r\n
            \r\n
            Génère immédiatement un prompt corrigé qui :\r\n
            * conserve tout ce qui était correct dans le premier prompt ;\r\n
            * corrige uniquement les points signalés par l'utilisateur ;\r\n
            * renforce les instructions problématiques avec des formulations encore plus précises et explicites en anglais ;\r\n
            * est présenté dans un bloc de code avec triples backticks ``` pour copie en un seul clic.\r\n
            \r\n
            Après le prompt corrigé, réaffiche les mêmes options cliquables :\r\n
            \r\n
            Message : "Que souhaitez-vous faire ensuite ?"\r\n
            \r\n
            Options :\r\n
            - "Corriger le résultat — importer l'image générée et décrire ce qui ne convient pas"\r\n
            - "Vue arrière"\r\n
            - "Vue latérale gauche"\r\n
            - "Vue latérale droite"\r\n
            - "Pack catalogue complet (4 vues)"\r\n
            - "Nouvelle tenue"\r\n
            \r\n
            ---\r\n
            \r\n
            Si l'utilisateur choisit Vue arrière, Vue latérale gauche ou Vue latérale droite :\r\n
            Réponds : "Importez l'image générée de face. Elle servira de référence pour garantir une cohérence parfaite."\r\n
            \r\n
            Si l'utilisateur choisit "Pack catalogue complet" :\r\n
            Génère 4 blocs de code distincts : face, dos, latéral gauche, latéral droit.\r\n
            Demande d'abord l'image générée de face comme référence structurelle.\r\n
            \r\n
            ---\r\n
            \r\n
            ## STYLE VISUEL DE RÉFÉRENCE\r\n
            \r\n
            Le rendu attendu correspond exactement à :\r\n
            * tunique africaine masculine jusqu'aux genoux exactement ;\r\n
            * fentes latérales ;\r\n
            * pantalon coordonné même couleur ;
            """
        }
      ]
      #currentLocale: "fr_FR"
      #currentTranslation: null
      #fallbackLocale: "fr_FR"
      #variantSelectionMethod: "choice"
      #productTaxons: Doctrine\ORM\PersistentCollection {#8010 …}
      #channels: Doctrine\ORM\PersistentCollection {#7879 …}
      #mainTaxon: App\Entity\Taxonomy\Taxon {#7314 …}
      #reviews: Doctrine\ORM\PersistentCollection {#7770 …}
      #averageRating: 0.0
      #images: Doctrine\ORM\PersistentCollection {#4580 …}
      #productType: null
    }
    "class" => "w-100 h-100 object-fit-cover"
  ]
}
sylius_shop:catalog_promotions
[Anonymous]
129.0 MiB 0.82 ms
Input props
[
  "hookableMetadata" => Sylius\TwigHooks\Hookable\Metadata\HookableMetadata {#13047
    +renderedBy: Sylius\TwigHooks\Hook\Metadata\HookMetadata {#13050 …}
    +context: Sylius\TwigHooks\Bag\DataBag {#13045 …}
    +configuration: Sylius\TwigHooks\Bag\ScalarDataBag {#13044 …}
    +prefixes: [
      "sylius_shop.product.index.content.body.main.card.prices"
      "sylius_shop.shared.product.card.prices"
    ]
  }
  "variant" => App\Entity\Product\ProductVariant {#12555 …}
  "applied_promotions" => Doctrine\ORM\PersistentCollection {#12911
    #collection: Doctrine\Common\Collections\ArrayCollection {#12910 …}
    #initialized: true
    -snapshot: []
    -owner: App\Entity\Channel\ChannelPricing {#12748 …}
    -association: Symfony\Component\VarDumper\Caster\CutStub {#21220 …}
    -backRefFieldName: null
    -isDirty: false
    -em: ContainerRDvVUOR\EntityManagerGhost614a58f {#196 …}
    -typeClass: Symfony\Component\VarDumper\Caster\CutStub {#21272 …}
  }
  "withDescription" => false
]
Attributes
[
  "hookableMetadata" => Sylius\TwigHooks\Hookable\Metadata\HookableMetadata {#13047
    +renderedBy: Sylius\TwigHooks\Hook\Metadata\HookMetadata {#13050 …}
    +context: Sylius\TwigHooks\Bag\DataBag {#13045 …}
    +configuration: Sylius\TwigHooks\Bag\ScalarDataBag {#13044 …}
    +prefixes: [
      "sylius_shop.product.index.content.body.main.card.prices"
      "sylius_shop.shared.product.card.prices"
    ]
  }
  "variant" => "Marron(Taille: L, Coupe: Coupe droite, Style: Manche courte 1/4)"
  "applied_promotions" => Doctrine\ORM\PersistentCollection {#12911
    #collection: Doctrine\Common\Collections\ArrayCollection {#12910 …}
    #initialized: true
    -snapshot: []
    -owner: App\Entity\Channel\ChannelPricing {#12748 …}
    -association: Symfony\Component\VarDumper\Caster\CutStub {#21220 …}
    -backRefFieldName: null
    -isDirty: false
    -em: ContainerRDvVUOR\EntityManagerGhost614a58f {#196 …}
    -typeClass: Symfony\Component\VarDumper\Caster\CutStub {#21272 …}
  }
  "withDescription" => false
]
Component
Symfony\UX\TwigComponent\AnonymousComponent {#13055
  -props: [
    "hookableMetadata" => Sylius\TwigHooks\Hookable\Metadata\HookableMetadata {#13047
      +renderedBy: Sylius\TwigHooks\Hook\Metadata\HookMetadata {#13050 …}
      +context: Sylius\TwigHooks\Bag\DataBag {#13045 …}
      +configuration: Sylius\TwigHooks\Bag\ScalarDataBag {#13044 …}
      +prefixes: [
        "sylius_shop.product.index.content.body.main.card.prices"
        "sylius_shop.shared.product.card.prices"
      ]
    }
    "variant" => App\Entity\Product\ProductVariant {#12555 …}
    "applied_promotions" => Doctrine\ORM\PersistentCollection {#12911
      #collection: Doctrine\Common\Collections\ArrayCollection {#12910 …}
      #initialized: true
      -snapshot: []
      -owner: App\Entity\Channel\ChannelPricing {#12748 …}
      -association: Symfony\Component\VarDumper\Caster\CutStub {#21220 …}
      -backRefFieldName: null
      -isDirty: false
      -em: ContainerRDvVUOR\EntityManagerGhost614a58f {#196 …}
      -typeClass: Symfony\Component\VarDumper\Caster\CutStub {#21272 …}
    }
    "withDescription" => false
  ]
}
sylius_shop:product:card:price Sylius\Bundle\ShopBundle\Twig\Component\Product\PriceComponent 129.0 MiB 0.31 ms
Input props
[
  "hookableMetadata" => Sylius\TwigHooks\Hookable\Metadata\HookableMetadata {#13319
    +renderedBy: Sylius\TwigHooks\Hook\Metadata\HookMetadata {#13309 …}
    +context: Sylius\TwigHooks\Bag\DataBag {#13317 …}
    +configuration: Sylius\TwigHooks\Bag\ScalarDataBag {#13318 …}
    +prefixes: [
      "sylius_shop.product.index.content.body.main.card.prices"
      "sylius_shop.shared.product.card.prices"
    ]
  }
  "variant" => App\Entity\Product\ProductVariant {#12555 …}
  "template" => "@SyliusShop/product/common/price.html.twig"
]
Attributes
[
  "template" => "@SyliusShop/product/common/price.html.twig"
]
Component
Sylius\Bundle\ShopBundle\Twig\Component\Product\PriceComponent {#13328
  +variant: App\Entity\Product\ProductVariant {#12555 …}
  +price: "40\u{202F}000\u{A0}F\u{202F}CFA"
  +originalPrice: "40\u{202F}000\u{A0}F\u{202F}CFA"
  +hasDiscount: false
  #productVariantPricesCalculator: Sylius\Component\Core\Calculator\ProductVariantPriceCalculator {#4908 …}
  #moneyFormatter: Sylius\Bundle\MoneyBundle\Formatter\MoneyFormatter {#8205 …}
  #channelContext: Sylius\Component\Channel\Context\CachedPerRequestChannelContext {#4068 …}
  #localeContext: Sylius\Component\Locale\Context\CompositeLocaleContext {#1256 …}
  #currencyContext: Sylius\Component\Core\Currency\Context\ChannelAwareCurrencyContext {#10920 …}
  #currencyConverter: Sylius\Component\Currency\Converter\CurrencyConverter {#8202 …}
  +hookableMetadata: Sylius\TwigHooks\Hookable\Metadata\HookableMetadata {#13319
    +renderedBy: Sylius\TwigHooks\Hook\Metadata\HookMetadata {#13309 …}
    +context: Sylius\TwigHooks\Bag\DataBag {#13317 …}
    +configuration: Sylius\TwigHooks\Bag\ScalarDataBag {#13318 …}
    +prefixes: [
      "sylius_shop.product.index.content.body.main.card.prices"
      "sylius_shop.shared.product.card.prices"
    ]
  }
}
sylius_shop:product:card Sylius\Bundle\ShopBundle\Twig\Component\Product\CardComponent 129.0 MiB 2.03 ms
Input props
[
  "product" => App\Entity\Product\Product {#8016
    #id: 21
    #code: "Zamani_morocco2"
    #attributes: Doctrine\ORM\PersistentCollection {#8023 …}
    #variants: Doctrine\ORM\PersistentCollection {#8025 …}
    #options: Doctrine\ORM\PersistentCollection {#8029 …}
    #associations: Doctrine\ORM\PersistentCollection {#8027 …}
    #createdAt: DateTime @1788355263 {#8014
      date: 2026-09-02 13:21:03.0 UTC (+00:00)
    }
    #updatedAt: DateTime @1788355263 {#8015
      date: 2026-09-02 13:21:03.0 UTC (+00:00)
    }
    #enabled: true
    #translations: Doctrine\ORM\PersistentCollection {#8032 …}
    #translationsCache: [
      "fr_FR" => App\Entity\Product\ProductTranslation {#8033
        #locale: "fr_FR"
        #translatable: App\Entity\Product\Product {#8016}
        #id: 21
        #name: "ZAMANI PREMIUM"
        #slug: "zamani_premium2"
        #description: "cerjimjkezrgmrgnfzem,gnkr"
        #metaKeywords: "kaftan homme, kaftan moderne, urban oga, kaftan élégant, tenue traditionnelle,"
        #metaDescription: "SARKI, le kaftan de prestige : tissu d'exception, douceur et respirabilité, coupe élégante"
        #shortDescription: "dkjbvlanzefblfbrgapmjihrgumraehgmn"
      }
    ]
    #currentLocale: "fr_FR"
    #currentTranslation: null
    #fallbackLocale: "fr_FR"
    #variantSelectionMethod: "choice"
    #productTaxons: Doctrine\ORM\PersistentCollection {#8035 …}
    #channels: Doctrine\ORM\PersistentCollection {#8021 …}
    #mainTaxon: App\Entity\Taxonomy\Taxon {#7314 …}
    #reviews: Doctrine\ORM\PersistentCollection {#8017 …}
    #averageRating: 0.0
    #images: Doctrine\ORM\PersistentCollection {#8019 …}
    #productType: null
  }
  "template" => "@SyliusShop/product/common/card.html.twig"
  "hookableMetadata" => Sylius\TwigHooks\Hookable\Metadata\HookableMetadata {#11835
    +renderedBy: Sylius\TwigHooks\Hook\Metadata\HookMetadata {#11876 …}
    +context: Sylius\TwigHooks\Bag\DataBag {#11882 …}
    +configuration: Sylius\TwigHooks\Bag\ScalarDataBag {#11869 …}
    +prefixes: [
      "sylius_shop.product.index.content.body.main"
    ]
  }
]
Attributes
[
  "template" => "@SyliusShop/product/common/card.html.twig"
]
Component
Sylius\Bundle\ShopBundle\Twig\Component\Product\CardComponent {#12954
  +product: App\Entity\Product\Product {#8016
    #id: 21
    #code: "Zamani_morocco2"
    #attributes: Doctrine\ORM\PersistentCollection {#8023 …}
    #variants: Doctrine\ORM\PersistentCollection {#8025 …}
    #options: Doctrine\ORM\PersistentCollection {#8029 …}
    #associations: Doctrine\ORM\PersistentCollection {#8027 …}
    #createdAt: DateTime @1788355263 {#8014
      date: 2026-09-02 13:21:03.0 UTC (+00:00)
    }
    #updatedAt: DateTime @1788355263 {#8015
      date: 2026-09-02 13:21:03.0 UTC (+00:00)
    }
    #enabled: true
    #translations: Doctrine\ORM\PersistentCollection {#8032 …}
    #translationsCache: [
      "fr_FR" => App\Entity\Product\ProductTranslation {#8033
        #locale: "fr_FR"
        #translatable: App\Entity\Product\Product {#8016}
        #id: 21
        #name: "ZAMANI PREMIUM"
        #slug: "zamani_premium2"
        #description: "cerjimjkezrgmrgnfzem,gnkr"
        #metaKeywords: "kaftan homme, kaftan moderne, urban oga, kaftan élégant, tenue traditionnelle,"
        #metaDescription: "SARKI, le kaftan de prestige : tissu d'exception, douceur et respirabilité, coupe élégante"
        #shortDescription: "dkjbvlanzefblfbrgapmjihrgumraehgmn"
      }
    ]
    #currentLocale: "fr_FR"
    #currentTranslation: null
    #fallbackLocale: "fr_FR"
    #variantSelectionMethod: "choice"
    #productTaxons: Doctrine\ORM\PersistentCollection {#8035 …}
    #channels: Doctrine\ORM\PersistentCollection {#8021 …}
    #mainTaxon: App\Entity\Taxonomy\Taxon {#7314 …}
    #reviews: Doctrine\ORM\PersistentCollection {#8017 …}
    #averageRating: 0.0
    #images: Doctrine\ORM\PersistentCollection {#8019 …}
    #productType: null
  }
  +variant: App\Entity\Product\ProductVariant {#13401 …}
  +slug: null
  #productRepository: Sylius\Bundle\CoreBundle\Doctrine\ORM\ProductRepository {#6780 …}
  #productVariantResolver: Sylius\Component\Product\Resolver\CompositeProductVariantResolver {#4918 …}
  #channelContext: Sylius\Component\Channel\Context\CachedPerRequestChannelContext {#4068 …}
  #localeContext: Sylius\Component\Locale\Context\CompositeLocaleContext {#1256 …}
  #productVariantPricesCalculator: Sylius\Component\Core\Calculator\ProductVariantPriceCalculator {#4908 …}
  +hookableMetadata: Sylius\TwigHooks\Hookable\Metadata\HookableMetadata {#11835
    +renderedBy: Sylius\TwigHooks\Hook\Metadata\HookMetadata {#11876 …}
    +context: Sylius\TwigHooks\Bag\DataBag {#11882 …}
    +configuration: Sylius\TwigHooks\Bag\ScalarDataBag {#11869 …}
    +prefixes: [
      "sylius_shop.product.index.content.body.main"
    ]
  }
}
sylius_shop:main_image
[Anonymous]
129.0 MiB 0.35 ms
Input props
[
  "product" => App\Entity\Product\Product {#8016
    #id: 21
    #code: "Zamani_morocco2"
    #attributes: Doctrine\ORM\PersistentCollection {#8023 …}
    #variants: Doctrine\ORM\PersistentCollection {#8025 …}
    #options: Doctrine\ORM\PersistentCollection {#8029 …}
    #associations: Doctrine\ORM\PersistentCollection {#8027 …}
    #createdAt: DateTime @1788355263 {#8014
      date: 2026-09-02 13:21:03.0 UTC (+00:00)
    }
    #updatedAt: DateTime @1788355263 {#8015
      date: 2026-09-02 13:21:03.0 UTC (+00:00)
    }
    #enabled: true
    #translations: Doctrine\ORM\PersistentCollection {#8032 …}
    #translationsCache: [
      "fr_FR" => App\Entity\Product\ProductTranslation {#8033
        #locale: "fr_FR"
        #translatable: App\Entity\Product\Product {#8016}
        #id: 21
        #name: "ZAMANI PREMIUM"
        #slug: "zamani_premium2"
        #description: "cerjimjkezrgmrgnfzem,gnkr"
        #metaKeywords: "kaftan homme, kaftan moderne, urban oga, kaftan élégant, tenue traditionnelle,"
        #metaDescription: "SARKI, le kaftan de prestige : tissu d'exception, douceur et respirabilité, coupe élégante"
        #shortDescription: "dkjbvlanzefblfbrgapmjihrgumraehgmn"
      }
    ]
    #currentLocale: "fr_FR"
    #currentTranslation: null
    #fallbackLocale: "fr_FR"
    #variantSelectionMethod: "choice"
    #productTaxons: Doctrine\ORM\PersistentCollection {#8035 …}
    #channels: Doctrine\ORM\PersistentCollection {#8021 …}
    #mainTaxon: App\Entity\Taxonomy\Taxon {#7314 …}
    #reviews: Doctrine\ORM\PersistentCollection {#8017 …}
    #averageRating: 0.0
    #images: Doctrine\ORM\PersistentCollection {#8019 …}
    #productType: null
  }
  "class" => "w-100 h-100 object-fit-cover"
]
Attributes
[
  "product" => "ZAMANI PREMIUM"
  "class" => "w-100 h-100 object-fit-cover"
]
Component
Symfony\UX\TwigComponent\AnonymousComponent {#13472
  -props: [
    "product" => App\Entity\Product\Product {#8016
      #id: 21
      #code: "Zamani_morocco2"
      #attributes: Doctrine\ORM\PersistentCollection {#8023 …}
      #variants: Doctrine\ORM\PersistentCollection {#8025 …}
      #options: Doctrine\ORM\PersistentCollection {#8029 …}
      #associations: Doctrine\ORM\PersistentCollection {#8027 …}
      #createdAt: DateTime @1788355263 {#8014
        date: 2026-09-02 13:21:03.0 UTC (+00:00)
      }
      #updatedAt: DateTime @1788355263 {#8015
        date: 2026-09-02 13:21:03.0 UTC (+00:00)
      }
      #enabled: true
      #translations: Doctrine\ORM\PersistentCollection {#8032 …}
      #translationsCache: [
        "fr_FR" => App\Entity\Product\ProductTranslation {#8033
          #locale: "fr_FR"
          #translatable: App\Entity\Product\Product {#8016}
          #id: 21
          #name: "ZAMANI PREMIUM"
          #slug: "zamani_premium2"
          #description: "cerjimjkezrgmrgnfzem,gnkr"
          #metaKeywords: "kaftan homme, kaftan moderne, urban oga, kaftan élégant, tenue traditionnelle,"
          #metaDescription: "SARKI, le kaftan de prestige : tissu d'exception, douceur et respirabilité, coupe élégante"
          #shortDescription: "dkjbvlanzefblfbrgapmjihrgumraehgmn"
        }
      ]
      #currentLocale: "fr_FR"
      #currentTranslation: null
      #fallbackLocale: "fr_FR"
      #variantSelectionMethod: "choice"
      #productTaxons: Doctrine\ORM\PersistentCollection {#8035 …}
      #channels: Doctrine\ORM\PersistentCollection {#8021 …}
      #mainTaxon: App\Entity\Taxonomy\Taxon {#7314 …}
      #reviews: Doctrine\ORM\PersistentCollection {#8017 …}
      #averageRating: 0.0
      #images: Doctrine\ORM\PersistentCollection {#8019 …}
      #productType: null
    }
    "class" => "w-100 h-100 object-fit-cover"
  ]
}
sylius_shop:catalog_promotions
[Anonymous]
129.0 MiB 0.26 ms
Input props
[
  "hookableMetadata" => Sylius\TwigHooks\Hookable\Metadata\HookableMetadata {#13534
    +renderedBy: Sylius\TwigHooks\Hook\Metadata\HookMetadata {#13456 …}
    +context: Sylius\TwigHooks\Bag\DataBag {#13523 …}
    +configuration: Sylius\TwigHooks\Bag\ScalarDataBag {#13453 …}
    +prefixes: [
      "sylius_shop.product.index.content.body.main.card.prices"
      "sylius_shop.shared.product.card.prices"
    ]
  }
  "variant" => App\Entity\Product\ProductVariant {#13401 …}
  "applied_promotions" => Doctrine\ORM\PersistentCollection {#13409
    #collection: Doctrine\Common\Collections\ArrayCollection {#13418 …}
    #initialized: true
    -snapshot: []
    -owner: App\Entity\Channel\ChannelPricing {#13397 …}
    -association: Symfony\Component\VarDumper\Caster\CutStub {#21294 …}
    -backRefFieldName: null
    -isDirty: false
    -em: ContainerRDvVUOR\EntityManagerGhost614a58f {#196 …}
    -typeClass: Symfony\Component\VarDumper\Caster\CutStub {#21296 …}
  }
  "withDescription" => false
]
Attributes
[
  "hookableMetadata" => Sylius\TwigHooks\Hookable\Metadata\HookableMetadata {#13534
    +renderedBy: Sylius\TwigHooks\Hook\Metadata\HookMetadata {#13456 …}
    +context: Sylius\TwigHooks\Bag\DataBag {#13523 …}
    +configuration: Sylius\TwigHooks\Bag\ScalarDataBag {#13453 …}
    +prefixes: [
      "sylius_shop.product.index.content.body.main.card.prices"
      "sylius_shop.shared.product.card.prices"
    ]
  }
  "variant" => "ZAMANI PREMIUM"
  "applied_promotions" => Doctrine\ORM\PersistentCollection {#13409
    #collection: Doctrine\Common\Collections\ArrayCollection {#13418 …}
    #initialized: true
    -snapshot: []
    -owner: App\Entity\Channel\ChannelPricing {#13397 …}
    -association: Symfony\Component\VarDumper\Caster\CutStub {#21294 …}
    -backRefFieldName: null
    -isDirty: false
    -em: ContainerRDvVUOR\EntityManagerGhost614a58f {#196 …}
    -typeClass: Symfony\Component\VarDumper\Caster\CutStub {#21296 …}
  }
  "withDescription" => false
]
Component
Symfony\UX\TwigComponent\AnonymousComponent {#13539
  -props: [
    "hookableMetadata" => Sylius\TwigHooks\Hookable\Metadata\HookableMetadata {#13534
      +renderedBy: Sylius\TwigHooks\Hook\Metadata\HookMetadata {#13456 …}
      +context: Sylius\TwigHooks\Bag\DataBag {#13523 …}
      +configuration: Sylius\TwigHooks\Bag\ScalarDataBag {#13453 …}
      +prefixes: [
        "sylius_shop.product.index.content.body.main.card.prices"
        "sylius_shop.shared.product.card.prices"
      ]
    }
    "variant" => App\Entity\Product\ProductVariant {#13401 …}
    "applied_promotions" => Doctrine\ORM\PersistentCollection {#13409
      #collection: Doctrine\Common\Collections\ArrayCollection {#13418 …}
      #initialized: true
      -snapshot: []
      -owner: App\Entity\Channel\ChannelPricing {#13397 …}
      -association: Symfony\Component\VarDumper\Caster\CutStub {#21294 …}
      -backRefFieldName: null
      -isDirty: false
      -em: ContainerRDvVUOR\EntityManagerGhost614a58f {#196 …}
      -typeClass: Symfony\Component\VarDumper\Caster\CutStub {#21296 …}
    }
    "withDescription" => false
  ]
}
sylius_shop:product:card:price Sylius\Bundle\ShopBundle\Twig\Component\Product\PriceComponent 129.0 MiB 0.07 ms
Input props
[
  "hookableMetadata" => Sylius\TwigHooks\Hookable\Metadata\HookableMetadata {#13588
    +renderedBy: Sylius\TwigHooks\Hook\Metadata\HookMetadata {#13579 …}
    +context: Sylius\TwigHooks\Bag\DataBag {#13586 …}
    +configuration: Sylius\TwigHooks\Bag\ScalarDataBag {#13587 …}
    +prefixes: [
      "sylius_shop.product.index.content.body.main.card.prices"
      "sylius_shop.shared.product.card.prices"
    ]
  }
  "variant" => App\Entity\Product\ProductVariant {#13401 …}
  "template" => "@SyliusShop/product/common/price.html.twig"
]
Attributes
[
  "template" => "@SyliusShop/product/common/price.html.twig"
]
Component
Sylius\Bundle\ShopBundle\Twig\Component\Product\PriceComponent {#13591
  +variant: App\Entity\Product\ProductVariant {#13401 …}
  +price: "45\u{202F}000\u{A0}F\u{202F}CFA"
  +originalPrice: "45\u{202F}000\u{A0}F\u{202F}CFA"
  +hasDiscount: false
  #productVariantPricesCalculator: Sylius\Component\Core\Calculator\ProductVariantPriceCalculator {#4908 …}
  #moneyFormatter: Sylius\Bundle\MoneyBundle\Formatter\MoneyFormatter {#8205 …}
  #channelContext: Sylius\Component\Channel\Context\CachedPerRequestChannelContext {#4068 …}
  #localeContext: Sylius\Component\Locale\Context\CompositeLocaleContext {#1256 …}
  #currencyContext: Sylius\Component\Core\Currency\Context\ChannelAwareCurrencyContext {#10920 …}
  #currencyConverter: Sylius\Component\Currency\Converter\CurrencyConverter {#8202 …}
  +hookableMetadata: Sylius\TwigHooks\Hookable\Metadata\HookableMetadata {#13588
    +renderedBy: Sylius\TwigHooks\Hook\Metadata\HookMetadata {#13579 …}
    +context: Sylius\TwigHooks\Bag\DataBag {#13586 …}
    +configuration: Sylius\TwigHooks\Bag\ScalarDataBag {#13587 …}
    +prefixes: [
      "sylius_shop.product.index.content.body.main.card.prices"
      "sylius_shop.shared.product.card.prices"
    ]
  }
}
sylius_shop:product:card Sylius\Bundle\ShopBundle\Twig\Component\Product\CardComponent 129.0 MiB 7.24 ms
Input props
[
  "product" => App\Entity\Product\Product {#8039
    #id: 20
    #code: "Zamani_morocco"
    #attributes: Doctrine\ORM\PersistentCollection {#8046 …}
    #variants: Doctrine\ORM\PersistentCollection {#8048 …}
    #options: Doctrine\ORM\PersistentCollection {#8052 …}
    #associations: Doctrine\ORM\PersistentCollection {#8050 …}
    #createdAt: DateTime @1788354870 {#8037
      date: 2026-09-02 13:14:30.0 UTC (+00:00)
    }
    #updatedAt: DateTime @1788354870 {#8038
      date: 2026-09-02 13:14:30.0 UTC (+00:00)
    }
    #enabled: true
    #translations: Doctrine\ORM\PersistentCollection {#8055 …}
    #translationsCache: [
      "fr_FR" => App\Entity\Product\ProductTranslation {#8056
        #locale: "fr_FR"
        #translatable: App\Entity\Product\Product {#8039}
        #id: 20
        #name: "ZAMANI PREMIUM"
        #slug: "zamani-premium1"
        #description: "cette collection de Zamani est une specialité avec des broderie faites a la main par un artisant professionnel donnant a la tenu toute sa splendeur et sa grandeur."
        #metaKeywords: "broderie à man , zamani , premium , ultra"
        #metaDescription: "zamani couture, morocco, broderie speciale"
        #shortDescription: null
      }
    ]
    #currentLocale: "fr_FR"
    #currentTranslation: null
    #fallbackLocale: "fr_FR"
    #variantSelectionMethod: "choice"
    #productTaxons: Doctrine\ORM\PersistentCollection {#8058 …}
    #channels: Doctrine\ORM\PersistentCollection {#8044 …}
    #mainTaxon: App\Entity\Taxonomy\Taxon {#7314 …}
    #reviews: Doctrine\ORM\PersistentCollection {#8040 …}
    #averageRating: 0.0
    #images: Doctrine\ORM\PersistentCollection {#8042 …}
    #productType: null
  }
  "template" => "@SyliusShop/product/common/card.html.twig"
  "hookableMetadata" => Sylius\TwigHooks\Hookable\Metadata\HookableMetadata {#11835
    +renderedBy: Sylius\TwigHooks\Hook\Metadata\HookMetadata {#11876 …}
    +context: Sylius\TwigHooks\Bag\DataBag {#11882 …}
    +configuration: Sylius\TwigHooks\Bag\ScalarDataBag {#11869 …}
    +prefixes: [
      "sylius_shop.product.index.content.body.main"
    ]
  }
]
Attributes
[
  "template" => "@SyliusShop/product/common/card.html.twig"
]
Component
Sylius\Bundle\ShopBundle\Twig\Component\Product\CardComponent {#13463
  +product: App\Entity\Product\Product {#8039
    #id: 20
    #code: "Zamani_morocco"
    #attributes: Doctrine\ORM\PersistentCollection {#8046 …}
    #variants: Doctrine\ORM\PersistentCollection {#8048 …}
    #options: Doctrine\ORM\PersistentCollection {#8052 …}
    #associations: Doctrine\ORM\PersistentCollection {#8050 …}
    #createdAt: DateTime @1788354870 {#8037
      date: 2026-09-02 13:14:30.0 UTC (+00:00)
    }
    #updatedAt: DateTime @1788354870 {#8038
      date: 2026-09-02 13:14:30.0 UTC (+00:00)
    }
    #enabled: true
    #translations: Doctrine\ORM\PersistentCollection {#8055 …}
    #translationsCache: [
      "fr_FR" => App\Entity\Product\ProductTranslation {#8056
        #locale: "fr_FR"
        #translatable: App\Entity\Product\Product {#8039}
        #id: 20
        #name: "ZAMANI PREMIUM"
        #slug: "zamani-premium1"
        #description: "cette collection de Zamani est une specialité avec des broderie faites a la main par un artisant professionnel donnant a la tenu toute sa splendeur et sa grandeur."
        #metaKeywords: "broderie à man , zamani , premium , ultra"
        #metaDescription: "zamani couture, morocco, broderie speciale"
        #shortDescription: null
      }
    ]
    #currentLocale: "fr_FR"
    #currentTranslation: null
    #fallbackLocale: "fr_FR"
    #variantSelectionMethod: "choice"
    #productTaxons: Doctrine\ORM\PersistentCollection {#8058 …}
    #channels: Doctrine\ORM\PersistentCollection {#8044 …}
    #mainTaxon: App\Entity\Taxonomy\Taxon {#7314 …}
    #reviews: Doctrine\ORM\PersistentCollection {#8040 …}
    #averageRating: 0.0
    #images: Doctrine\ORM\PersistentCollection {#8042 …}
    #productType: null
  }
  +variant: App\Entity\Product\ProductVariant {#13654 …}
  +slug: null
  #productRepository: Sylius\Bundle\CoreBundle\Doctrine\ORM\ProductRepository {#6780 …}
  #productVariantResolver: Sylius\Component\Product\Resolver\CompositeProductVariantResolver {#4918 …}
  #channelContext: Sylius\Component\Channel\Context\CachedPerRequestChannelContext {#4068 …}
  #localeContext: Sylius\Component\Locale\Context\CompositeLocaleContext {#1256 …}
  #productVariantPricesCalculator: Sylius\Component\Core\Calculator\ProductVariantPriceCalculator {#4908 …}
  +hookableMetadata: Sylius\TwigHooks\Hookable\Metadata\HookableMetadata {#11835
    +renderedBy: Sylius\TwigHooks\Hook\Metadata\HookMetadata {#11876 …}
    +context: Sylius\TwigHooks\Bag\DataBag {#11882 …}
    +configuration: Sylius\TwigHooks\Bag\ScalarDataBag {#11869 …}
    +prefixes: [
      "sylius_shop.product.index.content.body.main"
    ]
  }
}
sylius_shop:main_image
[Anonymous]
129.0 MiB 0.36 ms
Input props
[
  "product" => App\Entity\Product\Product {#8039
    #id: 20
    #code: "Zamani_morocco"
    #attributes: Doctrine\ORM\PersistentCollection {#8046 …}
    #variants: Doctrine\ORM\PersistentCollection {#8048 …}
    #options: Doctrine\ORM\PersistentCollection {#8052 …}
    #associations: Doctrine\ORM\PersistentCollection {#8050 …}
    #createdAt: DateTime @1788354870 {#8037
      date: 2026-09-02 13:14:30.0 UTC (+00:00)
    }
    #updatedAt: DateTime @1788354870 {#8038
      date: 2026-09-02 13:14:30.0 UTC (+00:00)
    }
    #enabled: true
    #translations: Doctrine\ORM\PersistentCollection {#8055 …}
    #translationsCache: [
      "fr_FR" => App\Entity\Product\ProductTranslation {#8056
        #locale: "fr_FR"
        #translatable: App\Entity\Product\Product {#8039}
        #id: 20
        #name: "ZAMANI PREMIUM"
        #slug: "zamani-premium1"
        #description: "cette collection de Zamani est une specialité avec des broderie faites a la main par un artisant professionnel donnant a la tenu toute sa splendeur et sa grandeur."
        #metaKeywords: "broderie à man , zamani , premium , ultra"
        #metaDescription: "zamani couture, morocco, broderie speciale"
        #shortDescription: null
      }
    ]
    #currentLocale: "fr_FR"
    #currentTranslation: null
    #fallbackLocale: "fr_FR"
    #variantSelectionMethod: "choice"
    #productTaxons: Doctrine\ORM\PersistentCollection {#8058 …}
    #channels: Doctrine\ORM\PersistentCollection {#8044 …}
    #mainTaxon: App\Entity\Taxonomy\Taxon {#7314 …}
    #reviews: Doctrine\ORM\PersistentCollection {#8040 …}
    #averageRating: 0.0
    #images: Doctrine\ORM\PersistentCollection {#8042 …}
    #productType: null
  }
  "class" => "w-100 h-100 object-fit-cover"
]
Attributes
[
  "product" => "ZAMANI PREMIUM"
  "class" => "w-100 h-100 object-fit-cover"
]
Component
Symfony\UX\TwigComponent\AnonymousComponent {#13725
  -props: [
    "product" => App\Entity\Product\Product {#8039
      #id: 20
      #code: "Zamani_morocco"
      #attributes: Doctrine\ORM\PersistentCollection {#8046 …}
      #variants: Doctrine\ORM\PersistentCollection {#8048 …}
      #options: Doctrine\ORM\PersistentCollection {#8052 …}
      #associations: Doctrine\ORM\PersistentCollection {#8050 …}
      #createdAt: DateTime @1788354870 {#8037
        date: 2026-09-02 13:14:30.0 UTC (+00:00)
      }
      #updatedAt: DateTime @1788354870 {#8038
        date: 2026-09-02 13:14:30.0 UTC (+00:00)
      }
      #enabled: true
      #translations: Doctrine\ORM\PersistentCollection {#8055 …}
      #translationsCache: [
        "fr_FR" => App\Entity\Product\ProductTranslation {#8056
          #locale: "fr_FR"
          #translatable: App\Entity\Product\Product {#8039}
          #id: 20
          #name: "ZAMANI PREMIUM"
          #slug: "zamani-premium1"
          #description: "cette collection de Zamani est une specialité avec des broderie faites a la main par un artisant professionnel donnant a la tenu toute sa splendeur et sa grandeur."
          #metaKeywords: "broderie à man , zamani , premium , ultra"
          #metaDescription: "zamani couture, morocco, broderie speciale"
          #shortDescription: null
        }
      ]
      #currentLocale: "fr_FR"
      #currentTranslation: null
      #fallbackLocale: "fr_FR"
      #variantSelectionMethod: "choice"
      #productTaxons: Doctrine\ORM\PersistentCollection {#8058 …}
      #channels: Doctrine\ORM\PersistentCollection {#8044 …}
      #mainTaxon: App\Entity\Taxonomy\Taxon {#7314 …}
      #reviews: Doctrine\ORM\PersistentCollection {#8040 …}
      #averageRating: 0.0
      #images: Doctrine\ORM\PersistentCollection {#8042 …}
      #productType: null
    }
    "class" => "w-100 h-100 object-fit-cover"
  ]
}
sylius_shop:catalog_promotions
[Anonymous]
129.0 MiB 0.31 ms
Input props
[
  "hookableMetadata" => Sylius\TwigHooks\Hookable\Metadata\HookableMetadata {#13718
    +renderedBy: Sylius\TwigHooks\Hook\Metadata\HookMetadata {#13709 …}
    +context: Sylius\TwigHooks\Bag\DataBag {#13779 …}
    +configuration: Sylius\TwigHooks\Bag\ScalarDataBag {#13706 …}
    +prefixes: [
      "sylius_shop.product.index.content.body.main.card.prices"
      "sylius_shop.shared.product.card.prices"
    ]
  }
  "variant" => App\Entity\Product\ProductVariant {#13654 …}
  "applied_promotions" => Doctrine\ORM\PersistentCollection {#13662
    #collection: Doctrine\Common\Collections\ArrayCollection {#13671 …}
    #initialized: true
    -snapshot: []
    -owner: App\Entity\Channel\ChannelPricing {#13650 …}
    -association: Symfony\Component\VarDumper\Caster\CutStub {#21308 …}
    -backRefFieldName: null
    -isDirty: false
    -em: ContainerRDvVUOR\EntityManagerGhost614a58f {#196 …}
    -typeClass: Symfony\Component\VarDumper\Caster\CutStub {#21310 …}
  }
  "withDescription" => false
]
Attributes
[
  "hookableMetadata" => Sylius\TwigHooks\Hookable\Metadata\HookableMetadata {#13718
    +renderedBy: Sylius\TwigHooks\Hook\Metadata\HookMetadata {#13709 …}
    +context: Sylius\TwigHooks\Bag\DataBag {#13779 …}
    +configuration: Sylius\TwigHooks\Bag\ScalarDataBag {#13706 …}
    +prefixes: [
      "sylius_shop.product.index.content.body.main.card.prices"
      "sylius_shop.shared.product.card.prices"
    ]
  }
  "variant" => "ZAMANI PREMIUM(Taille: XL, Couleur: Noir, Coupe: Coupe droite)"
  "applied_promotions" => Doctrine\ORM\PersistentCollection {#13662
    #collection: Doctrine\Common\Collections\ArrayCollection {#13671 …}
    #initialized: true
    -snapshot: []
    -owner: App\Entity\Channel\ChannelPricing {#13650 …}
    -association: Symfony\Component\VarDumper\Caster\CutStub {#21308 …}
    -backRefFieldName: null
    -isDirty: false
    -em: ContainerRDvVUOR\EntityManagerGhost614a58f {#196 …}
    -typeClass: Symfony\Component\VarDumper\Caster\CutStub {#21310 …}
  }
  "withDescription" => false
]
Component
Symfony\UX\TwigComponent\AnonymousComponent {#13783
  -props: [
    "hookableMetadata" => Sylius\TwigHooks\Hookable\Metadata\HookableMetadata {#13718
      +renderedBy: Sylius\TwigHooks\Hook\Metadata\HookMetadata {#13709 …}
      +context: Sylius\TwigHooks\Bag\DataBag {#13779 …}
      +configuration: Sylius\TwigHooks\Bag\ScalarDataBag {#13706 …}
      +prefixes: [
        "sylius_shop.product.index.content.body.main.card.prices"
        "sylius_shop.shared.product.card.prices"
      ]
    }
    "variant" => App\Entity\Product\ProductVariant {#13654 …}
    "applied_promotions" => Doctrine\ORM\PersistentCollection {#13662
      #collection: Doctrine\Common\Collections\ArrayCollection {#13671 …}
      #initialized: true
      -snapshot: []
      -owner: App\Entity\Channel\ChannelPricing {#13650 …}
      -association: Symfony\Component\VarDumper\Caster\CutStub {#21308 …}
      -backRefFieldName: null
      -isDirty: false
      -em: ContainerRDvVUOR\EntityManagerGhost614a58f {#196 …}
      -typeClass: Symfony\Component\VarDumper\Caster\CutStub {#21310 …}
    }
    "withDescription" => false
  ]
}
sylius_shop:product:card:price Sylius\Bundle\ShopBundle\Twig\Component\Product\PriceComponent 129.0 MiB 0.10 ms
Input props
[
  "hookableMetadata" => Sylius\TwigHooks\Hookable\Metadata\HookableMetadata {#13863
    +renderedBy: Sylius\TwigHooks\Hook\Metadata\HookMetadata {#13854 …}
    +context: Sylius\TwigHooks\Bag\DataBag {#13861 …}
    +configuration: Sylius\TwigHooks\Bag\ScalarDataBag {#13862 …}
    +prefixes: [
      "sylius_shop.product.index.content.body.main.card.prices"
      "sylius_shop.shared.product.card.prices"
    ]
  }
  "variant" => App\Entity\Product\ProductVariant {#13654 …}
  "template" => "@SyliusShop/product/common/price.html.twig"
]
Attributes
[
  "template" => "@SyliusShop/product/common/price.html.twig"
]
Component
Sylius\Bundle\ShopBundle\Twig\Component\Product\PriceComponent {#13866
  +variant: App\Entity\Product\ProductVariant {#13654 …}
  +price: "60\u{202F}000\u{A0}F\u{202F}CFA"
  +originalPrice: "60\u{202F}000\u{A0}F\u{202F}CFA"
  +hasDiscount: false
  #productVariantPricesCalculator: Sylius\Component\Core\Calculator\ProductVariantPriceCalculator {#4908 …}
  #moneyFormatter: Sylius\Bundle\MoneyBundle\Formatter\MoneyFormatter {#8205 …}
  #channelContext: Sylius\Component\Channel\Context\CachedPerRequestChannelContext {#4068 …}
  #localeContext: Sylius\Component\Locale\Context\CompositeLocaleContext {#1256 …}
  #currencyContext: Sylius\Component\Core\Currency\Context\ChannelAwareCurrencyContext {#10920 …}
  #currencyConverter: Sylius\Component\Currency\Converter\CurrencyConverter {#8202 …}
  +hookableMetadata: Sylius\TwigHooks\Hookable\Metadata\HookableMetadata {#13863
    +renderedBy: Sylius\TwigHooks\Hook\Metadata\HookMetadata {#13854 …}
    +context: Sylius\TwigHooks\Bag\DataBag {#13861 …}
    +configuration: Sylius\TwigHooks\Bag\ScalarDataBag {#13862 …}
    +prefixes: [
      "sylius_shop.product.index.content.body.main.card.prices"
      "sylius_shop.shared.product.card.prices"
    ]
  }
}
sylius_shop:product:card Sylius\Bundle\ShopBundle\Twig\Component\Product\CardComponent 129.0 MiB 2.47 ms
Input props
[
  "product" => App\Entity\Product\Product {#8062
    #id: 15
    #code: "zamani_blanc"
    #attributes: Doctrine\ORM\PersistentCollection {#8069 …}
    #variants: Doctrine\ORM\PersistentCollection {#8071 …}
    #options: Doctrine\ORM\PersistentCollection {#8075 …}
    #associations: Doctrine\ORM\PersistentCollection {#8073 …}
    #createdAt: DateTime @1788281439 {#8060
      date: 2026-09-01 16:50:39.0 UTC (+00:00)
    }
    #updatedAt: DateTime @1788281440 {#8061
      date: 2026-09-01 16:50:40.0 UTC (+00:00)
    }
    #enabled: true
    #translations: Doctrine\ORM\PersistentCollection {#8078 …}
    #translationsCache: [
      "fr_FR" => App\Entity\Product\ProductTranslation {#8079
        #locale: "fr_FR"
        #translatable: App\Entity\Product\Product {#8062}
        #id: 15
        #name: "ZAMANI BLANC"
        #slug: "zamani-blanc"
        #description: """
          Confectionné dans un tissu de qualité supérieure, agréable à porter et résistant, il allie confort et prestance. Chaque détail — du col aux finitions des manches — est pensé pour un tombé impeccable.\r\n
          Disponible en plusieurs coloris et tailles. Pour un ajustement parfait à vos mesures, découvrez également notre service sur mesure.
          """
        #metaKeywords: "kaftan homme, kaftan moderne, urban oga, kaftan élégant, tenue traditionnelle, mode africaine"
        #metaDescription: "Découvrez ZAMANI, la collection de tuniques raffinées de Kaftan Plug, alliant modernité, élégance et broderies soignées."
        #shortDescription: "Découvrez ZAMANI, la collection de tuniques raffinées de Kaftan Plug, alliant modernité, élégance et broderies soignées."
      }
    ]
    #currentLocale: "fr_FR"
    #currentTranslation: null
    #fallbackLocale: "fr_FR"
    #variantSelectionMethod: "choice"
    #productTaxons: Doctrine\ORM\PersistentCollection {#8081 …}
    #channels: Doctrine\ORM\PersistentCollection {#8067 …}
    #mainTaxon: App\Entity\Taxonomy\Taxon {#7314 …}
    #reviews: Doctrine\ORM\PersistentCollection {#8063 …}
    #averageRating: 0.0
    #images: Doctrine\ORM\PersistentCollection {#8065 …}
    #productType: null
  }
  "template" => "@SyliusShop/product/common/card.html.twig"
  "hookableMetadata" => Sylius\TwigHooks\Hookable\Metadata\HookableMetadata {#11835
    +renderedBy: Sylius\TwigHooks\Hook\Metadata\HookMetadata {#11876 …}
    +context: Sylius\TwigHooks\Bag\DataBag {#11882 …}
    +configuration: Sylius\TwigHooks\Bag\ScalarDataBag {#11869 …}
    +prefixes: [
      "sylius_shop.product.index.content.body.main"
    ]
  }
]
Attributes
[
  "template" => "@SyliusShop/product/common/card.html.twig"
]
Component
Sylius\Bundle\ShopBundle\Twig\Component\Product\CardComponent {#13716
  +product: App\Entity\Product\Product {#8062
    #id: 15
    #code: "zamani_blanc"
    #attributes: Doctrine\ORM\PersistentCollection {#8069 …}
    #variants: Doctrine\ORM\PersistentCollection {#8071 …}
    #options: Doctrine\ORM\PersistentCollection {#8075 …}
    #associations: Doctrine\ORM\PersistentCollection {#8073 …}
    #createdAt: DateTime @1788281439 {#8060
      date: 2026-09-01 16:50:39.0 UTC (+00:00)
    }
    #updatedAt: DateTime @1788281440 {#8061
      date: 2026-09-01 16:50:40.0 UTC (+00:00)
    }
    #enabled: true
    #translations: Doctrine\ORM\PersistentCollection {#8078 …}
    #translationsCache: [
      "fr_FR" => App\Entity\Product\ProductTranslation {#8079
        #locale: "fr_FR"
        #translatable: App\Entity\Product\Product {#8062}
        #id: 15
        #name: "ZAMANI BLANC"
        #slug: "zamani-blanc"
        #description: """
          Confectionné dans un tissu de qualité supérieure, agréable à porter et résistant, il allie confort et prestance. Chaque détail — du col aux finitions des manches — est pensé pour un tombé impeccable.\r\n
          Disponible en plusieurs coloris et tailles. Pour un ajustement parfait à vos mesures, découvrez également notre service sur mesure.
          """
        #metaKeywords: "kaftan homme, kaftan moderne, urban oga, kaftan élégant, tenue traditionnelle, mode africaine"
        #metaDescription: "Découvrez ZAMANI, la collection de tuniques raffinées de Kaftan Plug, alliant modernité, élégance et broderies soignées."
        #shortDescription: "Découvrez ZAMANI, la collection de tuniques raffinées de Kaftan Plug, alliant modernité, élégance et broderies soignées."
      }
    ]
    #currentLocale: "fr_FR"
    #currentTranslation: null
    #fallbackLocale: "fr_FR"
    #variantSelectionMethod: "choice"
    #productTaxons: Doctrine\ORM\PersistentCollection {#8081 …}
    #channels: Doctrine\ORM\PersistentCollection {#8067 …}
    #mainTaxon: App\Entity\Taxonomy\Taxon {#7314 …}
    #reviews: Doctrine\ORM\PersistentCollection {#8063 …}
    #averageRating: 0.0
    #images: Doctrine\ORM\PersistentCollection {#8065 …}
    #productType: null
  }
  +variant: App\Entity\Product\ProductVariant {#7644 …}
  +slug: null
  #productRepository: Sylius\Bundle\CoreBundle\Doctrine\ORM\ProductRepository {#6780 …}
  #productVariantResolver: Sylius\Component\Product\Resolver\CompositeProductVariantResolver {#4918 …}
  #channelContext: Sylius\Component\Channel\Context\CachedPerRequestChannelContext {#4068 …}
  #localeContext: Sylius\Component\Locale\Context\CompositeLocaleContext {#1256 …}
  #productVariantPricesCalculator: Sylius\Component\Core\Calculator\ProductVariantPriceCalculator {#4908 …}
  +hookableMetadata: Sylius\TwigHooks\Hookable\Metadata\HookableMetadata {#11835
    +renderedBy: Sylius\TwigHooks\Hook\Metadata\HookMetadata {#11876 …}
    +context: Sylius\TwigHooks\Bag\DataBag {#11882 …}
    +configuration: Sylius\TwigHooks\Bag\ScalarDataBag {#11869 …}
    +prefixes: [
      "sylius_shop.product.index.content.body.main"
    ]
  }
}
sylius_shop:main_image
[Anonymous]
129.0 MiB 0.42 ms
Input props
[
  "product" => App\Entity\Product\Product {#8062
    #id: 15
    #code: "zamani_blanc"
    #attributes: Doctrine\ORM\PersistentCollection {#8069 …}
    #variants: Doctrine\ORM\PersistentCollection {#8071 …}
    #options: Doctrine\ORM\PersistentCollection {#8075 …}
    #associations: Doctrine\ORM\PersistentCollection {#8073 …}
    #createdAt: DateTime @1788281439 {#8060
      date: 2026-09-01 16:50:39.0 UTC (+00:00)
    }
    #updatedAt: DateTime @1788281440 {#8061
      date: 2026-09-01 16:50:40.0 UTC (+00:00)
    }
    #enabled: true
    #translations: Doctrine\ORM\PersistentCollection {#8078 …}
    #translationsCache: [
      "fr_FR" => App\Entity\Product\ProductTranslation {#8079
        #locale: "fr_FR"
        #translatable: App\Entity\Product\Product {#8062}
        #id: 15
        #name: "ZAMANI BLANC"
        #slug: "zamani-blanc"
        #description: """
          Confectionné dans un tissu de qualité supérieure, agréable à porter et résistant, il allie confort et prestance. Chaque détail — du col aux finitions des manches — est pensé pour un tombé impeccable.\r\n
          Disponible en plusieurs coloris et tailles. Pour un ajustement parfait à vos mesures, découvrez également notre service sur mesure.
          """
        #metaKeywords: "kaftan homme, kaftan moderne, urban oga, kaftan élégant, tenue traditionnelle, mode africaine"
        #metaDescription: "Découvrez ZAMANI, la collection de tuniques raffinées de Kaftan Plug, alliant modernité, élégance et broderies soignées."
        #shortDescription: "Découvrez ZAMANI, la collection de tuniques raffinées de Kaftan Plug, alliant modernité, élégance et broderies soignées."
      }
    ]
    #currentLocale: "fr_FR"
    #currentTranslation: null
    #fallbackLocale: "fr_FR"
    #variantSelectionMethod: "choice"
    #productTaxons: Doctrine\ORM\PersistentCollection {#8081 …}
    #channels: Doctrine\ORM\PersistentCollection {#8067 …}
    #mainTaxon: App\Entity\Taxonomy\Taxon {#7314 …}
    #reviews: Doctrine\ORM\PersistentCollection {#8063 …}
    #averageRating: 0.0
    #images: Doctrine\ORM\PersistentCollection {#8065 …}
    #productType: null
  }
  "class" => "w-100 h-100 object-fit-cover"
]
Attributes
[
  "product" => "ZAMANI BLANC"
  "class" => "w-100 h-100 object-fit-cover"
]
Component
Symfony\UX\TwigComponent\AnonymousComponent {#8386
  -props: [
    "product" => App\Entity\Product\Product {#8062
      #id: 15
      #code: "zamani_blanc"
      #attributes: Doctrine\ORM\PersistentCollection {#8069 …}
      #variants: Doctrine\ORM\PersistentCollection {#8071 …}
      #options: Doctrine\ORM\PersistentCollection {#8075 …}
      #associations: Doctrine\ORM\PersistentCollection {#8073 …}
      #createdAt: DateTime @1788281439 {#8060
        date: 2026-09-01 16:50:39.0 UTC (+00:00)
      }
      #updatedAt: DateTime @1788281440 {#8061
        date: 2026-09-01 16:50:40.0 UTC (+00:00)
      }
      #enabled: true
      #translations: Doctrine\ORM\PersistentCollection {#8078 …}
      #translationsCache: [
        "fr_FR" => App\Entity\Product\ProductTranslation {#8079
          #locale: "fr_FR"
          #translatable: App\Entity\Product\Product {#8062}
          #id: 15
          #name: "ZAMANI BLANC"
          #slug: "zamani-blanc"
          #description: """
            Confectionné dans un tissu de qualité supérieure, agréable à porter et résistant, il allie confort et prestance. Chaque détail — du col aux finitions des manches — est pensé pour un tombé impeccable.\r\n
            Disponible en plusieurs coloris et tailles. Pour un ajustement parfait à vos mesures, découvrez également notre service sur mesure.
            """
          #metaKeywords: "kaftan homme, kaftan moderne, urban oga, kaftan élégant, tenue traditionnelle, mode africaine"
          #metaDescription: "Découvrez ZAMANI, la collection de tuniques raffinées de Kaftan Plug, alliant modernité, élégance et broderies soignées."
          #shortDescription: "Découvrez ZAMANI, la collection de tuniques raffinées de Kaftan Plug, alliant modernité, élégance et broderies soignées."
        }
      ]
      #currentLocale: "fr_FR"
      #currentTranslation: null
      #fallbackLocale: "fr_FR"
      #variantSelectionMethod: "choice"
      #productTaxons: Doctrine\ORM\PersistentCollection {#8081 …}
      #channels: Doctrine\ORM\PersistentCollection {#8067 …}
      #mainTaxon: App\Entity\Taxonomy\Taxon {#7314 …}
      #reviews: Doctrine\ORM\PersistentCollection {#8063 …}
      #averageRating: 0.0
      #images: Doctrine\ORM\PersistentCollection {#8065 …}
      #productType: null
    }
    "class" => "w-100 h-100 object-fit-cover"
  ]
}
sylius_shop:catalog_promotions
[Anonymous]
129.0 MiB 0.33 ms
Input props
[
  "hookableMetadata" => Sylius\TwigHooks\Hookable\Metadata\HookableMetadata {#12857
    +renderedBy: Sylius\TwigHooks\Hook\Metadata\HookMetadata {#8356 …}
    +context: Sylius\TwigHooks\Bag\DataBag {#12608 …}
    +configuration: Sylius\TwigHooks\Bag\ScalarDataBag {#8362 …}
    +prefixes: [
      "sylius_shop.product.index.content.body.main.card.prices"
      "sylius_shop.shared.product.card.prices"
    ]
  }
  "variant" => App\Entity\Product\ProductVariant {#7644 …}
  "applied_promotions" => Doctrine\ORM\PersistentCollection {#7918
    #collection: Doctrine\Common\Collections\ArrayCollection {#7936 …}
    #initialized: true
    -snapshot: []
    -owner: App\Entity\Channel\ChannelPricing {#7323 …}
    -association: Symfony\Component\VarDumper\Caster\CutStub {#21322 …}
    -backRefFieldName: null
    -isDirty: false
    -em: ContainerRDvVUOR\EntityManagerGhost614a58f {#196 …}
    -typeClass: Symfony\Component\VarDumper\Caster\CutStub {#21324 …}
  }
  "withDescription" => false
]
Attributes
[
  "hookableMetadata" => Sylius\TwigHooks\Hookable\Metadata\HookableMetadata {#12857
    +renderedBy: Sylius\TwigHooks\Hook\Metadata\HookMetadata {#8356 …}
    +context: Sylius\TwigHooks\Bag\DataBag {#12608 …}
    +configuration: Sylius\TwigHooks\Bag\ScalarDataBag {#8362 …}
    +prefixes: [
      "sylius_shop.product.index.content.body.main.card.prices"
      "sylius_shop.shared.product.card.prices"
    ]
  }
  "variant" => "ZAMANI BLANC(Taille: XL)"
  "applied_promotions" => Doctrine\ORM\PersistentCollection {#7918
    #collection: Doctrine\Common\Collections\ArrayCollection {#7936 …}
    #initialized: true
    -snapshot: []
    -owner: App\Entity\Channel\ChannelPricing {#7323 …}
    -association: Symfony\Component\VarDumper\Caster\CutStub {#21322 …}
    -backRefFieldName: null
    -isDirty: false
    -em: ContainerRDvVUOR\EntityManagerGhost614a58f {#196 …}
    -typeClass: Symfony\Component\VarDumper\Caster\CutStub {#21324 …}
  }
  "withDescription" => false
]
Component
Symfony\UX\TwigComponent\AnonymousComponent {#12845
  -props: [
    "hookableMetadata" => Sylius\TwigHooks\Hookable\Metadata\HookableMetadata {#12857
      +renderedBy: Sylius\TwigHooks\Hook\Metadata\HookMetadata {#8356 …}
      +context: Sylius\TwigHooks\Bag\DataBag {#12608 …}
      +configuration: Sylius\TwigHooks\Bag\ScalarDataBag {#8362 …}
      +prefixes: [
        "sylius_shop.product.index.content.body.main.card.prices"
        "sylius_shop.shared.product.card.prices"
      ]
    }
    "variant" => App\Entity\Product\ProductVariant {#7644 …}
    "applied_promotions" => Doctrine\ORM\PersistentCollection {#7918
      #collection: Doctrine\Common\Collections\ArrayCollection {#7936 …}
      #initialized: true
      -snapshot: []
      -owner: App\Entity\Channel\ChannelPricing {#7323 …}
      -association: Symfony\Component\VarDumper\Caster\CutStub {#21322 …}
      -backRefFieldName: null
      -isDirty: false
      -em: ContainerRDvVUOR\EntityManagerGhost614a58f {#196 …}
      -typeClass: Symfony\Component\VarDumper\Caster\CutStub {#21324 …}
    }
    "withDescription" => false
  ]
}
sylius_shop:product:card:price Sylius\Bundle\ShopBundle\Twig\Component\Product\PriceComponent 129.0 MiB 0.06 ms
Input props
[
  "hookableMetadata" => Sylius\TwigHooks\Hookable\Metadata\HookableMetadata {#13875
    +renderedBy: Sylius\TwigHooks\Hook\Metadata\HookMetadata {#13457 …}
    +context: Sylius\TwigHooks\Bag\DataBag {#13873 …}
    +configuration: Sylius\TwigHooks\Bag\ScalarDataBag {#13874 …}
    +prefixes: [
      "sylius_shop.product.index.content.body.main.card.prices"
      "sylius_shop.shared.product.card.prices"
    ]
  }
  "variant" => App\Entity\Product\ProductVariant {#7644 …}
  "template" => "@SyliusShop/product/common/price.html.twig"
]
Attributes
[
  "template" => "@SyliusShop/product/common/price.html.twig"
]
Component
Sylius\Bundle\ShopBundle\Twig\Component\Product\PriceComponent {#13878
  +variant: App\Entity\Product\ProductVariant {#7644 …}
  +price: "35\u{202F}000\u{A0}F\u{202F}CFA"
  +originalPrice: "35\u{202F}000\u{A0}F\u{202F}CFA"
  +hasDiscount: false
  #productVariantPricesCalculator: Sylius\Component\Core\Calculator\ProductVariantPriceCalculator {#4908 …}
  #moneyFormatter: Sylius\Bundle\MoneyBundle\Formatter\MoneyFormatter {#8205 …}
  #channelContext: Sylius\Component\Channel\Context\CachedPerRequestChannelContext {#4068 …}
  #localeContext: Sylius\Component\Locale\Context\CompositeLocaleContext {#1256 …}
  #currencyContext: Sylius\Component\Core\Currency\Context\ChannelAwareCurrencyContext {#10920 …}
  #currencyConverter: Sylius\Component\Currency\Converter\CurrencyConverter {#8202 …}
  +hookableMetadata: Sylius\TwigHooks\Hookable\Metadata\HookableMetadata {#13875
    +renderedBy: Sylius\TwigHooks\Hook\Metadata\HookMetadata {#13457 …}
    +context: Sylius\TwigHooks\Bag\DataBag {#13873 …}
    +configuration: Sylius\TwigHooks\Bag\ScalarDataBag {#13874 …}
    +prefixes: [
      "sylius_shop.product.index.content.body.main.card.prices"
      "sylius_shop.shared.product.card.prices"
    ]
  }
}
sylius_shop:cart:widget:offcanvas Sylius\Bundle\ShopBundle\Twig\Component\Cart\WidgetComponent 131.0 MiB 4.20 ms
Input props
[
  "hookableMetadata" => Sylius\TwigHooks\Hookable\Metadata\HookableMetadata {#10993
    +renderedBy: Sylius\TwigHooks\Hook\Metadata\HookMetadata {#10983 …}
    +context: Sylius\TwigHooks\Bag\DataBag {#11021 …}
    +configuration: Sylius\TwigHooks\Bag\ScalarDataBag {#11044 …}
    +prefixes: [
      "sylius_shop.base.offcanvas"
    ]
  }
  "template" => "@SyliusShop/shared/layout/base/offcanvas/cart.html.twig"
]
Attributes
[]
Component
Sylius\Bundle\ShopBundle\Twig\Component\Cart\WidgetComponent {#11896
  +cart: App\Entity\Order\Order {#11076 …}
  #cartContext: Sylius\Component\Order\Context\CompositeCartContext {#1280 …}
  +hookableMetadata: Sylius\TwigHooks\Hookable\Metadata\HookableMetadata {#10993
    +renderedBy: Sylius\TwigHooks\Hook\Metadata\HookMetadata {#10983 …}
    +context: Sylius\TwigHooks\Bag\DataBag {#11021 …}
    +configuration: Sylius\TwigHooks\Bag\ScalarDataBag {#11044 …}
    +prefixes: [
      "sylius_shop.base.offcanvas"
    ]
  }
  +template: "@SyliusShop/shared/layout/base/offcanvas/cart.html.twig"
  #repository: Sylius\Bundle\CoreBundle\Doctrine\ORM\OrderRepository {#4901 …}
}