Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby-on-rails-4/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Magento 按保留订单id获取报价_Magento - Fatal编程技术网

Magento 按保留订单id获取报价

Magento 按保留订单id获取报价,magento,Magento,我想创建一个新的付款方式。结账时付款方式重定向到第三方服务。我将reservedOrderId传递给第三方服务,它会在付款成功时返回此id。如何通过reservedOrderId获取报价?或者我需要在重定向到第三方服务之前将报价转换为订单吗?您最好在发送到第三方服务之前将报价转换为订单。它将允许您拥有订单的正确状态(已取消、已支付、欺诈……) 如果您真的需要在之后创建订单,您可以覆盖mage_sales_model_quote和mage_sales_model_resource_quote来创建

我想创建一个新的付款方式。结账时付款方式重定向到第三方服务。我将reservedOrderId传递给第三方服务,它会在付款成功时返回此id。如何通过reservedOrderId获取报价?或者我需要在重定向到第三方服务之前将报价转换为订单吗?

您最好在发送到第三方服务之前将报价转换为订单。它将允许您拥有订单的正确状态(已取消、已支付、欺诈……)

如果您真的需要在之后创建订单,您可以覆盖mage_sales_model_quote和mage_sales_model_resource_quote来创建相应的函数loadByReservedOrderId(),该函数包含对数据库的调用和允许您在控制器上调用的模型

对于资源,类似的东西就可以了

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。谢谢你发现这个。