كيف تبني متجر واتساب إلكتروني ونظام عروض أسعار وفواتير متكامل بلغة بايثون بدون اشتراكات شهرية
في بيئة الأعمال الرقمية والتجارة الإلكترونية المعاصرة، يجد أصحاب المشاريع الصغيرة والمستقلون في العالم العربي أنفسهم محاصرين باشتراكات شهرية متراكمة (منصات المتاجر، أدوات الفواتير الإلكترونية، بوابات التوقيع الرقمي، ومزو
في بيئة الأعمال الرقمية والتجارة الإلكترونية المعاصرة، يجد أصحاب المشاريع الصغيرة والمستقلون في العالم العربي أنفسهم محاصرين باشتراكات شهرية متراكمة (منصات المتاجر، أدوات الفواتير الإلكترونية، بوابات التوقيع الرقمي، ومزودو خدمة واتساب)، مما يبتلع جزءاً كبيراً من هوامش الربح قبل حتى تحقيق أول عملية بيع حقيقية.
والأخطر من ذلك هو ارتهان بيانات العملاء وقوائم الطلبات والتقارير المالية لخوادم ومنصات وسيطة تفرض شروطها وتزيد أسعارها دورياً.
في هذا الدليل الهندسي والعملي من استوديو أنتيجرافيتي (Antigravity Dev Studio)، سنستعرض بالتفصيل كيف تبني منصة تجارة إلكترونية كاملة تعتمد على واتساب، بالإضافة إلى نظام عروض أسعار وفواتير رسمية قابلة للطباعة PDF، باستخدام مكتبة بايثون القياسية (Python Standard Library) وقواعد بيانات SQLite المدمجة، بدون الحاجة لتثبيت أي حزمة خارجية من pip، وبدون دفع دولار واحد كاشتراك شهري متكرر.
1. نموذج العمل: لماذا واتساب + بايثون النقي؟
في الأسواق العربية (السعودية، الإمارات، مصر، الخليج العربي وشمال إفريقيا)، يعتبر تطبيق واتساب الأداة الأكثر موثوقية والأعلى في معدلات التحويل (Conversion Rate). الزبائن يفضلون دائماً التأكيد المباشر والمحادثة الإنسانية على نماذج الدفع الإلكتروني الطويلة والمعقدة.
بدلاً من الاشتراك في منصات SaaS باهظة، قمنا في تطبيقنا OrderFlow Pro ببناء معمارية برمجية ترتكز على:
- واجهة متجر سريعة للغاية (Single Page Application) بدون أطر عمل ثقيلة.
- محرك سلة تسوق محلي يدعم الكوبونات وحساب رسوم التوصيل والضرائب.
- مولد روابط واتساب ذكي يحول محتويات السلة وعنوان العميل وكود الطلب فوراً إلى رسالة منسقة وجاهزة للإرسال بضغطة زر واحدة.
إليك الكود المصدري الكامل والمجرب بلغة بايثون لتوليد رابط الطلب المباشر عبر واتساب:
import urllib.parse
from typing import Any, Dict, List
def generate_arabic_whatsapp_order_link(
store_phone: str,
order_code: str,
customer_name: str,
customer_phone: str,
city: str,
address: str,
items: List[Dict[str, Any]],
subtotal: float,
discount: float,
delivery_fee: float,
total: float,
currency: str = "SAR"
) -> str:
"""
يقوم بإنشاء رابط ويب رسمي لتطبيق واتساب يحتوي على تفاصيل الطلب كاملة باللغة العربية.
يعمل تلقائياً على أجهزة أندرويد، آيفون، وأجهزة الكمبيوتر.
"""
# تنظيف رقم هاتف المتجر
clean_phone = "".join(filter(str.isdigit, store_phone))
# صياغة أسطر المنتجات
lines = []
for item in items:
qty = item.get("qty", 1)
name = item.get("name", "منتج")
price = item.get("price", 0.0)
lines.append(f"▫️ {qty}x {name} — {price * qty:,.2f} {currency}")
items_text = "\n".join(lines)
# الرسالة العربية المنسقة
message = (
f"🛍️ *طلب شراء جديد: #{order_code}*\n"
f"━━━━━━━━━━━━━━━━━━\n"
f"👤 *العميل:* {customer_name.strip()}\n"
f"📱 *الجوال:* {customer_phone.strip()}\n"
f"📍 *المدينة:* {city.strip()} - {address.strip()}\n\n"
f"📦 *تفاصيل المنتجات:*\n"
f"{items_text}\n\n"
f"━━━━━━━━━━━━━━━━━━\n"
f"💵 *المجموع الفرعي:* {subtotal:,.2f} {currency}\n"
)
if discount > 0:
message += f"🏷️ *الخصم:* -{discount:,.2f} {currency}\n"
message += (
f"🚚 *التوصيل:* {delivery_fee:,.2f} {currency}\n"
f"✅ *الإجمالي المستحق:* {total:,.2f} {currency}\n"
f"━━━━━━━━━━━━━━━━━━\n"
f"أرجو تأكيد الطلب وتحديد موعد الاستلام، شكراً لكم!"
)
# تشفير النص ليتوافق مع بروتوكول الروابط
encoded_query = urllib.parse.quote(message)
return f"https://wa.me/{clean_phone}?text={encoded_query}"
2. إدارة الفواتير وعروض الأسعار في بايثون: نمط SQLite WAL
أكبر مشكلة تواجه المطورين عند بناء أنظمة فواتير محلية هي تضارب المعاملات (Database Locked) وتكرار أرقام الفواتير المتسلسلة أثناء الضغط العالي.
الحل الهندسي الأفضل هو تفعيل نمط Write-Ahead Logging (WAL) في SQLite. هذا الوضع يفصل عمليات القراءة تماماً عن الكتابة، مما يسمح لمئات المستخدمين بتصفح المتجر وعروض الأسعار بالتوازي دون إبطاء عمليات حفظ الفواتير:
import contextlib
import datetime as dt
import sqlite3
from pathlib import Path
class ArabicInvoiceEngine:
def __init__(self, db_path: str = "business.db"):
self.db_path = Path(db_path)
self._init_db()
def _connect(self) -> sqlite3.Connection:
conn = sqlite3.connect(str(self.db_path), timeout=15.0)
conn.row_factory = sqlite3.Row
# تفعيل نمط WAL وتطبيق القيود الخارجية
conn.execute("PRAGMA journal_mode = WAL;")
conn.execute("PRAGMA foreign_keys = ON;")
conn.execute("PRAGMA synchronous = NORMAL;")
return conn
@contextlib.contextmanager
def transaction(self):
conn = self._connect()
try:
with conn: # يبدأ معاملة ذرية متسلسلة (Atomic Transaction)
yield conn
finally:
conn.close()
def _init_db(self):
with self.transaction() as conn:
conn.executescript("""
CREATE TABLE IF NOT EXISTS invoices (
id INTEGER PRIMARY KEY AUTOINCREMENT,
invoice_code TEXT UNIQUE NOT NULL,
client_name TEXT NOT NULL,
client_phone TEXT NOT NULL,
total_amount REAL NOT NULL,
status TEXT NOT NULL DEFAULT 'UNPAID',
created_at TEXT NOT NULL
);
""")
def create_invoice(self, client_name: str, client_phone: str, total_amount: float) -> str:
year = dt.datetime.now(dt.timezone.utc).year
now_str = dt.datetime.now(dt.timezone.utc).isoformat()
prefix = f"INV-{year}-"
with self.transaction() as conn:
# استخراج أعلى رقم فاتورة مسجل خلال العام الحالي
row = conn.execute(
"SELECT invoice_code FROM invoices WHERE invoice_code LIKE ? ORDER BY id DESC LIMIT 1",
(f"{prefix}%",)
).fetchone()
next_id = 1
if row:
try:
next_id = int(row["invoice_code"].split("-")[-1]) + 1
except ValueError:
pass
code = f"{prefix}{next_id:04d}"
conn.execute(
"""
INSERT INTO invoices (invoice_code, client_name, client_phone, total_amount, created_at)
VALUES (?, ?, ?, ?, ?)
""",
(code, client_name.strip(), client_phone.strip(), round(total_amount, 2), now_str)
)
return code
3. طباعة الفواتير باللغة العربية (RTL) إلى PDF بجودة متجهة فائقة
الكثير من المطورين يعانون عند استخدام مكتبات توليد PDF مثل reportlab أو weasyprint بسبب تشوه الخط العربي وانعكاس الحروف (تشابك الأحرف المعكوسة).
الحل الاحترافي الأبسط والأكثر استقراراً هو استخدام قوالب HTML5 النظيفة مع قواعد CSS @media print. محرك المتصفح الحديث يمتلك أفضل تقنية تشكيل خط عربي في العالم (Complex Text Layout)، وعند استدعاء أمر الطباعة window.print() ينتج ملف PDF متجهي فائق الدقة.
<!DOCTYPE html>
<html lang="ar" dir="rtl">
<head>
<meta charset="UTF-8">
<style>
body {
font-family: "Segoe UI", Tahoma, "Noto Sans Arabic", sans-serif;
direction: rtl;
text-align: right;
background: #f8fafc;
padding: 30px;
color: #0f172a;
}
.invoice-box {
max-width: 800px;
margin: auto;
background: #ffffff;
padding: 40px;
border-radius: 12px;
box-shadow: 0 4px 20px rgba(0,0,0,0.06);
}
.invoice-header {
display: flex;
justify-content: space-between;
align-items: center;
border-bottom: 2px solid #0f172a;
padding-bottom: 20px;
}
table { width: 100%; border-collapse: collapse; margin-top: 25px; }
th, td { padding: 12px; border-bottom: 1px solid #e2e8f0; text-align: right; }
th { background: #f1f5f9; color: #475569; font-size: 13px; }
.total-badge { font-size: 22px; font-weight: 900; color: #059669; }
@media print {
body { background: none; padding: 0; }
.invoice-box { box-shadow: none; border-radius: 0; padding: 0; }
.no-print { display: none !important; }
}
</style>
</head>
<body>
<div class="invoice-box">
<div class="invoice-header">
<div>
<h2 style="margin:0;">فاتورة رسمية ضريبية</h2>
<small style="color:#64748b;">رقم الفاتورة: INV-2026-0042</small>
</div>
<div>
<h3 style="margin:0;">مؤسسة الحلول الرقمية</h3>
</div>
</div>
<!-- تفاصيل الفاتورة والعميل والجدول -->
</div>
</body>
</html>
الحلول البرمجية الجاهزة من استوديو أنتيجرافيتي (Antigravity Dev Studio)
إذا كنت تبحث عن أنظمة متكاملة جاهزة للعمل الفوري دون الحاجة لكتابة كل سطر من الصفر، يمكنك الحصول على الكود المصدري الكامل مع ترخيص تجاري مدى الحياة عبر متجرنا الرسمي:
🛍️ OrderFlow Pro ($29)
متجر إلكتروني متكامل للطلب عبر واتساب وسلة تسوق ذكية، لوحة تحكم CRM لإدارة حالات الطلبات، تحليل إيرادات آخر 7 أيام، ونظام توليد فواتير رسمية ثنائية اللغة (عربي/إنجليزي) بدون أي مكتبات خارجية.
📄 DocuPulse Pro ($19)
استوديو مخصص لإرسال عروض الأسعار التفاعلية بروابط توقيع رقمية معتمدة للعملاء، توليد الفواتير دفعة واحدة من ملفات الإكسل (Batch CSV)، وإرسال رسائل تذكير تلقائية بالدفعات المتأخرة عبر واتساب.
🎁 حزمة أدوات بايثون للأتمتة (مجاناً $0+)
حزمة مجانية تحتوي على 5 سكربتات جاهزة للتشغيل الفوري: تنظيف وتلخيص ملفات CSV، مراقبة المواقع، تنظيم الملفات، نسخ احتياطي لقواعد البيانات، ومولد فواتير عربي/إنجليزي.
🚀 الحزمة البرمجية الكاملة Full-Stack Pro Bundle ($45 — وفر $17)
تحصل على الأكواد المصدرية الكاملة للأنظمة الثلاثة (OrderFlow Pro و DocuPulse Pro وإضافة كروم TabPilot Pro) بالإضافة إلى حزمة أدوات الأتمتة ودليل إعادة التسمية التجارية للوكالات والمطورين بقيمة $45 فقط (بدلاً من $62).
-
كود خصم حصري: استخدم كوبون
LAUNCH20في صفحة الدفع للحصول على خصم إضافي 20% لتصبح الحزمة الكاملة بسعر $36 فقط!
🌐 رابط المتجر الرسمي: https://antigone16.gumroad.com/
هل تحتاج إلى نظام مخصص أو أتمتة حصرية لمشروعك؟
يقدّم فريقنا الهندسي خدمات تطوير خاصة للمتاجر والشركات العربية:
- بناء منصات مبيعات وتجارة عبر واتساب مخصصة بالكامل.
- ربط قواعد البيانات وأتمتة التقارير المالية والإدارية.
- إضافات متصفح كروم خاصة لتسريع أعمال فريقك.
تواصل مباشرة مع المهندس المسؤول عبر البريد الإلكتروني:
📩 [email protected] (نضمن الرد خلال 24 ساعة).
Originally published by Dev.to WebDev. Aggregated on AIWithGhost for educational purposes — full credit and traffic to the original publisher.