Magento 2 结帐时缺少邮政编码
Magento 2 Checkout Missing Postcode
我最近发现我在 Magento 2 中开发的网站在结帐页面上的送货地址表单中缺少邮政编码字段。我一直在四处寻找,找不到它丢失的任何原因。我发现 this bug 有人用 Magento 打开了,但提到的解决方案对我不起作用。我看到的结果是一样的。
在 /checkout/
上,“运输”选项卡中的“邮政编码”字段缺失。但我能够继续下一步。但是,当我尝试完成结帐时,出现错误 An error occurred on the server. Please try to place the order again.
,我认为这是因为该地址没有邮政编码。这是作为客人退房时。我已经测试过以客户身份结帐,该客户已经保存了地址,这让我可以完成结帐。
我已禁用所有模块并返回使用 Luma 主题进行测试,我看到了相同的结果。不幸的是,目前无法升级到 2.2,因为我们非常接近发布,因此我们必须在发布后进行更新。所以我不知道这个更新是否会解决这个问题。
Magento CE 2.1.8
PHP 7.0.24
如果有人对如何找到我丢失的字段有任何指导或建议,我将不胜感激。
编辑
Phone 数字字段也丢失了。虽然这不是什么大问题,但出于同样的原因,它可能会丢失。
另外,我刚刚意识到我们的旧站点 (1.9.3) 的数据迁移似乎导致了这个问题。我在迁移前后用数据库测试了我们的新站点,这就是导致我们丢失邮政编码字段的原因。我们的数据迁移仅包含销售数据和客户 - 没有产品或类别。我现在正在深入研究,看看是什么原因造成的。我已经多次尝试重建索引,但没有解决问题。
好吧,我找到了罪魁祸首。当我们 运行 数据迁移时,表 eav_form_element
和 customer_form_attribute
似乎在迁移过程中丢失了一些信息。属性有点混乱。快速修复是将缺少的邮政编码和 phone 数字字段添加到适当的表中。我还需要回过头来弄清楚我在迁移配置中哪里出错了。
运行 这两个查询到数据库中,将解决问题。
INSERT INTO `customer_form_attribute` (`form_code`, `attribute_id`) VALUES
('adminhtml_customer_address', '33'), ('customer_address_edit', '33'),
('customer_register_address', '33'), ('adminhtml_customer_address', '34'),
('customer_address_edit', '34'), ('customer_register_address', '34');
INSERT INTO `eav_form_element` (`element_id`, `type_id`, `fieldset_id`,
`attribute_id`, `sort_order`) VALUES (NULL, '1', NULL, '33', '7'), (NULL, '2',
NULL,'33', '7'),(NULL, '3', NULL, '33', '6'), (NULL, '4', NULL, '33', '6'),
(NULL, '1',NULL, '34', '9'), (NULL, '2', NULL, '34', '9'),
(NULL, '3', NULL, '34', '8'), (NULL,'4', NULL, '34', '8');
之后 运行 部署命令
php bin/magento setup:static-content:deploy -f
希望这能帮助您解决问题
编码愉快!!
我最近发现我在 Magento 2 中开发的网站在结帐页面上的送货地址表单中缺少邮政编码字段。我一直在四处寻找,找不到它丢失的任何原因。我发现 this bug 有人用 Magento 打开了,但提到的解决方案对我不起作用。我看到的结果是一样的。
在 /checkout/
上,“运输”选项卡中的“邮政编码”字段缺失。但我能够继续下一步。但是,当我尝试完成结帐时,出现错误 An error occurred on the server. Please try to place the order again.
,我认为这是因为该地址没有邮政编码。这是作为客人退房时。我已经测试过以客户身份结帐,该客户已经保存了地址,这让我可以完成结帐。
我已禁用所有模块并返回使用 Luma 主题进行测试,我看到了相同的结果。不幸的是,目前无法升级到 2.2,因为我们非常接近发布,因此我们必须在发布后进行更新。所以我不知道这个更新是否会解决这个问题。
Magento CE 2.1.8
PHP 7.0.24
如果有人对如何找到我丢失的字段有任何指导或建议,我将不胜感激。
编辑
Phone 数字字段也丢失了。虽然这不是什么大问题,但出于同样的原因,它可能会丢失。
另外,我刚刚意识到我们的旧站点 (1.9.3) 的数据迁移似乎导致了这个问题。我在迁移前后用数据库测试了我们的新站点,这就是导致我们丢失邮政编码字段的原因。我们的数据迁移仅包含销售数据和客户 - 没有产品或类别。我现在正在深入研究,看看是什么原因造成的。我已经多次尝试重建索引,但没有解决问题。
好吧,我找到了罪魁祸首。当我们 运行 数据迁移时,表 eav_form_element
和 customer_form_attribute
似乎在迁移过程中丢失了一些信息。属性有点混乱。快速修复是将缺少的邮政编码和 phone 数字字段添加到适当的表中。我还需要回过头来弄清楚我在迁移配置中哪里出错了。
运行 这两个查询到数据库中,将解决问题。
INSERT INTO `customer_form_attribute` (`form_code`, `attribute_id`) VALUES
('adminhtml_customer_address', '33'), ('customer_address_edit', '33'),
('customer_register_address', '33'), ('adminhtml_customer_address', '34'),
('customer_address_edit', '34'), ('customer_register_address', '34');
INSERT INTO `eav_form_element` (`element_id`, `type_id`, `fieldset_id`,
`attribute_id`, `sort_order`) VALUES (NULL, '1', NULL, '33', '7'), (NULL, '2',
NULL,'33', '7'),(NULL, '3', NULL, '33', '6'), (NULL, '4', NULL, '33', '6'),
(NULL, '1',NULL, '34', '9'), (NULL, '2', NULL, '34', '9'),
(NULL, '3', NULL, '34', '8'), (NULL,'4', NULL, '34', '8');
之后 运行 部署命令
php bin/magento setup:static-content:deploy -f
希望这能帮助您解决问题
编码愉快!!