النقاط الرئيسية

  • اختبار الإدخال اليدوي، والملء التلقائي للمتصفح، واقتراحات العناوين
  • إعادة حساب مواعيد الشحن والضريبة والتسليم بعد التصحيح
  • السماح لعناوين الفواتير والشحن بالتباعد
  • جعل إرسال الطلب النهائي متساوي التأثير (idempotent)

التأليف والمراجعة

مبادئ التحرير
كتبه
فريق التحرير لمولد العناوين العشوائية
راجعه
النماذج وفريق مراجعة ضمان الجودة
آخر تحديث جوهري
تمت إضافة تصحيح العنوان، وإعادة حساب الشحن، وفصل الفواتير، والتقديم غير الفعال، وحالات الهاتف المحمول.

إدخال العنوان له مسارات متعددة

تغطية إدخال لوحة المفاتيح، والملء التلقائي للمتصفح، واللصق متعدد الأسطر، والاقتراحات، والعناوين المحفوظة. يجب أن ينتج عن كل مسار عقد API واحد مع الاحتفاظ بتفاصيل البلد والوحدة.

يجب ألا تمنع مهلة الاقتراح الإدخال اليدوي الصالح. اشرح أنه يمكن للمتسوق الاستمرار بدلاً من محاصرة قائمة فارغة.

المسارالتأكيد الأساسيالفشل المشترك
دليلإرسال دون اقتراحفرض اختيار القائمة
الملء التلقائي للمتصفحيتم إطلاق كافة تحديثات الحالة التابعةالقيم المملوءة لا تزال تعتبر فارغة
اقتراحعمل لوحة المفاتيح وقارئ الشاشةالتفاعل بالماوس فقط
العنوان المحفوظيتم إعادة حساب عرض أسعار الشحنيبقى الاقتباس السابق

إبقاء المتسوق في السيطرة على التصحيحات

إظهار العناوين المدخلة والمقترحة جنبًا إلى جنب، وتمييز التغييرات، والسماح بالعناوين الأصلية. لا تقم أبدًا بإسقاط اسم الشقة أو المبنى بصمت.

اختبار القبول، والاحتفاظ، وإعادة الفتح، والمهلة، والاقتراح المفقود في السطر 2.

إعادة حساب طرق الشحن والضرائب والتسليم

يمكن أن يؤدي تعديل البلد أو المنطقة أو الرمز البريدي إلى إبطال الطرق وتغيير الشحن والضرائب والعتبات والتواريخ. منع التقديم النهائي حتى وصول عرض الأسعار الجديد.

تعمل التعديلات السريعة على إنشاء علامات اقتباس متزامنة. قم بتطبيق النتيجة المطابقة لأحدث إصدار للعنوان فقط.

  • مسح الطرق غير الصالحة بعد تغيير البلد
  • تحديث الشحن والضرائب معا
  • تجاهل ردود الاقتباس التي لا معنى لها
  • الحفاظ على العربة والعنوان بعد الفشل

تحتاج الفواتير والشحن إلى نسخ مستقلة قابلة للتحرير

تمامًا كما قد يؤدي الشحن إلى إنشاء نسخة، لكن لا ينبغي أن يتشارك الاثنان في كائن قابل للتغيير. تحرير الفواتير بعد إلغاء التحديد يجب ألا يؤدي إلى تغيير الشحن.

استخدم وضع الحماية الخاص بموفر الدفع والمشغلات الموثقة بدلاً من البيانات العشوائية للتحقق من عنوان الدفع.

shippingAddress = structuredClone(selectedAddress);
billingAddress = sameAsShipping
  ? structuredClone(shippingAddress)
  : enteredBillingAddress;

اجعل الإرسال النهائي متساوي التأثير (idempotent) واحفظ لقطة للعنوان

يمكن أن تؤدي النقرات المزدوجة وإعادة المحاولة بعد انتهاء المهلة والتنقل الخلفي عبر الهاتف المحمول إلى تكرار الطلب. قم بتعطيل إجراءات واجهة المستخدم المتكررة واستخدم مفتاح عدم الكفاءة من جانب الخادم.

قم بتخزين لقطة العنوان المؤكدة وإصدار عرض الأسعار على الطلب بدلاً من الإشارة فقط إلى إدخال دفتر عناوين قابل للتحرير.

يجب أن تتضمن تغطية الهاتف المحمول لوحة مفاتيح البرنامج التي تخفي الإجراء الأساسي، وخلفية الصفحة واستعادتها، والعودة من تفويض الدفع الخارجي. عند الاستئناف، قم بالاستعلام عن الطلب الحالي أو طلب متساوي التأثير (idempotent) قبل إرسال عملية إنشاء أخرى.

قم بمراجعة الطلب الذي تغير عنوانه مرتين أثناء الخروج. يجب أن تحتوي لقطته على الإصدار المؤكد النهائي، ويجب أن ينتمي عرض أسعار الشحن الخاص به إلى هذا الإصدار، ويجب ألا يؤدي التعديل اللاحق في دفتر عناوين المتسوق إلى إعادة كتابة الطلب التاريخي.

اختبر أيضًا الفشل الغامض: انتهت مهلة المتصفح بعد الإرسال، لكن الخادم قام بالفعل بإنشاء الطلب. يجب أن تؤدي إعادة المحاولة بنفس المفتاح إلى إرجاع النتيجة الأصلية بدلاً من تحصيل الرسوم مرة أخرى أو حجز المخزون مرتين. يجب أن تكشف أدوات الدعم عن مفتاح الطلب وإصدار العنوان ومعرف الطلب دون الكشف عن العنوان الكامل في السجلات الروتينية. وهذا يجعل عملية الاسترداد قابلة للاختبار مع الحد من الوصول غير الضروري إلى البيانات الشخصية.

  • محاكاة النقر المزدوج وإعادة المحاولة بعد انتهاء المهلة وإرجاع الدفع
  • الاستعلام عن حالة الطلب متساوي التأثير بعد استعادة الصفحة
  • مطابقة عنوان الطلب وإصدارات الاقتباس
  • أعد فتح السجل بعد تحرير دفتر العناوين

الأسئلة الشائعة

هل يجب أن يؤدي تعطل خدمة اقتراح العناوين إلى منع إتمام الشراء؟

ليس بالضرورة. اعتمادًا على المخاطر، قم بالسماح بالتأكيد اليدوي ووضع علامة على العنوان غير متحقق منه.

ما الذي يتغير بعد تعديل الرمز البريدي؟

أعد حساب طرق التسليم وتكلفة الشحن والتواريخ والضرائب ذات الصلة، مع تجاهل الردود التي لا معنى لها.

هل يؤدي تعطيل الزر إلى منع الطلبات المكررة؟

ليس تماما. يحتاج الخادم أيضًا إلى مفتاح عدم القدرة أو حماية إعادة المحاولة المكافئة.

المصادر والقراءات

  1. MDN: الإكمال التلقائي لنموذج العنوان
  2. W3C WAI: إشعار خطأ النموذج