BTS SIO SLAM – 1ère année – 2023/2024

Site Marchand Dynamique

Site e-commerce avec interface administrateur, gestion de panier et génération de bons de commande PDF

Retour aux projets

Contexte

Projet de 1ère année de BTS SIO (année scolaire 2023/2024). L'objectif était de développer un site marchand dynamique complet, avec une interface de gestion des articles côté administrateur et un espace client permettant de parcourir le catalogue, gérer son panier et commander.

Le projet intègre un système d'authentification sécurisée, une base de données MySQL pour la persistance des données, et la génération automatique de bons de commande en PDF.

Cahier des charges (PDF)

Fonctionnalités

Espace administrateur
  • Authentification sécurisée
  • Ajout, modification, suppression d'articles
  • Gestion des utilisateurs inscrits
Espace client
  • Création de compte et connexion
  • Navigation dans le catalogue
  • Gestion du panier d'achat
  • Génération automatique d'un bon de commande PDF

Technologies utilisées

PHP MySQL HTML5 / CSS3 JavaScript Génération PDF Sessions PHP

Extrait – Connexion MySQL et gestion du panier

// Connexion à la base de données MySQL
$pdo = new PDO('mysql:host=localhost;dbname=site_marchand;charset=utf8', 'root', '');
$pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);

// Ajout d'un article au panier (stocké en session)
function ajouterAuPanier($idArticle, $quantite) {
    if (!isset($_SESSION['panier'])) {
        $_SESSION['panier'] = [];
    }
    if (isset($_SESSION['panier'][$idArticle])) {
        $_SESSION['panier'][$idArticle] += $quantite;
    } else {
        $_SESSION['panier'][$idArticle] = $quantite;
    }
}

// Récupérer les articles du panier avec leurs informations
function getArticlesPanier($pdo) {
    $ids = array_keys($_SESSION['panier']);
    $placeholders = implode(',', array_fill(0, count($ids), '?'));
    $stmt = $pdo->prepare(
        "SELECT id, nom, prix FROM articles WHERE id IN ($placeholders)"
    );
    $stmt->execute($ids);
    return $stmt->fetchAll(PDO::FETCH_ASSOC);
}

Galerie

Base de données Produits
Base de données Utilisateurs
Page de connexion
Page de création de compte
Interface catalogue