Перейти до вмісту

Внесення інформації по замовленню з OpenCart у GoogleSheets

function doPost(e) {
  const sheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("Заказы");
  const data = JSON.parse(e.postData.contents);
  
  // Очистка номера телефона: убираем пробелы, скобки, дефисы и "+"
  if (data.phone) {
    data.phone = data.phone.replace(/[^0-9]/g, ''); // только цифры
    if (data.phone.startsWith('0')) {
      data.phone = '38' + data.phone; // если без кода страны — добавим 38
    }
  }

  const row = [
    data.date,            // A — Дата
    data.time,            // B — Час
    '',                   // C — Час запису в ЕСМ
    '',                   // D — Відділ
    '',                   // E — Менеджер
    data.name,            // F — Ім'я клієнта
    data.phone,           // G — Номер клієнта
    '',                   // H — ЮО/ФО
    "Olimpeks (замовлення)",// I — Ресурс (сайт, Prom, Flagma)
    '=INDEX(\'Реклама\'!C:R;MATCH(INDEX(T:T; ROW()); \'Реклама\'!D:D; 0);1)', // J — Формула (Рекламна кампанія)
    data.product,         // K — ЧИМ цікавився клієнт
    data.quantity,        // L — Кількість
    '',                   // M — Результат обробки запиту
    '',                   // N — № Паспорта
    '',                   // O — Дата наступного дзвінка
    '',                   // P — Рішення керівника
    data.page_url,        // Q — fullUrl
    data.utm_source,      // R — utm_source
    data.utm_medium,      // S — utm_medium
    data.utm_campaign,    // T — utm_campaign
    data.utm_content,     // U — utm_content
    data.utm_term,        // V — utm_term
    data.ip,              // W — IP
    data.country,         // X — Country
    data.region,          // Y — Region
    data.city             // Z — City
  ];

  // ✅ вставка строки с сохранением структуры
  sheet.getRange(sheet.getLastRow() + 1, 1, 1, row.length).setValues([row]);

  return ContentService.createTextOutput("OK").setMimeType(ContentService.MimeType.TEXT);
}