Cara mendapatkan id toko dari kode


23

Jadi saya punya kode toko dan saya hanya ingin id toko saja. Idealnya saya tidak ingin hanya memuat toko sepenuhnya karena saya hanya perlu id.

Satu ide yang saya miliki adalah memuat ini melalui koleksi tetapi saya bertanya-tanya apakah ada cara lain melalui pembantu atau sumber daya.


3
Bagi saya ini bekerja dengan sempurna:Mage::app()->getStore($storeCode)->getId();
Hatef

Jawaban:


10

Belum menguji ini, tetapi saya ingat Anda bisa mendapatkan ID dengan menggunakan metode loadConfigdalam modelMage_Core_Model_Store

Setelah itu Anda bisa mendapatkan ID dengan memanggil getId()model.

The loadConfigMetode menggunakan konfigurasi dimuat untuk mengambil data store

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

Yang memberi Anda nilai-nilai berikut

  • id
  • kode
  • situs web_id

3
Strange - for me (Magento 1.9.0.0) ini mengembalikan NULL. Apa yang berhasil bagi saya adalahMage::getConfig()->getNode('stores')->{$code}
Doug McLean

Atau bahkan lebih baik: Mage :: getConfig () -> getNode ('stores') -> {$ code} -> {'system'} -> {'store'} -> {'id'};
anshuman

@dougMcLean mendapatkan masalah yang sama pada EE 1.14.1.0, ini muncul ketika cache "config" diaktifkan - sepertinya masalah cache Magento. Sander, bisakah Anda mengedit jawaban menggunakan Mage :: getConfig () -> getNode ('stores') -> {$ code}, sehingga solusinya bekerja untuk kedua kasus cache yang diaktifkan / dinonaktifkan?
Kate Suykovskaya

Saya memiliki multistore, bagaimana saya bisa menampilkan produk toko yang dipilih menggunakan id toko, kode saya -> justpaste.it/6fi1f
Permata

21

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

Bukankah ini cara paling sederhana untuk dilakukan?


2
Ini mungkin paling sederhana tetapi mungkin bukan yang terbaik untuk kinerja situs untuk memuat seluruh toko ketika saya hanya membutuhkan id.
David Manners

Ok, masuk akal. Kemudian mengarahkan SQL dalam model sumber daya :)
Zifius

5

Saya tidak tahu apakah ini sesuatu yang khas 1.9.0.0 tapi saya tidak bisa mendapatkan keduanya Mage::getConfig()->getNode()->stores->{$code}atau Mage::getModel('core/store')->loadConfig($code)(yang sebenarnya disebut Mage::getConfig()->getNode()->stores->{$code} ) untuk mengembalikan apa pun.

Yang pertama dekat ... dengan perubahan bentuk yang halus, ini mendapatkan hasil, meskipun ini lebih banyak info daripada yang Anda butuhkan:

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

Apa yang berhasil bagi saya, hanya untuk mendapatkan id toko, adalah ini:

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

... masih tidak efisien, tentu saja, memuat semua informasi konfigurasi hanya untuk satu nomor kecil. Tapi hei, itu Magento untukmu.


4

Berikut ini harus bekerja:

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

Terima kasih atas jawabannya, meskipun ini tampaknya sama dengan yang sebelumnya :)
David Manners

Ya, perhatikan setelah saya memposting respons saya :)
Mayers
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.