ProductController :: viewProduct
Request
GET Parameters
| Key | Value |
|---|---|
| url | "produit/erabliere-caseal/sucre-d'erable-fin/1495" |
POST Parameters
No POST parameters
Uploaded Files
No files were uploaded
Request Attributes
| Key | Value |
|---|---|
| _controller | "App\Controller\ProductController::viewProduct" |
| _firewall_context | "security.firewall.map.context.main" |
| _locale | "fr" |
| _redirected | true |
| _route | "viewProduct" |
| _route_params | [ "_locale" => "fr" "producerUrl" => "erabliere-caseal" "productName" => "sucre-d%26%2339%3Berable-fin" "id" => "1495" ] |
| _template | Sensio\Bundle\FrameworkExtraBundle\Configuration\Template {#932 #template: "frontend/product.html.twig" -vars: [] -streamable: false -owner: [ App\Controller\ProductController {#224 -entityMana: Doctrine\ORM\EntityManager {#318 …} -productServ: App\Service\ProductService {#154 …} -userServ: App\Service\UserService {#151 …} -companyServ: App\Service\CompanyService {#862 …} -request: null #container: Symfony\Component\DependencyInjection\Argument\ServiceLocator {#850 …} } "viewProduct" ] } |
| id | "1495" |
| producerUrl | "erabliere-caseal" |
| product | App\Entity\Product {#1111 #em: Doctrine\ORM\EntityManager {#318 …} #userServ: App\Service\UserService {#151 …} -urlName: null -id: 1495 -origName: "Sucre d'érable fin" -origBrandName: null -qtyLeft: 0 -unitAmount: 125.0 -unit: 2 -available: true -origDescription: "<p>Notre <strong>sucre d’érable biologique</strong> est fabriqué à partir d’un sirop d’érable foncé qui lui confère un <strong>goût sucré</strong>. Ce produit est obtenu après un processus de mélange et de séchage du sirop d’érable.</p><p><strong>Pourquoi choisir Caséal ?</strong></p><p>C'est simple : notre <strong>sirop d'érable 100% biologique</strong> est unique en son genre. D'ailleurs, son <strong>goût de vanille et de noisette</strong> lui a valu une présence dans le <strong>Top 5 des meilleurs sirops d'érable</strong> du Québec en 2014 et une <strong>médaille d’argent</strong> en 2015, 2016 et 2017.</p><p> </p><p>De plus, l'Érablière Caséal est une <strong>entreprise familiale</strong> à échelle humaine située dans la MRC du Granit, au Québec. Elle se fait un devoir d’employer des techniques de fabrication <strong>écoresponsables</strong> et réalise des partenariats avec des <strong>fournisseurs locaux</strong> pour la confection de produits transformés.</p>" -categories: Proxies\__CG__\App\Entity\Category {#1173 …} -conservation: Proxies\__CG__\App\Entity\Conservation {#1152 …} -Origin: "Québec/Canada" -bestBefore: null -creationDate: DateTime @1574658000 {#1109 : 2019-11-25 00:00:00.0 America/New_York (-05:00) } -nutritionFact: null -newProduct: true -images: Doctrine\ORM\PersistentCollection {#1153 …} -mainImage: Proxies\__CG__\App\Entity\Image {#1174 …} -tags: Doctrine\ORM\PersistentCollection {#1131 …} -ingredients: Doctrine\ORM\PersistentCollection {#1145 …} -storages: Doctrine\ORM\PersistentCollection {#1186 …} -pricings: Doctrine\ORM\PersistentCollection {#1204 …} -certifications: Doctrine\ORM\PersistentCollection {#1217 …} -company: Proxies\__CG__\App\Entity\Company {#1378 …} -taxable: false -maturinUpc: null -codeUPC: null -code1: null -code2: null -code3: null -codeBox: null -alimentsDuQuebec: true -deliveryLocations: Doctrine\ORM\PersistentCollection {#1366 …} -minimumInStorage: null -deliveryMethods: Doctrine\ORM\PersistentCollection {#1343 …} -limitedQuantity: false -alimentsDuQuebecCertification: 2 -DeliveryType: 1 -DeliveryPickup: false -draft: false -deliveryMail: true -locations: Doctrine\ORM\PersistentCollection {#1317 …} -region: Proxies\__CG__\App\Entity\Region {#1288 …} -advices: "<p><strong>Format et durée de conservation</strong></p><p>Offert en format de 60 g, 125 g ou 250 g, le produit se conserve plus d’une année dans un endroit frais et sec. </p>" -recipes: "<p><strong>Suggestions d’utilisation</strong></p><p>Le sucre d’érable remplace agréablement le sucre habituel dans <strong>toutes vos recettes</strong> et même dans votre <strong>café</strong>. Une belle façon de cuisiner davantage à partir des <strong>produits d’ici</strong> et de bénéficier des bienfaits des <strong>antioxydants</strong> contenus dans le sirop d’érable!</p>" -userViewed: Doctrine\ORM\PersistentCollection {#1299 …} -inCarts: Doctrine\ORM\PersistentCollection {#1242 …} -solexId: null -replenishmentItems: Doctrine\ORM\PersistentCollection {#1259 …} -favorites: Doctrine\ORM\PersistentCollection {#1271 …} -listOfIngredients: "<p>Sirop d'érable biologique </p>" -qtyReadyToShip: 1 -expirationDate: null -isConsigned: false -consignedCost: 0.0 -nutritionFactImage: null -isFragile: false -qtyPerUnit: 1 -validatedByDistributor: false -deliveryNote: null -isJustInTime: false -reminderLowQuantitySent: false -hasMultipleProducts: false -hasFreeMaturinShipping: false -deal: null -productsInBundle: Doctrine\ORM\PersistentCollection {#1273 …} -badges: Doctrine\ORM\PersistentCollection {#1395 …} -diets: Doctrine\ORM\PersistentCollection {#1408 …} -discountPricings: Doctrine\ORM\PersistentCollection {#1410 …} -subCategory: null -complementedByGroups: Doctrine\ORM\PersistentCollection {#1424 …} -complementaryGroups: Doctrine\ORM\PersistentCollection {#1426 …} -actionWhenExpired: 0 -isSubscribable: null -subscriptions: Doctrine\ORM\PersistentCollection {#1446 …} -isBoxOfProducts: false -productsInBox: Doctrine\ORM\PersistentCollection {#1460 …} -isOnlySubscribable: null -justInTimeDeliveryDate: null -freeMaturinShippingIfLowerThen: null -isOnlySubscribableToType: null -targetOfReplacementScripts: Doctrine\ORM\PersistentCollection {#1474 …} -quantityWarehouse: 0 -quantityWarehouseReserved: 0 -quantityOnHold: 0 -parentProductId: null -feeWarehousePackingPerUnit: null -feeWarehouseHandlingPerUnit: null -isDisplayedInAssociationOnly: false -isHri: false -puroExclusion: false -containsAlcohol: false -isConsumer: true -productColaborPrice: null -isPrixLaureat: false -cantUseCoupon: false -corporative: null -seasonality: null -seasonalityStart: null -seasonalityEnd: null -quantityMaxProd: null -productDelete: false -orderFrequency: 0 -portionForMeal: 0 } |
| productName | "sucre-d%26%2339%3Berable-fin" |
Request Headers
| Header | Value |
|---|---|
| accept | "*/*" |
| accept-encoding | "gzip, br, zstd, deflate" |
| cookie | "sf_redirect=%7B%22token%22%3A%22f1a80f%22%2C%22route%22%3A%22viewProductInAssociation%22%2C%22method%22%3A%22GET%22%2C%22controller%22%3A%7B%22class%22%3A%22App%5C%5CController%5C%5CProductController%22%2C%22method%22%3A%22viewProductInAssociation%22%2C%22file%22%3A%22%5C%2Fvar%5C%2Fwww%5C%2Fhtml%5C%2FMarkego%5C%2Fsrc%5C%2FController%5C%2FProductController.php%22%2C%22line%22%3A587%7D%2C%22status_code%22%3A307%2C%22status_text%22%3A%22Temporary%20Redirect%22%7D; PHPSESSID=pus1ph72kv8kr1c3ecicq031a0" |
| host | "staging.maturin.ca" |
| referer | "https://staging.maturin.ca/groupe/legrandmarchedequebec/produit/erabliere-caseal/sucre-d%2526%252339%253Berable-fin/1495/" |
| user-agent | "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)" |
| x-php-ob-level | "1" |
Request Content
Request content not available (it was retrieved as a resource).
Response
Response Headers
| Header | Value |
|---|---|
| cache-control | "no-cache, private" |
| content-type | "text/html; charset=UTF-8" |
| date | "Sat, 28 Feb 2026 05:41:45 GMT" |
| location | "/groupe/legrandmarchedequebec/produit/erabliere-caseal/sucre-d%2526%252339%253Berable-fin/1495/" |
| x-debug-token | "c5a0b1" |
Cookies
Request Cookies
| Key | Value |
|---|---|
| PHPSESSID | "pus1ph72kv8kr1c3ecicq031a0" |
| sf_redirect | "{"token":"f1a80f","route":"viewProductInAssociation","method":"GET","controller":{"class":"App\\Controller\\ProductController","method":"viewProductInAssociation","file":"\/var\/www\/html\/Markego\/src\/Controller\/ProductController.php","line":587},"status_code":307,"status_text":"Temporary Redirect"}" |
Response Cookies
No response cookies
Session
Session Metadata
| Key | Value |
|---|---|
| Created | "Sat, 28 Feb 26 00:40:43 -0500" |
| Last used | "Sat, 28 Feb 26 00:41:45 -0500" |
| Lifetime | "31536000" |
Session Attributes
| Attribute | Value |
|---|---|
| showThisAssociationIdOnly-customBrowsing | 4 |
Flashes
Flashes
| Key | Value |
|---|---|
| error | [ "The product you tried to see is not allowed in Le Grand Marché de Québec" "The product you tried to see is not allowed in Le Grand Marché de Québec" "The product you tried to see is not allowed in Le Grand Marché de Québec" "The product you tried to see is not allowed in Le Grand Marché de Québec" "The product you tried to see is not allowed in Le Grand Marché de Québec" "The product you tried to see is not allowed in Le Grand Marché de Québec" "The product you tried to see is not allowed in Le Grand Marché de Québec" "The product you tried to see is not allowed in Le Grand Marché de Québec" "The product you tried to see is not allowed in Le Grand Marché de Québec" "The product you tried to see is not allowed in Le Grand Marché de Québec" "The product you tried to see is not allowed in Le Grand Marché de Québec" "The product you tried to see is not allowed in Le Grand Marché de Québec" "The product you tried to see is not allowed in Le Grand Marché de Québec" "The product you tried to see is not allowed in Le Grand Marché de Québec" "The product you tried to see is not allowed in Le Grand Marché de Québec" "The product you tried to see is not allowed in Le Grand Marché de Québec" "The product you tried to see is not allowed in Le Grand Marché de Québec" "The product you tried to see is not allowed in Le Grand Marché de Québec" "The product you tried to see is not allowed in Le Grand Marché de Québec" "The product you tried to see is not allowed in Le Grand Marché de Québec" "The product you tried to see is not allowed in Le Grand Marché de Québec" "The product you tried to see is not allowed in Le Grand Marché de Québec" "The product you tried to see is not allowed in Le Grand Marché de Québec" "The product you tried to see is not allowed in Le Grand Marché de Québec" "The product you tried to see is not allowed in Le Grand Marché de Québec" "The product you tried to see is not allowed in Le Grand Marché de Québec" "The product you tried to see is not allowed in Le Grand Marché de Québec" "The product you tried to see is not allowed in Le Grand Marché de Québec" "The product you tried to see is not allowed in Le Grand Marché de Québec" "The product you tried to see is not allowed in Le Grand Marché de Québec" "The product you tried to see is not allowed in Le Grand Marché de Québec" "The product you tried to see is not allowed in Le Grand Marché de Québec" "The product you tried to see is not allowed in Le Grand Marché de Québec" "The product you tried to see is not allowed in Le Grand Marché de Québec" "The product you tried to see is not allowed in Le Grand Marché de Québec" "The product you tried to see is not allowed in Le Grand Marché de Québec" "The product you tried to see is not allowed in Le Grand Marché de Québec" "The product you tried to see is not allowed in Le Grand Marché de Québec" "The product you tried to see is not allowed in Le Grand Marché de Québec" "The product you tried to see is not allowed in Le Grand Marché de Québec" "The product you tried to see is not allowed in Le Grand Marché de Québec" "The product you tried to see is not allowed in Le Grand Marché de Québec" "The product you tried to see is not allowed in Le Grand Marché de Québec" "The product you tried to see is not allowed in Le Grand Marché de Québec" "The product you tried to see is not allowed in Le Grand Marché de Québec" "The product you tried to see is not allowed in Le Grand Marché de Québec" "The product you tried to see is not allowed in Le Grand Marché de Québec" "The product you tried to see is not allowed in Le Grand Marché de Québec" "The product you tried to see is not allowed in Le Grand Marché de Québec" "The product you tried to see is not allowed in Le Grand Marché de Québec" "The product you tried to see is not allowed in Le Grand Marché de Québec" "The product you tried to see is not allowed in Le Grand Marché de Québec" "The product you tried to see is not allowed in Le Grand Marché de Québec" "The product you tried to see is not allowed in Le Grand Marché de Québec" "The product you tried to see is not allowed in Le Grand Marché de Québec" "The product you tried to see is not allowed in Le Grand Marché de Québec" "The product you tried to see is not allowed in Le Grand Marché de Québec" "The product you tried to see is not allowed in Le Grand Marché de Québec" "The product you tried to see is not allowed in Le Grand Marché de Québec" "The product you tried to see is not allowed in Le Grand Marché de Québec" "The product you tried to see is not allowed in Le Grand Marché de Québec" "The product you tried to see is not allowed in Le Grand Marché de Québec" "The product you tried to see is not allowed in Le Grand Marché de Québec" "The product you tried to see is not allowed in Le Grand Marché de Québec" "The product you tried to see is not allowed in Le Grand Marché de Québec" "The product you tried to see is not allowed in Le Grand Marché de Québec" "The product you tried to see is not allowed in Le Grand Marché de Québec" "The product you tried to see is not allowed in Le Grand Marché de Québec" "The product you tried to see is not allowed in Le Grand Marché de Québec" "The product you tried to see is not allowed in Le Grand Marché de Québec" "The product you tried to see is not allowed in Le Grand Marché de Québec" "The product you tried to see is not allowed in Le Grand Marché de Québec" "The product you tried to see is not allowed in Le Grand Marché de Québec" "The product you tried to see is not allowed in Le Grand Marché de Québec" "The product you tried to see is not allowed in Le Grand Marché de Québec" "The product you tried to see is not allowed in Le Grand Marché de Québec" "The product you tried to see is not allowed in Le Grand Marché de Québec" "The product you tried to see is not allowed in Le Grand Marché de Québec" "The product you tried to see is not allowed in Le Grand Marché de Québec" "The product you tried to see is not allowed in Le Grand Marché de Québec" "The product you tried to see is not allowed in Le Grand Marché de Québec" "The product you tried to see is not allowed in Le Grand Marché de Québec" "The product you tried to see is not allowed in Le Grand Marché de Québec" "The product you tried to see is not allowed in Le Grand Marché de Québec" "The product you tried to see is not allowed in Le Grand Marché de Québec" "The product you tried to see is not allowed in Le Grand Marché de Québec" "The product you tried to see is not allowed in Le Grand Marché de Québec" "The product you tried to see is not allowed in Le Grand Marché de Québec" "The product you tried to see is not allowed in Le Grand Marché de Québec" "The product you tried to see is not allowed in Le Grand Marché de Québec" "The product you tried to see is not allowed in Le Grand Marché de Québec" "The product you tried to see is not allowed in Le Grand Marché de Québec" "The product you tried to see is not allowed in Le Grand Marché de Québec" "The product you tried to see is not allowed in Le Grand Marché de Québec" "The product you tried to see is not allowed in Le Grand Marché de Québec" "The product you tried to see is not allowed in Le Grand Marché de Québec" "The product you tried to see is not allowed in Le Grand Marché de Québec" "The product you tried to see is not allowed in Le Grand Marché de Québec" "The product you tried to see is not allowed in Le Grand Marché de Québec" "The product you tried to see is not allowed in Le Grand Marché de Québec" "The product you tried to see is not allowed in Le Grand Marché de Québec" "The product you tried to see is not allowed in Le Grand Marché de Québec" "The product you tried to see is not allowed in Le Grand Marché de Québec" "The product you tried to see is not allowed in Le Grand Marché de Québec" "The product you tried to see is not allowed in Le Grand Marché de Québec" "The product you tried to see is not allowed in Le Grand Marché de Québec" ] |
Server Parameters
Server Parameters
Defined in .env
| Key | Value |
|---|---|
| ADMIN_TO_SEND_ADDRESS | "maxime@maturin.ca" |
| APP_DEBUG | "1" |
| APP_ENV | "dev" |
| APP_SECRET | "ece17b137845c6af87737a7b429bf83e" |
| DATABASE_URL | "mysql://dev:adf98hj248r7hdasfSDF23r@127.0.0.1:3306/omelodev" |
| DEV_TO_MAIL_ADDRESS | "maxime@maturin.ca" |
| ELASTICSEARCH_HOST | "127.0.0.1" |
| ELASTICSEARCH_PORT | "9200" |
| ENABLE_TWIG_CACHE | "true" |
| MAILER_FROM | "reply-message@maturin.ca" |
| MAILER_URL | "smtp://mail.maturin.ca:587?encryption=&auth_mode=&username=maxime@maturin.ca&password=y3TE3dK7" |
| SOLEXIS_API_HOST | "https://maturin-dev.solutionextreme.com/api/" |
| SOLEXIS_NEW_API_HOST | "https://maturin-dev.solutionextreme.com/api/" |
| STRIPE_API_KEY | "sk_test_cLLpvDdtubdfD3HTPOK3uEoC" |
| STRIPE_API_PKEY | "pk_test_Hk3TQ3qfUi6YJ5ZTc2jdQB3X" |
Defined as regular env variables
| Key | Value |
|---|---|
| CONTEXT_DOCUMENT_ROOT | "/var/www/html/Markego/public" |
| CONTEXT_PREFIX | "" |
| DOCUMENT_ROOT | "/var/www/html/Markego/public" |
| GATEWAY_INTERFACE | "CGI/1.1" |
| HTTPS | "on" |
| HTTP_ACCEPT | "*/*" |
| HTTP_ACCEPT_ENCODING | "gzip, br, zstd, deflate" |
| HTTP_COOKIE | "sf_redirect=%7B%22token%22%3A%22f1a80f%22%2C%22route%22%3A%22viewProductInAssociation%22%2C%22method%22%3A%22GET%22%2C%22controller%22%3A%7B%22class%22%3A%22App%5C%5CController%5C%5CProductController%22%2C%22method%22%3A%22viewProductInAssociation%22%2C%22file%22%3A%22%5C%2Fvar%5C%2Fwww%5C%2Fhtml%5C%2FMarkego%5C%2Fsrc%5C%2FController%5C%2FProductController.php%22%2C%22line%22%3A587%7D%2C%22status_code%22%3A307%2C%22status_text%22%3A%22Temporary%20Redirect%22%7D; PHPSESSID=pus1ph72kv8kr1c3ecicq031a0" |
| HTTP_HOST | "staging.maturin.ca" |
| HTTP_REFERER | "https://staging.maturin.ca/groupe/legrandmarchedequebec/produit/erabliere-caseal/sucre-d%2526%252339%253Berable-fin/1495/" |
| HTTP_USER_AGENT | "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)" |
| PATH | "/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/snap/bin" |
| PHP_SELF | "/index.php" |
| QUERY_STRING | "url=produit/erabliere-caseal/sucre-d%26%2339%3Berable-fin/1495/&url=produit%2Ferabliere-caseal%2Fsucre-d%26%2339%3Berable-fin%2F1495" |
| REDIRECT_HTTPS | "on" |
| REDIRECT_QUERY_STRING | "url=produit/erabliere-caseal/sucre-d%26%2339%3Berable-fin/1495/&url=produit%2Ferabliere-caseal%2Fsucre-d%26%2339%3Berable-fin%2F1495" |
| REDIRECT_SSL_TLS_SNI | "staging.maturin.ca" |
| REDIRECT_STATUS | "200" |
| REDIRECT_URL | "/produit/erabliere-caseal/sucre-d%26%2339%3Berable-fin/1495/" |
| REMOTE_ADDR | "216.73.216.145" |
| REMOTE_PORT | "4678" |
| REQUEST_METHOD | "GET" |
| REQUEST_SCHEME | "https" |
| REQUEST_TIME | 1772257305 |
| REQUEST_TIME_FLOAT | 1772257305.388 |
| REQUEST_URI | "/produit/erabliere-caseal/sucre-d%2526%252339%253Berable-fin/1495/?url=produit%2Ferabliere-caseal%2Fsucre-d%26%2339%3Berable-fin%2F1495" |
| SCRIPT_FILENAME | "/var/www/html/Markego/public/index.php" |
| SCRIPT_NAME | "/index.php" |
| SERVER_ADDR | "51.79.50.9" |
| SERVER_ADMIN | "webmaster@localhost" |
| SERVER_NAME | "staging.maturin.ca" |
| SERVER_PORT | "443" |
| SERVER_PROTOCOL | "HTTP/1.1" |
| SERVER_SIGNATURE | "<address>Apache/2.4.41 (Ubuntu) Server at staging.maturin.ca Port 443</address>\n" |
| SERVER_SOFTWARE | "Apache/2.4.41 (Ubuntu)" |
| SSL_TLS_SNI | "staging.maturin.ca" |
| SYMFONY_DOTENV_VARS | "APP_ENV,APP_DEBUG,APP_SECRET,DATABASE_URL,MAILER_URL,MAILER_FROM,DEV_TO_MAIL_ADDRESS,ADMIN_TO_SEND_ADDRESS,ELASTICSEARCH_HOST,ELASTICSEARCH_PORT,STRIPE_API_KEY,STRIPE_API_PKEY,SOLEXIS_API_HOST,SOLEXIS_NEW_API_HOST,ENABLE_TWIG_CACHE" |