Magento 2.3.3客户送货地址名字麻烦,“名字”是必需的

1wnzp6jl  于 2022-11-12  发布在  其他
关注(0)|答案(2)|浏览(137)

摘要

当我尝试在客户注册/登录后下订单时。Magento 2.3.3显示“名字是必填字段错误。名字字段未显示。当我尝试在配置文件页面或后端创建送货地址时-名字字段显示,但发生了相同的验证错误!
通过1.9.3.4数据迁移工具从www.example.com迁移数据
我在Magento的另一个版本中读到了同样的问题,但没有找到解决方案
我尝试使用eav_attribute和customer_eav_attribute。我将is_visible设置为1,is_required设置为0,但没有任何帮助

重现步骤

1.登入
1.结账顺序
1.填写发货单
1.显示的错误:请检查送货地址信息。“firstname”为必填项。请输入并重试。

屏幕截图

x4shl7ld

x4shl7ld1#

从Magenro 1.9迁移到Magento 2.3.3后,我遇到了这个问题,对我来说,这种方法是有效的:在mysql命令行上运行
从eav属性中选择属性标识、属性代码,其中属性代码=“名字”;
它会这样显示

然后运行以下查询,不要忘记根据您的终端更改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');
wgx48brx

wgx48brx2#

我刚刚在从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();

相关问题