حل تقني ثوري يلغي الحاجة لطباعة الورق الحراري؛ يربط نظام الكاشير والمبيعات (POS) بواتساب مباشرة لإرسال الفواتير الإلكترونية PDF، أرقام الشحنات، وتأكيد الحجوزات للعملاء تلقائياً في ثانية واحدة.
يقوم الكاشير بإصدار الفاتورة في نظام الـ POS كالمعتاد
يقوم السيرفر بتوليد PDF إلكتروني وربطه بـ WhatsApp API
تصل رسالة رسمية للعميل مع الفاتورة وزر متابعة الطلب
أكثر من مجرد رسالة؛ إنها قناة تسويقية وخدمية دائمة ترفع ولاء الزبائن
التخلص من مشاكل نفاد ورق الطابعات والأحبار وتلف الفواتير الورقية في جيوب الزبائن، والتحول إلى الفواتير الرقمية الخضراء.
يبقى رقم متجرك في محادثات العميل دائماً، مما يتيح لك إعادة استهدافه بالعروض والتخفيضات الجديدة بمعدل فتح رسائل يفوق 95%.
إرسال رسائل آلية عند تغيير حالة الطلب: (تم تجهيز الطلب، المندوب في الطريق إليك، تم التسليم بنجاح).
تصميم بنية تحتية مرنة (RESTful API) يمكن ربطها مع أي منظومة SQL أو برنامج كاشير قديم أو حديث دون تغيير نظامك الحالي.
| لغة الباك إند والخدمات | C# / ASP.NET Core Web API - أداء فائق وسرعة معالجة عالية للـ Background Queues. |
|---|---|
| بروتوكول واتساب المستخدم | WhatsApp Cloud API & Baileys Engine لضمان استقرار الإرسال الفوري بدون حظر أو انقطاع. |
| محرك إنشاء الفواتير | QuestPDF / Puppeteer لتوليد فواتير PDF بدقة طباعة عالية وشعار المؤسسة والباركود. |
| إدارة قواعد البيانات | Microsoft SQL Server / PostgreSQL لتسجيل سجل الإرسال (Logs) وحالة تسليم كل رسالة. |
كود الـ Service المسؤول عن معالجة الفاتورة واستدعاء API الواتساب في الخلفية
public class WhatsAppInvoiceDispatcher : IInvoiceDispatcher
{
private readonly HttpClient _httpClient;
private readonly IPdfGenerator _pdfGenerator;
private readonly ILogger<WhatsAppInvoiceDispatcher> _logger;
public async Task<bool> DispatchInvoiceAsync(SalesOrder order)
{
try
{
// 1. Generate digital PDF receipt with barcode
var pdfBytes = await _pdfGenerator.GenerateInvoicePdfAsync(order);
// 2. Construct WhatsApp API payload
var payload = new
{
recipient = order.CustomerPhone,
message = $"مرحباً {order.CustomerName}، شكراً لتعاملك معنا. مرفق فاتورة مشترياتك رقم #{order.InvoiceNumber} بقيمة {order.TotalAmount} د.ل.",
document = Convert.ToBase64String(pdfBytes),
fileName = $"Invoice_{order.InvoiceNumber}.pdf"
};
// 3. Post to WhatsApp webhook engine
var response = await _httpClient.PostAsJsonAsync("/api/v1/whatsapp/send-document", payload);
return response.IsSuccessStatusCode;
}
catch (Exception ex)
{
_logger.LogError(ex, "Failed to dispatch invoice via WhatsApp for order {Id}", order.Id);
return false;
}
}
}