GET https://kaftanplug.com/fr_FR/cart/

Components

7 Twig Components
19 Render Count
65 ms Render Time
127.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 23.62ms
sylius_shop:main_image
[Anonymous]
@SyliusShop/shared/components/main_image.html.twig
4 2.43ms
sylius_shop:catalog_promotions
[Anonymous]
@SyliusShop/shared/components/catalog_promotions.html.twig
4 1.59ms
sylius_shop:product:card:price
"Sylius\Bundle\ShopBundle\Twig\Component\Product\PriceComponent"
@SyliusUi/components/default.html.twig
4 0.52ms
sylius_shop:cart:form
"Sylius\Bundle\ShopBundle\Twig\Component\Cart\FormComponent"
@SyliusUi/components/default.html.twig
1 10.67ms
sylius_shop:product:list
"Sylius\Bundle\ShopBundle\Twig\Component\Product\ListComponent"
@SyliusUi/components/default.html.twig
1 52.58ms
sylius_shop:cart:widget:offcanvas
"Sylius\Bundle\ShopBundle\Twig\Component\Cart\WidgetComponent"
@SyliusUi/components/default.html.twig
1 1.94ms

Render calls

sylius_shop:cart:form Sylius\Bundle\ShopBundle\Twig\Component\Cart\FormComponent 118.5 MiB 10.67 ms
Input props
[
  "hookableMetadata" => Sylius\TwigHooks\Hookable\Metadata\HookableMetadata {#10403
    +renderedBy: Sylius\TwigHooks\Hook\Metadata\HookMetadata {#10399 …}
    +context: Sylius\TwigHooks\Bag\DataBag {#10400 …}
    +configuration: Sylius\TwigHooks\Bag\ScalarDataBag {#10402 …}
    +prefixes: [
      "sylius_shop.cart.index.content"
      "sylius_shop.base.index.content"
    ]
  }
  "resource" => App\Entity\Order\Order {#7085
    #id: null
    #checkoutCompletedAt: null
    #number: null
    #notes: null
    #items: Doctrine\Common\Collections\ArrayCollection {#7094 …}
    #itemsTotal: 0
    #adjustments: Doctrine\Common\Collections\ArrayCollection {#7093 …}
    #adjustmentsTotal: 0
    #total: 0
    #state: "cart"
    #createdAt: DateTime @1789302800 {#7092
      date: 2026-09-13 12:33:20.866234 UTC (+00:00)
    }
    #updatedAt: null
    #customer: null
    #channel: App\Entity\Channel\Channel {#6447 …}
    #shippingAddress: null
    #billingAddress: null
    #payments: Doctrine\Common\Collections\ArrayCollection {#7089 …}
    #shipments: Doctrine\Common\Collections\ArrayCollection {#7088 …}
    #currencyCode: "XOF"
    #localeCode: "fr_FR"
    #promotionCoupon: null
    #checkoutState: "cart"
    #paymentState: "cart"
    #shippingState: "cart"
    #promotions: Doctrine\Common\Collections\ArrayCollection {#7095 …}
    #tokenValue: null
    #customerIp: null
    #createdByGuest: true
    #molliePaymentId: null
    #qrCode: null
    #recurringSequenceIndex: null
    #abandonedEmail: false
  }
  "template" => "@SyliusShop/cart/index/content/form.html.twig"
]
Attributes
[]
Component
Sylius\Bundle\ShopBundle\Twig\Component\Cart\FormComponent {#10414
  +shouldSaveCart: true
  #manager: ContainerRDvVUOR\EntityManagerGhost614a58f {#196 …}
  #eventDispatcher: Symfony\Component\HttpKernel\Debug\TraceableEventDispatcher {#1051 …}
  -liveResponder: Symfony\UX\LiveComponent\LiveResponder {#10421 …}
  +resource: App\Entity\Order\Order {#7085
    #id: null
    #checkoutCompletedAt: null
    #number: null
    #notes: null
    #items: Doctrine\Common\Collections\ArrayCollection {#7094 …}
    #itemsTotal: 0
    #adjustments: Doctrine\Common\Collections\ArrayCollection {#7093 …}
    #adjustmentsTotal: 0
    #total: 0
    #state: "cart"
    #createdAt: DateTime @1789302800 {#7092
      date: 2026-09-13 12:33:20.866234 UTC (+00:00)
    }
    #updatedAt: null
    #customer: null
    #channel: App\Entity\Channel\Channel {#6447 …}
    #shippingAddress: null
    #billingAddress: null
    #payments: Doctrine\Common\Collections\ArrayCollection {#7089 …}
    #shipments: Doctrine\Common\Collections\ArrayCollection {#7088 …}
    #currencyCode: "XOF"
    #localeCode: "fr_FR"
    #promotionCoupon: null
    #checkoutState: "cart"
    #paymentState: "cart"
    #shippingState: "cart"
    #promotions: Doctrine\Common\Collections\ArrayCollection {#7095 …}
    #tokenValue: null
    #customerIp: null
    #createdByGuest: true
    #molliePaymentId: null
    #qrCode: null
    #recurringSequenceIndex: null
    #abandonedEmail: false
  }
  #repository: Sylius\Bundle\CoreBundle\Doctrine\ORM\OrderRepository {#4901 …}
  #formFactory: Symfony\Component\Form\FormFactory {#6923 …}
  #resourceClass: "App\Entity\Order\Order"
  #formClass: "Sylius\Bundle\ShopBundle\Form\Type\CartType"
  -formView: Symfony\Component\Form\FormView {#10466 …}
  -form: Symfony\Component\Form\Form {#10519 …}
  +formName: "sylius_shop_cart"
  +formValues: [
    "items" => []
    "promotionCoupon" => ""
    "_token" => "a.wNzLPbPGZ4bYGtBOYUXoXHXEKINevriDRd2kSH_pr_A.l5b4EIWpL-2ecJ43CD-vBCaUX85ti__3HYnFOBWmyqinhIRc2IdSypMiiQ"
  ]
  +isValidated: false
  +validatedFields: []
  -shouldAutoSubmitForm: true
  +hookableMetadata: Sylius\TwigHooks\Hookable\Metadata\HookableMetadata {#10403
    +renderedBy: Sylius\TwigHooks\Hook\Metadata\HookMetadata {#10399 …}
    +context: Sylius\TwigHooks\Bag\DataBag {#10400 …}
    +configuration: Sylius\TwigHooks\Bag\ScalarDataBag {#10402 …}
    +prefixes: [
      "sylius_shop.cart.index.content"
      "sylius_shop.base.index.content"
    ]
  }
  +template: "@SyliusShop/cart/index/content/form.html.twig"
}
sylius_shop:product:list Sylius\Bundle\ShopBundle\Twig\Component\Product\ListComponent 127.0 MiB 52.58 ms
Input props
[
  "hookableMetadata" => Sylius\TwigHooks\Hookable\Metadata\HookableMetadata {#11040
    +renderedBy: Sylius\TwigHooks\Hook\Metadata\HookMetadata {#10626 …}
    +context: Sylius\TwigHooks\Bag\DataBag {#10627 …}
    +configuration: Sylius\TwigHooks\Bag\ScalarDataBag {#11039 …}
    +prefixes: [
      "sylius_shop.cart.index.content"
      "sylius_shop.base.index.content"
    ]
  }
  "limit" => 4
  "template" => "@SyliusShop/product/common/list.html.twig"
]
Attributes
[
  "template" => "@SyliusShop/product/common/list.html.twig"
]
Component
Sylius\Bundle\ShopBundle\Twig\Component\Product\ListComponent {#11049
  +limit: 4
  #productRepository: Sylius\Bundle\CoreBundle\Doctrine\ORM\ProductRepository {#7160 …}
  #localeContext: Sylius\Component\Locale\Context\CompositeLocaleContext {#1256 …}
  #channelContext: Sylius\Component\Channel\Context\CachedPerRequestChannelContext {#4068 …}
  +hookableMetadata: Sylius\TwigHooks\Hookable\Metadata\HookableMetadata {#11040
    +renderedBy: Sylius\TwigHooks\Hook\Metadata\HookMetadata {#10626 …}
    +context: Sylius\TwigHooks\Bag\DataBag {#10627 …}
    +configuration: Sylius\TwigHooks\Bag\ScalarDataBag {#11039 …}
    +prefixes: [
      "sylius_shop.cart.index.content"
      "sylius_shop.base.index.content"
    ]
  }
}
sylius_shop:product:card Sylius\Bundle\ShopBundle\Twig\Component\Product\CardComponent 125.0 MiB 16.03 ms
Input props
[
  "product" => App\Entity\Product\Product {#11133
    #id: 26
    #code: "Sarki_gris"
    #attributes: Doctrine\ORM\PersistentCollection {#11674 …}
    #variants: Doctrine\ORM\PersistentCollection {#11887 …}
    #options: Doctrine\ORM\PersistentCollection {#12015 …}
    #associations: Doctrine\ORM\PersistentCollection {#11955 …}
    #createdAt: DateTime @1788453371 {#11103
      date: 2026-09-03 16:36:11.0 UTC (+00:00)
    }
    #updatedAt: DateTime @1788453372 {#11205
      date: 2026-09-03 16:36:12.0 UTC (+00:00)
    }
    #enabled: true
    #translations: Doctrine\ORM\PersistentCollection {#12014 …}
    #translationsCache: [
      "fr_FR" => App\Entity\Product\ProductTranslation {#12017
        #locale: "fr_FR"
        #translatable: App\Entity\Product\Product {#11133}
        #id: 26
        #name: "Sarki Gris"
        #slug: "sarki_gris"
        #description: "rgzepuihbzcoutjjmdlfkgnjaoeizuritpf,vnmmzpn"
        #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: "aeiijinvqaaiajnampoknchfccgah"
      }
    ]
    #currentLocale: "fr_FR"
    #currentTranslation: null
    #fallbackLocale: "fr_FR"
    #variantSelectionMethod: "choice"
    #productTaxons: Doctrine\ORM\PersistentCollection {#11340 …}
    #channels: Doctrine\ORM\PersistentCollection {#11533 …}
    #mainTaxon: App\Entity\Taxonomy\Taxon {#10305 …}
    #reviews: Doctrine\ORM\PersistentCollection {#11465 …}
    #averageRating: 0.0
    #images: Doctrine\ORM\PersistentCollection {#11536 …}
    #productType: null
  }
  "template" => "@SyliusShop/product/common/card.html.twig"
  "hookableMetadata" => Sylius\TwigHooks\Hookable\Metadata\HookableMetadata {#11040
    +renderedBy: Sylius\TwigHooks\Hook\Metadata\HookMetadata {#10626 …}
    +context: Sylius\TwigHooks\Bag\DataBag {#10627 …}
    +configuration: Sylius\TwigHooks\Bag\ScalarDataBag {#11039 …}
    +prefixes: [
      "sylius_shop.cart.index.content"
      "sylius_shop.base.index.content"
    ]
  }
]
Attributes
[
  "template" => "@SyliusShop/product/common/card.html.twig"
]
Component
Sylius\Bundle\ShopBundle\Twig\Component\Product\CardComponent {#12106
  +product: App\Entity\Product\Product {#11133
    #id: 26
    #code: "Sarki_gris"
    #attributes: Doctrine\ORM\PersistentCollection {#11674 …}
    #variants: Doctrine\ORM\PersistentCollection {#11887 …}
    #options: Doctrine\ORM\PersistentCollection {#12015 …}
    #associations: Doctrine\ORM\PersistentCollection {#11955 …}
    #createdAt: DateTime @1788453371 {#11103
      date: 2026-09-03 16:36:11.0 UTC (+00:00)
    }
    #updatedAt: DateTime @1788453372 {#11205
      date: 2026-09-03 16:36:12.0 UTC (+00:00)
    }
    #enabled: true
    #translations: Doctrine\ORM\PersistentCollection {#12014 …}
    #translationsCache: [
      "fr_FR" => App\Entity\Product\ProductTranslation {#12017
        #locale: "fr_FR"
        #translatable: App\Entity\Product\Product {#11133}
        #id: 26
        #name: "Sarki Gris"
        #slug: "sarki_gris"
        #description: "rgzepuihbzcoutjjmdlfkgnjaoeizuritpf,vnmmzpn"
        #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: "aeiijinvqaaiajnampoknchfccgah"
      }
    ]
    #currentLocale: "fr_FR"
    #currentTranslation: null
    #fallbackLocale: "fr_FR"
    #variantSelectionMethod: "choice"
    #productTaxons: Doctrine\ORM\PersistentCollection {#11340 …}
    #channels: Doctrine\ORM\PersistentCollection {#11533 …}
    #mainTaxon: App\Entity\Taxonomy\Taxon {#10305 …}
    #reviews: Doctrine\ORM\PersistentCollection {#11465 …}
    #averageRating: 0.0
    #images: Doctrine\ORM\PersistentCollection {#11536 …}
    #productType: null
  }
  +variant: App\Entity\Product\ProductVariant {#12272 …}
  +slug: null
  #productRepository: Sylius\Bundle\CoreBundle\Doctrine\ORM\ProductRepository {#7160 …}
  #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 {#11040
    +renderedBy: Sylius\TwigHooks\Hook\Metadata\HookMetadata {#10626 …}
    +context: Sylius\TwigHooks\Bag\DataBag {#10627 …}
    +configuration: Sylius\TwigHooks\Bag\ScalarDataBag {#11039 …}
    +prefixes: [
      "sylius_shop.cart.index.content"
      "sylius_shop.base.index.content"
    ]
  }
}
sylius_shop:main_image
[Anonymous]
125.0 MiB 1.27 ms
Input props
[
  "product" => App\Entity\Product\Product {#11133
    #id: 26
    #code: "Sarki_gris"
    #attributes: Doctrine\ORM\PersistentCollection {#11674 …}
    #variants: Doctrine\ORM\PersistentCollection {#11887 …}
    #options: Doctrine\ORM\PersistentCollection {#12015 …}
    #associations: Doctrine\ORM\PersistentCollection {#11955 …}
    #createdAt: DateTime @1788453371 {#11103
      date: 2026-09-03 16:36:11.0 UTC (+00:00)
    }
    #updatedAt: DateTime @1788453372 {#11205
      date: 2026-09-03 16:36:12.0 UTC (+00:00)
    }
    #enabled: true
    #translations: Doctrine\ORM\PersistentCollection {#12014 …}
    #translationsCache: [
      "fr_FR" => App\Entity\Product\ProductTranslation {#12017
        #locale: "fr_FR"
        #translatable: App\Entity\Product\Product {#11133}
        #id: 26
        #name: "Sarki Gris"
        #slug: "sarki_gris"
        #description: "rgzepuihbzcoutjjmdlfkgnjaoeizuritpf,vnmmzpn"
        #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: "aeiijinvqaaiajnampoknchfccgah"
      }
    ]
    #currentLocale: "fr_FR"
    #currentTranslation: null
    #fallbackLocale: "fr_FR"
    #variantSelectionMethod: "choice"
    #productTaxons: Doctrine\ORM\PersistentCollection {#11340 …}
    #channels: Doctrine\ORM\PersistentCollection {#11533 …}
    #mainTaxon: App\Entity\Taxonomy\Taxon {#10305 …}
    #reviews: Doctrine\ORM\PersistentCollection {#11465 …}
    #averageRating: 0.0
    #images: Doctrine\ORM\PersistentCollection {#11536 …}
    #productType: null
  }
  "class" => "w-100 h-100 object-fit-cover"
]
Attributes
[
  "product" => "Sarki Gris"
  "class" => "w-100 h-100 object-fit-cover"
]
Component
Symfony\UX\TwigComponent\AnonymousComponent {#12693
  -props: [
    "product" => App\Entity\Product\Product {#11133
      #id: 26
      #code: "Sarki_gris"
      #attributes: Doctrine\ORM\PersistentCollection {#11674 …}
      #variants: Doctrine\ORM\PersistentCollection {#11887 …}
      #options: Doctrine\ORM\PersistentCollection {#12015 …}
      #associations: Doctrine\ORM\PersistentCollection {#11955 …}
      #createdAt: DateTime @1788453371 {#11103
        date: 2026-09-03 16:36:11.0 UTC (+00:00)
      }
      #updatedAt: DateTime @1788453372 {#11205
        date: 2026-09-03 16:36:12.0 UTC (+00:00)
      }
      #enabled: true
      #translations: Doctrine\ORM\PersistentCollection {#12014 …}
      #translationsCache: [
        "fr_FR" => App\Entity\Product\ProductTranslation {#12017
          #locale: "fr_FR"
          #translatable: App\Entity\Product\Product {#11133}
          #id: 26
          #name: "Sarki Gris"
          #slug: "sarki_gris"
          #description: "rgzepuihbzcoutjjmdlfkgnjaoeizuritpf,vnmmzpn"
          #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: "aeiijinvqaaiajnampoknchfccgah"
        }
      ]
      #currentLocale: "fr_FR"
      #currentTranslation: null
      #fallbackLocale: "fr_FR"
      #variantSelectionMethod: "choice"
      #productTaxons: Doctrine\ORM\PersistentCollection {#11340 …}
      #channels: Doctrine\ORM\PersistentCollection {#11533 …}
      #mainTaxon: App\Entity\Taxonomy\Taxon {#10305 …}
      #reviews: Doctrine\ORM\PersistentCollection {#11465 …}
      #averageRating: 0.0
      #images: Doctrine\ORM\PersistentCollection {#11536 …}
      #productType: null
    }
    "class" => "w-100 h-100 object-fit-cover"
  ]
}
sylius_shop:catalog_promotions
[Anonymous]
125.0 MiB 0.69 ms
Input props
[
  "hookableMetadata" => Sylius\TwigHooks\Hookable\Metadata\HookableMetadata {#12767
    +renderedBy: Sylius\TwigHooks\Hook\Metadata\HookMetadata {#12770 …}
    +context: Sylius\TwigHooks\Bag\DataBag {#12765 …}
    +configuration: Sylius\TwigHooks\Bag\ScalarDataBag {#12764 …}
    +prefixes: [
      "sylius_shop.cart.index.content.card.prices"
      "sylius_shop.base.index.content.card.prices"
      "sylius_shop.shared.product.card.prices"
    ]
  }
  "variant" => App\Entity\Product\ProductVariant {#12272 …}
  "applied_promotions" => Doctrine\ORM\PersistentCollection {#12628
    #collection: Doctrine\Common\Collections\ArrayCollection {#12627 …}
    #initialized: true
    -snapshot: []
    -owner: App\Entity\Channel\ChannelPricing {#12465 …}
    -association: Symfony\Component\VarDumper\Caster\CutStub {#20676 …}
    -backRefFieldName: null
    -isDirty: false
    -em: ContainerRDvVUOR\EntityManagerGhost614a58f {#196 …}
    -typeClass: Symfony\Component\VarDumper\Caster\CutStub {#20770 …}
  }
  "withDescription" => false
]
Attributes
[
  "hookableMetadata" => Sylius\TwigHooks\Hookable\Metadata\HookableMetadata {#12767
    +renderedBy: Sylius\TwigHooks\Hook\Metadata\HookMetadata {#12770 …}
    +context: Sylius\TwigHooks\Bag\DataBag {#12765 …}
    +configuration: Sylius\TwigHooks\Bag\ScalarDataBag {#12764 …}
    +prefixes: [
      "sylius_shop.cart.index.content.card.prices"
      "sylius_shop.base.index.content.card.prices"
      "sylius_shop.shared.product.card.prices"
    ]
  }
  "variant" => "Sarki Gris(Taille: XL, Coupe: Coupe ample, Style: Manche longue 4/4)"
  "applied_promotions" => Doctrine\ORM\PersistentCollection {#12628
    #collection: Doctrine\Common\Collections\ArrayCollection {#12627 …}
    #initialized: true
    -snapshot: []
    -owner: App\Entity\Channel\ChannelPricing {#12465 …}
    -association: Symfony\Component\VarDumper\Caster\CutStub {#20676 …}
    -backRefFieldName: null
    -isDirty: false
    -em: ContainerRDvVUOR\EntityManagerGhost614a58f {#196 …}
    -typeClass: Symfony\Component\VarDumper\Caster\CutStub {#20770 …}
  }
  "withDescription" => false
]
Component
Symfony\UX\TwigComponent\AnonymousComponent {#12775
  -props: [
    "hookableMetadata" => Sylius\TwigHooks\Hookable\Metadata\HookableMetadata {#12767
      +renderedBy: Sylius\TwigHooks\Hook\Metadata\HookMetadata {#12770 …}
      +context: Sylius\TwigHooks\Bag\DataBag {#12765 …}
      +configuration: Sylius\TwigHooks\Bag\ScalarDataBag {#12764 …}
      +prefixes: [
        "sylius_shop.cart.index.content.card.prices"
        "sylius_shop.base.index.content.card.prices"
        "sylius_shop.shared.product.card.prices"
      ]
    }
    "variant" => App\Entity\Product\ProductVariant {#12272 …}
    "applied_promotions" => Doctrine\ORM\PersistentCollection {#12628
      #collection: Doctrine\Common\Collections\ArrayCollection {#12627 …}
      #initialized: true
      -snapshot: []
      -owner: App\Entity\Channel\ChannelPricing {#12465 …}
      -association: Symfony\Component\VarDumper\Caster\CutStub {#20676 …}
      -backRefFieldName: null
      -isDirty: false
      -em: ContainerRDvVUOR\EntityManagerGhost614a58f {#196 …}
      -typeClass: Symfony\Component\VarDumper\Caster\CutStub {#20770 …}
    }
    "withDescription" => false
  ]
}
sylius_shop:product:card:price Sylius\Bundle\ShopBundle\Twig\Component\Product\PriceComponent 125.0 MiB 0.31 ms
Input props
[
  "hookableMetadata" => Sylius\TwigHooks\Hookable\Metadata\HookableMetadata {#13037
    +renderedBy: Sylius\TwigHooks\Hook\Metadata\HookMetadata {#13027 …}
    +context: Sylius\TwigHooks\Bag\DataBag {#13035 …}
    +configuration: Sylius\TwigHooks\Bag\ScalarDataBag {#13036 …}
    +prefixes: [
      "sylius_shop.cart.index.content.card.prices"
      "sylius_shop.base.index.content.card.prices"
      "sylius_shop.shared.product.card.prices"
    ]
  }
  "variant" => App\Entity\Product\ProductVariant {#12272 …}
  "template" => "@SyliusShop/product/common/price.html.twig"
]
Attributes
[
  "template" => "@SyliusShop/product/common/price.html.twig"
]
Component
Sylius\Bundle\ShopBundle\Twig\Component\Product\PriceComponent {#13046
  +variant: App\Entity\Product\ProductVariant {#12272 …}
  +price: "70\u{202F}000\u{A0}F\u{202F}CFA"
  +originalPrice: "70\u{202F}000\u{A0}F\u{202F}CFA"
  +hasDiscount: false
  #productVariantPricesCalculator: Sylius\Component\Core\Calculator\ProductVariantPriceCalculator {#4908 …}
  #moneyFormatter: Sylius\Bundle\MoneyBundle\Formatter\MoneyFormatter {#7402 …}
  #channelContext: Sylius\Component\Channel\Context\CachedPerRequestChannelContext {#4068 …}
  #localeContext: Sylius\Component\Locale\Context\CompositeLocaleContext {#1256 …}
  #currencyContext: Sylius\Component\Core\Currency\Context\ChannelAwareCurrencyContext {#7098 …}
  #currencyConverter: Sylius\Component\Currency\Converter\CurrencyConverter {#7399 …}
  +hookableMetadata: Sylius\TwigHooks\Hookable\Metadata\HookableMetadata {#13037
    +renderedBy: Sylius\TwigHooks\Hook\Metadata\HookMetadata {#13027 …}
    +context: Sylius\TwigHooks\Bag\DataBag {#13035 …}
    +configuration: Sylius\TwigHooks\Bag\ScalarDataBag {#13036 …}
    +prefixes: [
      "sylius_shop.cart.index.content.card.prices"
      "sylius_shop.base.index.content.card.prices"
      "sylius_shop.shared.product.card.prices"
    ]
  }
}
sylius_shop:product:card Sylius\Bundle\ShopBundle\Twig\Component\Product\CardComponent 125.0 MiB 2.66 ms
Input props
[
  "product" => App\Entity\Product\Product {#12021
    #id: 25
    #code: "zamani_marron"
    #attributes: Doctrine\ORM\PersistentCollection {#12030 …}
    #variants: Doctrine\ORM\PersistentCollection {#12032 …}
    #options: Doctrine\ORM\PersistentCollection {#12036 …}
    #associations: Doctrine\ORM\PersistentCollection {#12034 …}
    #createdAt: DateTime @1788452486 {#12019
      date: 2026-09-03 16:21:26.0 UTC (+00:00)
    }
    #updatedAt: DateTime @1788452487 {#12020
      date: 2026-09-03 16:21:27.0 UTC (+00:00)
    }
    #enabled: true
    #translations: Doctrine\ORM\PersistentCollection {#12039 …}
    #translationsCache: [
      "fr_FR" => App\Entity\Product\ProductTranslation {#12040
        #locale: "fr_FR"
        #translatable: App\Entity\Product\Product {#12021}
        #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 {#12022 …}
    #channels: Doctrine\ORM\PersistentCollection {#12028 …}
    #mainTaxon: App\Entity\Taxonomy\Taxon {#10296 …}
    #reviews: Doctrine\ORM\PersistentCollection {#12024 …}
    #averageRating: 0.0
    #images: Doctrine\ORM\PersistentCollection {#12026 …}
    #productType: null
  }
  "template" => "@SyliusShop/product/common/card.html.twig"
  "hookableMetadata" => Sylius\TwigHooks\Hookable\Metadata\HookableMetadata {#11040
    +renderedBy: Sylius\TwigHooks\Hook\Metadata\HookMetadata {#10626 …}
    +context: Sylius\TwigHooks\Bag\DataBag {#10627 …}
    +configuration: Sylius\TwigHooks\Bag\ScalarDataBag {#11039 …}
    +prefixes: [
      "sylius_shop.cart.index.content"
      "sylius_shop.base.index.content"
    ]
  }
]
Attributes
[
  "template" => "@SyliusShop/product/common/card.html.twig"
]
Component
Sylius\Bundle\ShopBundle\Twig\Component\Product\CardComponent {#12671
  +product: App\Entity\Product\Product {#12021
    #id: 25
    #code: "zamani_marron"
    #attributes: Doctrine\ORM\PersistentCollection {#12030 …}
    #variants: Doctrine\ORM\PersistentCollection {#12032 …}
    #options: Doctrine\ORM\PersistentCollection {#12036 …}
    #associations: Doctrine\ORM\PersistentCollection {#12034 …}
    #createdAt: DateTime @1788452486 {#12019
      date: 2026-09-03 16:21:26.0 UTC (+00:00)
    }
    #updatedAt: DateTime @1788452487 {#12020
      date: 2026-09-03 16:21:27.0 UTC (+00:00)
    }
    #enabled: true
    #translations: Doctrine\ORM\PersistentCollection {#12039 …}
    #translationsCache: [
      "fr_FR" => App\Entity\Product\ProductTranslation {#12040
        #locale: "fr_FR"
        #translatable: App\Entity\Product\Product {#12021}
        #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 {#12022 …}
    #channels: Doctrine\ORM\PersistentCollection {#12028 …}
    #mainTaxon: App\Entity\Taxonomy\Taxon {#10296 …}
    #reviews: Doctrine\ORM\PersistentCollection {#12024 …}
    #averageRating: 0.0
    #images: Doctrine\ORM\PersistentCollection {#12026 …}
    #productType: null
  }
  +variant: App\Entity\Product\ProductVariant {#13119 …}
  +slug: null
  #productRepository: Sylius\Bundle\CoreBundle\Doctrine\ORM\ProductRepository {#7160 …}
  #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 {#11040
    +renderedBy: Sylius\TwigHooks\Hook\Metadata\HookMetadata {#10626 …}
    +context: Sylius\TwigHooks\Bag\DataBag {#10627 …}
    +configuration: Sylius\TwigHooks\Bag\ScalarDataBag {#11039 …}
    +prefixes: [
      "sylius_shop.cart.index.content"
      "sylius_shop.base.index.content"
    ]
  }
}
sylius_shop:main_image
[Anonymous]
125.0 MiB 0.35 ms
Input props
[
  "product" => App\Entity\Product\Product {#12021
    #id: 25
    #code: "zamani_marron"
    #attributes: Doctrine\ORM\PersistentCollection {#12030 …}
    #variants: Doctrine\ORM\PersistentCollection {#12032 …}
    #options: Doctrine\ORM\PersistentCollection {#12036 …}
    #associations: Doctrine\ORM\PersistentCollection {#12034 …}
    #createdAt: DateTime @1788452486 {#12019
      date: 2026-09-03 16:21:26.0 UTC (+00:00)
    }
    #updatedAt: DateTime @1788452487 {#12020
      date: 2026-09-03 16:21:27.0 UTC (+00:00)
    }
    #enabled: true
    #translations: Doctrine\ORM\PersistentCollection {#12039 …}
    #translationsCache: [
      "fr_FR" => App\Entity\Product\ProductTranslation {#12040
        #locale: "fr_FR"
        #translatable: App\Entity\Product\Product {#12021}
        #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 {#12022 …}
    #channels: Doctrine\ORM\PersistentCollection {#12028 …}
    #mainTaxon: App\Entity\Taxonomy\Taxon {#10296 …}
    #reviews: Doctrine\ORM\PersistentCollection {#12024 …}
    #averageRating: 0.0
    #images: Doctrine\ORM\PersistentCollection {#12026 …}
    #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 {#13190
  -props: [
    "product" => App\Entity\Product\Product {#12021
      #id: 25
      #code: "zamani_marron"
      #attributes: Doctrine\ORM\PersistentCollection {#12030 …}
      #variants: Doctrine\ORM\PersistentCollection {#12032 …}
      #options: Doctrine\ORM\PersistentCollection {#12036 …}
      #associations: Doctrine\ORM\PersistentCollection {#12034 …}
      #createdAt: DateTime @1788452486 {#12019
        date: 2026-09-03 16:21:26.0 UTC (+00:00)
      }
      #updatedAt: DateTime @1788452487 {#12020
        date: 2026-09-03 16:21:27.0 UTC (+00:00)
      }
      #enabled: true
      #translations: Doctrine\ORM\PersistentCollection {#12039 …}
      #translationsCache: [
        "fr_FR" => App\Entity\Product\ProductTranslation {#12040
          #locale: "fr_FR"
          #translatable: App\Entity\Product\Product {#12021}
          #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 {#12022 …}
      #channels: Doctrine\ORM\PersistentCollection {#12028 …}
      #mainTaxon: App\Entity\Taxonomy\Taxon {#10296 …}
      #reviews: Doctrine\ORM\PersistentCollection {#12024 …}
      #averageRating: 0.0
      #images: Doctrine\ORM\PersistentCollection {#12026 …}
      #productType: null
    }
    "class" => "w-100 h-100 object-fit-cover"
  ]
}
sylius_shop:catalog_promotions
[Anonymous]
125.0 MiB 0.28 ms
Input props
[
  "hookableMetadata" => Sylius\TwigHooks\Hookable\Metadata\HookableMetadata {#13183
    +renderedBy: Sylius\TwigHooks\Hook\Metadata\HookMetadata {#13174 …}
    +context: Sylius\TwigHooks\Bag\DataBag {#13244 …}
    +configuration: Sylius\TwigHooks\Bag\ScalarDataBag {#13171 …}
    +prefixes: [
      "sylius_shop.cart.index.content.card.prices"
      "sylius_shop.base.index.content.card.prices"
      "sylius_shop.shared.product.card.prices"
    ]
  }
  "variant" => App\Entity\Product\ProductVariant {#13119 …}
  "applied_promotions" => Doctrine\ORM\PersistentCollection {#13127
    #collection: Doctrine\Common\Collections\ArrayCollection {#13136 …}
    #initialized: true
    -snapshot: []
    -owner: App\Entity\Channel\ChannelPricing {#13115 …}
    -association: Symfony\Component\VarDumper\Caster\CutStub {#20835 …}
    -backRefFieldName: null
    -isDirty: false
    -em: ContainerRDvVUOR\EntityManagerGhost614a58f {#196 …}
    -typeClass: Symfony\Component\VarDumper\Caster\CutStub {#20837 …}
  }
  "withDescription" => false
]
Attributes
[
  "hookableMetadata" => Sylius\TwigHooks\Hookable\Metadata\HookableMetadata {#13183
    +renderedBy: Sylius\TwigHooks\Hook\Metadata\HookMetadata {#13174 …}
    +context: Sylius\TwigHooks\Bag\DataBag {#13244 …}
    +configuration: Sylius\TwigHooks\Bag\ScalarDataBag {#13171 …}
    +prefixes: [
      "sylius_shop.cart.index.content.card.prices"
      "sylius_shop.base.index.content.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 {#13127
    #collection: Doctrine\Common\Collections\ArrayCollection {#13136 …}
    #initialized: true
    -snapshot: []
    -owner: App\Entity\Channel\ChannelPricing {#13115 …}
    -association: Symfony\Component\VarDumper\Caster\CutStub {#20835 …}
    -backRefFieldName: null
    -isDirty: false
    -em: ContainerRDvVUOR\EntityManagerGhost614a58f {#196 …}
    -typeClass: Symfony\Component\VarDumper\Caster\CutStub {#20837 …}
  }
  "withDescription" => false
]
Component
Symfony\UX\TwigComponent\AnonymousComponent {#13248
  -props: [
    "hookableMetadata" => Sylius\TwigHooks\Hookable\Metadata\HookableMetadata {#13183
      +renderedBy: Sylius\TwigHooks\Hook\Metadata\HookMetadata {#13174 …}
      +context: Sylius\TwigHooks\Bag\DataBag {#13244 …}
      +configuration: Sylius\TwigHooks\Bag\ScalarDataBag {#13171 …}
      +prefixes: [
        "sylius_shop.cart.index.content.card.prices"
        "sylius_shop.base.index.content.card.prices"
        "sylius_shop.shared.product.card.prices"
      ]
    }
    "variant" => App\Entity\Product\ProductVariant {#13119 …}
    "applied_promotions" => Doctrine\ORM\PersistentCollection {#13127
      #collection: Doctrine\Common\Collections\ArrayCollection {#13136 …}
      #initialized: true
      -snapshot: []
      -owner: App\Entity\Channel\ChannelPricing {#13115 …}
      -association: Symfony\Component\VarDumper\Caster\CutStub {#20835 …}
      -backRefFieldName: null
      -isDirty: false
      -em: ContainerRDvVUOR\EntityManagerGhost614a58f {#196 …}
      -typeClass: Symfony\Component\VarDumper\Caster\CutStub {#20837 …}
    }
    "withDescription" => false
  ]
}
sylius_shop:product:card:price Sylius\Bundle\ShopBundle\Twig\Component\Product\PriceComponent 125.0 MiB 0.07 ms
Input props
[
  "hookableMetadata" => Sylius\TwigHooks\Hookable\Metadata\HookableMetadata {#13319
    +renderedBy: Sylius\TwigHooks\Hook\Metadata\HookMetadata {#13310 …}
    +context: Sylius\TwigHooks\Bag\DataBag {#13317 …}
    +configuration: Sylius\TwigHooks\Bag\ScalarDataBag {#13318 …}
    +prefixes: [
      "sylius_shop.cart.index.content.card.prices"
      "sylius_shop.base.index.content.card.prices"
      "sylius_shop.shared.product.card.prices"
    ]
  }
  "variant" => App\Entity\Product\ProductVariant {#13119 …}
  "template" => "@SyliusShop/product/common/price.html.twig"
]
Attributes
[
  "template" => "@SyliusShop/product/common/price.html.twig"
]
Component
Sylius\Bundle\ShopBundle\Twig\Component\Product\PriceComponent {#13322
  +variant: App\Entity\Product\ProductVariant {#13119 …}
  +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 {#7402 …}
  #channelContext: Sylius\Component\Channel\Context\CachedPerRequestChannelContext {#4068 …}
  #localeContext: Sylius\Component\Locale\Context\CompositeLocaleContext {#1256 …}
  #currencyContext: Sylius\Component\Core\Currency\Context\ChannelAwareCurrencyContext {#7098 …}
  #currencyConverter: Sylius\Component\Currency\Converter\CurrencyConverter {#7399 …}
  +hookableMetadata: Sylius\TwigHooks\Hookable\Metadata\HookableMetadata {#13319
    +renderedBy: Sylius\TwigHooks\Hook\Metadata\HookMetadata {#13310 …}
    +context: Sylius\TwigHooks\Bag\DataBag {#13317 …}
    +configuration: Sylius\TwigHooks\Bag\ScalarDataBag {#13318 …}
    +prefixes: [
      "sylius_shop.cart.index.content.card.prices"
      "sylius_shop.base.index.content.card.prices"
      "sylius_shop.shared.product.card.prices"
    ]
  }
}
sylius_shop:product:card Sylius\Bundle\ShopBundle\Twig\Component\Product\CardComponent 127.0 MiB 2.18 ms
Input props
[
  "product" => App\Entity\Product\Product {#12043
    #id: 24
    #code: "Jallaba_gris"
    #attributes: Doctrine\ORM\PersistentCollection {#12055 …}
    #variants: Doctrine\ORM\PersistentCollection {#12057 …}
    #options: Doctrine\ORM\PersistentCollection {#12061 …}
    #associations: Doctrine\ORM\PersistentCollection {#12059 …}
    #createdAt: DateTime @1788385593 {#12041
      date: 2026-09-02 21:46:33.0 UTC (+00:00)
    }
    #updatedAt: DateTime @1788385593 {#12042
      date: 2026-09-02 21:46:33.0 UTC (+00:00)
    }
    #enabled: true
    #translations: Doctrine\ORM\PersistentCollection {#12064 …}
    #translationsCache: [
      "fr_FR" => App\Entity\Product\ProductTranslation {#12065
        #locale: "fr_FR"
        #translatable: App\Entity\Product\Product {#12043}
        #id: 24
        #name: "Jallaba’s"
        #slug: "jallabas"
        #description: null
        #metaKeywords: null
        #metaDescription: null
        #shortDescription: null
      }
    ]
    #currentLocale: "fr_FR"
    #currentTranslation: null
    #fallbackLocale: "fr_FR"
    #variantSelectionMethod: "choice"
    #productTaxons: Doctrine\ORM\PersistentCollection {#12047 …}
    #channels: Doctrine\ORM\PersistentCollection {#12053 …}
    #mainTaxon: Proxies\__CG__\App\Entity\Taxonomy\Taxon {#12045 …}
    #reviews: Doctrine\ORM\PersistentCollection {#12049 …}
    #averageRating: 0.0
    #images: Doctrine\ORM\PersistentCollection {#12051 …}
    #productType: null
  }
  "template" => "@SyliusShop/product/common/card.html.twig"
  "hookableMetadata" => Sylius\TwigHooks\Hookable\Metadata\HookableMetadata {#11040
    +renderedBy: Sylius\TwigHooks\Hook\Metadata\HookMetadata {#10626 …}
    +context: Sylius\TwigHooks\Bag\DataBag {#10627 …}
    +configuration: Sylius\TwigHooks\Bag\ScalarDataBag {#11039 …}
    +prefixes: [
      "sylius_shop.cart.index.content"
      "sylius_shop.base.index.content"
    ]
  }
]
Attributes
[
  "template" => "@SyliusShop/product/common/card.html.twig"
]
Component
Sylius\Bundle\ShopBundle\Twig\Component\Product\CardComponent {#13181
  +product: App\Entity\Product\Product {#12043
    #id: 24
    #code: "Jallaba_gris"
    #attributes: Doctrine\ORM\PersistentCollection {#12055 …}
    #variants: Doctrine\ORM\PersistentCollection {#12057 …}
    #options: Doctrine\ORM\PersistentCollection {#12061 …}
    #associations: Doctrine\ORM\PersistentCollection {#12059 …}
    #createdAt: DateTime @1788385593 {#12041
      date: 2026-09-02 21:46:33.0 UTC (+00:00)
    }
    #updatedAt: DateTime @1788385593 {#12042
      date: 2026-09-02 21:46:33.0 UTC (+00:00)
    }
    #enabled: true
    #translations: Doctrine\ORM\PersistentCollection {#12064 …}
    #translationsCache: [
      "fr_FR" => App\Entity\Product\ProductTranslation {#12065
        #locale: "fr_FR"
        #translatable: App\Entity\Product\Product {#12043}
        #id: 24
        #name: "Jallaba’s"
        #slug: "jallabas"
        #description: null
        #metaKeywords: null
        #metaDescription: null
        #shortDescription: null
      }
    ]
    #currentLocale: "fr_FR"
    #currentTranslation: null
    #fallbackLocale: "fr_FR"
    #variantSelectionMethod: "choice"
    #productTaxons: Doctrine\ORM\PersistentCollection {#12047 …}
    #channels: Doctrine\ORM\PersistentCollection {#12053 …}
    #mainTaxon: Proxies\__CG__\App\Entity\Taxonomy\Taxon {#12045 …}
    #reviews: Doctrine\ORM\PersistentCollection {#12049 …}
    #averageRating: 0.0
    #images: Doctrine\ORM\PersistentCollection {#12051 …}
    #productType: null
  }
  +variant: App\Entity\Product\ProductVariant {#13385 …}
  +slug: null
  #productRepository: Sylius\Bundle\CoreBundle\Doctrine\ORM\ProductRepository {#7160 …}
  #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 {#11040
    +renderedBy: Sylius\TwigHooks\Hook\Metadata\HookMetadata {#10626 …}
    +context: Sylius\TwigHooks\Bag\DataBag {#10627 …}
    +configuration: Sylius\TwigHooks\Bag\ScalarDataBag {#11039 …}
    +prefixes: [
      "sylius_shop.cart.index.content"
      "sylius_shop.base.index.content"
    ]
  }
}
sylius_shop:main_image
[Anonymous]
125.0 MiB 0.47 ms
Input props
[
  "product" => App\Entity\Product\Product {#12043
    #id: 24
    #code: "Jallaba_gris"
    #attributes: Doctrine\ORM\PersistentCollection {#12055 …}
    #variants: Doctrine\ORM\PersistentCollection {#12057 …}
    #options: Doctrine\ORM\PersistentCollection {#12061 …}
    #associations: Doctrine\ORM\PersistentCollection {#12059 …}
    #createdAt: DateTime @1788385593 {#12041
      date: 2026-09-02 21:46:33.0 UTC (+00:00)
    }
    #updatedAt: DateTime @1788385593 {#12042
      date: 2026-09-02 21:46:33.0 UTC (+00:00)
    }
    #enabled: true
    #translations: Doctrine\ORM\PersistentCollection {#12064 …}
    #translationsCache: [
      "fr_FR" => App\Entity\Product\ProductTranslation {#12065
        #locale: "fr_FR"
        #translatable: App\Entity\Product\Product {#12043}
        #id: 24
        #name: "Jallaba’s"
        #slug: "jallabas"
        #description: null
        #metaKeywords: null
        #metaDescription: null
        #shortDescription: null
      }
    ]
    #currentLocale: "fr_FR"
    #currentTranslation: null
    #fallbackLocale: "fr_FR"
    #variantSelectionMethod: "choice"
    #productTaxons: Doctrine\ORM\PersistentCollection {#12047 …}
    #channels: Doctrine\ORM\PersistentCollection {#12053 …}
    #mainTaxon: Proxies\__CG__\App\Entity\Taxonomy\Taxon {#12045 …}
    #reviews: Doctrine\ORM\PersistentCollection {#12049 …}
    #averageRating: 0.0
    #images: Doctrine\ORM\PersistentCollection {#12051 …}
    #productType: null
  }
  "class" => "w-100 h-100 object-fit-cover"
]
Attributes
[
  "product" => "Jallaba’s"
  "class" => "w-100 h-100 object-fit-cover"
]
Component
Symfony\UX\TwigComponent\AnonymousComponent {#13456
  -props: [
    "product" => App\Entity\Product\Product {#12043
      #id: 24
      #code: "Jallaba_gris"
      #attributes: Doctrine\ORM\PersistentCollection {#12055 …}
      #variants: Doctrine\ORM\PersistentCollection {#12057 …}
      #options: Doctrine\ORM\PersistentCollection {#12061 …}
      #associations: Doctrine\ORM\PersistentCollection {#12059 …}
      #createdAt: DateTime @1788385593 {#12041
        date: 2026-09-02 21:46:33.0 UTC (+00:00)
      }
      #updatedAt: DateTime @1788385593 {#12042
        date: 2026-09-02 21:46:33.0 UTC (+00:00)
      }
      #enabled: true
      #translations: Doctrine\ORM\PersistentCollection {#12064 …}
      #translationsCache: [
        "fr_FR" => App\Entity\Product\ProductTranslation {#12065
          #locale: "fr_FR"
          #translatable: App\Entity\Product\Product {#12043}
          #id: 24
          #name: "Jallaba’s"
          #slug: "jallabas"
          #description: null
          #metaKeywords: null
          #metaDescription: null
          #shortDescription: null
        }
      ]
      #currentLocale: "fr_FR"
      #currentTranslation: null
      #fallbackLocale: "fr_FR"
      #variantSelectionMethod: "choice"
      #productTaxons: Doctrine\ORM\PersistentCollection {#12047 …}
      #channels: Doctrine\ORM\PersistentCollection {#12053 …}
      #mainTaxon: Proxies\__CG__\App\Entity\Taxonomy\Taxon {#12045 …}
      #reviews: Doctrine\ORM\PersistentCollection {#12049 …}
      #averageRating: 0.0
      #images: Doctrine\ORM\PersistentCollection {#12051 …}
      #productType: null
    }
    "class" => "w-100 h-100 object-fit-cover"
  ]
}
sylius_shop:catalog_promotions
[Anonymous]
125.0 MiB 0.32 ms
Input props
[
  "hookableMetadata" => Sylius\TwigHooks\Hookable\Metadata\HookableMetadata {#13449
    +renderedBy: Sylius\TwigHooks\Hook\Metadata\HookMetadata {#13440 …}
    +context: Sylius\TwigHooks\Bag\DataBag {#13513 …}
    +configuration: Sylius\TwigHooks\Bag\ScalarDataBag {#13437 …}
    +prefixes: [
      "sylius_shop.cart.index.content.card.prices"
      "sylius_shop.base.index.content.card.prices"
      "sylius_shop.shared.product.card.prices"
    ]
  }
  "variant" => App\Entity\Product\ProductVariant {#13385 …}
  "applied_promotions" => Doctrine\ORM\PersistentCollection {#13393
    #collection: Doctrine\Common\Collections\ArrayCollection {#13402 …}
    #initialized: true
    -snapshot: []
    -owner: App\Entity\Channel\ChannelPricing {#13381 …}
    -association: Symfony\Component\VarDumper\Caster\CutStub {#20849 …}
    -backRefFieldName: null
    -isDirty: false
    -em: ContainerRDvVUOR\EntityManagerGhost614a58f {#196 …}
    -typeClass: Symfony\Component\VarDumper\Caster\CutStub {#20851 …}
  }
  "withDescription" => false
]
Attributes
[
  "hookableMetadata" => Sylius\TwigHooks\Hookable\Metadata\HookableMetadata {#13449
    +renderedBy: Sylius\TwigHooks\Hook\Metadata\HookMetadata {#13440 …}
    +context: Sylius\TwigHooks\Bag\DataBag {#13513 …}
    +configuration: Sylius\TwigHooks\Bag\ScalarDataBag {#13437 …}
    +prefixes: [
      "sylius_shop.cart.index.content.card.prices"
      "sylius_shop.base.index.content.card.prices"
      "sylius_shop.shared.product.card.prices"
    ]
  }
  "variant" => "Jallaba’s(Taille: L)"
  "applied_promotions" => Doctrine\ORM\PersistentCollection {#13393
    #collection: Doctrine\Common\Collections\ArrayCollection {#13402 …}
    #initialized: true
    -snapshot: []
    -owner: App\Entity\Channel\ChannelPricing {#13381 …}
    -association: Symfony\Component\VarDumper\Caster\CutStub {#20849 …}
    -backRefFieldName: null
    -isDirty: false
    -em: ContainerRDvVUOR\EntityManagerGhost614a58f {#196 …}
    -typeClass: Symfony\Component\VarDumper\Caster\CutStub {#20851 …}
  }
  "withDescription" => false
]
Component
Symfony\UX\TwigComponent\AnonymousComponent {#13517
  -props: [
    "hookableMetadata" => Sylius\TwigHooks\Hookable\Metadata\HookableMetadata {#13449
      +renderedBy: Sylius\TwigHooks\Hook\Metadata\HookMetadata {#13440 …}
      +context: Sylius\TwigHooks\Bag\DataBag {#13513 …}
      +configuration: Sylius\TwigHooks\Bag\ScalarDataBag {#13437 …}
      +prefixes: [
        "sylius_shop.cart.index.content.card.prices"
        "sylius_shop.base.index.content.card.prices"
        "sylius_shop.shared.product.card.prices"
      ]
    }
    "variant" => App\Entity\Product\ProductVariant {#13385 …}
    "applied_promotions" => Doctrine\ORM\PersistentCollection {#13393
      #collection: Doctrine\Common\Collections\ArrayCollection {#13402 …}
      #initialized: true
      -snapshot: []
      -owner: App\Entity\Channel\ChannelPricing {#13381 …}
      -association: Symfony\Component\VarDumper\Caster\CutStub {#20849 …}
      -backRefFieldName: null
      -isDirty: false
      -em: ContainerRDvVUOR\EntityManagerGhost614a58f {#196 …}
      -typeClass: Symfony\Component\VarDumper\Caster\CutStub {#20851 …}
    }
    "withDescription" => false
  ]
}
sylius_shop:product:card:price Sylius\Bundle\ShopBundle\Twig\Component\Product\PriceComponent 127.0 MiB 0.07 ms
Input props
[
  "hookableMetadata" => Sylius\TwigHooks\Hookable\Metadata\HookableMetadata {#13567
    +renderedBy: Sylius\TwigHooks\Hook\Metadata\HookMetadata {#13558 …}
    +context: Sylius\TwigHooks\Bag\DataBag {#13565 …}
    +configuration: Sylius\TwigHooks\Bag\ScalarDataBag {#13566 …}
    +prefixes: [
      "sylius_shop.cart.index.content.card.prices"
      "sylius_shop.base.index.content.card.prices"
      "sylius_shop.shared.product.card.prices"
    ]
  }
  "variant" => App\Entity\Product\ProductVariant {#13385 …}
  "template" => "@SyliusShop/product/common/price.html.twig"
]
Attributes
[
  "template" => "@SyliusShop/product/common/price.html.twig"
]
Component
Sylius\Bundle\ShopBundle\Twig\Component\Product\PriceComponent {#13570
  +variant: App\Entity\Product\ProductVariant {#13385 …}
  +price: "20\u{202F}000\u{A0}F\u{202F}CFA"
  +originalPrice: "20\u{202F}000\u{A0}F\u{202F}CFA"
  +hasDiscount: false
  #productVariantPricesCalculator: Sylius\Component\Core\Calculator\ProductVariantPriceCalculator {#4908 …}
  #moneyFormatter: Sylius\Bundle\MoneyBundle\Formatter\MoneyFormatter {#7402 …}
  #channelContext: Sylius\Component\Channel\Context\CachedPerRequestChannelContext {#4068 …}
  #localeContext: Sylius\Component\Locale\Context\CompositeLocaleContext {#1256 …}
  #currencyContext: Sylius\Component\Core\Currency\Context\ChannelAwareCurrencyContext {#7098 …}
  #currencyConverter: Sylius\Component\Currency\Converter\CurrencyConverter {#7399 …}
  +hookableMetadata: Sylius\TwigHooks\Hookable\Metadata\HookableMetadata {#13567
    +renderedBy: Sylius\TwigHooks\Hook\Metadata\HookMetadata {#13558 …}
    +context: Sylius\TwigHooks\Bag\DataBag {#13565 …}
    +configuration: Sylius\TwigHooks\Bag\ScalarDataBag {#13566 …}
    +prefixes: [
      "sylius_shop.cart.index.content.card.prices"
      "sylius_shop.base.index.content.card.prices"
      "sylius_shop.shared.product.card.prices"
    ]
  }
}
sylius_shop:product:card Sylius\Bundle\ShopBundle\Twig\Component\Product\CardComponent 127.0 MiB 2.75 ms
Input props
[
  "product" => App\Entity\Product\Product {#12068
    #id: 23
    #code: "urban_blanc_simple"
    #attributes: Doctrine\ORM\PersistentCollection {#12077 …}
    #variants: Doctrine\ORM\PersistentCollection {#12079 …}
    #options: Doctrine\ORM\PersistentCollection {#12083 …}
    #associations: Doctrine\ORM\PersistentCollection {#12081 …}
    #createdAt: DateTime @1788378095 {#12066
      date: 2026-09-02 19:41:35.0 UTC (+00:00)
    }
    #updatedAt: DateTime @1788378095 {#12067
      date: 2026-09-02 19:41:35.0 UTC (+00:00)
    }
    #enabled: true
    #translations: Doctrine\ORM\PersistentCollection {#12086 …}
    #translationsCache: [
      "fr_FR" => App\Entity\Product\ProductTranslation {#12087
        #locale: "fr_FR"
        #translatable: App\Entity\Product\Product {#12068}
        #id: 23
        #name: "Urban Oga Blanc"
        #slug: "urban-oga-blanc"
        #description: "Le kaftan Urban Oga réinvente l'élégance traditionnelle pour l'homme moderne. Sa coupe soignée et sa broderie raffinée en font une pièce qui se porte aussi bien lors des grandes occasions qu'au quotidien, pour ceux qui veulent affirmer leur style sans compromis."
        #metaKeywords: "Urban simple , blanc , Kaftan"
        #metaDescription: null
        #shortDescription: """
          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.
          """
      }
    ]
    #currentLocale: "fr_FR"
    #currentTranslation: null
    #fallbackLocale: "fr_FR"
    #variantSelectionMethod: "choice"
    #productTaxons: Doctrine\ORM\PersistentCollection {#12069 …}
    #channels: Doctrine\ORM\PersistentCollection {#12075 …}
    #mainTaxon: App\Entity\Taxonomy\Taxon {#10287 …}
    #reviews: Doctrine\ORM\PersistentCollection {#12071 …}
    #averageRating: 0.0
    #images: Doctrine\ORM\PersistentCollection {#12073 …}
    #productType: null
  }
  "template" => "@SyliusShop/product/common/card.html.twig"
  "hookableMetadata" => Sylius\TwigHooks\Hookable\Metadata\HookableMetadata {#11040
    +renderedBy: Sylius\TwigHooks\Hook\Metadata\HookMetadata {#10626 …}
    +context: Sylius\TwigHooks\Bag\DataBag {#10627 …}
    +configuration: Sylius\TwigHooks\Bag\ScalarDataBag {#11039 …}
    +prefixes: [
      "sylius_shop.cart.index.content"
      "sylius_shop.base.index.content"
    ]
  }
]
Attributes
[
  "template" => "@SyliusShop/product/common/card.html.twig"
]
Component
Sylius\Bundle\ShopBundle\Twig\Component\Product\CardComponent {#13447
  +product: App\Entity\Product\Product {#12068
    #id: 23
    #code: "urban_blanc_simple"
    #attributes: Doctrine\ORM\PersistentCollection {#12077 …}
    #variants: Doctrine\ORM\PersistentCollection {#12079 …}
    #options: Doctrine\ORM\PersistentCollection {#12083 …}
    #associations: Doctrine\ORM\PersistentCollection {#12081 …}
    #createdAt: DateTime @1788378095 {#12066
      date: 2026-09-02 19:41:35.0 UTC (+00:00)
    }
    #updatedAt: DateTime @1788378095 {#12067
      date: 2026-09-02 19:41:35.0 UTC (+00:00)
    }
    #enabled: true
    #translations: Doctrine\ORM\PersistentCollection {#12086 …}
    #translationsCache: [
      "fr_FR" => App\Entity\Product\ProductTranslation {#12087
        #locale: "fr_FR"
        #translatable: App\Entity\Product\Product {#12068}
        #id: 23
        #name: "Urban Oga Blanc"
        #slug: "urban-oga-blanc"
        #description: "Le kaftan Urban Oga réinvente l'élégance traditionnelle pour l'homme moderne. Sa coupe soignée et sa broderie raffinée en font une pièce qui se porte aussi bien lors des grandes occasions qu'au quotidien, pour ceux qui veulent affirmer leur style sans compromis."
        #metaKeywords: "Urban simple , blanc , Kaftan"
        #metaDescription: null
        #shortDescription: """
          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.
          """
      }
    ]
    #currentLocale: "fr_FR"
    #currentTranslation: null
    #fallbackLocale: "fr_FR"
    #variantSelectionMethod: "choice"
    #productTaxons: Doctrine\ORM\PersistentCollection {#12069 …}
    #channels: Doctrine\ORM\PersistentCollection {#12075 …}
    #mainTaxon: App\Entity\Taxonomy\Taxon {#10287 …}
    #reviews: Doctrine\ORM\PersistentCollection {#12071 …}
    #averageRating: 0.0
    #images: Doctrine\ORM\PersistentCollection {#12073 …}
    #productType: null
  }
  +variant: App\Entity\Product\ProductVariant {#13633 …}
  +slug: null
  #productRepository: Sylius\Bundle\CoreBundle\Doctrine\ORM\ProductRepository {#7160 …}
  #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 {#11040
    +renderedBy: Sylius\TwigHooks\Hook\Metadata\HookMetadata {#10626 …}
    +context: Sylius\TwigHooks\Bag\DataBag {#10627 …}
    +configuration: Sylius\TwigHooks\Bag\ScalarDataBag {#11039 …}
    +prefixes: [
      "sylius_shop.cart.index.content"
      "sylius_shop.base.index.content"
    ]
  }
}
sylius_shop:main_image
[Anonymous]
127.0 MiB 0.35 ms
Input props
[
  "product" => App\Entity\Product\Product {#12068
    #id: 23
    #code: "urban_blanc_simple"
    #attributes: Doctrine\ORM\PersistentCollection {#12077 …}
    #variants: Doctrine\ORM\PersistentCollection {#12079 …}
    #options: Doctrine\ORM\PersistentCollection {#12083 …}
    #associations: Doctrine\ORM\PersistentCollection {#12081 …}
    #createdAt: DateTime @1788378095 {#12066
      date: 2026-09-02 19:41:35.0 UTC (+00:00)
    }
    #updatedAt: DateTime @1788378095 {#12067
      date: 2026-09-02 19:41:35.0 UTC (+00:00)
    }
    #enabled: true
    #translations: Doctrine\ORM\PersistentCollection {#12086 …}
    #translationsCache: [
      "fr_FR" => App\Entity\Product\ProductTranslation {#12087
        #locale: "fr_FR"
        #translatable: App\Entity\Product\Product {#12068}
        #id: 23
        #name: "Urban Oga Blanc"
        #slug: "urban-oga-blanc"
        #description: "Le kaftan Urban Oga réinvente l'élégance traditionnelle pour l'homme moderne. Sa coupe soignée et sa broderie raffinée en font une pièce qui se porte aussi bien lors des grandes occasions qu'au quotidien, pour ceux qui veulent affirmer leur style sans compromis."
        #metaKeywords: "Urban simple , blanc , Kaftan"
        #metaDescription: null
        #shortDescription: """
          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.
          """
      }
    ]
    #currentLocale: "fr_FR"
    #currentTranslation: null
    #fallbackLocale: "fr_FR"
    #variantSelectionMethod: "choice"
    #productTaxons: Doctrine\ORM\PersistentCollection {#12069 …}
    #channels: Doctrine\ORM\PersistentCollection {#12075 …}
    #mainTaxon: App\Entity\Taxonomy\Taxon {#10287 …}
    #reviews: Doctrine\ORM\PersistentCollection {#12071 …}
    #averageRating: 0.0
    #images: Doctrine\ORM\PersistentCollection {#12073 …}
    #productType: null
  }
  "class" => "w-100 h-100 object-fit-cover"
]
Attributes
[
  "product" => "Urban Oga Blanc"
  "class" => "w-100 h-100 object-fit-cover"
]
Component
Symfony\UX\TwigComponent\AnonymousComponent {#13704
  -props: [
    "product" => App\Entity\Product\Product {#12068
      #id: 23
      #code: "urban_blanc_simple"
      #attributes: Doctrine\ORM\PersistentCollection {#12077 …}
      #variants: Doctrine\ORM\PersistentCollection {#12079 …}
      #options: Doctrine\ORM\PersistentCollection {#12083 …}
      #associations: Doctrine\ORM\PersistentCollection {#12081 …}
      #createdAt: DateTime @1788378095 {#12066
        date: 2026-09-02 19:41:35.0 UTC (+00:00)
      }
      #updatedAt: DateTime @1788378095 {#12067
        date: 2026-09-02 19:41:35.0 UTC (+00:00)
      }
      #enabled: true
      #translations: Doctrine\ORM\PersistentCollection {#12086 …}
      #translationsCache: [
        "fr_FR" => App\Entity\Product\ProductTranslation {#12087
          #locale: "fr_FR"
          #translatable: App\Entity\Product\Product {#12068}
          #id: 23
          #name: "Urban Oga Blanc"
          #slug: "urban-oga-blanc"
          #description: "Le kaftan Urban Oga réinvente l'élégance traditionnelle pour l'homme moderne. Sa coupe soignée et sa broderie raffinée en font une pièce qui se porte aussi bien lors des grandes occasions qu'au quotidien, pour ceux qui veulent affirmer leur style sans compromis."
          #metaKeywords: "Urban simple , blanc , Kaftan"
          #metaDescription: null
          #shortDescription: """
            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.
            """
        }
      ]
      #currentLocale: "fr_FR"
      #currentTranslation: null
      #fallbackLocale: "fr_FR"
      #variantSelectionMethod: "choice"
      #productTaxons: Doctrine\ORM\PersistentCollection {#12069 …}
      #channels: Doctrine\ORM\PersistentCollection {#12075 …}
      #mainTaxon: App\Entity\Taxonomy\Taxon {#10287 …}
      #reviews: Doctrine\ORM\PersistentCollection {#12071 …}
      #averageRating: 0.0
      #images: Doctrine\ORM\PersistentCollection {#12073 …}
      #productType: null
    }
    "class" => "w-100 h-100 object-fit-cover"
  ]
}
sylius_shop:catalog_promotions
[Anonymous]
127.0 MiB 0.30 ms
Input props
[
  "hookableMetadata" => Sylius\TwigHooks\Hookable\Metadata\HookableMetadata {#13697
    +renderedBy: Sylius\TwigHooks\Hook\Metadata\HookMetadata {#13688 …}
    +context: Sylius\TwigHooks\Bag\DataBag {#13761 …}
    +configuration: Sylius\TwigHooks\Bag\ScalarDataBag {#13685 …}
    +prefixes: [
      "sylius_shop.cart.index.content.card.prices"
      "sylius_shop.base.index.content.card.prices"
      "sylius_shop.shared.product.card.prices"
    ]
  }
  "variant" => App\Entity\Product\ProductVariant {#13633 …}
  "applied_promotions" => Doctrine\ORM\PersistentCollection {#13641
    #collection: Doctrine\Common\Collections\ArrayCollection {#13650 …}
    #initialized: true
    -snapshot: []
    -owner: App\Entity\Channel\ChannelPricing {#13629 …}
    -association: Symfony\Component\VarDumper\Caster\CutStub {#20863 …}
    -backRefFieldName: null
    -isDirty: false
    -em: ContainerRDvVUOR\EntityManagerGhost614a58f {#196 …}
    -typeClass: Symfony\Component\VarDumper\Caster\CutStub {#20865 …}
  }
  "withDescription" => false
]
Attributes
[
  "hookableMetadata" => Sylius\TwigHooks\Hookable\Metadata\HookableMetadata {#13697
    +renderedBy: Sylius\TwigHooks\Hook\Metadata\HookMetadata {#13688 …}
    +context: Sylius\TwigHooks\Bag\DataBag {#13761 …}
    +configuration: Sylius\TwigHooks\Bag\ScalarDataBag {#13685 …}
    +prefixes: [
      "sylius_shop.cart.index.content.card.prices"
      "sylius_shop.base.index.content.card.prices"
      "sylius_shop.shared.product.card.prices"
    ]
  }
  "variant" => "Urban Oga Blanc(Taille: L, Couleur: Blanc, Coupe: Coupe droite, Style: Manche longue 4/4)"
  "applied_promotions" => Doctrine\ORM\PersistentCollection {#13641
    #collection: Doctrine\Common\Collections\ArrayCollection {#13650 …}
    #initialized: true
    -snapshot: []
    -owner: App\Entity\Channel\ChannelPricing {#13629 …}
    -association: Symfony\Component\VarDumper\Caster\CutStub {#20863 …}
    -backRefFieldName: null
    -isDirty: false
    -em: ContainerRDvVUOR\EntityManagerGhost614a58f {#196 …}
    -typeClass: Symfony\Component\VarDumper\Caster\CutStub {#20865 …}
  }
  "withDescription" => false
]
Component
Symfony\UX\TwigComponent\AnonymousComponent {#13765
  -props: [
    "hookableMetadata" => Sylius\TwigHooks\Hookable\Metadata\HookableMetadata {#13697
      +renderedBy: Sylius\TwigHooks\Hook\Metadata\HookMetadata {#13688 …}
      +context: Sylius\TwigHooks\Bag\DataBag {#13761 …}
      +configuration: Sylius\TwigHooks\Bag\ScalarDataBag {#13685 …}
      +prefixes: [
        "sylius_shop.cart.index.content.card.prices"
        "sylius_shop.base.index.content.card.prices"
        "sylius_shop.shared.product.card.prices"
      ]
    }
    "variant" => App\Entity\Product\ProductVariant {#13633 …}
    "applied_promotions" => Doctrine\ORM\PersistentCollection {#13641
      #collection: Doctrine\Common\Collections\ArrayCollection {#13650 …}
      #initialized: true
      -snapshot: []
      -owner: App\Entity\Channel\ChannelPricing {#13629 …}
      -association: Symfony\Component\VarDumper\Caster\CutStub {#20863 …}
      -backRefFieldName: null
      -isDirty: false
      -em: ContainerRDvVUOR\EntityManagerGhost614a58f {#196 …}
      -typeClass: Symfony\Component\VarDumper\Caster\CutStub {#20865 …}
    }
    "withDescription" => false
  ]
}
sylius_shop:product:card:price Sylius\Bundle\ShopBundle\Twig\Component\Product\PriceComponent 127.0 MiB 0.07 ms
Input props
[
  "hookableMetadata" => Sylius\TwigHooks\Hookable\Metadata\HookableMetadata {#13838
    +renderedBy: Sylius\TwigHooks\Hook\Metadata\HookMetadata {#13829 …}
    +context: Sylius\TwigHooks\Bag\DataBag {#13836 …}
    +configuration: Sylius\TwigHooks\Bag\ScalarDataBag {#13837 …}
    +prefixes: [
      "sylius_shop.cart.index.content.card.prices"
      "sylius_shop.base.index.content.card.prices"
      "sylius_shop.shared.product.card.prices"
    ]
  }
  "variant" => App\Entity\Product\ProductVariant {#13633 …}
  "template" => "@SyliusShop/product/common/price.html.twig"
]
Attributes
[
  "template" => "@SyliusShop/product/common/price.html.twig"
]
Component
Sylius\Bundle\ShopBundle\Twig\Component\Product\PriceComponent {#13841
  +variant: App\Entity\Product\ProductVariant {#13633 …}
  +price: "30\u{202F}000\u{A0}F\u{202F}CFA"
  +originalPrice: "30\u{202F}000\u{A0}F\u{202F}CFA"
  +hasDiscount: false
  #productVariantPricesCalculator: Sylius\Component\Core\Calculator\ProductVariantPriceCalculator {#4908 …}
  #moneyFormatter: Sylius\Bundle\MoneyBundle\Formatter\MoneyFormatter {#7402 …}
  #channelContext: Sylius\Component\Channel\Context\CachedPerRequestChannelContext {#4068 …}
  #localeContext: Sylius\Component\Locale\Context\CompositeLocaleContext {#1256 …}
  #currencyContext: Sylius\Component\Core\Currency\Context\ChannelAwareCurrencyContext {#7098 …}
  #currencyConverter: Sylius\Component\Currency\Converter\CurrencyConverter {#7399 …}
  +hookableMetadata: Sylius\TwigHooks\Hookable\Metadata\HookableMetadata {#13838
    +renderedBy: Sylius\TwigHooks\Hook\Metadata\HookMetadata {#13829 …}
    +context: Sylius\TwigHooks\Bag\DataBag {#13836 …}
    +configuration: Sylius\TwigHooks\Bag\ScalarDataBag {#13837 …}
    +prefixes: [
      "sylius_shop.cart.index.content.card.prices"
      "sylius_shop.base.index.content.card.prices"
      "sylius_shop.shared.product.card.prices"
    ]
  }
}
sylius_shop:cart:widget:offcanvas Sylius\Bundle\ShopBundle\Twig\Component\Cart\WidgetComponent 127.0 MiB 1.94 ms
Input props
[
  "hookableMetadata" => Sylius\TwigHooks\Hookable\Metadata\HookableMetadata {#10151
    +renderedBy: Sylius\TwigHooks\Hook\Metadata\HookMetadata {#10161 …}
    +context: Sylius\TwigHooks\Bag\DataBag {#10392 …}
    +configuration: Sylius\TwigHooks\Bag\ScalarDataBag {#10369 …}
    +prefixes: [
      "sylius_shop.cart.offcanvas"
      "sylius_shop.base.offcanvas"
    ]
  }
  "template" => "@SyliusShop/shared/layout/base/offcanvas/cart.html.twig"
]
Attributes
[]
Component
Sylius\Bundle\ShopBundle\Twig\Component\Cart\WidgetComponent {#13905
  +cart: App\Entity\Order\Order {#7085
    #id: null
    #checkoutCompletedAt: null
    #number: null
    #notes: null
    #items: Doctrine\Common\Collections\ArrayCollection {#7094 …}
    #itemsTotal: 0
    #adjustments: Doctrine\Common\Collections\ArrayCollection {#7093 …}
    #adjustmentsTotal: 0
    #total: 0
    #state: "cart"
    #createdAt: DateTime @1789302800 {#7092
      date: 2026-09-13 12:33:20.866234 UTC (+00:00)
    }
    #updatedAt: null
    #customer: null
    #channel: App\Entity\Channel\Channel {#6447 …}
    #shippingAddress: null
    #billingAddress: null
    #payments: Doctrine\Common\Collections\ArrayCollection {#7089 …}
    #shipments: Doctrine\Common\Collections\ArrayCollection {#7088 …}
    #currencyCode: "XOF"
    #localeCode: "fr_FR"
    #promotionCoupon: null
    #checkoutState: "cart"
    #paymentState: "cart"
    #shippingState: "cart"
    #promotions: Doctrine\Common\Collections\ArrayCollection {#7095 …}
    #tokenValue: null
    #customerIp: null
    #createdByGuest: true
    #molliePaymentId: null
    #qrCode: null
    #recurringSequenceIndex: null
    #abandonedEmail: false
  }
  #cartContext: Sylius\Component\Order\Context\CompositeCartContext {#1280 …}
  +hookableMetadata: Sylius\TwigHooks\Hookable\Metadata\HookableMetadata {#10151
    +renderedBy: Sylius\TwigHooks\Hook\Metadata\HookMetadata {#10161 …}
    +context: Sylius\TwigHooks\Bag\DataBag {#10392 …}
    +configuration: Sylius\TwigHooks\Bag\ScalarDataBag {#10369 …}
    +prefixes: [
      "sylius_shop.cart.offcanvas"
      "sylius_shop.base.offcanvas"
    ]
  }
  +template: "@SyliusShop/shared/layout/base/offcanvas/cart.html.twig"
  #repository: Sylius\Bundle\CoreBundle\Doctrine\ORM\OrderRepository {#4901 …}
}