Magento 按保留订单id获取报价
我想创建一个新的付款方式。结账时付款方式重定向到第三方服务。我将reservedOrderId传递给第三方服务,它会在付款成功时返回此id。如何通过reservedOrderId获取报价?或者我需要在重定向到第三方服务之前将报价转换为订单吗?您最好在发送到第三方服务之前将报价转换为订单。它将允许您拥有订单的正确状态(已取消、已支付、欺诈……) 如果您真的需要在之后创建订单,您可以覆盖mage_sales_model_quote和mage_sales_model_resource_quote来创建相应的函数loadByReservedOrderId(),该函数包含对数据库的调用和允许您在控制器上调用的模型 对于资源,类似的东西就可以了Magento 按保留订单id获取报价,magento,Magento,我想创建一个新的付款方式。结账时付款方式重定向到第三方服务。我将reservedOrderId传递给第三方服务,它会在付款成功时返回此id。如何通过reservedOrderId获取报价?或者我需要在重定向到第三方服务之前将报价转换为订单吗?您最好在发送到第三方服务之前将报价转换为订单。它将允许您拥有订单的正确状态(已取消、已支付、欺诈……) 如果您真的需要在之后创建订单,您可以覆盖mage_sales_model_quote和mage_sales_model_resource_quote来创建
public function loadByReservedOrderId($id){
$select = $this->_getReadAdapter()->select()->from(array('main_table'=>$this->getMainTable()), 'entity_id')
->where('main_table.reserved_order_id = ?', array($id));
return $this->_getReadAdapter()->fetchOne($select);
}
对于模型:
public function loadByReservedOrderId($id)
{
if ($id == null){
return false;
}
$order_id = $this->_getResource()->loadByReservedOrderId($id);
$this->load($order_id);
return $this;
}
由于保留订单应该是唯一的,您可以尝试以下操作:
$quote = Mage::getModel('sales/quote')->getCollection()
->addFieldToFilter('reserved_order_id', 'Your Order id')
->getFirstItem();
if ($quote->getId()) {
//quote was found - $quote
}
else {
//the quote does not exist.
}
这很好:
Mage::getSingleton('sales/quote')
->load($orderId, 'reserved_order_id')
感谢@Sergei这还不足以帮助您。向我们展示您的代码、您使用的第三方服务等。
Mage::getSingleton('sales/quote')->load($orderId,'reserved\u order\u id')
worksedit:reserver\u order\u id
必须是reserved\u order\u id
@nicolalias。谢谢你发现这个。