从X-Cart迁移到Magento后,带有前导零的邮政编码被截断,没有零。我试图运行SQL查询以添加零但不知道在数据库中运行它的哪个表/列。我们使用邮政编码确定在结账时客户可以使用哪些送货服务。有谁知道发货地址(默认和附加)邮政编码在数据库中的位置?
答案 0 :(得分:2)
magento中的zip / postal代码是customer_address实体的一个属性。
查看表mage_eav_attribute以查找属性id及其存储位置,例如执行此查询以找出magento存储属性的位置:
select attribute_id
, backend_type
, attribute_code
from mage_eav_attribute
where attribute_code like '%post%' or attribute_code like '%zip%'
对于我的实施,attribute_id = 29
,attribute_code = 'postcode'
和backend_type
=' varchar'。列backend_type
将告诉您后端的属性类型。
varchar
告诉我,magento将此属性存储在名为mage_customer_address_entity_varchar的表中。 对于您而言,这可能会有所不同,因为它似乎将其视为整数并截断前导零。
然后我可以执行以下sql来获取邮政编码。 当然,您必须将属性表mage_customer_address_entity_varchar
修改为您的magento实施存储此属性的位置。
select e.entity_id, a.value atype.attribute_code
from mage_customer_address_entity e
join mage_customer_address_entity_varchar a ON a.entity_id = e.entity_id
join mage_eav_attribute atype ON atype.attribute_id = a.attribute_id
where atype.attribute_code = 'postcode'
最后,您需要这个用于送货地址(而不是帐单地址?)。默认送货地址是客户的属性,因此您必须修改上述方法以查找哪个客户属性表包含该信息。
我希望这有助于您找到解决方案
干杯
答案 1 :(得分:0)
你可以忽略这些领先0吗?因为对于系统的逻辑而言它并不重要,如果你必须打印它,只需获取字符串的长度,并在需要时将前导0添加为字符串。
如果这对您不起作用,您将不得不查看您正在使用的模块的源代码,以查看该模块使用的表格。