تصدير طلبات Shopify وملف CSV لنشاط PayPal قد يصفان نفس البيع بمعرّفات مختلفة وتواريخ مختلفة وعدد صفوف مختلف. لهذا تطول قائمة الاختلافات في كل مرة تقارن فيها الملفين سطراً بسطر.
المشكلة تبدأ قبل كتابة أي معادلة. Shopify يسجّل الحدث التجاري: الطلب وعناصره والخصومات ورسوم الشحن والحالة. PayPal يسجّل حدث الدفع: التحصيل والعمولة والاسترداد والإلغاء أو التحويل. هذان سجلّان مرتبطان، لكنهما ليسا السجل نفسه.
إن كنت تبحث عن صفوف المبيعات غير المطابقة بين ملف Shopify وتصدير PayPal، توقف عن التعامل مع الملفين كأن كل صف يجب أن يكون له نظير في الجهة الأخرى. المطلوب هو إيجاد مفتاح المطابقة الصحيح، وتحويل كلا التصديرين إلى طرق عرض قابلة للمقارنة، والفصل بين المبيعات الغائبة فعلاً وتلك التي يبدو أنها غائبة بسبب فارق التوقيت أو الاسترداد أو التنسيق.
لماذا لا تتطابق الصفوف الخام
معظم الاختلافات الزائفة تنشأ من مقارنة التصديرات الافتراضية كما هي.
Shopify يمكنه توليد عدة صفوف لطلب واحد إن احتوى عدة عناصر. PayPal يمكنه توليد عدة صفوف لنفس البيع، لأن الدفع والعمولة والاسترداد وأي تسوية لاحقة قد تظهر كل منها في صف منفصل. حتى حين يكون الملفان صحيحين، قد يختلف عدد الصفوف فيهما.
| ما تراه | ما يعنيه عادةً | لماذا يبدو غير مطابق |
|---|---|---|
| طلب Shopify واحد يظهر في ثلاثة صفوف | الطلب يحتوي ثلاثة منتجات | Shopify يكتب التفاصيل بمستوى العنصر، لا بمستوى الدفع |
| بيع واحد في PayPal يظهر بصف عمولة وصف استرداد | PayPal يسجّل أحداث المعاملة على مدى الوقت | المبلغ وعدد الصفوف لم يعودا يطابقان تصدير Shopify |
| نفس البيع يظهر بتواريخ مختلفة | Shopify يستخدم وقت الطلب، PayPal يستخدم وقت الدفع | المطابقة بالتاريخ تفشل حتى حين البيع حقيقي |
| رقم الطلب موجود في Shopify لكن PayPal يعرض معرّف معاملة | النظامان يستخدمان مراجع رئيسية مختلفة | المطابقة الحرفية بالمعرّف تُنتج نتائج سلبية خاطئة |
هذه هي المشكلة البنيوية ذاتها التي تفسّر لماذا تتأخر تسوية طلبات Shopify مع مدفوعات Stripe: ملف واحد يصف ما بِيع، والآخر يصف كيف تحرّك المال.
اختَر مفتاح المطابقة قبل أي مقارنة
الصف غير المطابق نادراً ما يعني أن بيعاً مفقود. في الغالب يعني أن المفتاح المختار لا يستطيع ربط النظامين.
ابدأ بأقوى مفتاح متاح، وانزل للتالي فقط إن لم يحتوِه الملف.
| الأولوية | الحقل في Shopify | الحقل في PayPal | مستوى الموثوقية |
|---|---|---|---|
| الأفضل | Payment ID أو Payment References | Transaction ID أو مرجع مرتبط بفاتورة | أعلى ثقة حين تتطابق القيمة نفسها في الملفين |
| الثاني | رقم الطلب أو اسمه المُنقل إلى حقل ملاحظة أو فاتورة | Invoice ID أو حقل مخصص أو نص ملاحظة | قوي إن حافظت عملية الدفع أو التصدير على رقم الطلب |
| البديل | المبلغ الإجمالي والبريد الإلكتروني للعميل والعملة والوقت القريب | المبلغ الإجمالي وبريد الدافع والعملة والوقت القريب | مفيد للمراجعة، غير كافٍ للمطابقة التلقائية العمياء |
لا تبدأ بالمبلغ وحده. طلبان يمكن أن يتشاركا نفس المبلغ. لا تبدأ بالتاريخ وحده. طلب منتصف الليل ودفع اليوم التالي قد يكونان نفس البيع. لا تبدأ بموقع الصف. ترتيب الصفوف لا يخبرك شيئاً.
السؤال الصحيح ليس «أي عمود يبدو مشابهاً؟». السؤال هو «أي حقل يستطيع إثبات أن هذا البيع في Shopify وهذا الدفع في PayPal هما الحدث التجاري نفسه؟»
أنشئ طريقتَي عرض للمقارنة بدلاً من استخدام الملفين الكاملين
أفضل طريقة هي تحويل كل تصدير إلى طريقة عرض أصغر قبل المطابقة.
لـ Shopify، احتفظ بالحقول التي تعرّف البيع وأزل ضجيج صفوف العناصر. إن ظهر الطلب في عدة صفوف، اختزله إلى سجل واحد بمستوى الطلب قبل المقارنة.
| الاحتفاظ به من Shopify | لماذا يهم |
|---|---|
| Order ID أو Name | المرجع التجاري اللازم لتتبع الطلب لاحقاً |
| Created at أو Paid at | يتيح مراجعة فوارق التوقيت دون استخدام التاريخ مفتاحاً رئيسياً |
| Payment Method | يؤكد أنك تقارن فقط المبيعات المدفوعة عبر PayPal |
| Payment ID أو Payment References | أفضل جسر متاح نحو جانب الدفع |
| الإجمالي والعملة والمبلغ المسترد | ضروري للفصل بين البيع الإجمالي والتخفيضات اللاحقة |
| البريد الإلكتروني للعميل | مفيد للمراجعة الثانوية حين تغيب المعرّفات |
لـ PayPal، احتفظ فقط بالصفوف المرتبطة بنشاط المتجر. التصدير الخام قد يشمل أيضاً تحويلات وسحوبات واحتياطيات وتحويلات عملة وأحداث حساب لا صلة لها بالمتجر. هذه لا مكان لها في المقارنة الأولى مع مبيعات المتجر.
| الاحتفاظ به من PayPal | لماذا يهم |
|---|---|
| Transaction ID | المرجع الرئيسي من جانب الدفع |
| التاريخ والوقت | ضروري لمراجعة فوارق التوقيت |
| Transaction type | يفصل بين الدفع والاسترداد والإلغاء والعمولة |
| الإجمالي والعمولة والصافي والعملة | يظهر إن تغيّر مبلغ البيع بعد المعالجة |
| البريد الإلكتروني للعميل أو الدافع | مفيد للمطابقة الثانوية |
| حقول الفاتورة أو المرجع المخصص إن وُجدت | في الغالب الجسر الوحيد نحو رقم طلب Shopify |
إن كنت بحاجة إلى تفسير سبب عدم تطابق رصيد PayPal مع ملف آخر، فـتسوية تصدير PayPal الشهري مع كشف الحساب البنكي هو المشكلة المجاورة. لا تخلط تلك التسوية على المستوى البنكي مع هذه التسوية على مستوى الصفوف قبل أن تحدد أي المبيعات تنتمي لبعضها.
الطريقة للوصول سريعاً إلى صفوف المبيعات غير المطابقة
1. حصّر Shopify في المبيعات التي تختبرها فعلاً
صفّ Shopify على الطلبات المدفوعة حيث PayPal هو طريقة الدفع. استثنِ الطلبات التجريبية والطلبات الملغاة التي لم تُحصَّل قط وأي فئة طلبات خارج الفترة التي تسوّيها.
إن كان تصدير Shopify بمستوى العنصر، اجمعه إلى صف واحد لكل طلب قبل المقارنة. جدول التسوية لا يجب أن يحتوي خمسة صفوف لطلب من خمسة عناصر إن كان PayPal يحتوي صفاً واحداً لنفس عملية الشراء.
2. اقسّم تصدير PayPal بحسب نوع المعاملة
لا تقارن كل صفوف PayPal بمبيعات Shopify في ورقة واحدة. افصل:
- مدفوعات العملاء المكتملة
- الاستردادات والإلغاءات
- العمولات والاستقطاعات الأخرى
- نشاط الحساب غير المرتبط بالمتجر
الجولة الأولى تقارن مبيعات Shopify بمدفوعات عملاء PayPal المكتملة فقط. الاستردادات في جولة ثانية. العمولات تُفسَّر ولا تُطابَق.
3. ابدأ بجولة المعرّف الحرفي
إن كان Shopify يتضمن Payment ID أو Payment References وتلك القيم موجودة في تصدير PayPal، ابدأ بهذا. هذه الجولة يجب أن تُنتج مجموعة التطابقات الأنظف وتُزيل الضجيج الواضح بسرعة.
حين تعمل المعرّفات الحرفية، سجّل الحالة فوراً:
| الحالة | المعنى |
|---|---|
| مُطابَق | نفس المرجع المُثبَت على كلا الجانبين |
| غائب في PayPal | بيع Shopify لا يوجد له سجل بذلك المرجع في جانب الدفع |
| غائب في Shopify | دفع PayPal موجود لكن لا طلب Shopify يحمل المرجع المرتبط |
هذه الجولة هي التي تختفي فيها كثير من الصفوف «غير المطابقة».
4. نفّذ جولة ثانية للصفوف التي لا تشترك في معرّف
بعض توليفات تصدير Shopify وPayPal لا تكشف عن نفس القيمة. هذا لا يعني أن البيع مفقود. يعني أنك بحاجة إلى مفتاح مراجعة.
استخدم مفتاح مراجعة مركّباً مثل:
- نفس العملة
- نفس المبلغ الإجمالي
- نفس نافذة التوقيت أو نافذة قريبة منها
- نفس البريد الإلكتروني للعميل أو تفاصيل الدافع المعروفة
هذه قائمة انتظار للمراجعة، ليست مطابقة تلقائية نهائية. إن اتفق سجلّان في المبلغ والعميل لكن فرق التوقيت بينهما اثنا عشر ساعة، قد يكونان نفس البيع. إن تشاركت أربعة سجلات نفس المبلغ في نفس اليوم، يلزم تأكيد يدوي قبل وضع علامة مطابق على أي منها.
حدّد أولاً الصفوف التي لا يمكن الوثوق بها تلقائياً. احسب كم صفاً في PayPal يتشارك كل مبلغ وتاريخ:
=COUNTIFS(PayPal!$D:$D,D2,PayPal!$B:$B,B2)النتيجة 1 مرشّح آمن. وأي قيمة أكبر من 1 تعني أن المبلغ والتاريخ ليسا فريدين، فأكّد تلك الصفوف بالبريد الإلكتروني أو المرجع قبل وضع علامة مطابق عليها.
5. أخرج الاستردادات من قائمة الصفوف غير المطابقة
الاستردادات تُنشئ بعض أبشع الاستثناءات الزائفة، لأن Shopify قد يعرض الطلب بيعاً مدفوعاً بمبلغ مسترد، بينما يعرض PayPal معاملة استرداد لاحقة بمعرّفها الخاص.
إن بدا صف Shopify غير مطابق، اطرح هذه الأسئلة قبل وضع علامة مفقود:
- هل استُرد الطلب الأصلي لاحقاً؟
- هل يعرض PayPal الاسترداد حدثاً منفصلاً خارج صف البيع؟
- هل وقع الاسترداد في فترة إبلاغ مختلفة؟
- هل إجمالي Shopify هو الإجمالي الكامل بينما PayPal يعرض فقط حركة الاسترداد؟
إن كانت الإجابة نعم على أي منها، فلا بيع مفقود. هذا تسلسل بيع مع استرداد يحتاج تصنيفاً صحيحاً.
6. راجع الصفوف المتبقية
في هذه المرحلة، الاستثناءات المتبقية عادةً حقيقية ومفيدة. تقع في الغالب ضمن مجموعة صغيرة من الفئات.
ما تعنيه عادةً الصفوف التي ما زالت غير مطابقة
بعد إزالة التكرارات بمستوى العنصر وضجيج نوع المعاملة ومشاكل المفتاح الغائب، الصفوف التي تبقى غير مطابقة أسهل بكثير في التفسير.
| الظاهرة المتبقية | السبب الحقيقي | ما تفعله بعد ذلك |
|---|---|---|
| بيع Shopify بلا دفع في PayPal | فشل الدفع أو عدم تحصيل الطلب أو نافذة التصدير خاطئة | راجع حالة الطلب وحالة التحصيل وتواريخ الإبلاغ |
| دفع في PayPal بلا طلب في Shopify | دفع يدوي أو استيراد مكرر أو صف تصدير Shopify مفقود | تتبّع بالبريد الإلكتروني والمبلغ والتوقيت؛ تحقق إن كان البيع ينتمي لنظام آخر |
| نفس العميل ونفس المبلغ، تاريخ مختلف | فارق توقيت بين إنشاء الطلب واكتمال الدفع | ضعه في مراجعة فارق التوقيت، لا في المفقودات |
| المبلغ يختلف قليلاً | الشحن أو الضريبة أو الخصم أو معالجة العملة أو استرداد جزئي | قارن حقول الإجمالي قبل معالجته كاستثناء |
| عدة طلبات Shopify تتطابق مع صف PayPal واحد | دفع مجمّع أو نفس المبلغ متكرر في نفس اليوم | راجع حقول المرجع قبل وضع علامة مطابق |
| نفس البيع يظهر مرتين في ملف واحد | صف تصدير مكرر أو تكرار في معالجة المعاملة | أزل التكرارات قبل الإحصاء النهائي |
هنا تتوقف عن السؤال «لماذا لديّ صفوف غير مطابقة؟» وتطرح سؤالاً أفضل: من بين الصفوف غير المطابقة، أيها استثناءات حقيقية وأيها فوارق في نموذج التسجيل بين تصدير الطلبات وتصدير المدفوعات؟
ما يجب أن تنتجه مراجعة الصفوف غير المطابقة
النتيجة يجب أن تكون أكثر من جدول بيانات مُلوَّن. يجب أن تخبرك بما طُوبق وما يحتاج مراجعة وما يستلزم إجراءً.
| قسم النتيجة | ما يجب أن يُظهره |
|---|---|
| التطابقات الحرفية | مبيعات مرتبطة بثقة عبر مرجع دفع أو معرّف معاملة مشترك |
| تطابقات تحت المراجعة | مبيعات تتفق في المبلغ والعميل والتوقيت لكنها تحتاج تأكيداً بشرياً |
| صفوف مرتبطة باسترداد | مبيعات يُفسَّر كونها غير مطابقة بنشاط استرداد لاحق |
| الاستثناءات الحقيقية | صفوف لا شريك لها بعد جميع الفحوصات |
| ملاحظات بحسب السبب | تاريخ خاطئ أو مفتاح خاطئ أو تكرار أو صف تصدير مفقود أو نشاط خارج المتجر |
قائمة استثناءات مفيدة قصيرة ومحددة. لكل صف غير محلول، يجب أن تستطيع قول أحد التالي:
- البيع موجود في Shopify لكنه لم يُحصَّل في PayPal قط
- الدفع موجود في PayPal لكن تصدير Shopify لا يتضمن الطلب المرتبط
- السجلان لنفس البيع لكن المفتاح المتاح ضعيف ويحتاج تأكيداً يدوياً
- الاختلاف ناتج عن استرداد أو إلغاء أو تكرار
هذا هو الفرق بين مقارنة الملفات وبين نتيجة التسوية. المقارنة تخبرك أن الصفوف لا تتطابق. النتيجة الحقيقية تخبرك لماذا.
