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