dashboord

لوحة الطلبات | Pretty Woman

لوحة الطلبات — دخول خاص بالإدارة فقط

كلمة السر غلط، حاولي تاني
لسه ما اتحدثتش
إجمالي الطلبات
0
إجمالي القطع المباعة
0 قطعة
إجمالي المبيعات المتوقعة
0 ج.م
طلبات النهاردة
0
أكتر عرض مطلوب
⚠️ لو شايفة بيانات تجريبية بدل طلباتك الحقيقية، اتأكدي إن رابط ENDPOINT_URL في أول السكربت مطابق لرابط Apps Script بتاع صفحة الهبوط، وإن نشر الـ Web App متظبط على “Anyone” (أي حد) عشان اللوحة تقدر توصله. اضغطي على زر “⚙ كود الربط للشيت” فوق لنسخ الكود الجاهز.

الطلبات حسب كل عرض

الطلبات حسب النكهة (11 نكهة)

الأحدث أولاً
الأقدم أولاً
التاريخ الاسم التليفون العرض الكمية النكهات السعر العنوان الحالة
جاري تحميل الطلبات…

⚙ كود Google Apps Script للربط مع الشيت

انسخي الكود ده وحطيه في Google Apps Script الخاص بالشيت بتاعك لضمان حفظ واسترجاع الكمية، النكهات، السعر، ورقم الصف بأعلى دقة وتوافق تام مع لوحة التحكم وصفحة الهبوط:

function doGet(e) {
  var sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
  var data = sheet.getDataRange().getValues();
  if (data.length <= 1) {
    return ContentService.createTextOutput(JSON.stringify([])).setMimeType(ContentService.MimeType.JSON);
  }
  
  var headers = data[0];
  var rows = [];
  
  for (var i = 1; i < data.length; i++) {
    var r = data[i];
    if (!r[1] && !r[2]) continue; // تخطي الصفوف الفارغة
    
    rows.push({
      rowId: (i + 1).toString(),
      date: r[0] ? new Date(r[0]).toISOString() : new Date().toISOString(),
      name: r[1] || '',
      phone: String(r[2] || ''),
      phone2: String(r[3] || ''),
      address: r[4] || '',
      product: r[5] || '',
      quantity: r[6] !== undefined ? String(r[6]) : '',
      flavors: r[7] || '',
      price: Number(r[8]) || 0,
      status: r[9] || 'جديد'
    });
  }
  
  return ContentService.createTextOutput(JSON.stringify(rows))
    .setMimeType(ContentService.MimeType.JSON);
}

function doPost(e) {
  try {
    var sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
    var contents = e.postData.contents;
    var data = JSON.parse(contents);
    
    // في حالة تحديث الحالة من اللوحة
    if (data.action === 'updateStatus' && data.rowId) {
      var rowNum = parseInt(data.rowId, 10);
      sheet.getRange(rowNum, 10).setValue(data.status);
      return ContentService.createTextOutput(JSON.stringify({result: 'success', row: rowNum}))
        .setMimeType(ContentService.MimeType.JSON);
    }
    
    // إضافة طلب جديد من صفحة الهبوط
    var rowData = [
      data.date || new Date().toISOString(),
      data.name || '',
      data.phone || '',
      data.phone2 || '',
      data.address || '',
      data.product || '',
      data.quantity || '1',
      data.flavors || '',
      data.price || 0,
      'جديد'
    ];
    
    sheet.appendRow(rowData);
    return ContentService.createTextOutput(JSON.stringify({result: 'success'}))
      .setMimeType(ContentService.MimeType.JSON);
  } catch (error) {
    return ContentService.createTextOutput(JSON.stringify({result: 'error', message: error.toString()}))
      .setMimeType(ContentService.MimeType.JSON);
  }
}