我最近发现我在Magento 2中开发的网站缺少结帐页面上的送货地址表单中的邮政编码字段。我一直在挖掘,找不到任何原因,为什么它丢失。我发现有人用Magento开了this bug,但提到的解决方案对我不起作用。我看到的结果虽然相同。
在“运输”标签中的/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
如果有人对如何找到我遗失的田地有任何指导或建议,我将不胜感激。
修改
电话号码字段也缺失。虽然这不是一个令人担忧的问题,但可能因为同样的原因而丢失了。
另外,我刚刚意识到我们旧网站(1.9.3)的数据迁移似乎已经引起了这个问题。我在迁移之前和之后用数据库测试了我们的新站点,这就是导致我们丢失邮政编码字段的原因。我们的数据迁移仅包含销售数据和客户 - 没有产品或类别。我现在正在挖掘,看看会造成什么。我已多次尝试重新索引,但没有解决它。
答案 0 :(得分:4)
我找到了罪魁祸首。当我们运行数据迁移时,似乎表eav_form_element
和customer_form_attribute
在迁移期间丢失了一些信息。这些属性有点混乱。快速解决方法是将缺少的邮政编码和电话号码字段添加到相应的表中。我仍然需要回过头来找出我在迁移配置中出错的地方。
答案 1 :(得分:0)
将这两个查询运行到数据库中,将解决问题。
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设置:静态内容:部署-f
希望这将帮助您解决问题
快乐编码!