Magento 2.3.3 Проблема с адресом доставки клиента. "имя" обязательно
Резюме
Когда я пытаюсь разместить заказ после регистрации клиента / входа в систему. Magento 2.3.3 показывает: "Имя является обязательным полем. Ошибка. Поле имени не отображается. Когда я пытаюсь создать адрес доставки на странице профиля или в серверной части - поле имени отображается, но произошла такая же ошибка проверки!
Данные были перенесены из 1.9.3.4 с помощью инструмента переноса данных
Я читал о тех же проблемах в других версиях magento, но решений не найдено
Я пытаюсь поиграть с eav_attribute и customer_eav_attribute. Я поставил is_visible=1 и is_required=0, но это не помогает
Действия по воспроизведению
- Авторизоваться
- Порядок оформления заказа
- Заполните форму доставки
- Отображается ошибка: проверьте информацию об адресе доставки. "имя" обязательно. Войдите и попробуйте еще раз.
Скриншоты
2 ответа
У меня возникла эта проблема после перехода с Magenro 1.9 на Magento 2.3.3, для меня этот способ работает: запустите в командной строке mysql
выберите attribute_id,attribute_code из eav_attribute, где attribute_code="firstname";
это будет выглядеть так
затем выполните следующий запрос, не забудьте изменить attribute_id в зависимости от вашего конца:
INSERT INTO `customer_form_attribute` (`form_code`, `attribute_id`) VALUES ('adminhtml_checkout', '5');
INSERT INTO `customer_form_attribute` (`form_code`, `attribute_id`) VALUES ('adminhtml_customer_address', '5');
INSERT INTO `customer_form_attribute` (`form_code`, `attribute_id`) VALUES ('adminhtml_customer_address', '20');
INSERT INTO `customer_form_attribute` (`form_code`, `attribute_id`) VALUES ('customer_address_edit', '5');
INSERT INTO `customer_form_attribute` (`form_code`, `attribute_id`) VALUES ('customer_address_edit', '20');
INSERT INTO `customer_form_attribute` (`form_code`, `attribute_id`) VALUES ('customer_register_address', '20');
INSERT INTO `customer_form_attribute` (`form_code`, `attribute_id`) VALUES ('customer_register_address', '5');
Я только что столкнулся с этой проблемой после перехода с 1.9 на 2.4.3.
Мое решение заключалось в том, чтобы создать резервную копию таблицы customer_form_attribute и усечь ее (удалить все данные).
mysql> create table customer_form_attribute_bkup select * from customer_form_attribute;
mysql> truncate customer_form_attribute;
Затем я поместил следующий код, который я поднял / изменил из vendor / magento / module-customer / Setup / Patch / Data / DefaultCustomerGroupsAndAttributes.php, в файл в корневом каталоге моей установки Magento 2 и запустил его.
Таблица customer_form_attribute была перестроена и после этого все заработало.
<?php
require __DIR__ . '/app/bootstrap.php';
$bootstrap = \Magento\Framework\App\Bootstrap::create(BP, $_SERVER);
$app = $bootstrap->createApplication(\Magento\Framework\App\Http::class);
$objManager = \Magento\Framework\App\ObjectManager::getInstance();
$logger = $objManager->get(\Psr\Log\LoggerInterface::class);
$moduleDataSetup = $objManager->get('Magento\Framework\Setup\ModuleDataSetupInterface');
$customerSetupFactory = $objManager->get('Magento\Customer\Setup\CustomerSetupFactory');
$customerSetup = $customerSetupFactory->create(['setup' => $moduleDataSetup]);
$customerSetup->installCustomerForms();