在Magento中区分后端与前端购买

在Magento中区分后端与前端购买,magento,reporting,Magento,Reporting,有没有办法判断订单是通过网站前端下的还是通过管理面板输入的 每个订单都有一个store\u id,当通过管理输入时,它将是0(对于“admin”store)或null 不要使用getStore(),因为这样不会始终可靠地返回admin store对象 不适用于最新版本的Magento。(请参阅评论)您可以检查是超级模式值(我只检查了引号:$quote->getissuermode())默认情况下,Magento仅将客户下订单的远程ip存储在表销售平面订单中(而管理订单设置为空) 所以试试这个:

有没有办法判断订单是通过网站前端下的还是通过管理面板输入的

每个订单都有一个
store\u id
,当通过管理输入时,它将是0(对于“admin”store)或null

不要使用
getStore()
,因为这样不会始终可靠地返回admin store对象


不适用于最新版本的Magento。(请参阅评论)

您可以检查
是超级模式
值(我只检查了引号:
$quote->getissuermode()

默认情况下,Magento仅将客户下订单的
远程ip
存储在表
销售平面订单
中(而管理订单设置为空)

所以试试这个:

if(!empty($order->getRemoteIp()){
  //place online
}
else{
  // place by admin
}

请参见

clockworkgeek的答案是正确的。我将添加另一种方式,这对非程序员的管理用户非常有用。如果您在管理屏幕(管理->销售->订单)中查看订单,如果订单是从前端创建的,它将有一个“从IP放置”字段,但是如果订单是通过管理后端屏幕创建的,它将不在那里。@sdek-这是一个很好的提示,我以前不知道。不适用于最新版本的Magento。在管理后端中创建订单之前,必须选择存储id。所以store_id的值总是不同于0。Yaroslav Rogoza是对的!它将返回下单的店铺id,甚至是从管理面板返回。那么有人能回答这个问题吗?您在哪里找到这个字段的?我找不到Magento 1.7感谢我的nice hook+1@R.SI我试图想象如果Magento安装在云主机上,客户或管理员下的订单将有一个远程IP地址。我被纠正了
if(!empty($order->getRemoteIp()){
  //place online
}
else{
  // place by admin
}