سؤال

باعتبارك مالك متجر، فإن بيانات حقل الاسمين (الاسم الأول واسم العائلة) تمثل إزعاجًا كبيرًا أثناء تشغيل المتجر.

  • تطلب معظم شركات الشحن التي أستخدمها بيانات اسم كامل واحدة فقط عندما أقوم باستيراد عنوان الشحن.لا بد لي من دمج بيانات الاسم الأول والأخير كواحدة بعد عنوان شحن التصدير.(حتى شركة الدفع تطلب بيانات اسم كامل واحدة فقط)

  • إنه يسبب بعض المشكلات عندما أقوم بإدارة العملاء أو البحث عنهم بالاسم

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

  • كما يرى العميل، يبدو الأمر مزعجًا أيضًا.اكتب الاسم الأول وانقر فوق الحقل الآخر واكتب الاسم الأخير بدلاً من كتابة الاسم الكامل فقط.(الخروج مهم نظرًا لمعدل التحويل المرتبط به)

آمل أن تحصل Magento على بيانات اسم واحد فقط كمالك متجر (أعتقد أن Magento مصمم لمالك المتجر أيضًا)

هل يمكنني أن أعرف على الأقل السبب الذي يجعل Magento يطلب حقلين من الاسم كعرض للمطور؟هل هناك أي فائدة؟

على سبيل المثال) شركة التجارة الإلكترونية الكبرى Amazon وebay تطلب واحدًا فقط

هذا هو أمازون نموذج عنوان جديد - حقل اسم واحد فقط

enter image description here

موقع ئي باي نموذج عنوان جديد - حقل اسم واحد فقط

enter image description here

هل كانت مفيدة؟

المحلول

إنه مجرد جزء من بنية Magento لاستخدام الاسم الأول واسم العائلة.

سؤالك يسأل لماذا هذا هو الحال.من المفترض أن Magento قد أضاف ملف firstname و lastname السمات (مع حتى اختيارية middlename يتم تعريف أحدهما على أنه افتراضي ولكن لا يتم عرضه) لتوفير أكبر قدر ممكن من المرونة للتاجر.يعد هذا خروجًا عن المواقع الأخرى الأكثر رسوخًا، كما لاحظت، ولكن يتعين على Magento تلبية احتياجات مجموعة من التجار المحتملين، ويحاول أن يكون غير محدد قدر الإمكان.

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

1.إضافة سمة الاسم الكامل

يجب إضافة الاسم الكامل كسمة للعميل.يمكنك إنشاء وحدة نمطية للتعامل مع هذا الأمر، لكن ستحتاج في الأساس إلى تشغيل برنامج تثبيت لتثبيتها fullname كسمة مقابل مجموعة سمة العميل.
هناك الكثير من البرامج التعليمية المفيدة حول هذا الموضوع على الويب. التميز Magento لديه ميزة رائعة (الكود موضح جزئيًا أدناه، تم تعديله وفقًا لمتطلباتك)

$setup->addAttribute('customer', 'fullname', array(
    'type' => 'text',
    'input' => 'text',
    'label' => 'Full Name',
    'global' => 1,
    'visible' => 1,
    'required' => 1,
    'user_defined' => 1,
    'default' => '0',
    'visible_on_front' => 1
));

2.أضف سمتك الجديدة في القوالب الخاصة بك

ستحتاج الآن إلى متابعة الحقل الخاص بالسمة الجديدة وإضافته إلى جميع القوالب ذات الصلة؛وبالتالي السماح بإدخال المستخدم منه.

يمكنك إزالة حقلي الاسم الأول واسم العائلة في العملية، حيثما كان ذلك قابلاً للتطبيق.

3.اضبط سمات الاسم الأول واسم العائلة

الاسم الأول واسم العائلة من السمات المطلوبة في قاعدة البيانات، لذلك لن تتمكن من فعل الكثير حتى تقوم بإزالة كل منهما required الحالة من السمات نفسها.

ستحتاج إلى كتابة برنامج نصي للاستخدام مرة واحدة لضبط الإعدادات؛يجب أن يشبه الكود ما يلي:

$attributeId = Mage::getResourceModel('eav/entity_attribute')->getIdByCode('customer','firstname');
if ($attributeId) {
    $attribute = Mage::getModel('catalog/resource_eav_attribute')->load($attributeId);
    $attribute->setIsRequired(false)->save();
}

$attributeId = Mage::getResourceModel('eav/entity_attribute')->getIdByCode('customer','lastname');
if ($attributeId) {
    $attribute = Mage::getModel('catalog/resource_eav_attribute')->load($attributeId);
    $attribute->setIsRequired(false)->save();
}

بعد ذلك، يجب أن تكون قد قمت بالتحويل بنجاح firstname و lastname في واحدة fullname مجال.

إذا كان لديك أي عملاء حاليين، فستتمكن من كتابة برنامج نصي يجمع بين firstname و lastname الحقول في fullname واحد.

نصائح أخرى

الأمر بسيط ويعتمد على بنية Magento.حيث يقوم ماجنتو بتخزين "الاسم الأول" أو "الاسم الأخير" كسمة وأيضا "الاسم الأوسط" الذي نادرا ما يستخدم من قبل الشعوب.

لست متأكدًا من سبب وجود هذا السيناريو لديك.
ماجنتو لديه $customer->getName() وظيفة لكائن العميل والتي ستعيد دائمًا الاسم الكامل.
كل ما عليك فعله هو استخدام getName() بدلاً من getfullName() أو getData('fullname').

آمل أن يحل هذا جميع مخاوفك.:)

هل يمكنني أن أعرف على الأقل السبب الذي يجعل Magento يطلب حقلين من الاسم كعرض للمطور؟هل هناك أي فائدة؟

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

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى magento.stackexchange
scroll top