القائمة الرئيسية

الصفحات

// Code Google Apps Script pour connecter le formulaire à Google Sheets // Ce script doit être déployé en tant qu'application web dans Google Apps Script function doPost(e) { try { // Vérifier si e et e.postData existent if (!e || !e.postData) { return ContentService.createTextOutput(JSON.stringify({ 'result': 'error', 'error': 'Données de requête manquantes' })).setMimeType(ContentService.MimeType.JSON); } // Parser les données JSON reçues const data = JSON.parse(e.postData.contents); // Ouvrir la feuille de calcul par son ID (remplacer par l'ID réel de votre feuille) const ss = SpreadsheetApp.openById('14r3FZf-DnzzklKWdm3OPhouLCZmkazsUyH91uYaZ2w8'); // Sélectionner la première feuille (ou spécifier le nom de la feuille si différent) const sheet = ss.getSheetByName('Commandes') || ss.getSheets()[0]; // Vérifier si les en-têtes existent, sinon les créer if (sheet.getLastRow() === 0) { sheet.appendRow([ 'Horodatage', 'Numéro de commande', 'Nom du client', 'Numéro de téléphone', 'Email', 'Ville/Région', 'Produit(s) commandé(s)', 'Quantité(s)', 'Remarques', 'Adresse de livraison', 'Date de livraison souhaitée', 'Mode de livraison', 'Statut de la commande' ]); } // Générer un numéro de commande unique basé sur la date et un nombre aléatoire const orderNumber = 'CMD-' + new Date().getTime().toString().slice(-6) + '-' + Math.floor(Math.random() * 1000); // Préparer les données à insérer const rowData = [ new Date(), // Horodatage orderNumber, // Numéro de commande data.name, data.phone, data.email, data.city, data.products, data.quantity, data.notes, data.address, data.deliveryDate, data.deliveryMethod, 'À traiter' // Statut initial de la commande ]; // Ajouter les données à la feuille sheet.appendRow(rowData); // Retourner une réponse de succès return ContentService.createTextOutput(JSON.stringify({ 'result': 'success', 'orderNumber': orderNumber })).setMimeType(ContentService.MimeType.JSON); } catch (error) { // En cas d'erreur, enregistrer l'erreur et retourner une réponse d'échec Logger.log('Erreur lors du traitement de la commande: ' + error); return ContentService.createTextOutput(JSON.stringify({ 'result': 'error', 'error': error.toString() })).setMimeType(ContentService.MimeType.JSON); } } // Fonction pour tester le script (facultatif) function testDoPost() { const testData = { name: 'Client Test', phone: '0612345678', email: 'test@example.com', city: 'Fes', products: 'Produit test', quantity: '1', notes: 'Ceci est un test', address: 'Adresse test, Fes', deliveryDate: '2025-05-20', deliveryMethod: 'standard' }; const testEvent = { postData: { contents: JSON.stringify(testData), type: 'application/json' } }; const result = doPost(testEvent); Logger.log(result.getContent()); }