Magento重量范围

时间:2011-05-25 15:13:27

标签: magento

现在我有3个商店在一个数据库中运行,我遇到了一个无法预料的问题。

其中一家商店的船只使用UPS XML计算来自欧洲的货运,另一家美国也使用UPS XML。

问题在于,由于每种产品的重量都具有全球范围,因此我在计算运费方面存在一个真正的问题,因为它具有相同的价值并在美国用作LBS,然后在欧洲用作KGS。

根据设计,UPS只能在欧洲使用KGS,在美国只能使用LBS。

我无法找到有关此主题的任何信息。有没有人找到解决这个问题的方法?

1 个答案:

答案 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.xmlsystem.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文件可能被覆盖,它也将继续覆盖此选项。

现在只需交叉手指,更改此设置确实有帮助,而且我未经测试的模块示例代码可以正常工作。 :)