حماية الدفعالتفاصيل
- التعديلات ضمن الباقة مجانية.
- إذا لم تردّ خلال 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 واحدًا يضم كل المبيعات وورقة بالإجماليات حسب المتجر.
العميل وجميع التفاصيل افتراضية.
عن هذه الخدمة
حين يرسل المورّد قائمة أسعار جديدة كل أسبوع، فإن إعادة حساب أسعارك يدويًا تعني ساعات في Excel وأخطاء في المعادلات. يقرأ سكربت Python هذا ملف المورّد ويطبق قواعدك: هامش ربح بالنسبة المئوية أو بمبلغ ثابت، وبدءًا من الباقة القياسية هوامش مختلفة حسب الفئة أو العلامة التجارية أو شريحة السعر، وحد أدنى للربح، وسعر صرف تدخله، وتقريب مثل الصعود إلى .99 أو إلى أقرب 10. يحفظ قائمة أسعار جديدة بالأعمدة التي تحتاجها، جاهزة لمتجرك أو لعملائك، ويسرد الصفوف التي تعذّر تسعيرها. القواعد قواعدك؛ يُجري السكربت الحسابات ولا يقدم نصائح في التسعير. تشغّله بنفسك على جهازك، لذا قارن القوائم الأولى ببضعة أسعار تحسبها يدويًا.
ما المشمول
- ما الذي تحصل عليهأرشيف ZIP يضم سكربت Python وملف README بتعليمات خطوة بخطوة، ومن الباقة القياسية ملف إعدادات بهوامش الربح والتقريب؛ ويُعرض الكود أيضًا في صفحة الطلب.
- قواعد هامش الربح الخاصة بكنسبة مئوية أو مبلغ ثابت، حسب الفئة أو العلامة التجارية أو شريحة السعر
- تقريب تختارهالصعود إلى .99، أو إلى أقرب 10، أو كما تحدد
- أعمدتكالأعمدة التي تحتاجها فقط، بترتيبك
- سرد الصفوف ذات المشكلاتيُبلَّغ عن الصفوف التي بلا سعر أو بفئة غير معروفة
- كود مقروءمع تعليقات، ليسهل تغيير أي قاعدة لاحقًا
كيف يعمل
- 1القواعدترسل عينة من ملف المورّد وقواعد هامش الربح
- 2الكودنكتب السكربت ودليل تشغيله
- 3جرّبهتشغّله على أحدث قائمة وتتحقق من بضعة أسعار يدويًا
- 4التعديلاتتطلب التعديلات ضمن باقتك وترسل أي رسالة خطأ
ما نحتاجه منك
20-30 صفًا من قائمة أسعار المورّد كما تصل (Excel أو CSV)، وقواعد هامش الربح مكتوبة بوضوح (مثلًا 35% على كل ما هو دون 50، و25% فوق ذلك، وربح لا يقل عن 5)، والتقريب الذي تريده، وسعر الصرف إن كانت الأسعار تحتاج إلى تحويل ومصدره، والأعمدة التي يجب أن تضمها قائمة أسعارك. إن كان لديك عدة مورّدين (الباقة المميزة)، فعينة من كل منهم. نظامك: Windows أو macOS أو Linux.
سنسألك:
- ماذا يرسل المورّد؟
- ما قواعد هامش الربح لديك؟
- كيف يجب تقريب الأسعار؟
- ماذا يجب أن تضم قائمة أسعارك؟
قارن بين الباقات
| الباقات | الأساسيةقاعدة هامش ربح واحدة16 US$ | القياسيةهامش الربح مع الإعدادات33 US$ | المميزةأداة التسعير67 US$ |
|---|---|---|---|
| مدة التنفيذ | 1 يوم | 2 يوم | 3 أيام |
| التعديلات | 1 | 2 | 3 |
| الكود | حتى 150 سطرًا | حتى 400 سطر | حتى 1,000 سطر |
| ملفات الكود | 1 | حتى 3 | حتى 8 |
| ملف الإعدادات | لا | نعم | نعم |
| رسائل خطأ واضحة وسجل | لا | نعم | نعم |
| خيارات التشغيل ودليل لتشغيله وفق جدول زمني | لا | لا | نعم |
| دليل التثبيت والتشغيل (README) | نعم | نعم | نعم |
| اللغة | Python | Python | Python |
| اطلب الأساسية | اطلب القياسية | اطلب المميزة |
حماية الدفع
تدفع عند الطلب، لكن المبلغ لا يُحوَّل إلا مقابل عمل قبلته.
- سعر ثابتلا يتغير سعر الباقة بعد الدفع.
- المبلغ محجوزعند الدفع، يُحجز المبلغ فقط. ولا يُحوَّل إلى Dleex إلا بعد قبولك العمل.
- فحص قبل التسليمتخضع كل نتيجة لفحص الجودة قبل أن تصل إليك، وتراها في صفحة الطلب قبل قبولها.
- تعديلات مجانيةاطلب تعديلات ضمن متطلبات طلبك بالعدد الذي تسمح به الباقة.
- القبول بعد 3 أيامإذا لم تقبل العمل ولم تطلب تعديلات خلال 3 أيام من التسليم، يُقبل تلقائيًا. وإذا كتبت في محادثة الطلب بعد التسليم، يبقى الطلب قيد الانتظار؛ وبعد ردّنا، قد نعيد بدء مهلة 3 أيام وسنُعلمك بذلك في المحادثة.
- إعادة التنفيذ أو استرداد المبلغ كاملًاإذا لم تطابق النتيجة متطلبات طلبك ولم تُصلحها التعديلات، أو استغرق العمل أكثر من ضعف مدة التنفيذ، فاكتب في محادثة الطلب: سنعيد تنفيذ العمل أو نردّ إليك المبلغ كاملًا.
الأسئلة والأجوبة
هل يمكنه أخذ سعر الصرف من الإنترنت؟
في الباقة المميزة يمكنه قراءة السعر من مصدر عام تختاره، مثل الأسعار التي ينشرها البنك المركزي في بلدك. وإلا تكتب السعر في الإعدادات قبل كل تشغيل.
هل يمكنه رفع الأسعار إلى متجري؟
هذا العرض يُنشئ ملف قائمة الأسعار. كثير من منصات المتاجر تستورد الأسعار من مثل هذا الملف؛ أخبرنا بمنصتك فنجعل الأعمدة مناسبة لاستيرادها.
ماذا لو غيّر المورّد الملف؟
بدءًا من الباقة القياسية توضع أسماء الأعمدة في ملف الإعدادات، فتغيير اسم عمود يعني تعديل سطر واحد. أما التخطيط الجديد كليًا فقد يتطلب تعديل السكربت.
هل ستخبرونني بهامش الربح المناسب؟
لا. لا نقدم نصائح في التسعير أو نصائح مالية: يطبق السكربت القواعد التي تحددها، والأرقام قرارك أنت.
لم تجد إجابتك؟