Come ottenere l'ID negozio dal codice


23

Quindi ho il codice negozio e mi piacerebbe davvero semplicemente l'ID negozio. Idealmente non voglio semplicemente caricare completamente il negozio in quanto ho solo bisogno dell'id.

Un'idea che avevo era di caricare questo tramite una raccolta ma mi chiedevo se ci fosse un altro modo tramite un assistente o una risorsa.


3
Per me funziona perfettamente:Mage::app()->getStore($storeCode)->getId();
Odio il

Risposte:


10

Non l'ho provato ma mi sembra di ricordare che puoi ottenere l'ID usando il metodo loadConfignel modelloMage_Core_Model_Store

Successivamente è possibile ottenere l'ID chiamando getId()il modello.

Il loadConfigmetodo utilizza la configurazione caricata per recuperare i dati dell'archivio

$store = Mage::getConfig()->getNode()->stores->{$code};

Che ti dà i seguenti valori

  • id
  • codice
  • website_id

3
Strano - per me (Magento 1.9.0.0) questo restituisce NULL. Ciò che ha funzionato per me è statoMage::getConfig()->getNode('stores')->{$code}
Doug McLean l'

O ancora meglio: Mage :: getConfig () -> getNode ('stores') -> {$ code} -> {'system'} -> {'store'} -> {'id'};
anshuman,

@EugMcLean ha lo stesso problema su EE 1.14.1.0, questo appare quando la cache "config" è abilitata - sembra un problema con la cache di Magento. Sander saresti così gentile da modificare la tua risposta usando Mage :: getConfig () -> getNode ('stores') -> {$ code}, quindi la soluzione funziona sia per i casi di cache abilitati / disabilitati?
Kate Suykovskaya,

Ho un multistore, come posso visualizzare i prodotti selezionati del negozio usando l'ID del negozio, il mio codice -> justpaste.it/6fi1f
Gemma

21

Mage::getModel('core/store')->load($storeCode, 'code')->getId()

Non è questo il modo più semplice di fare?


2
Potrebbe essere più semplice, ma potrebbe non essere il migliore per le prestazioni del sito caricare l'intero negozio quando ho solo bisogno dell'id.
David Manners,

Ok, ha senso. Quindi dirigere SQL in un modello di risorsa :)
Zifius,

5

Non so se questo è qualcosa di peculiare a 1.9.0.0 ma non sono riuscito a ottenere né ( Mage::getConfig()->getNode()->stores->{$code}o Mage::getModel('core/store')->loadConfig($code)che in effetti chiama Mage::getConfig()->getNode()->stores->{$code} ) restituire qualcosa.

Il primo è stato vicino ... con un sottile cambiamento nella forma, questo ottiene un risultato, anche se è più informazioni di quante ne hai bisogno:

$store = Mage::getConfig()->getNode('stores')->{$code}

Ciò che ha funzionato per me, per ottenere solo l'ID del negozio, è stato questo:

$storeId = Mage::getConfig()->getNode('stores')->{$code}->system->store->id;

... ancora inefficiente, ovviamente, caricando tutte quelle informazioni di configurazione solo per un piccolo numero. Ma hey, questo è Magento per te.


4

Il seguente dovrebbe funzionare:

<?php echo Mage::getModel('core/store')->loadConfig($code)->getId(); ?>

Grazie per la risposta, anche se questa sembra essere la stessa della precedente :)
David Manners,

Sì, l'ho notato dopo che ho pubblicato la mia risposta :)
Mayers,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.