Как получить идентификатор магазина из кода
-
12-12-2019 - |
Вопрос
Итак, у меня есть код магазина, и мне бы очень хотелось просто идентификатор магазина.В идеале я не хочу просто загружать магазин полностью, так как мне нужен только идентификатор.
Одна из моих идей заключалась в том, чтобы загрузить это через коллекцию, но мне было интересно, есть ли другой способ через помощника или ресурса.
Решение
Я не проверял это, но, кажется, помню, что вы можете получить идентификатор, используя метод loadConfig
в модели Mage_Core_Model_Store
После этого вы можете получить идентификатор, позвонив getId()
на модели.
А loadConfig
метод использует загруженную конфигурацию для получения данных магазина
$store = Mage::getConfig()->getNode()->stores->{$code};
Что дает вам следующие значения
- идентификатор
- код
- идентификатор_сайта
Другие советы
Mage::getModel('core/store')->load($storeCode, 'code')->getId()
Разве это не самый простой способ сделать?
Я не знаю, является ли это чем-то особенным для версии 1.9.0.0, но я не смог получить ни того, ни другого. Mage::getConfig()->getNode()->stores->{$code}
или Mage::getModel('core/store')->loadConfig($code)
(что на самом деле звонки Mage::getConfig()->getNode()->stores->{$code}
), чтобы вернуть что-либо.
Первый был близок...с небольшим изменением формы это дает результат, хотя это гораздо больше информации, чем вам нужно:
$store = Mage::getConfig()->getNode('stores')->{$code}
Что помогло мне получить только идентификатор магазина, так это:
$storeId = Mage::getConfig()->getNode('stores')->{$code}->system->store->id;
... конечно, все еще неэффективно загружать всю эту конфигурационную информацию только для одного маленького числа.Но эй, это Magento для тебя.
Следующее должно работать:
<?php echo Mage::getModel('core/store')->loadConfig($code)->getId(); ?>
.