[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"theme-db":3,"$fE5QOxf2dl2DcmUODNaz5Yf6lVVwBFYDT4i8Z1e35_KM":22,"$fKnz2vuX4bZz1LbUTiuFsvSZ3e07l5_5fqNYp4Tzdhi8":61,"megamenu":142,"footer-db":198,"header-db":216,"$fpnxAUsCWyiSTNWbJlLKdvNURz-Z3dE8LTCSgRZS3O0g":227},{"theme":4},{"colors":5,"typography":13,"ui":17,"defaultColorMode":21},{"primary":6,"secondary":7,"background":8,"foreground":9,"muted":10,"headerBg":11,"footerBg":12,"topBarBg":9,"topBarText":11},"#4F46E5","#0D9488","#F9FAFB","#111827","#6B7280","#ffffff","#020617",{"fontFamily":14,"fontUrl":15,"baseFontSize":16},"Inter, system-ui, sans-serif","https:\u002F\u002Ffonts.googleapis.com\u002Fcss2?family=Inter:wght@400;500;600;700&family=Playfair+Display:ital,wght@0,400;0,700;0,800;0,900;1,400;1,700&display=swap","16px",{"borderRadius":18,"contentWidth":19,"shadow":20},"lg","7xl",true,"light",{"title":23,"slug":24,"metaDescription":25,"category":26,"tags":27,"difficulty":34,"psVersions":35,"content":39,"faq":40,"tldr":56,"readingTime":57,"generatedAt":58,"publishDate":58,"relatedArticles":59,"sourceCategory":60},"Créer un site de réservation hôtelière avec PrestaShop : guide complet","site-reservation-hotel-prestashop-declinaisons-calendrier","Comment transformer PrestaShop en système de réservation hôtelière avec déclinaisons-dates, calendrier et panier Ajax. Guide technique complet.","configuration",[28,29,30,31,32,33],"hotel","réservation","déclinaisons","calendrier","ajax","e-commerce atypique","avance",[36,37,38],"1.6","1.7","8.x","\u003Ch2>Pourquoi utiliser PrestaShop pour un site hôtelier ?\u003C\u002Fh2>\n\u003Cp>Dans l'univers de l'hôtellerie en ligne, les solutions spécialisées comme Cloudbeds ou Amenitiz dominent le marché. Pourtant, PrestaShop offre une alternative crédible pour les établissements indépendants qui souhaitent garder la main sur leur plateforme de réservation sans dépendre d'un SaaS propriétaire.\u003C\u002Fp>\n\u003Cp>L'idée centrale repose sur un détournement intelligent du système de déclinaisons : chaque chambre devient un \u003Cstrong>produit\u003C\u002Fstrong>, et chaque date disponible devient une \u003Cstrong>déclinaison\u003C\u002Fstrong> de ce produit. Le visiteur sélectionne ses dates comme il choisirait une taille ou une couleur, et le panier gère naturellement les réservations multiples.\u003C\u002Fp>\n\u003Cp>Cette approche présente plusieurs avantages concrets :\u003C\u002Fp>\n\u003Cul>\n\u003Cli>**Coût maîtrisé** : pas besoin d'investir dans un module hôtelier dédié à plusieurs centaines d'euros\u003C\u002Fli>\n\u003Cli>**Liberté totale** : le marchand contrôle son code, ses données et son hébergement\u003C\u002Fli>\n\u003Cli>**Import CSV** : les tarifs par date se gèrent massivement via l'import\u002Fexport natif de PrestaShop\u003C\u002Fli>\n\u003Cli>**Écosystème PrestaShop** : paiement, factures, emails transactionnels, multilingue — tout est déjà là\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch2>Architecture technique : chambres = produits, dates = déclinaisons\u003C\u002Fh2>\n\u003Ch3>Le principe fondamental\u003C\u002Fh3>\n\u003Cp>Chaque chambre d'hôtel est modélisée comme un produit PrestaShop classique. Les dates de disponibilité sont créées sous forme de \u003Cstrong>combinaisons de déclinaisons\u003C\u002Fstrong> (attributs). Concrètement :\u003C\u002Fp>\n\u003Cul>\n\u003Cli>**Groupe d'attributs** : « Date de séjour » (type sélecteur ou boutons radio)\u003C\u002Fli>\n\u003Cli>**Attributs** : une entrée par date (ex. « 15 mars 2026 », « 16 mars 2026 », etc.)\u003C\u002Fli>\n\u003Cli>**Combinaison** : chaque date associée à la chambre avec son prix spécifique\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>Pour une année complète, cela représente \u003Cstrong>365 combinaisons par chambre\u003C\u002Fstrong>. C'est volumineux, mais PrestaShop gère correctement ce volume si l'on respecte certaines optimisations.\u003C\u002Fp>\n\u003Ch3>Création des déclinaisons par import CSV\u003C\u002Fh3>\n\u003Cp>Gérer 365 combinaisons manuellement serait impraticable. L'import CSV natif de PrestaShop est ici indispensable. Voici un exemple de structure CSV pour l'import des combinaisons :\u003C\u002Fp>\n\u003Cpre>\u003Ccode class=\"language-csv\">\nProduct ID;Attribute (Name:Type:Position);Value (Value:Position);Supplier reference;Reference;EAN13;UPC;MPN;Wholesale price;Impact on price;Ecotax;Quantity;Minimal quantity;Low stock level;Impact on weight;Default (0\u002F1);Available date;Image URL\n42;Date de séjour:select:0;2026-03-15:0;;;;;;;85.00;;10;1;0;0;1;;\n42;Date de séjour:select:0;2026-03-16:1;;;;;;;85.00;;10;1;0;0;0;;\n42;Date de séjour:select:0;2026-03-17:2;;;;;;;95.00;;10;1;0;0;0;;\n42;Date de séjour:select:0;2026-07-15:122;;;;;;;145.00;;10;1;0;0;0;;\n\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Cp>Cette méthode permet à l'hôtelier d'ajuster ses prix par jour directement dans un tableur — haute saison, week-ends, événements locaux — puis d'importer le tout en une seule opération.\u003C\u002Fp>\n\u003Cblockquote>\u003Cp>\u003Cstrong>Conseil PrestaShop 8.x\u003C\u002Fstrong> : L'import CSV a été amélioré avec un meilleur retour d'erreurs. Utilisez le format UTF-8 sans BOM et le séparateur point-virgule pour éviter les problèmes d'encodage avec les caractères accentués des mois en français.\u003C\u002Fp>\u003C\u002Fblockquote>\n\u003Ch3>Gestion des stocks = gestion de la disponibilité\u003C\u002Fh3>\n\u003Cp>Le stock de chaque combinaison correspond au nombre de chambres disponibles pour cette date. Si l'hôtel possède 3 chambres doubles, le stock de la combinaison « Chambre Double — 15 mars 2026 » sera de 3. Quand un client réserve, le stock diminue automatiquement. À zéro, la date apparaît comme indisponible.\u003C\u002Fp>\n\u003Ch2>Affichage calendrier : transformer les déclinaisons en interface de réservation\u003C\u002Fh2>\n\u003Ch3>Module d'affichage des combinaisons\u003C\u002Fh3>\n\u003Cp>Le sélecteur natif de PrestaShop (menu déroulant ou boutons radio) n'est pas adapté pour afficher 365 dates. Il faut un module capable d'afficher les combinaisons sous forme de \u003Cstrong>tableau calendaire\u003C\u002Fstrong>.\u003C\u002Fp>\n\u003Cp>Des modules comme ceux proposés par des éditeurs tiers permettent de présenter les déclinaisons sous forme de grille structurée. Le principe : chaque cellule du calendrier correspond à une combinaison, et un clic ajoute la date au panier.\u003C\u002Fp>\n\u003Ch3>Implémentation d'un calendrier Ajax personnalisé\u003C\u002Fh3>\n\u003Cp>Pour aller plus loin qu'un simple tableau, on peut construire un véritable calendrier interactif en JavaScript. Voici l'approche technique :\u003C\u002Fp>\n\u003Cpre>\u003Ccode class=\"language-javascript\">\n\u002F\u002F Récupération des combinaisons via l'API PrestaShop\nasync function loadCombinations(productId) {\n  const response = await fetch(`\u002Fapi\u002Fproducts\u002F${productId}\u002Fcombinations`, {\n    headers: { 'Output-Format': 'JSON' }\n  });\n  const data = await response.json();\n  return data.combinations.map(combo =&gt; ({\n    id: combo.id,\n    date: combo.attributes[0].name,\n    price: combo.price,\n    available: combo.quantity &gt; 0\n  }));\n}\n\n\u002F\u002F Rendu du calendrier\nfunction renderCalendar(combinations, month, year) {\n  const calendar = document.getElementById('hotel-calendar');\n  const daysInMonth = new Date(year, month + 1, 0).getDate();\n\n  for (let day = 1; day &lt;= daysInMonth; day++) {\n    const dateStr = `${year}-${String(month + 1).padStart(2, '0')}-${String(day).padStart(2, '0')}`;\n    const combo = combinations.find(c =&gt; c.date === dateStr);\n    const cell = document.createElement('div');\n    cell.classList.add('calendar-cell');\n\n    if (combo && combo.available) {\n      cell.classList.add('available');\n      cell.innerHTML = `&lt;span class=\"day\"&gt;${day}&lt;\u002Fspan&gt;&lt;span class=\"price\"&gt;${combo.price}€&lt;\u002Fspan&gt;`;\n      cell.addEventListener('click', () =&gt; addToCart(combo.id));\n    } else {\n      cell.classList.add('unavailable');\n      cell.innerHTML = `&lt;span class=\"day\"&gt;${day}&lt;\u002Fspan&gt;`;\n    }\n    calendar.appendChild(cell);\n  }\n}\n\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Ch3>Ajout au panier Ajax\u003C\u002Fh3>\n\u003Cp>Chaque date sélectionnée s'ajoute au panier via l'API Ajax de PrestaShop. Le panier joue le rôle de \u003Cstrong>sélecteur de dates multiples\u003C\u002Fstrong> :\u003C\u002Fp>\n\u003Cpre>\u003Ccode class=\"language-javascript\">\n\u002F\u002F Ajout d'une date (combinaison) au panier\nasync function addToCart(combinationId) {\n  const formData = new FormData();\n  formData.append('ajax', '1');\n  formData.append('action', 'update');\n  formData.append('id_product', productId);\n  formData.append('id_product_attribute', combinationId);\n  formData.append('qty', '1');\n  formData.append('add', '1');\n  formData.append('token', prestashop.static_token);\n\n  const response = await fetch(prestashop.urls.pages.cart, {\n    method: 'POST',\n    body: formData\n  });\n\n  if (response.ok) {\n    \u002F\u002F Mettre à jour l'affichage du récapitulatif sous le calendrier\n    refreshMiniCart();\n    \u002F\u002F Marquer visuellement la date comme sélectionnée\n    highlightSelectedDate(combinationId);\n  }\n}\n\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Cblockquote>\u003Cp>\u003Cstrong>PrestaShop 8.x\u003C\u002Fstrong> : L'API cart utilise désormais des tokens CSRF. Assurez-vous de récupérer \u003Ccode>prestashop.static_token\u003C\u002Fcode> depuis l'objet global JavaScript.\u003C\u002Fp>\u003C\u002Fblockquote>\n\u003Ch3>Récapitulatif de réservation sous le calendrier\u003C\u002Fh3>\n\u003Cp>Sous le calendrier, un bloc Ajax affiche les dates sélectionnées avec la possibilité de les retirer individuellement. Ce récapitulatif se met à jour en temps réel :\u003C\u002Fp>\n\u003Cpre>\u003Ccode class=\"language-javascript\">\nasync function refreshMiniCart() {\n  const response = await fetch('\u002Fmodule\u002Fac_hotelcalendar\u002Fminicart', {\n    headers: { 'X-Requested-With': 'XMLHttpRequest' }\n  });\n  const html = await response.text();\n  document.getElementById('reservation-summary').innerHTML = html;\n}\n\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Ch2>Tarification dynamique : ajuster les prix par saison\u003C\u002Fh2>\n\u003Cp>L'un des grands avantages de cette architecture est la \u003Cstrong>tarification granulaire\u003C\u002Fstrong>. Chaque déclinaison-date porte son propre impact de prix. En pratique :\u003C\u002Fp>\n\u003Ctr>\u003Cth>Période\u003C\u002Fth>\u003Cth>Impact prix\u003C\u002Fth>\u003Cth>Prix final (base 80€)\u003C\u002Fth>\u003C\u002Ftr>\n\u003Ctr>\u003Cth>Basse saison (nov-mars)\u003C\u002Fth>\u003Cth>-10,00 €\u003C\u002Fth>\u003Cth>70 €\u003C\u002Fth>\u003C\u002Ftr>\n\u003Ctr>\u003Cth>Moyenne saison (avr-juin, sept-oct)\u003C\u002Fth>\u003Cth>0,00 €\u003C\u002Fth>\u003Cth>80 €\u003C\u002Fth>\u003C\u002Ftr>\n\u003Ctr>\u003Cth>Haute saison (juillet)\u003C\u002Fth>\u003Cth>+35,00 €\u003C\u002Fth>\u003Cth>115 €\u003C\u002Fth>\u003C\u002Ftr>\n\u003Ctr>\u003Cth>Très haute saison (août)\u003C\u002Fth>\u003Cth>+65,00 €\u003C\u002Fth>\u003Cth>145 €\u003C\u002Fth>\u003C\u002Ftr>\n\u003Ctr>\u003Cth>Événements locaux\u003C\u002Fth>\u003Cth>+80,00 €\u003C\u002Fth>\u003Cth>160 €\u003C\u002Fth>\u003C\u002Ftr>\n\u003Cp>Cette gestion se fait directement dans le tableur CSV puis s'importe en masse. L'hôtelier autonome peut modifier ses tarifs en quelques minutes sans intervention technique.\u003C\u002Fp>\n\u003Ch2>Considérations visuelles : l'importance des photos\u003C\u002Fh2>\n\u003Cp>Un site hôtelier repose \u003Cstrong>principalement\u003C\u002Fstrong> sur ses visuels. Quelques règles incontournables :\u003C\u002Fp>\n\u003Cul>\n\u003Cli>**Photos professionnelles obligatoires** : des photos de mauvaise qualité détruisent la confiance, même avec un excellent site technique\u003C\u002Fli>\n\u003Cli>**Format et poids** : WebP, 1920px de large maximum, compression à 80% — PrestaShop 8.x supporte nativement le WebP\u003C\u002Fli>\n\u003Cli>**Attribut alt descriptif** : « Chambre double vue mer — Hôtel 3 étoiles Juan-les-Pins » et non « IMG_4523 »\u003C\u002Fli>\n\u003Cli>**Galerie par chambre** : utilisez les images de combinaison pour montrer différents angles de chaque type de chambre\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch2>Limites et alternatives à considérer\u003C\u002Fh2>\n\u003Cp>Cette approche a ses limites qu'il faut connaître avant de se lancer :\u003C\u002Fp>\n\u003Ch3>Ce que cette solution ne gère pas nativement\u003C\u002Fh3>\n\u003Cul>\n\u003Cli>**Sélection de plage de dates** (arrivée → départ) : il faut cliquer date par date. Une surcouche jQuery\u002FJS avec sélection de range est possible mais demande du développement\u003C\u002Fli>\n\u003Cli>**Channel Manager** : pas de synchronisation avec Booking.com ou Expedia sans développement spécifique\u003C\u002Fli>\n\u003Cli>**Réglementation hôtelière** : taxe de séjour, fiche de police — nécessitent des modules complémentaires ou du développement\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch3>Quand privilégier une solution dédiée\u003C\u002Fh3>\n\u003Cp>Si l'établissement a plus de 20 chambres, a besoin d'un channel manager, ou gère plusieurs types d'hébergement complexes, une solution spécialisée sera plus adaptée. PrestaShop convient parfaitement aux \u003Cstrong>petits établissements indépendants\u003C\u002Fstrong> (gîtes, chambres d'hôtes, hôtels boutique) qui veulent un site sur mesure sans abonnement mensuel.\u003C\u002Fp>\n\u003Ch2>Checklist de mise en production\u003C\u002Fh2>\n\u003Col>\n\u003Cli>☐ Créer les groupes d'attributs (« Date de séjour ») et les attributs (toutes les dates)\u003C\u002Fli>\n\u003Cli>☐ Préparer le fichier CSV d'import avec les prix par date\u003C\u002Fli>\n\u003Cli>☐ Importer les combinaisons et vérifier les stocks\u003C\u002Fli>\n\u003Cli>☐ Installer et configurer le module d'affichage calendaire\u003C\u002Fli>\n\u003Cli>☐ Personnaliser le CSS du calendrier pour correspondre à la charte de l'hôtel\u003C\u002Fli>\n\u003Cli>☐ Configurer les emails de confirmation de réservation\u003C\u002Fli>\n\u003Cli>☐ Tester le parcours complet : sélection de dates → panier → paiement → confirmation\u003C\u002Fli>\n\u003Cli>☐ Mettre en place un cron de nettoyage des dates passées (désactivation automatique)\u003C\u002Fli>\n\u003Cli>☐ Optimiser les visuels (WebP, lazy loading, srcset)\u003C\u002Fli>\n\u003Cli>☐ Configurer le SSL et vérifier la conformité RGPD\u003C\u002Fli>\n\u003C\u002Ful>",[41,44,47,50,53],{"q":42,"a":43},"PrestaShop est-il adapté pour créer un site de réservation d'hôtel ?","PrestaShop peut être détourné efficacement pour gérer des réservations hôtelières en utilisant les déclinaisons comme dates et les stocks comme disponibilités. Cette solution convient particulièrement aux petits établissements indépendants (moins de 20 chambres) qui souhaitent maîtriser leur plateforme sans abonnement mensuel. Pour les structures plus importantes nécessitant un channel manager ou une synchronisation avec Booking.com, une solution spécialisée reste préférable.",{"q":45,"a":46},"Comment gérer 365 dates de réservation par chambre dans PrestaShop ?","La gestion de 365 combinaisons par produit se fait via l'import\u002Fexport CSV natif de PrestaShop. Préparez votre fichier dans un tableur avec les colonnes Product ID, Attribute, Value, Impact on price et Quantity. Chaque ligne correspond à une date avec son prix spécifique et sa disponibilité. L'import en masse permet de mettre à jour les tarifs saisonniers en quelques minutes.",{"q":48,"a":49},"Comment afficher un calendrier de disponibilités sur une fiche produit PrestaShop ?","Le sélecteur natif de déclinaisons n'est pas adapté à l'affichage de dates. Il faut utiliser un module tiers qui affiche les combinaisons sous forme de grille calendaire, ou développer un composant JavaScript personnalisé qui récupère les combinaisons via l'API et les affiche dans un calendrier interactif avec ajout au panier Ajax.",{"q":51,"a":52},"Comment permettre la sélection de plusieurs dates de réservation dans PrestaShop ?","Chaque date étant une déclinaison indépendante, le client clique sur chaque date souhaitée pour l'ajouter au panier via Ajax. Le panier affiche ensuite toutes les dates sélectionnées avec la possibilité de supprimer individuellement. Pour implémenter une sélection de plage (date d'arrivée → date de départ), il faut développer une surcouche JavaScript qui ajoute automatiquement toutes les dates intermédiaires au panier.",{"q":54,"a":55},"Peut-on ajuster les prix d'un hôtel par jour et par saison avec PrestaShop ?","Oui, c'est l'un des points forts de cette approche. Chaque déclinaison-date porte son propre impact de prix. Vous définissez un prix de base pour la chambre, puis ajustez avec des impacts positifs ou négatifs selon la saison, les week-ends ou les événements locaux. Toute la grille tarifaire se gère dans un tableur et s'importe en CSV.","PrestaShop peut servir de système de réservation hôtelière en détournant les déclinaisons comme dates et les stocks comme disponibilités, avec gestion tarifaire par import CSV et affichage calendrier Ajax — une solution économique idéale pour les petits établissements indépendants.",7,"2026-03-21T13:27:13.000Z",[],"Testez mon site ! :)",{"columns":62},[63,79,109,130],{"title":64,"links":65},"Plateforme",[66,70,73,76],{"label":67,"href":68,"external":69},"Offre Starter (2 500 €)","\u002Foffre-starter",false,{"label":71,"href":72,"external":69},"Devenir Ambassadeur","\u002Fambassadeur",{"label":74,"href":75,"external":69},"Modules PrestaShop","\u002Fmodules",{"label":77,"href":78,"external":20},"CodeMyShop.com","https:\u002F\u002Fcodemyshop.com",{"title":80,"links":81},"Le Synedre",[82,85,88,91,94,97,100,103,106],{"label":83,"href":84,"external":69},"L'histoire","\u002Fsynedre",{"label":86,"href":87,"external":69},"Constitution","\u002Fsynedre\u002Fconstitution",{"label":89,"href":90,"external":69},"L'équipe","\u002Fequipe",{"label":92,"href":93,"external":69},"Le réacteur en direct","\u002Freacteur",{"label":95,"href":96,"external":69},"Le Drill (entraînement)","\u002Fdrill",{"label":98,"href":99,"external":69},"Protocole de réunion","\u002Fsynedre\u002Freunion",{"label":101,"href":102,"external":69},"Les agents IA","\u002Fagents-ia",{"label":104,"href":105,"external":69},"La Conduite","\u002Fsynedre\u002Fconduite",{"label":107,"href":108,"external":69},"Charte plateforme","\u002Fsynedre\u002Fcharte",{"title":110,"links":111},"Ressources",[112,115,118,121,124,127],{"label":113,"href":114,"external":69},"Blog","\u002Fblog",{"label":116,"href":117,"external":69},"Academy","\u002Facademy",{"label":119,"href":120,"external":69},"Dictionnaire","\u002Fdictionnaire",{"label":122,"href":123,"external":69},"Expertise PrestaShop","\u002Fexpertise",{"label":125,"href":126,"external":69},"Flywheel","\u002Fflywheel",{"label":128,"href":129,"external":69},"Manifeste","\u002Fmanifeste",{"title":131,"links":132},"À propos",[133,136,139],{"label":134,"href":135,"external":69},"Alexandre Carette","\u002Fa-propos",{"label":137,"href":138,"external":69},"Dossier de presse","\u002Fpresse",{"label":140,"href":141,"external":69},"Contact","\u002Fcontact",{"items":143},[144,153,159,165,173,181,187,193],{"id":145,"type":146,"label":147,"href":123,"icon":149,"description":149,"badge":149,"groupTitle":149,"style":149,"gridColumns":149,"cssClass":149,"psCategoryId":149,"showPsChildren":69,"position":150,"children":151,"psChildren":152},41,"link",{"fr":148},"Expertise",null,0,[],[],{"id":154,"type":146,"label":155,"href":114,"icon":149,"description":149,"badge":149,"groupTitle":149,"style":149,"gridColumns":149,"cssClass":149,"psCategoryId":149,"showPsChildren":69,"position":156,"children":157,"psChildren":158},42,{"fr":113},1,[],[],{"id":160,"type":146,"label":161,"href":75,"icon":149,"description":149,"badge":149,"groupTitle":149,"style":149,"gridColumns":149,"cssClass":149,"psCategoryId":149,"showPsChildren":69,"position":162,"children":163,"psChildren":164},43,{"fr":74},2,[],[],{"id":166,"type":146,"label":167,"href":169,"icon":149,"description":149,"badge":149,"groupTitle":149,"style":149,"gridColumns":149,"cssClass":149,"psCategoryId":149,"showPsChildren":69,"position":170,"children":171,"psChildren":172},44,{"fr":168},"Outils IA","\u002Foutils-ia",3,[],[],{"id":174,"type":146,"label":175,"href":68,"icon":149,"description":149,"badge":149,"groupTitle":149,"style":177,"gridColumns":149,"cssClass":149,"psCategoryId":149,"showPsChildren":69,"position":178,"children":179,"psChildren":180},45,{"fr":176},"Offre Starter ✨",{"highlight":20},4,[],[],{"id":182,"type":146,"label":183,"href":117,"icon":149,"description":149,"badge":149,"groupTitle":149,"style":149,"gridColumns":149,"cssClass":149,"psCategoryId":149,"showPsChildren":69,"position":184,"children":185,"psChildren":186},46,{"fr":116},5,[],[],{"id":188,"type":146,"label":189,"href":135,"icon":149,"description":149,"badge":149,"groupTitle":149,"style":149,"gridColumns":149,"cssClass":149,"psCategoryId":149,"showPsChildren":69,"position":190,"children":191,"psChildren":192},47,{"fr":131},6,[],[],{"id":194,"type":146,"label":195,"href":141,"icon":149,"description":149,"badge":149,"groupTitle":149,"style":149,"gridColumns":149,"cssClass":149,"psCategoryId":149,"showPsChildren":69,"position":57,"children":196,"psChildren":197},48,{"fr":140},[],[],{"footer":199},{"theme":200,"description":149,"hours":149,"logo":201,"contact":204,"social":205,"bottomBar":215},"dark",{"src":202,"href":203,"alt":134},"\u002Flogo-ac.svg","\u002F",{"email":149,"phone":149,"address":149,"cta":149},[206,209,212],{"platform":207,"href":208,"label":207},"linkedin","https:\u002F\u002Fwww.linkedin.com\u002Fin\u002Falexandre-carette\u002F",{"platform":210,"href":211,"label":210},"malt","https:\u002F\u002Fwww.malt.fr\u002Fprofile\u002Falexandrecarette",{"platform":213,"href":214,"label":213},"github","https:\u002F\u002Fgithub.com\u002Fprest4cafe",{"copyright":149},{"header":217},{"logo":218,"topBar":221,"contactEmail":224,"features":225,"navBar":149},{"src":202,"alt":219,"text":134,"href":203,"class":220},"Alexandre Carette — Architecte E-commerce Souverain","h-10 w-10",{"message":149,"showLanguages":69,"align":222,"languages":223},"left",[],"contact@alexandrecarette.fr",{"showSearch":69,"showWishlist":69,"showLogin":20,"showContact":69,"showCart":69,"stickyHeader":20,"headerLayout":226},"inline",{"academy":228,"blog":229,"expertise":240},[],[230,234,237],{"title":231,"url":232,"score":156,"type":233},"PrestaShop headless avec Nuxt 3 : pourquoi séparer back et front","\u002Fblog\u002Fprestashop\u002Farchitecture\u002Fprestashop-headless-nuxt-separation-front-back","blog",{"title":235,"url":236,"score":156,"type":233},"PrestaShop headless : Nuxt 3, pas Next.js — le choix souverain","\u002Fblog\u002Fprestashop\u002Farchitecture\u002Fprestashop-headless-nuxt-nextjs-souverainete",{"title":238,"url":239,"score":156,"type":233},"Sylius rachète PrestaShop : ce que ça change pour vous","\u002Fblog\u002Fprestashop\u002Farchitecture\u002Fsylius-rachat-prestashop-headless-souverainete",[]]