现在我有3个商店在一个数据库中运行,我遇到了一个无法预料的问题。
其中一家商店的船只使用UPS XML计算来自欧洲的货运,另一家美国也使用UPS XML。
问题在于,由于每种产品的重量都具有全球范围,因此我在计算运费方面存在一个真正的问题,因为它具有相同的价值并在美国用作LBS,然后在欧洲用作KGS。
根据设计,UPS只能在欧洲使用KGS,在美国只能使用LBS。
我无法找到有关此主题的任何信息。有没有人找到解决这个问题的方法?
答案 0 :(得分:0)
我不确定在商店基础上启用设置是否会解决问题 - 这取决于底层代码是否实际检查设置是否正确。但值得一试。
要激活商店级别的“运营商 - > UPS->重量单位”配置选项,而不仅仅是网站/全局,您可以更改此处放置的核心XML(不推荐):
magento/app/code/core/Mage/Usa/etc/system.xml
在<show_in_store>0</show_in_store>
下查找选项<ups> -> <fields> -> <unit_of_measure>
。将其更改为<show_in_store>1</show_in_store>
,保存,您应该全部设置。
要获得更好,更灵活且升级更友好的覆盖此选项的方法,您需要创建一个模块。
在文件夹MyModules/XMLoverrides/etc
内创建文件夹结构magento/app/code/local
。
在该文件夹magento/app/code/local/MyModules/XMLoverrides/etc
内创建两个文件config.xml
和system.xml
。
对于config.xml
文件,请粘贴此内容并保存:
<?xml version="1.0"?>
<config>
<modules>
<MyModules_XMLoverrides>
<version>0.1.0</version>
</MyModules_XMLoverrides>
</modules>
</config>
对于system.xml
,请粘贴此文本并保存文件。
<?xml version="1.0"?>
<config>
<sections>
<carriers>
<groups>
<ups>
<fields>
<unit_of_measure>
<show_in_store>1</show_in_store>
</unit_of_measure>
</fields>
</ups>
</groups>
</carriers>
</sections>
</config>
您还需要在文件夹MyModules_XMLoverrides.xml
中创建文件magento/app/etc/modules
,内容为:
<?xml version="1.0"?>
<config>
<modules>
<MyModules_XMLoverrides>
<active>true</active>
<codePool>local</codePool>
</MyModules_XMLoverrides>
</modules>
</config>
并保存。应该是这样,即使升级Magento并且原始system.xml文件可能被覆盖,它也将继续覆盖此选项。
现在只需交叉手指,更改此设置确实有帮助,而且我未经测试的模块示例代码可以正常工作。 :)