Область веса Magento

#magento

#magento

Вопрос:

Теперь, когда у меня в одной базе данных не хватает 3 хранилищ, я столкнулся с непредвиденной проблемой.

Один из магазинов рассчитывает доставку из Европы, используя UPS XML, другой — из США, также используя UPS XML.

Проблема в том, что, поскольку вес для каждого продукта имеет глобальный охват, у меня возникает реальная проблема при расчете доставки, поскольку он принимает то же значение и использует его как фунты в США, а затем килограммы в Европе.

По дизайну ИБП может использовать только килограммы в Европе и только фунты в США.

Я не смог найти никакой информации по этой теме. Кто-нибудь нашел способ справиться с этой проблемой?

Ответ №1:

Я не уверен, что включение параметра на основе хранилища решит проблему — это зависит от того, действительно ли базовый код проверяет правильность настройки. Но попробовать стоит.

Чтобы активировать параметр конфигурации «Перевозчики-> ИБП-> Единица измерения веса» на уровне магазина, а не только веб-сайта / глобального, вы можете изменить базовый 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 файл может быть перезаписан.

Теперь просто скрестите пальцы, чтобы убедиться, что изменение этого параметра действительно помогает, и что мой непроверенный пример кода модуля работает. 🙂