Comment utiliser les webhooks Shopitag avec Google Sheets
Dans cet article, nous allons vous expliquer comment vous pouvez mettre en place un webhook avec Google Sheets. Vous pouvez utiliser Google Spreadsheets pour ajouter des factures ou tout autre détail de commande que vous souhaitez ajouter.
La première chose que vous devez faire est de vous connecter à votre compte gmail et d'ouvrir un nouvel onglet dans la barre de recherche et de taper : "drive.google.com". Sur la nouvelle page, vous verrez un bouton dans le coin supérieur gauche qui dit : "Nouveau". Vous devez cliquer dessus pour accéder à une nouvelle feuille de calcul. Vous avez maintenant une feuille de calcul que vous pouvez utiliser.

Ensuite, vous devez donner un nouveau nom à la feuille de calcul, nous allons l'appeler : "ShopitagWebhookOrder". Ensuite, vous allez dans l'onglet "Outils" et sélectionnez "Editeur de script". Une nouvelle page s'affiche, intitulée "Projet sans titre".
Il est maintenant temps de développer !
Dans le projet sans titre, vous ajoutez :

//this is a function that fires when the webapp receives a GET request -

function doGet(e) {
return HtmlService.createHtmlOutput("get request received");
}

//this is a function that fires when the webapp receives a POST request
function doPost(e) {

try {

var params = JSON.stringify(e.postData.contents);
params = JSON.parse(params);
var myData = JSON.parse(e.postData.contents);
var customer_firstname = myData.customer_firstname;
var customer_lastname = myData.customer_lastname;
var customer_email = myData.customer_email;
var customer_phone = myData.customer_phone;
var comment = myData.comment;
var price_total = myData.price_total;
// try statement needed because no invoice data triggers an error
try {
var invoice_address = myData.invoicing_address;
var invoice_company_name = invoice_address.company_name;
var invoice_vat = invoice_address.vat;
var invoice_street = invoice_address.street;
var invoice_number = invoice_address.number;
var invoice_zip = invoice_address.zip;
var invoice_city = invoice_address.city;
}
catch(err) {
var invoice_company_name = "no invoice";
var invoice_vat = "";
var invoice_street = "";
var invoice_number = "";
var invoice_zip = "";
var invoice_city = err;
}
var sheet = SpreadsheetApp.getActiveSheet();
var lastRow = Math.max(sheet.getLastRow(),1);
sheet.insertRowAfter(lastRow);
var timestamp = new Date();
sheet.getRange(lastRow + 1, 1).setValue(timestamp);
// Separate test data from production data
sheet.getRange(lastRow + 1, 2).setValue("Real Order");
// Json data output for debug reasons, you can delete this
sheet.getRange(lastRow + 1, 3).setValue(myData);
sheet.getRange(lastRow + 1, 4).setValue(customer_firstname);
sheet.getRange(lastRow + 1, 5).setValue(customer_lastname);
sheet.getRange(lastRow + 1, 6).setValue(customer_phone);
sheet.getRange(lastRow + 1, 7).setValue(invoice_company_name);
sheet.getRange(lastRow + 1, 8).setValue(invoice_vat);
sheet.getRange(lastRow + 1, 9).setValue(invoice_street);
sheet.getRange(lastRow + 1, 10).setValue(invoice_number);
sheet.getRange(lastRow + 1, 11).setValue(invoice_zip);
sheet.getRange(lastRow + 1, 12).setValue(invoice_city);
sheet.getRange(lastRow + 1, 13).setValue(comment);
sheet.getRange(lastRow + 1, 14).setValue(price_total);
// Json data output for debug reasons, you can delete this
sheet.getRange(lastRow + 1, 15).setValue(invoice_address);

}
catch(err) {
var sheet = SpreadsheetApp.getActiveSheet();
var lastRow = Math.max(sheet.getLastRow(),1);
sheet.insertRowAfter(lastRow);
var timestamp = new Date();
sheet.getRange(lastRow + 1, 1).setValue(timestamp);
sheet.getRange(lastRow + 1, 2).setValue("Error" + err);
}

var emailAddress = "yourname@gmail.com";
var subject = "Shopitag Order Result";
var message = params; //"Sending emails from a Spreadsheet";
MailApp.sendEmail(emailAddress, subject, message, {
name: 'Yourname - Shopitag'
});

SpreadsheetApp.flush();

return HtmlService.createHtmlOutput("post request received");
}}
Bien entendu, vous pouvez expérimenter et modifier certaines déclarations pour les adapter à vos besoins. Pour le moment, vous pouvez sauvegarder l'application en allant dans le menu et en sélectionnant sauvegarder. Vous pouvez la sauvegarder sous le nom de projet : "ShopitagWebhookOrder".

Ensuite, vous sélectionnez "Publier" et cliquez sur "Déployer comme une application web...". Exécuter en tant que moi (une autorisation est nécessaire). Vous pouvez sélectionner qui a accès, vous devez cliquer dessus et vous verrez une liste et ensuite vous choisissez : "n'importe qui, même anonyme".
Maintenant, allons sur Shopitag.

Vous verrez "Paramètres" dans le menu de gauche sur la page d'administration. Une fois que vous aurez cliqué dessus et choisi "Webhook paramètres", vous pourrez ajouter dans l'onglet à côté de "Nouvelle commande" :
https://script.google.com/a/*yourdomain*/macros/s/*yourkey*/exec
pour un compte Google Workspace &
https://script.google.com/macros/s/*yourkey*/exec
pour un compte Google habituel.
La clé sera constituée des dernières lettres que vous trouverez une fois que vous l'aurez déployée en tant qu'application Web sur la page Sans titre. (Il y aura une pop-up - voir ci-dessous).

Si tout s'est bien passé, vous pouvez cliquer sur sauvegarder sur Shopitag et il y aura une popup en haut "webhook sauvegardé avec succès".