#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 файл может быть перезаписан.
Теперь просто скрестите пальцы, чтобы убедиться, что изменение этого параметра действительно помогает, и что мой непроверенный пример кода модуля работает. 🙂