العملاء الضيوف
يعني إيه سجلات الضيوف، وإزاي XPay بيجمّعهم، وإزاي أقسام 'مرتبطة' على الملف بتشتغل.
العميل الضيف (CustomerAPI) هو سجل XPay بيعمله تلقائيًا أول ما حد يدفعلك من غير ما يكون فيه سجل عميل مربوط بالدفعة أصلًا. بيظهروا في قائمة العملاء بشارة ضيف وبيتصرّفوا زي أي عميل عادي في كل حاجة إلا في كام مكان الصفحة دي بتنبّه عليهم.
الضيوف موجودين علشان حاجتين يشتغلوا ببساطة:
- تقدر تلاقي أي حد دفعلك، بالاسم، أو الإيميل، أو التليفون، حتى لو ماعملتش أي تسجيل أو حساب من ناحيتك.
- الإنفاق على مدى العمر، والمبالغ المستردة، وتاريخ الدفع بيتجمّعوا تحت سجل واحد لكل شخص، حتى لو بيانات تواصله اتغيّرت شوية بين الزيارات (إيميل بحروف كبيرة مرة، وصغيرة المرة التانية، وكود الدولة
00مرة و+مرة).
هتشوف إيه
سجل ضيف لكل شخص
أول دفعة بتعمل السجل. والمرة اللي بعدها لما نفس الشخص يدفع، XPay بيطابق السجل الموجود بدل ما يعمل نسخة مكررة.
إيميلات وأرقام بديلة
في ملف الضيف، كل إيميل وتليفون استخدمه نفس الشخص بمرور الوقت بيظهر تحت الأساسي.
حسابات مرتبطة من الناحيتين
ملف الضيف بيعرض العملاء المسجّلين اللي بيشاركوا إيميله، أو تليفونه، أو بطاقته. وملف العميل المسجّل بيعرض الضيوف كمان.
حاجتين الضيوف مايقدروش يعملوهم
مفيش بطاقة محفوظة، وماتقدرش تشاور على معرّف الضيف وانت بتعمل جلسة دفع مستقبلية.
إزاي XPay بيجمّع العملاء الضيوف
لما الدفعة تخلص من غير سجل عميل مربوط بيها، XPay بيدوّر على ضيف موجود على حسابك يطابقها ويعيد استخدامه. ولو مفيش حاجة تطابق، بيتعمل سجل ضيف جديد. المطابقة بتشتغل على مرحلتين.
وقت الدفع، ببيانات التواصل
في اللحظة اللي العميل بيدخّل فيها إيميله أو تليفونه على نموذج الدفع، XPay بيدوّر على ضيف موجود بنفس الإيميل أو نفس التليفون:
| المعرّف | إزاي بيتطابق |
|---|---|
| الإيميل | حالة الحروف والمسافات حواليه بيتجاهلهم. Aya@Example.com وaya@example.com بيطابقوا نفس الضيف. |
| التليفون | تنسيق كود الدولة بيتوحّد. 0020... و+20... بيطابقوا نفس الضيف. |
التطابق في أي حقل من الاتنين بيعيد استخدام سجل الضيف الموجود. أحدث بيانات تواصل بتبقى الأساسية، والقيم القديمة بتفضل قابلة للبحث على الملف تحت بريد إلكتروني بديل وأرقام بديلة. مفيش حاجة بتضيع.
بعد الدفع، بالبطاقة
بمجرد ما الدفعة تنجح، XPay بيسجّل البطاقة على ملف الضيف. ولو نفس البطاقة اتستخدمت على سجل ضيف تاني على حسابك، الاتنين بيتدمجوا في واحد. كل المعاملات، والمبالغ المستردة، وطرق الدفع من السجلات المدموجة بتنتقل للسجل الباقي، والإنفاق على مدى العمر بيتعاد حسابه.
ده اللي بيلتقط الحالة اللي العميل فيها استخدم إيميل أو رقم تليفون مختلف في عمليتين دفع منفصلتين بس دفع بنفس البطاقة في المرتين.
نفس التاجر بس
مطابقة الضيوف بتحصل بس داخل حساب تاجر واحد. تاجرين مختلفين على XPay عمرهم ما بيشاركوا سجلات ضيوف، حتى لو نفس الشخص دفع للاتنين. ووضع الاختبار والحساب الفعلي منفصلين كمان.
عمرها ما بتعدّي للعملاء المسجّلين
مطابقة الضيوف بتطابق بس ضيوف بضيوف تانيين. دفعة الضيف عمرها ما بتترّبط تلقائيًا بعميل مسجّل، حتى لو بيشاركوا إيميل، أو تليفون، أو بطاقة. الصلة بتتعرض لك في أقسام مرتبطة على كل ملف، لكن XPay ماهيدمجش الاتنين من نفسه. انت بس اللي تقدر تضمن هوية العميل، بتمرير customerId على جلسة الدفع (دورة حياة العميل بتغطي الناحية الكودية).
إيه اللي بيتغيّر في ملف الضيف
افتح عميل ضيف علشان تشوف ملفه. الشكل زي شكل العميل المسجّل، مع تلات فروق.
شارة الضيف
شارة ضيف صغيرة بتكون جنب الاسم في القائمة وفوق صفحة التفاصيل. حوّم على الشارة علشان تشوف تذكير في سطر واحد بسبب وجود السجل.
بريد إلكتروني بديل وأرقام بديلة
في عمود بيانات العميل، حقلين زيادة بيظهروا لما الضيف يكون استخدم أكتر من إيميل أو تليفون بمرور الوقت. الإيميل والتليفون الأساسيين بيفضلوا فوق. وكل حاجة تانية استخدمها بتتسرد تحتيهم، علشان تقدر تربط نفس الشخص عبر الاختلافات البسيطة.
أقسام "مرتبطة"
جداول روابط متبادلة بتعرض إزاي الضيف ده متّصل بسجلات تانية. شوف القسم اللي بعده علشان تعرف كل واحد بيسرد إيه.
الحسابات المرتبطة
في كل ملف عميل، XPay بيطلّع السجلات اللي بتشارك إيميل، أو تليفون، أو بطاقة مع اللي انت بتبصّ عليه. تلات أقسام ممكن يظهروا، على حسب انت في أي ناحية:
| القسم | بيظهر فين | بيسرد إيه |
|---|---|---|
| حسابات العملاء المرتبطة | ملفات الضيوف | العملاء المسجّلين اللي بيشاركوا إيميل، أو تليفون، أو بطاقة مع الضيف ده. |
| عملاء ضيوف مرتبطون | الملفات المسجّلة | سجلات الضيوف التانية اللي بتشارك إيميل، أو تليفون، أو بطاقة مع العميل ده. |
| مدفوعات الضيوف المرتبطة | الملفات المسجّلة | عمليات دفع فردية عملها ضيوف بيشاركوا إيميل، أو تليفون، أو بطاقة مع العميل ده. |
استخدم دول علشان تشوف الصورة الكاملة: عميل مسجّل دفع مرة كضيف قبل ما يعمل حساب، أو عميل واحد اتفرّقت عملياته على أكتر من سجل ضيف قبل ما يدفع ببطاقة مشتركة.
المطابقة باتجاه واحد وللقراءة بس. لوحة التحكم بتوريك الصلة. وماببتدمجش الضيوف في العملاء المسجّلين تلقائيًا.
إيه اللي الضيوف مايقدروش يعملوه
سجل الضيف بيغطي أغلب اللي هتعمله يوم بيوم. حاجتين بس العملاء المسجّلين هما اللي يقدروا يعملوهم:
بطاقة محفوظة. كل دفعة ضيف بتطلب بطاقة جديدة. مفيش طريقة تخصم من بطاقة ضيف تاني بعدين عن طريق لوحة التحكم أو عن طريق جلسة دفع مستقبلية. لو عايز بطاقة تقدر تخصم منها تاني (اشتراكات، أو إعادة طلب بضغطة، أو خصومات خارج الجلسة)، اعمل عميل مسجّل بدل كده. دليل المطوّر عن دورة حياة العميل بيغطي customerCreation: "always" وإزاي تلتقط الـ cus_* الناتج من الـ webhook بتاع checkout.session.completed.
تمريرهم كـ customerId على جلسة دفع. الضيوف سجلات وقت الدفع بس. تقدر تتصفّحهم، وتشوف تاريخهم، وتربطهم بالعملاء المسجّلين، لكن ماتقدرش تشاور على معرّف الضيف وانت بتعمل جلسة الدفع اللي بعدها. لو ضيف دفعلك وبعدين اشترك، التصرّف الصح إنك تبدأ عميل مسجّل جديد على أول دفعة ليه وهو مسجّل دخوله، وبعدين تستخدم الـ cus_* ده في كل حاجة بعد كده. وأقسام مرتبطة في لوحة التحكم بتحافظ على الصلة ظاهرة.