วิธีรับรหัสร้านค้าจากรหัส


23

ดังนั้นฉันมีรหัสร้านค้าและฉันต้องการเพียงแค่รหัสร้านค้า เป็นการดีที่ฉันไม่ต้องการเพียงแค่โหลดร้านค้าอย่างสมบูรณ์เพราะฉันต้องการเพียง ID

ความคิดหนึ่งที่ฉันมีคือการโหลดผ่านคอลเลกชัน แต่ฉันสงสัยว่ามีวิธีอื่นผ่านตัวช่วยหรือทรัพยากร


3
สำหรับฉันมันใช้งานได้อย่างสมบูรณ์แบบ:Mage::app()->getStore($storeCode)->getId();
Hatef

คำตอบ:


10

ยังไม่ได้ทดสอบ แต่ฉันจำได้ว่าคุณสามารถรับ ID โดยใช้วิธีการloadConfigในรูปแบบMage_Core_Model_Store

หลังจากนั้นคุณสามารถรับ ID ได้โดยโทรgetId()ไปที่รุ่น

loadConfigวิธีการใช้การกำหนดค่าโหลดเพื่อดึงข้อมูลร้านค้า

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

ซึ่งให้ค่าต่อไปนี้กับคุณ

  • รหัส
  • รหัส
  • website_id

3
แปลก - สำหรับฉัน (Magento 1.9.0.0) สิ่งนี้จะส่งกลับค่า NULL สิ่งที่ทำงานให้ฉันคือMage::getConfig()->getNode('stores')->{$code}
ดั๊กแมคลีน

หรือดียิ่งขึ้น: Mage :: getConfig () -> getNode ('stores') -> {$ code} -> {'system'} -> {'store'} -> {'id'};
anshuman

@dougMcLean มีปัญหาเดียวกันกับ EE 1.14.1.0 ซึ่งจะปรากฏขึ้นเมื่อเปิดใช้งานแคช "config" - ดูเหมือนปัญหา Magento cache แซนเดอร์จะช่วยแก้ไขคำตอบของคุณโดยใช้ Mage :: getConfig () -> getNode ('stores') -> {$ code} ดังนั้นวิธีแก้ปัญหาสำหรับกรณีแคชที่เปิดใช้งาน / ถูกปิดใช้งาน?
Kate Suykovskaya

ฉันมีหลายขั้นตอนฉันจะแสดงผลิตภัณฑ์ร้านค้าที่เลือกโดยใช้รหัสร้านค้าได้อย่างไรรหัสของฉัน -> justpaste.it/6fi1f
อัญมณี

21

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

นี่ไม่ใช่วิธีที่ง่ายที่สุดที่จะทำใช่ไหม


2
อาจจะง่ายที่สุด แต่อาจไม่ดีที่สุดสำหรับประสิทธิภาพของไซต์ในการโหลดร้านค้าแบบเต็มเมื่อฉันต้องการเฉพาะ id
David Manners

ตกลงทำให้รู้สึก จากนั้น SQL โดยตรงในรูปแบบทรัพยากร :)
Zifius

5

ฉันไม่รู้ว่านี่เป็นสิ่งที่แปลกประหลาดไปที่ 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 สำหรับคุณ


4

ต่อไปนี้ควรทำงาน:

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

ขอบคุณสำหรับคำตอบ แต่ปรากฏขึ้นนี้จะเป็นเช่นเดียวกับก่อนหน้านี้หนึ่ง :)
เดวิดมารยาท

ใช่สังเกตเห็นได้หลังจากที่ผมโพสต์ตอบสนองของฉัน :)
Mayers
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.