注文IDをmagentoから注文増分ID?Magento - インクリメンタルIDから注文IDを取得
私はSKUからプロダクトIDを取得するには、次を使用することができます。
$product_id = Mage::getModel('catalog/product')->getIdBySku('ABCD1234');
上記の例では、私はすべてをロードすることなく、製品の単なるデータベースENTITY_IDを取得することができます。私は注文のために同じを達成したい。
注文IDをmagentoから注文増分ID?Magento - インクリメンタルIDから注文IDを取得
私はSKUからプロダクトIDを取得するには、次を使用することができます。
$product_id = Mage::getModel('catalog/product')->getIdBySku('ABCD1234');
上記の例では、私はすべてをロードすることなく、製品の単なるデータベースENTITY_IDを取得することができます。私は注文のために同じを達成したい。
:あなたのケースでは、あなたはこのようにそれを行うだろう非常に迅速かつ迅速に、あなたは注文オブジェクトモデルをロードする必要はありません。
$write = Mage::getSingleton('core/resource')->getConnection('core_read');
$result=$write->query("SELECT entity_id FROM `sales_flat_order` WHERE `increment_id` = 'your increment id' ");
$row = $result->fetch();
echo $row['entity_id'];
Magentoモデルでは、loadメソッドは、ロードする属性のオプションの2番目の引数を取ることができます。 だから、あなたの場合には、以下の作業をする必要があります。より複雑なケースで
$order = Mage::getModel('sales/order')->load($incrementId, 'increment_id');
$id = $order->getId();
を、例えばフィールドの組み合わせでロードする場所、コレクションをロードしてコレクションの最初の要素を取得することができます。あなただけにして、単にあなたがforループでORDER_IDたい場合は、それが全体の順序オブジェクトをロードされておらず、それが、MySQLのクエリを使用ORDER_IDを取得したい場合は
$order = Mage::getModel('sales/order')->getCollection()
->addFieldToFilter('increment_id', $increment_id)
->getFirstItem();
IncrementIdから注文を読み込むことができます。
$orderIncrementId = "1000001";
$order = Mage::getModel('sales/order')->loadByIncrementId($orderIncrementId);
echo $order->getId();
驚くばかり、これは私が後にしたものです。 Btw、なぜ "core_write"は、私たちが選択しているだけで十分なcore_readではありませんか? – Latheesan
ああ私の間違いはあなたも 'core_read'を使うことができます – Mufaddal
上記のサンプルコードを若干最適化しました(動作確認済み):http://pastebin.com/gtpDbsbR。再度、感謝します。 – Latheesan