{"title":"Produits les plus demandés","description":"","products":[{"product_id":"sweat-etudiant-jh001","title":"Sweat à capuche JH001","description":"\u003cp\u003eNotre sweat à capuche simple et stylé est disponible dans plus de 100 couleurs. C'est le meilleur rapport qualité prix que nous pouvons vous proposer pour ce sweat 280g\/m². Fabriqué dans un tissu en coton doux, il est idéal pour la décoration, c’est une pièce que tout amateur de sweat à capuche se doit d’avoir.\u003c\/p\u003e\n\u003cp\u003ePoignets et bord inférieur côtelés. Poche frontale kangourou.  Capuche doublée.\u003c\/p\u003e\n\u003cp\u003e80% Coton ringspun, 20% Polyester.\u003cbr\u003e\u003cmeta charset=\"utf-8\"\u003e\u003c\/p\u003e\n\u003cp class=\"p1\"\u003e\u003cb\u003eLabels : \u003c\/b\u003e\u003cstrong\u003eSEDEX\u003c\/strong\u003e | \u003cstrong\u003eWRAP\u003c\/strong\u003e | \u003cstrong\u003ePeta Approved Vegan\u003c\/strong\u003e\u003c\/p\u003e\n\u003cp class=\"p1\"\u003e\u003cb\u003ePersonnalisation :\u003c\/b\u003e\u003c\/p\u003e\n\u003cp class=\"p1\"\u003eNous offrons des options de personnalisation par impression et\/ou broderie pour rendre votre sweat unique. De plus, nous pouvons héberger votre page de commande sans frais supplémentaires. Notez que le minimum de commande est de 15 produits, avec un délai express de 10 jours(frais supplémentaires) et un délai moyen de 30 jours.\u003c\/p\u003e\n\u003cdiv class=\"stock-checker\"\u003e\n\u003cform id=\"stockForm\"\u003e\n\u003cdiv class=\"form-group\"\u003e\n\u003cinput type=\"hidden\" id=\"color\" name=\"color\"\u003e\n\u003cdiv id=\"selectedColorLabel\" style=\"margin-top: 5px; color: #333; font-size: 14px;\"\u003e\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c\/form\u003e\n\u003cdiv id=\"error\" class=\"error\" style=\"display: none;\"\u003e\u003c\/div\u003e\n\u003cdiv id=\"loading\" class=\"loading\" style=\"display: none;\"\u003eChargement des informations de stock...\u003c\/div\u003e\n\u003cdiv id=\"tableContainer\"\u003e\u003c\/div\u003e\n\u003c\/div\u003e\n\u003cp\u003e \u003c\/p\u003e","brand":"Ma boutique","offers":[{"title":"Black Smoke","offer_id":49862440124755,"sku":null,"price":12.0,"currency_code":"EUR","in_stock":true},{"title":"Oxford Navy","offer_id":51300624367955,"sku":null,"price":12.0,"currency_code":"EUR","in_stock":true},{"title":"Navy blue","offer_id":49828877992275,"sku":"","price":12.0,"currency_code":"EUR","in_stock":true},{"title":"Airforce Blue","offer_id":49862400999763,"sku":null,"price":12.0,"currency_code":"EUR","in_stock":true},{"title":"Ink Blue","offer_id":51300656972115,"sku":null,"price":12.0,"currency_code":"EUR","in_stock":true},{"title":"Royal Blue","offer_id":49862401065299,"sku":null,"price":12.0,"currency_code":"EUR","in_stock":true},{"title":"Bright Royal","offer_id":51300608737619,"sku":null,"price":12.0,"currency_code":"EUR","in_stock":true},{"title":"Deep Sea Blue","offer_id":49862401032531,"sku":null,"price":12.0,"currency_code":"EUR","in_stock":true},{"title":"Sky Blue","offer_id":49862401163603,"sku":null,"price":12.0,"currency_code":"EUR","in_stock":true},{"title":"Hawaiian Blue","offer_id":49862401098067,"sku":null,"price":12.0,"currency_code":"EUR","in_stock":true},{"title":"Turquoise Surf","offer_id":49862401130835,"sku":null,"price":12.0,"currency_code":"EUR","in_stock":true},{"title":"Seafoam","offer_id":51300657004883,"sku":null,"price":12.0,"currency_code":"EUR","in_stock":true},{"title":"Apple Green","offer_id":49862401196371,"sku":null,"price":12.0,"currency_code":"EUR","in_stock":true},{"title":"Pistachio Green","offer_id":51300664607059,"sku":null,"price":12.0,"currency_code":"EUR","in_stock":true},{"title":"Kelly Green","offer_id":51300698718547,"sku":null,"price":12.0,"currency_code":"EUR","in_stock":true},{"title":"Jade","offer_id":51300698653011,"sku":null,"price":12.0,"currency_code":"EUR","in_stock":true},{"title":"Bottle Green","offer_id":49862401229139,"sku":null,"price":12.0,"currency_code":"EUR","in_stock":true},{"title":"Earthy Green","offer_id":51300698685779,"sku":null,"price":12.0,"currency_code":"EUR","in_stock":true},{"title":"Forest Green","offer_id":49862401261907,"sku":null,"price":12.0,"currency_code":"EUR","in_stock":true},{"title":"Charcoal","offer_id":49862440026451,"sku":null,"price":12.0,"currency_code":"EUR","in_stock":true},{"title":"Shark Grey","offer_id":49862439993683,"sku":null,"price":12.0,"currency_code":"EUR","in_stock":true},{"title":"Olive Green","offer_id":49862401294675,"sku":null,"price":12.0,"currency_code":"EUR","in_stock":true},{"title":"Graphite Heather","offer_id":49862439960915,"sku":null,"price":12.0,"currency_code":"EUR","in_stock":true},{"title":"Heather Grey","offer_id":49862439928147,"sku":null,"price":12.0,"currency_code":"EUR","in_stock":true},{"title":"Candyfloss Pink","offer_id":49862440059219,"sku":null,"price":12.0,"currency_code":"EUR","in_stock":true},{"title":"Hot Pink","offer_id":49862440091987,"sku":null,"price":0.0,"currency_code":"EUR","in_stock":true},{"title":"Fire Red","offer_id":49862440223059,"sku":null,"price":0.0,"currency_code":"EUR","in_stock":true},{"title":"Brick Red","offer_id":51300761796947,"sku":null,"price":0.0,"currency_code":"EUR","in_stock":true},{"title":"Red Hot Chilli","offer_id":49862440190291,"sku":null,"price":0.0,"currency_code":"EUR","in_stock":true},{"title":"Burgundy","offer_id":49862440157523,"sku":null,"price":0.0,"currency_code":"EUR","in_stock":true},{"title":"Orange Crush","offer_id":49862440288595,"sku":null,"price":0.0,"currency_code":"EUR","in_stock":true},{"title":"Burnt Orange","offer_id":49862440255827,"sku":null,"price":0.0,"currency_code":"EUR","in_stock":true},{"title":"Digital Lavender","offer_id":51300698751315,"sku":null,"price":0.0,"currency_code":"EUR","in_stock":true},{"title":"Magenta Magic","offer_id":51300713693523,"sku":null,"price":0.0,"currency_code":"EUR","in_stock":true},{"title":"Ultra Violet","offer_id":51300728144211,"sku":null,"price":0.0,"currency_code":"EUR","in_stock":true},{"title":"Majenta Magic","offer_id":51300713759059,"sku":null,"price":0.0,"currency_code":"EUR","in_stock":true},{"title":"Plum","offer_id":51300713726291,"sku":null,"price":0.0,"currency_code":"EUR","in_stock":true},{"title":"Sherbet Lemon","offer_id":51300761829715,"sku":null,"price":0.0,"currency_code":"EUR","in_stock":true},{"title":"Gold","offer_id":51300728176979,"sku":null,"price":0.0,"currency_code":"EUR","in_stock":true},{"title":"Sun Yellow","offer_id":51300761862483,"sku":null,"price":0.0,"currency_code":"EUR","in_stock":true},{"title":"Mustard","offer_id":51300728209747,"sku":null,"price":0.0,"currency_code":"EUR","in_stock":true},{"title":"Nude","offer_id":51300761895251,"sku":null,"price":0.0,"currency_code":"EUR","in_stock":true},{"title":"Natural Stone","offer_id":51300761928019,"sku":null,"price":0.0,"currency_code":"EUR","in_stock":true},{"title":"Vanilla Milkshake","offer_id":49862439895379,"sku":null,"price":0.0,"currency_code":"EUR","in_stock":true},{"title":"Arctic White","offer_id":49862439862611,"sku":null,"price":0.0,"currency_code":"EUR","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0910\/1452\/9363\/files\/4_62517c73-99cc-4f03-96e8-253730a90642.png?v=1732185472"},{"product_id":"jh01j","title":"Sweat à capuche Enfant JH001J","description":"\u003cp\u003eUn haut à capuche audacieux et simple pour les voyages scolaires ou les jours de détente de vos enfants, notre sweat à capuche pour enfant est confortable et constitue une couche supplémentaire parfaite à porter par-dessus un T-shirt.\u003cbr\u003e\u003cmeta charset=\"utf-8\"\u003e\u003c\/p\u003e\n\u003cp class=\"p1\"\u003e\u003cb\u003eLabels : \u003c\/b\u003e\u003cstrong\u003eSEDEX\u003c\/strong\u003e | \u003cstrong\u003eWRAP\u003c\/strong\u003e | \u003cstrong\u003ePeta Approved Vegan\u003c\/strong\u003e\u003c\/p\u003e\n\u003cp class=\"p1\"\u003e\u003cb\u003ePersonnalisation :\u003c\/b\u003e\u003c\/p\u003e\n\u003cp class=\"p1\"\u003eNous offrons des options de personnalisation par impression et\/ou broderie pour rendre votre sweat unique. De plus, nous pouvons héberger votre page de commande sans frais supplémentaires. Notez que le minimum de commande est de 15 produits, avec un délai express de 10 jours(frais supplémentaires) et un délai moyen de 30 jours.\u003clabel\u003e\u003c\/label\u003e\u003c\/p\u003e\n\u003cdiv class=\"stock-checker\"\u003e\n\u003cform id=\"stockForm\"\u003e\n\u003cdiv class=\"form-group\"\u003e\n\u003cdiv id=\"colorSwatches\"\u003e\u003c\/div\u003e\n\u003cinput type=\"hidden\" id=\"color\" name=\"color\"\u003e\n\u003cdiv id=\"selectedColorLabel\" style=\"margin-top: 5px; color: #333; font-size: 14px;\"\u003e\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c\/form\u003e\n\u003cdiv id=\"error\" class=\"error\" style=\"display: none;\"\u003e\u003c\/div\u003e\n\u003cdiv id=\"loading\" class=\"loading\" style=\"display: none;\"\u003eChargement des informations de stock...\u003c\/div\u003e\n\u003cdiv id=\"results\" style=\"display: none;\"\u003e\n\u003cdiv id=\"summary\" class=\"results-summary\"\u003e\u003c\/div\u003e\n\u003cdiv id=\"tableContainer\"\u003e\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003cp\u003e \u003c\/p\u003e","brand":"AWDis Just Hoods","offers":[{"title":"Deep Black","offer_id":50232381931859,"sku":null,"price":0.0,"currency_code":"EUR","in_stock":true},{"title":"Jet Black","offer_id":50232382194003,"sku":null,"price":0.0,"currency_code":"EUR","in_stock":true},{"title":"New French Navy","offer_id":50232382292307,"sku":null,"price":0.0,"currency_code":"EUR","in_stock":true},{"title":"Oxford Navy","offer_id":50232382357843,"sku":null,"price":0.0,"currency_code":"EUR","in_stock":true},{"title":"Airforce Blue","offer_id":50232381669715,"sku":null,"price":0.0,"currency_code":"EUR","in_stock":true},{"title":"Royal Blue","offer_id":50232382423379,"sku":null,"price":0.0,"currency_code":"EUR","in_stock":true},{"title":"Sapphire Blue","offer_id":50232382456147,"sku":null,"price":0.0,"currency_code":"EUR","in_stock":true},{"title":"Sky Blue","offer_id":50232382488915,"sku":null,"price":0.0,"currency_code":"EUR","in_stock":true},{"title":"Hawaiian Blue","offer_id":50232382062931,"sku":null,"price":0.0,"currency_code":"EUR","in_stock":true},{"title":"Jade","offer_id":50232382161235,"sku":null,"price":0.0,"currency_code":"EUR","in_stock":true},{"title":"Lime Green","offer_id":50232382259539,"sku":null,"price":0.0,"currency_code":"EUR","in_stock":true},{"title":"Kelly Green","offer_id":50232382226771,"sku":null,"price":0.0,"currency_code":"EUR","in_stock":true},{"title":"Bottle Green","offer_id":50232381833555,"sku":null,"price":0.0,"currency_code":"EUR","in_stock":true},{"title":"Forest Green","offer_id":50232381997395,"sku":null,"price":0.0,"currency_code":"EUR","in_stock":true},{"title":"Hot Pink","offer_id":50232382128467,"sku":null,"price":0.0,"currency_code":"EUR","in_stock":true},{"title":"Baby Pink","offer_id":50232381800787,"sku":null,"price":0.0,"currency_code":"EUR","in_stock":true},{"title":"Candyfloss Pink","offer_id":50232381899091,"sku":null,"price":0.0,"currency_code":"EUR","in_stock":true},{"title":"Dusty Pink","offer_id":50232381964627,"sku":null,"price":0.0,"currency_code":"EUR","in_stock":true},{"title":"Burgundy","offer_id":50232381866323,"sku":null,"price":0.0,"currency_code":"EUR","in_stock":true},{"title":"Fire Red","offer_id":50232382030163,"sku":null,"price":0.0,"currency_code":"EUR","in_stock":true},{"title":"Orange Crush","offer_id":50232382325075,"sku":null,"price":0.0,"currency_code":"EUR","in_stock":true},{"title":"Majenta Magic","offer_id":50232382390611,"sku":null,"price":0.0,"currency_code":"EUR","in_stock":true},{"title":"Sun Yellow","offer_id":50232382521683,"sku":null,"price":0.0,"currency_code":"EUR","in_stock":true},{"title":"Ash","offer_id":50232381702483,"sku":null,"price":0.0,"currency_code":"EUR","in_stock":true},{"title":"Heather Grey","offer_id":50232382095699,"sku":null,"price":0.0,"currency_code":"EUR","in_stock":true},{"title":"Arctic White","offer_id":50232381768019,"sku":null,"price":0.0,"currency_code":"EUR","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0910\/1452\/9363\/files\/JH01J_RTLS00_2025.jpg?v=1737380510"},{"product_id":"jh050","title":"Sweat-shirt zippé JH050","description":"\u003cp\u003eAjoutez une touche de couleur avec ce haut à capuche à la coupe classique qui comporte une fermeture éclair frontale. Il est fabriqué dans un coton doux, pour un look cool et détendu.\u003cbr\u003eZip principal recouvert dans la continuité du tissu\u003cbr\u003eDécorations en surpiqûres doubles\u003cbr\u003e80% Ringspun Coton, 20% Polyester - 280 g\/m²\u003cbr\u003eLavage en machine à 30°. Ne pas blanchir. Séchage en machine à basse température. Repassage à faible température. Ne pas nettoyer à sec\u003cbr\u003eLabels : SEDEX|WRAP|Peta Approved Vegan\u003c\/p\u003e\n\u003cdiv class=\"stock-checker\"\u003e\n\u003cform id=\"stockForm\"\u003e\n\u003cdiv class=\"form-group\"\u003e\n\u003cdiv id=\"colorSwatches\"\u003e\u003c\/div\u003e\n\u003cinput name=\"color\" id=\"color\" type=\"hidden\"\u003e\n\u003cdiv style=\"margin-top: 5px; color: #333; font-size: 14px;\" id=\"selectedColorLabel\"\u003e\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c\/form\u003e\n\u003cdiv style=\"display: none;\" class=\"error\" id=\"error\"\u003e\u003c\/div\u003e\n\u003cdiv style=\"display: none;\" class=\"loading\" id=\"loading\"\u003eChargement des informations de stock...\u003c\/div\u003e\n\u003cdiv style=\"display: none;\" id=\"results\"\u003e\n\u003cdiv class=\"results-summary\" id=\"summary\"\u003e\u003c\/div\u003e\n\u003cdiv id=\"tableContainer\"\u003e\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003cp\u003e \u003c\/p\u003e            ","brand":"AWDis Just Hoods","offers":[{"title":"Deep Black","offer_id":50232408179027,"sku":null,"price":0.0,"currency_code":"EUR","in_stock":true},{"title":"Jet Black","offer_id":50232408441171,"sku":null,"price":0.0,"currency_code":"EUR","in_stock":true},{"title":"Black Smoke","offer_id":50232408080723,"sku":null,"price":0.0,"currency_code":"EUR","in_stock":true},{"title":"New French Navy","offer_id":50232408506707,"sku":null,"price":0.0,"currency_code":"EUR","in_stock":true},{"title":"Oxford Navy","offer_id":50232408539475,"sku":null,"price":0.0,"currency_code":"EUR","in_stock":true},{"title":"Royal Blue","offer_id":50232408637779,"sku":null,"price":0.0,"currency_code":"EUR","in_stock":true},{"title":"Sapphire Blue","offer_id":50232408670547,"sku":null,"price":0.0,"currency_code":"EUR","in_stock":true},{"title":"Hawaiian Blue","offer_id":50232408342867,"sku":null,"price":0.0,"currency_code":"EUR","in_stock":true},{"title":"Dusty Green","offer_id":51300965810515,"sku":null,"price":0.0,"currency_code":"EUR","in_stock":true},{"title":"Kelly Green","offer_id":50232408473939,"sku":null,"price":0.0,"currency_code":"EUR","in_stock":true},{"title":"Bottle Green","offer_id":50232408047955,"sku":null,"price":0.0,"currency_code":"EUR","in_stock":true},{"title":"Forest Green","offer_id":50232408277331,"sku":null,"price":0.0,"currency_code":"EUR","in_stock":true},{"title":"Charcoal","offer_id":50232408146259,"sku":null,"price":0.0,"currency_code":"EUR","in_stock":true},{"title":"Burgundy","offer_id":50232408113491,"sku":null,"price":0.0,"currency_code":"EUR","in_stock":true},{"title":"Fire Red","offer_id":50232408310099,"sku":null,"price":0.0,"currency_code":"EUR","in_stock":true},{"title":"Dusty Pink","offer_id":50232408244563,"sku":null,"price":0.0,"currency_code":"EUR","in_stock":true},{"title":"Hot Pink","offer_id":50232408408403,"sku":null,"price":0.0,"currency_code":"EUR","in_stock":true},{"title":"Digital Lavender","offer_id":51300965843283,"sku":null,"price":0.0,"currency_code":"EUR","in_stock":true},{"title":"Majenta Magic","offer_id":50232408605011,"sku":null,"price":0.0,"currency_code":"EUR","in_stock":true},{"title":"Heather Grey","offer_id":50232408375635,"sku":null,"price":0.0,"currency_code":"EUR","in_stock":true},{"title":"Grey Steel","offer_id":50232408703315,"sku":null,"price":0.0,"currency_code":"EUR","in_stock":true},{"title":"Storm Grey","offer_id":50232408736083,"sku":null,"price":0.0,"currency_code":"EUR","in_stock":true},{"title":"Sun Yellow","offer_id":50232408768851,"sku":null,"price":0.0,"currency_code":"EUR","in_stock":true},{"title":"Desert Sand","offer_id":50232408211795,"sku":null,"price":0.0,"currency_code":"EUR","in_stock":true},{"title":"Ash","offer_id":50232407982419,"sku":null,"price":0.0,"currency_code":"EUR","in_stock":true},{"title":"Arctic White","offer_id":50232408015187,"sku":null,"price":0.0,"currency_code":"EUR","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0910\/1452\/9363\/files\/JH050_RTLS00_2025.jpg?v=1737380666"},{"product_id":"sweat-a-capuche-zip-enfant-jh050j","title":"Sweat à capuche ZIP Enfant JH050J","description":"\u003cbody\u003e\n\u003cp\u003eUn haut à capuche audacieux et simple pour les voyages scolaires ou les jours de détente de vos enfants, notre sweat à capuche pour enfant est confortable et constitue une couche supplémentaire parfaite à porter par-dessus un T-shirt.\u003cbr\u003e\u003c\/p\u003e\n\u003cp class=\"p1\"\u003e\u003cb\u003eLabels : \u003c\/b\u003e\u003cstrong\u003eSEDEX\u003c\/strong\u003e | \u003cstrong\u003eWRAP\u003c\/strong\u003e | \u003cstrong\u003ePeta Approved Vegan\u003c\/strong\u003e\u003c\/p\u003e\n\u003cp class=\"p1\"\u003e\u003cb\u003ePersonnalisation :\u003c\/b\u003e\u003c\/p\u003e\n\u003cp class=\"p1\"\u003eNous offrons des options de personnalisation par impression et\/ou broderie pour rendre votre sweat unique. De plus, nous pouvons héberger votre page de commande sans frais supplémentaires. Notez que le minimum de commande est de 15 produits, avec un délai express de 10 jours(frais supplémentaires) et un délai moyen de 30 jours.\u003c\/p\u003e\n\n\n\n\n  \u003cmeta charset=\"UTF-8\"\u003e\n  \u003cmeta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\"\u003e\n  \u003ctitle\u003eVérificateur de Stock\u003c\/title\u003e\n  \u003cstyle\u003e\n    .stock-checker {\n      font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;\n      max-width: 600px;\n      margin: 20px auto;\n      padding: 20px;\n      border: 1px solid #e1e5e9;\n      border-radius: 8px;\n      background: #fff;\n      box-shadow: 0 2px 4px rgba(0,0,0,0.1);\n      overflow: visible !important;\n    }\n\n    .stock-checker h3 {\n      margin: 0 0 20px 0;\n      color: #333;\n      font-size: 18px;\n      font-weight: 600;\n    }\n\n    .form-group {\n      margin-bottom: 15px;\n    }\n\n    .form-group label {\n      display: block;\n      margin-bottom: 5px;\n      font-weight: 500;\n      color: #555;\n      font-size: 14px;\n    }\n\n    .form-group input {\n      width: 100%;\n      padding: 10px;\n      border: 1px solid #ddd;\n      border-radius: 4px;\n      font-size: 14px;\n      box-sizing: border-box;\n    }\n\n    .form-group input:focus {\n      outline: none;\n      border-color: #007cba;\n      box-shadow: 0 0 0 2px rgba(0,124,186,0.2);\n    }\n\n    .search-btn {\n      background: #007cba;\n      color: white;\n      border: none;\n      padding: 12px 24px;\n      border-radius: 4px;\n      cursor: pointer;\n      font-size: 14px;\n      font-weight: 500;\n      width: 100%;\n      transition: background-color 0.2s;\n    }\n\n    .search-btn:hover {\n      background: #005a87;\n    }\n\n    .search-btn:disabled {\n      background: #ccc;\n      cursor: not-allowed;\n    }\n\n    .error {\n      color: #d63638;\n      background: #fef7f1;\n      padding: 10px;\n      border-radius: 4px;\n      margin: 10px 0;\n      font-size: 14px;\n    }\n\n    .results-summary {\n      background: #f8f9fa;\n      padding: 15px;\n      border-radius: 4px;\n      margin: 15px 0;\n      font-size: 14px;\n    }\n\n    .results-summary div {\n      margin-bottom: 8px;\n    }\n\n    .results-summary strong {\n      color: #333;\n    }\n\n    .stock-table {\n      width: 100%;\n      border-collapse: collapse;\n      margin-top: 15px;\n      font-size: 13px;\n      overflow-x: auto;\n      display: block;\n      max-width: 100%;\n    }\n\n    .stock-table th, .stock-table td {\n      min-width: 36px;\n      max-width: 70px;\n      word-break: break-all;\n      text-align: center;\n      white-space: nowrap;\n      font-size: 12px;\n    }\n\n    .stock-table td {\n      padding: 6px;\n      border-bottom: 1px solid #dee2e6;\n      color: #555;\n      background: #fff;\n      font-size: 12px;\n    }\n\n    .stock-table th {\n      background: #f8f9fa;\n      padding: 8px 6px;\n      text-align: center;\n      border-bottom: 2px solid #dee2e6;\n      font-weight: 600;\n      color: #333;\n      font-size: 12px;\n    }\n\n    .loading {\n      text-align: center;\n      padding: 20px;\n      color: #666;\n    }\n\n    .no-results {\n      text-align: center;\n      padding: 20px;\n      color: #666;\n      font-style: italic;\n    }\n\n    #colorSwatches {\n      display: flex !important;\n      flex-wrap: wrap !important;\n      gap: 10px !important;\n      margin-bottom: 10px !important;\n      max-width: 100% !important;\n      justify-content: flex-start !important;\n      min-width: 0 !important;\n      min-height: 40px !important;\n      background: #fff !important;\n      position: relative !important;\n      z-index: 10 !important;\n    }\n\n    .color-swatch {\n      flex: 0 0 32px !important;\n      width: 32px !important;\n      height: 32px !important;\n      border-radius: 50% !important;\n      border: 2px solid #ccc !important;\n      cursor: pointer !important;\n      box-sizing: border-box !important;\n      transition: border 0.2s !important;\n      display: inline-block !important;\n      background-clip: padding-box !important;\n    }\n\n    @media (max-width: 768px) {\n      .stock-checker {\n        margin: 10px;\n        padding: 15px;\n      }\n\n      .stock-table {\n        font-size: 11px;\n        overflow-x: auto;\n        display: block;\n      }\n\n      .stock-table th, .stock-table td {\n        min-width: 28px;\n        font-size: 10px;\n        padding: 4px 1px;\n      }\n    }\n  \u003c\/style\u003e\n\n\n\u003cdiv class=\"stock-checker\"\u003e\n  \u003ch3\u003eVérifier la Disponibilité du Stock\u003c\/h3\u003e\n\n  \u003cform id=\"stockForm\"\u003e\n    \u003cinput type=\"hidden\" id=\"style\" name=\"style\" value=\"AWJH050J\"\u003e\n    \u003cdiv class=\"form-group\"\u003e\n      \u003clabel\u003eCouleur :\u003c\/label\u003e\n      \u003cdiv id=\"colorSwatches\"\u003e\u003c\/div\u003e\n      \u003cinput type=\"hidden\" id=\"color\" name=\"color\"\u003e\n      \u003cdiv id=\"selectedColorLabel\" style=\"margin-top: 5px; color: #333; font-size: 14px;\"\u003e\u003c\/div\u003e\n    \u003c\/div\u003e\n  \u003c\/form\u003e\n\n  \u003cdiv id=\"error\" class=\"error\" style=\"display: none;\"\u003e\u003c\/div\u003e\n\n  \u003cdiv id=\"loading\" class=\"loading\" style=\"display: none;\"\u003e\n    Chargement des informations de stock...\n  \u003c\/div\u003e\n\n  \u003cdiv id=\"results\" style=\"display: none;\"\u003e\n    \u003cdiv id=\"summary\" class=\"results-summary\"\u003e\u003c\/div\u003e\n    \u003cdiv id=\"tableContainer\"\u003e\u003c\/div\u003e\n  \u003c\/div\u003e\n\u003c\/div\u003e\n\n\u003cscript\u003e\n  \/\/ API URL for the deployed backend\n  const API_BASE_URL = 'https:\/\/backend-utteam-stock-api-a97e04b86ff6.herokuapp.com\/api\/product';\n\n  \/\/ Color swatch data (name and hex)\n  const COLORS = [\n    { display: \"Hot Pink\", value: \"Hot Pink\", hex: \"#ff69b4\" },\n    { display: \"Oxford Navy\", value: \"Oxford Navy\", hex: \"#1a234e\" },\n    { display: \"Hawaiian Blue\", value: \"Hawaiian Blue\", hex: \"#00bfff\" },\n    { display: \"Fire Red\", value: \"Fire Red\", hex: \"#ff0000\" },\n    { display: \"Sun Yellow\", value: \"Sun Yellow\", hex: \"#ffd700\" },\n    { display: \"Royal Blue\", value: \"Royal Blue\", hex: \"#4169e1\" },\n    { display: \"Arctic White\", value: \"Arctic White\", hex: \"#f8f8f8\" },\n    { display: \"Kelly Green\", value: \"Kelly Green\", hex: \"#4cbb17\" },\n    { display: \"Digital Lavender\", value: \"Digital Lavender\", hex: \"#9b8fc7\" },\n    { display: \"Purple\", value: \"Purple\", hex: \"#800080\" },\n    { display: \"Desert Sand\", value: \"Desert Sand\", hex: \"#edc9af\" },\n    { display: \"Burgundy\", value: \"Burgundy\", hex: \"#800020\" },\n    { display: \"Sapphire Blue\", value: \"Sapphire Blue\", hex: \"#0067a5\" },\n    { display: \"Deep Black\", value: \"Deep Black\", hex: \"#191919\" },\n    { display: \"Heather Grey\", value: \"Heather Grey\", hex: \"#b2b2b2\" },\n    { display: \"Jet Black\", value: \"Jet Black\", hex: \"#333333\" },\n    { display: \"Baby Pink\", value: \"Baby Pink\", hex: \"#ffc0cb\" },\n    { display: \"New French Navy\", value: \"New French Navy\", hex: \"#002644\" }\n];\n\n\n\n  \/\/ Render color swatches\n  function renderColorSwatches() {\n    const swatchContainer = document.getElementById('colorSwatches');\n    swatchContainer.innerHTML = '';\n    COLORS.forEach((color, idx) =\u003e {\n      const swatch = document.createElement('div');\n      swatch.className = 'color-swatch';\n      swatch.title = color.display;\n      swatch.style.background = color.hex;\n      swatch.style.width = '32px';\n      swatch.style.height = '32px';\n      swatch.style.borderRadius = '50%';\n      swatch.style.border = '2px solid #ccc';\n      swatch.style.cursor = 'pointer';\n      swatch.style.boxSizing = 'border-box';\n      swatch.style.transition = 'border 0.2s';\n      swatch.setAttribute('data-color', color.value);\n      swatch.addEventListener('click', function() {\n        selectColor(color.value, color.display, idx);\n      });\n      swatchContainer.appendChild(swatch);\n    });\n  }\n\n  \/\/ Relance la requête automatiquement à chaque sélection de couleur, avec intervalle de 5s\n  let canSend = true;\n  function selectColor(colorValue, colorDisplay, idx) {\n    const swatches = document.querySelectorAll('.color-swatch');\n    swatches.forEach((swatch, i) =\u003e {\n      swatch.style.border = (i === idx) ? '3px solid #222' : '2px solid #ccc';\n    });\n    document.getElementById('color').value = colorValue;\n    document.getElementById('selectedColorLabel').textContent = colorValue ? `Couleur sélectionnée : ${colorDisplay}` : '';\n    if (canSend) {\n      submitStockForm();\n    }\n  }\n\n  function setSwatchesEnabled(enabled) {\n    const swatches = document.querySelectorAll('.color-swatch');\n    swatches.forEach(swatch =\u003e {\n      swatch.style.pointerEvents = enabled ? 'auto' : 'none';\n      swatch.style.opacity = enabled ? '1' : '0.5';\n    });\n  }\n\n  function submitStockForm() {\n    const color = document.getElementById('color').value;\n    if (!color) {\n      showError('Veuillez sélectionner une couleur');\n      return;\n    }\n\n    canSend = false;\n    setSwatchesEnabled(false);\n    showLoading();\n\n    const url = `${API_BASE_URL}?table=utteam-stock\u0026attribute=color\u0026value=${encodeURIComponent(color)}`;\n\n    fetch(url, {\n      method: 'GET',\n      headers: { 'Content-Type': 'application\/json' }\n    })\n            .then(response =\u003e {\n              if (!response.ok) throw new Error('Échec de la récupération des données de stock');\n              return response.json();\n            })\n            .then(data =\u003e {\n              \/\/ Filtrer pour ne garder que AWJH050J\n              const filteredData = data.filter(item =\u003e item.style === 'AWJH050J');\n              displayResults(filteredData);\n            })\n            .catch(error =\u003e {\n              console.error('Erreur:', error);\n              showError('Erreur lors de la récupération des données');\n            })\n            .finally(() =\u003e {\n              hideLoading();\n              setSwatchesEnabled(true);\n              canSend = true;\n            });\n  }\n\n  document.addEventListener('DOMContentLoaded', function() {\n    renderColorSwatches();\n    \/\/ Sélectionne la première couleur réelle par défaut\n    selectColor(COLORS[0].value, COLORS[0].display, 0);\n  });\n\n  function groupCount(arr, key) {\n    return arr.reduce((acc, item) =\u003e {\n      const k = item[key];\n      if (!k) return acc;\n      acc[k] = (acc[k] || 0) + 1;\n      return acc;\n    }, {});\n  }\n\n  function sumField(arr, key) {\n    return arr.reduce((sum, item) =\u003e sum + (Number(item[key]) || 0), 0);\n  }\n\n  function formatPrice(price) {\n    if (isNaN(Number(price))) return 'N\/A';\n    return `€${Number(price).toFixed(2)}`;\n  }\n\n  function showError(message) {\n    const errorDiv = document.getElementById('error');\n    errorDiv.textContent = message;\n    errorDiv.style.display = 'block';\n  }\n\n  function hideError() {\n    document.getElementById('error').style.display = 'none';\n  }\n\n  function showLoading() {\n    document.getElementById('loading').style.display = 'block';\n    document.getElementById('results').style.display = 'none';\n    hideError();\n  }\n\n  function hideLoading() {\n    document.getElementById('loading').style.display = 'none';\n  }\n\n  function displayResults(data) {\n    const resultsDiv = document.getElementById('results');\n    const summaryDiv = document.getElementById('summary');\n    const tableContainer = document.getElementById('tableContainer');\n\n    if (!data || data.length === 0) {\n      tableContainer.innerHTML = '\u003cdiv class=\"no-results\"\u003eAucun stock trouvé pour les critères spécifiés.\u003c\/div\u003e';\n      resultsDiv.style.display = 'block';\n      return;\n    }\n\n    \/\/ Grouper par style\n    const groupedByStyle = {};\n    data.forEach(item =\u003e {\n      if (!groupedByStyle[item.style]) {\n        groupedByStyle[item.style] = [];\n      }\n      groupedByStyle[item.style].push(item);\n    });\n\n    \/\/ Créer le tableau avec une ligne par style\n    tableContainer.innerHTML = '';\n\n    const table = document.createElement('table');\n    table.className = 'stock-table';\n\n    \/\/ Obtenir toutes les tailles uniques pour les en-têtes\n    const allSizes = new Set();\n    data.forEach(item =\u003e {\n      if (item.size) allSizes.add(item.size);\n    });\n\n    \/\/ Ordre logique des tailles\n    const sizeOrder = [\"XS\", \"S\", \"M\", \"L\", \"XL\", \"XXL\", \"2XL\", \"3XL\", \"4XL\", \"5XL\"];\n    const sortedSizes = Array.from(allSizes).sort((a, b) =\u003e {\n      const ia = sizeOrder.indexOf(a);\n      const ib = sizeOrder.indexOf(b);\n      if (ia === -1 \u0026\u0026 ib === -1) return a.localeCompare(b);\n      if (ia === -1) return 1;\n      if (ib === -1) return -1;\n      return ia - ib;\n    });\n\n    \/\/ Créer l'en-tête du tableau\n    let tableHTML = `\n                \u003cthead\u003e\n                    \u003ctr\u003e\n                        ${sortedSizes.map(size =\u003e `\u003cth\u003e${size}\u003c\/th\u003e`).join('')}\n                    \u003c\/tr\u003e\n                \u003c\/thead\u003e\n                \u003ctbody\u003e\n            `;\n\n    \/\/ Créer une ligne pour chaque style\n    Object.keys(groupedByStyle).forEach(style =\u003e {\n      const styleItems = groupedByStyle[style];\n      const sizeStock = {};\n      \/\/ Organiser les stocks par taille pour ce style\n      styleItems.forEach(item =\u003e {\n        if (item.size) {\n          sizeStock[item.size] = item.uttstock || 0;\n        }\n      });\n      tableHTML += `\n                    \u003ctr\u003e\n                        ${sortedSizes.map(size =\u003e `\u003ctd\u003e${sizeStock[size] || '-'}\u003c\/td\u003e`).join('')}\n                    \u003c\/tr\u003e\n                `;\n    });\n\n    tableHTML += '\u003c\/tbody\u003e';\n    table.innerHTML = tableHTML;\n    tableContainer.appendChild(table);\n    resultsDiv.style.display = 'block';\n  }\n\u003c\/script\u003e\n\n \n\u003c\/body\u003e","brand":"AWDis Just Hoods","offers":[{"title":"Deep Black","offer_id":51301131452755,"sku":null,"price":0.0,"currency_code":"EUR","in_stock":true},{"title":"Jet Black","offer_id":51301131485523,"sku":null,"price":0.0,"currency_code":"EUR","in_stock":true},{"title":"New French Navy","offer_id":51301131518291,"sku":null,"price":0.0,"currency_code":"EUR","in_stock":true},{"title":"Oxford Navy","offer_id":51301131551059,"sku":null,"price":0.0,"currency_code":"EUR","in_stock":true},{"title":"Royal Blue","offer_id":51301131616595,"sku":null,"price":0.0,"currency_code":"EUR","in_stock":true},{"title":"Sapphire Blue","offer_id":51301131649363,"sku":null,"price":0.0,"currency_code":"EUR","in_stock":true},{"title":"Hawaiian Blue","offer_id":51301131714899,"sku":null,"price":0.0,"currency_code":"EUR","in_stock":true},{"title":"Kelly Green","offer_id":51301131813203,"sku":null,"price":0.0,"currency_code":"EUR","in_stock":true},{"title":"Hot Pink","offer_id":51301131911507,"sku":null,"price":0.0,"currency_code":"EUR","in_stock":true},{"title":"Baby Pink","offer_id":51301131944275,"sku":null,"price":0.0,"currency_code":"EUR","in_stock":true},{"title":"Burgundy","offer_id":51301132042579,"sku":null,"price":0.0,"currency_code":"EUR","in_stock":true},{"title":"Fire Red","offer_id":51301132075347,"sku":null,"price":0.0,"currency_code":"EUR","in_stock":true},{"title":"Majenta Magic","offer_id":51301132140883,"sku":null,"price":0.0,"currency_code":"EUR","in_stock":true},{"title":"Sun Yellow","offer_id":51301132173651,"sku":null,"price":0.0,"currency_code":"EUR","in_stock":true},{"title":"Heather Grey","offer_id":51301132239187,"sku":null,"price":0.0,"currency_code":"EUR","in_stock":true},{"title":"Arctic White","offer_id":51301132271955,"sku":null,"price":0.0,"currency_code":"EUR","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0910\/1452\/9363\/files\/jh50j_ls01_2025.jpg?v=1751288586"}],"url":"https:\/\/www.vistarse.com\/collections\/vedette.oembed","provider":"Vista - textiles sur mesure","version":"1.0","type":"link"}