Structure d'un thème

Un gabarit par type de page

FichierAdressePage
templates/index.html/Accueil
templates/category.html/c/homme/chaussuresCatégorie (sous-catégories, filtres, tri, pagination)
templates/product.html/p/12-pull-marinFiche produit (galerie, variantes, caractéristiques)
templates/search.html/recherche?q=Résultats de recherche
templates/cart.html/panierPanier (contient <div data-dc-cart-page>)
templates/account.html?account=login…Connexion, inscription, espace client
templates/page.html/pages/livraisonPages libres du commerçant
templates/404.html—Page introuvable

Le squelette

layout/theme.html enveloppe chaque page. Il doit contenir {% davcode_head %} dans le <head> (titre, SEO, données structurées, variables CSS des réglages), {{ content }} là où va la page, et {% davcode_scripts %} avant </body> (panier, statistiques).

<!doctype html>
<html lang="fr">
<head>
  <meta charset="utf-8">
  <meta name="viewport" content="width=device-width, initial-scale=1">
  {% davcode_head %}
  <link rel="stylesheet" href="{{ "theme.css" | asset_url }}">
</head>
<body>
  <header>…</header>
  <main>{{ content }}</main>
  <footer>…</footer>
  {% davcode_scripts %}
</body>
</html>

Panier et achat

Le panier est géré par le script davcode : un bouton data-dc-add="{{ product.id }}" ajoute au panier (avec data-dc-variant pour une variante), data-dc-cart ouvre le panier, data-dc-cart-count affiche le nombre d'articles.