Magento - получить идентификатор заказа из идентификатора increment id
Как вы получаете Идентификатор заказа от magento Идентификатор увеличения заказа?
Я могу использовать следующее, чтобы получить идентификатор продукта из SKU:
$product_id = Mage::getModel('catalog/product')->getIdBySku('ABCD1234');
В приведенном выше примере я могу получить только базу данных entity_id продукта без загрузки всего. Я хочу добиться того же порядка.
Ответы
Ответ 1
Если вы хотите получить только order_id, тогда просто используйте mysql-запрос, если вы хотите, чтобы order_id в цикле for, он не загружает весь объект заказа, и он очень быстрый и быстрый, вам не нужно загружать модель объекта заказа.
$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'];
Ответ 2
В модели Magento метод загрузки может принимать необязательный второй аргумент того, какой атрибут загружается.
Итак, в вашем случае должно работать следующее:
$order = Mage::getModel('sales/order')->load($incrementId, 'increment_id');
$id = $order->getId();
В более сложных случаях, например, где вы хотите загрузить комбинацию полей, вы можете загрузить коллекцию и получить первый элемент коллекции. В вашем случае вы сделаете так:
$order = Mage::getModel('sales/order')->getCollection()
->addFieldToFilter('increment_id', $increment_id)
->getFirstItem();
Ответ 3
Вы можете загрузить заказ из IncrementId.
$orderIncrementId = "1000001";
$order = Mage::getModel('sales/order')->loadByIncrementId($orderIncrementId);
echo $order->getId();