Administra el código STONEBOY22 y revisa el historial de uso
Nº Orden | Fecha | Cliente | WhatsApp | Email | Producto |
Talla | Precio Original | Código | Descuento % | Descuento B/. |
Total Pagado | Timestamp
Asunto: 🏷️ NUEVO USO DE CÓDIGO - {{order_number}}
📦 Nº de Orden: {{order_number}}
👤 Cliente: {{customer_name}}
📞 Contacto: {{customer_contact}}
📧 Email: {{customer_email}}
👟 Producto: {{product_name}} ({{product_size}})
💰 Precio Original: {{original_price}}
🏷️ Código Usado: {{discount_code}}
💚 Descuento: {{discount_percent}} ({{discount_amount}})
✅ TOTAL PAGADO: {{final_price}}
📅 Fecha: {{order_date}}
Las variables con {{}} deben coincidir exactamente con los nombres del JS
Copia y pega este código en el editor de Apps Script de Google Sheets:
function doPost(e) {
const sheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName('Historial');
const data = JSON.parse(e.postData.contents);
sheet.appendRow([
data.orderNumber,
data.orderDate,
data.customerName,
data.customerContact,
data.customerEmail || 'No proporcionado',
data.productName,
data.productSize,
data.originalPrice,
data.discountCode,
data.discountPercent + '%',
data.discountAmount,
data.finalPrice,
data.timestamp
]);
return ContentService
.createTextOutput(JSON.stringify({ success: true }))
.setMimeType(ContentService.MimeType.JSON);
}
function doGet(e) {
const sheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName('Historial');
const data = sheet.getDataRange().getValues();
const headers = data.shift();
const result = data.map(row => ({
orderNumber: row[0],
orderDate: row[1],
customerName: row[2],
customerContact: row[3],
customerEmail: row[4],
productName: row[5],
productSize: row[6],
originalPrice: row[7],
discountCode: row[8],
discountPercent: row[9],
discountAmount: row[10],
finalPrice: row[11],
timestamp: row[12]
}));
return ContentService
.createTextOutput(JSON.stringify(result))
.setMimeType(ContentService.MimeType.JSON);
}
https://script.google.com/macros/s/XXXXX/exec
En el archivo descuento/index.js,
reemplaza estas 3 variables:
const GOOGLE_SCRIPT_URL =
'https://script.google.com/macros/s/TU_ID/exec';
const EMAILJS_USER_ID = 'TU_USER_ID';
const EMAILJS_SERVICE_ID = 'TU_SERVICE_ID';
const EMAILJS_TEMPLATE_ID = 'TU_TEMPLATE_ID';
Pídeme que actualice esas variables cuando tengas los datos de tus cuentas.
Para controlar si STONEBOY22 está activo, crea una segunda hoja en tu Google Sheets llamada "Config":
| Columna A | Columna B |
|---|---|
| STONEBOY22 | ACTIVO o INACTIVO |
Cambia el valor en la Columna B para activar/desactivar. El sistema consulta esto en tiempo real.
Usa esta versión actualizada que incluye control de estado (ACTIVO/INACTIVO):
// PEGA ESTO EN GOOGLE APPS SCRIPT (Extensiones → Apps Script)
function doPost(e) {
var sheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName('Historial');
var data = JSON.parse(e.postData.contents);
sheet.appendRow([
data.orderNumber, data.orderDate, data.customerName,
data.customerContact, data.customerEmail || 'No proporcionado',
data.productName, data.productSize, data.originalPrice,
data.discountCode, data.discountPercent + '%',
data.discountAmount, data.finalPrice, data.timestamp
]);
return ContentService.createTextOutput(JSON.stringify({ success: true }))
.setMimeType(ContentService.MimeType.JSON);
}
function doGet(e) {
var params = e.parameter;
// VERIFICAR SI UN CÓDIGO ESTÁ ACTIVO
if (params.action === 'status') {
var configSheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName('Config');
if (!configSheet) {
return ContentService.createTextOutput(JSON.stringify({ active: true }))
.setMimeType(ContentService.MimeType.JSON);
}
var configData = configSheet.getDataRange().getValues();
for (var i = 1; i < configData.length; i++) {
if (configData[i][0] === params.code) {
var isActive = configData[i][1] === true || configData[i][1] === 'ACTIVO';
return ContentService.createTextOutput(JSON.stringify({ active: isActive }))
.setMimeType(ContentService.MimeType.JSON);
}
}
return ContentService.createTextOutput(JSON.stringify({ active: true }))
.setMimeType(ContentService.MimeType.JSON);
}
// OBTENER HISTORIAL COMPLETO
var sheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName('Historial');
var data = sheet.getDataRange().getValues();
var headers = data.shift();
var result = data.map(function(row) {
return {
orderNumber: row[0], orderDate: row[1], customerName: row[2],
customerContact: row[3], customerEmail: row[4], productName: row[5],
productSize: row[6], originalPrice: row[7], discountCode: row[8],
discountPercent: row[9], discountAmount: row[10], finalPrice: row[11]
};
});
return ContentService.createTextOutput(JSON.stringify(result))
.setMimeType(ContentService.MimeType.JSON);
}