حماية الدفعالتفاصيل
- التعديلات ضمن الباقة مجانية.
- إذا لم تردّ خلال 3 أيام من التسليم، يُقبل العمل تلقائيًا.
يُحجز المبلغ عند الدفع ولا يُحوَّل إلا بعد قبولك العمل.

مثال على النتيجة
دمج ملفات المبيعات الشهرية لـ 9 متاجر في تقرير Excel واحد
طريقة التشغيل
python merge_sales.py --month 2026-10
2026-11-02 09:14:03 INFO المجلد: sales/2026-10، عُثر على 9 ملفات
2026-11-02 09:14:03 INFO shop-01.csv: 1,284 صفًا
2026-11-02 09:14:04 INFO shop-02.xlsx: 967 صفًا
2026-11-02 09:14:04 WARN shop-07.csv: تُخطّيت 3 صفوف بلا سعر (الأسطر 88، 412، 913)
2026-11-02 09:14:05 INFO تم: 10,412 صفًا -> report-2026-10.xlsx (الورقتان «المبيعات» و«الإجماليات»)
إعدادات لا كود
أسماء أعمدة كل متجر موجودة في settings.ini، فالمتجر الجديد أو العمود الذي تغيّر اسمه يعني سطرًا واحدًا هناك:
[columns]
date = التاريخ, تاريخ البيع, اليوم
product = المنتج, الصنف, الاسم
quantity = الكمية, العدد, قطع
price = السعر, سعر الوحدة
جزء من الكود
def read_shop_file(path: Path, columns: dict[str, list[str]]) -> pd.DataFrame:
"""يقرأ ملف متجر واحد ويمنح أعمدته أسماء أعمدة التقرير."""
table = pd.read_excel(path) if path.suffix == ".xlsx" else pd.read_csv(path, encoding="utf-8-sig")
renamed = {}
for name, variants in columns.items():
found = next((c for c in table.columns if c.strip() in variants), None)
if found is None:
raise ReportError(f"{path.name}: لا يوجد عمود لـ «{name}» (جرى البحث عن: {', '.join(variants)})")
renamed[found] = name
table = table.rename(columns=renamed)[list(columns)]
table["shop"] = path.stem
return table
الملفات: أرشيف ZIP يضم merge_sales.py (310 أسطر)، وsettings.ini، وrequirements.txt، وملف README يشرح تثبيت Python وتشغيل السكربت ومعنى كل رسالة في السجل. يشغّله العميل على كمبيوتره الخاص.
العميل: سلسلة صغيرة من 9 متاجر للأدوات المكتبية؛ يرسل كل متجر مبيعاته الشهرية في ملف CSV أو Excel، بأسماء أعمدة تختلف قليلًا من متجر إلى آخر. المهمة: سكربت واحد يقرأ كل ملف في مجلد، ويوحّد الأعمدة في شكل واحد، ويكتب تقرير Excel واحدًا يضم كل المبيعات وورقة بالإجماليات حسب المتجر.
العميل وجميع التفاصيل افتراضية.
عن هذه الخدمة
طلبات من منصة متجرك، ومهام من خدمة لإدارة المشاريع، وحجوزات من نظام حجز: إن كانت للخدمة API عامة، فيمكن أن تصل البيانات إلى جدول بيانات Google لديك دون تصدير الملفات يدويًا. يرسل سكربت Google Apps Script هذا طلبًا إلى الـ API بمفتاحك الخاص، ويأخذ الحقول التي تحتاجها ويكتبها كصفوف، صفحة بعد صفحة. بدءًا من الباقة القياسية يوضع المفتاح في خصائص السكربت التي تملؤها أنت، لا في الكود، وتذهب الأخطاء إلى تبويب Log؛ وتضيف الباقة المميزة الصفوف الجديدة أو المتغيرة فقط ودليلًا لتشغيله كل ساعة أو كل يوم بمشغّل زمني. أرسل إلينا رابطًا إلى وثائق الـ API والحقول التي تريدها. يقتصر التشغيل الواحد على نحو ست دقائق، لذا تُنفَّذ عمليات الاستيراد الكبيرة جدًا على أجزاء.
ما المشمول
- ما الذي تحصل عليهأرشيف ZIP يضم كود Apps Script وملف README يوضح كيفية إضافته إلى جدولك ووضع مفتاحك وتشغيله؛ ويُعرض الكود أيضًا في صفحة الطلب.
- وفق الوثائقمكتوب من وثائق الـ API نفسها
- حقول تختارهاالأعمدة التي تحتاجها فقط، بترتيبك
- كل الصفحاتتُقرأ النتائج المقسمة إلى صفحات حتى النهاية
- المفتاح خارج الكودتضعه بنفسك في خصائص السكربت
- كود مقروءمع تعليقات، ليسهل إضافة حقل لاحقًا
كيف يعمل
- 1المهمةترسل وثائق الـ API والحقول التي تحتاجها
- 2الكودنكتب السكربت وفق الوثائق ودليل تثبيته
- 3جرّبهتضيف مفتاحك في نسخة من الجدول وتشغّله
- 4التعديلاتتطلب التعديلات ضمن باقتك وترسل أي رسالة خطأ
ما نحتاجه منك
الخدمة ورابط إلى وثائق الـ API الخاصة بها، والطلب الذي تحتاجه (مثلًا الطلبات خلال آخر 30 يومًا)، والحقول التي يجب أن تصبح أعمدة. مثال على رد الـ API يساعد كثيرًا: انسخه من الوثائق أو من استدعاء تجريبي بعد إزالة القيم الخاصة. كم مرة يجب تحديث البيانات، وهل تُضاف صفوف جديدة أم يُعاد كتابة الجدول. لا ترسل أبدًا مفتاح API الحقيقي: يوضح ملف README مكان وضعه.
سنسألك:
- أي خدمة، وأين وثائق الـ API الخاصة بها؟
- ما البيانات التي تحتاجها؟
- كم مرة يجب أن يتحدّث؟
قارن بين الباقات
| الباقات | الأساسيةاستدعاء API واحد16 US$ | القياسيةالاستيراد مع الإعدادات33 US$ | المميزةأداة الاستيراد67 US$ |
|---|---|---|---|
| مدة التنفيذ | 1 يوم | 2 يوم | 3 أيام |
| التعديلات | 1 | 2 | 3 |
| الكود | حتى 150 سطرًا | حتى 400 سطر | حتى 1,000 سطر |
| ملفات الكود | 1 | حتى 3 | حتى 8 |
| ملف الإعدادات | لا | نعم | نعم |
| رسائل خطأ واضحة وسجل | لا | نعم | نعم |
| خيارات التشغيل ودليل لتشغيله وفق جدول زمني | لا | لا | نعم |
| دليل التثبيت والتشغيل (README) | نعم | نعم | نعم |
| اللغة | Google Apps Script | Google Apps Script | Google Apps Script |
| اطلب الأساسية | اطلب القياسية | اطلب المميزة |
حماية الدفع
تدفع عند الطلب، لكن المبلغ لا يُحوَّل إلا مقابل عمل قبلته.
- سعر ثابتلا يتغير سعر الباقة بعد الدفع.
- المبلغ محجوزعند الدفع، يُحجز المبلغ فقط. ولا يُحوَّل إلى Dleex إلا بعد قبولك العمل.
- فحص قبل التسليمتخضع كل نتيجة لفحص الجودة قبل أن تصل إليك، وتراها في صفحة الطلب قبل قبولها.
- تعديلات مجانيةاطلب تعديلات ضمن متطلبات طلبك بالعدد الذي تسمح به الباقة.
- القبول بعد 3 أيامإذا لم تقبل العمل ولم تطلب تعديلات خلال 3 أيام من التسليم، يُقبل تلقائيًا. وإذا كتبت في محادثة الطلب بعد التسليم، يبقى الطلب قيد الانتظار؛ وبعد ردّنا، قد نعيد بدء مهلة 3 أيام وسنُعلمك بذلك في المحادثة.
- إعادة التنفيذ أو استرداد المبلغ كاملًاإذا لم تطابق النتيجة متطلبات طلبك ولم تُصلحها التعديلات، أو استغرق العمل أكثر من ضعف مدة التنفيذ، فاكتب في محادثة الطلب: سنعيد تنفيذ العمل أو نردّ إليك المبلغ كاملًا.
الأسئلة والأجوبة
هل سيعمل مع أي خدمة؟
مع الخدمات التي لديها API عامة وتتيح لك الحصول على مفتاحك أو رمزك الخاص. الخدمات التي بلا API، أو التي تتطلب تسجيل الدخول عبر صفحة في المتصفح في كل مرة، غير مشمولة.
كم مرة يمكنه التحديث؟
بمشغّل زمني، حتى كل بضع دقائق، وإن كانت معظم البيانات تحتاج إلى تشغيل كل ساعة أو كل يوم. تنطبق حدود الطلبات الخاصة بالخدمة، وكذلك حدود Google على السكربتات.
هل يمكنه إرسال البيانات إلى الخدمة؟
هذا العرض يقرأ البيانات إلى الجدول. الكتابة في الاتجاه المعاكس ممكنة إن سمحت بها الـ API؛ صِفها في متطلبات الطلب وسنخبرك هل تتسع لباقتك.
هل ستحصلون على مفتاح بدلًا مني؟
لا. تنشئ المفتاح في حسابك لدى الخدمة وتضعه في خصائص السكربت بنفسك. لا نسجّل الدخول إلى حساباتك أبدًا.
لم تجد إجابتك؟