Вопрос

Итак, у меня есть код магазина, и мне бы очень хотелось просто идентификатор магазина.В идеале я не хочу просто загружать магазин полностью, так как мне нужен только идентификатор.

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

Это было полезно?

Решение

Я не проверял это, но, кажется, помню, что вы можете получить идентификатор, используя метод 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(); ?>
.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с magento.stackexchange
scroll top