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

Chr*_*ris 7 reporting magento

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

Ren*_*art 11

默认情况下,Magento仅存储remote_ipsales_flat_order中的客户订单(管理订单设置为空).

试试这个:

if(!empty($order->getRemoteIp()){
  //place online
}
else{
  // place by admin
}
Run Code Online (Sandbox Code Playgroud)

请参阅以编程方式区分管理员和客户下订单


clo*_*eek 8

每个订单都有一个store_id,当通过administraction输入时,它将为0(对于'admin'商店)或null.

if ($order->getStoreId()) {
    // was placed via frontend
}
Run Code Online (Sandbox Code Playgroud)

不要使用,getStore()因为它不会总是可靠地返回管理存储对象.

不适用于最新版本的Magento.(见评论)

  • 不适用于最新版本的Magento.您必须在admin后端创建订单之前选择商店ID.因此store_id将始终具有不同于0的值. (9认同)
  • clockworkgeek的回答是正确的.我将添加另一种方式,这对非程序员的管理用户大多有用.如果您在管理屏幕(管理 - >销售 - >订单)中查看订单,如果订单是从前端创建的,则它将具有"从IP放置"字段,但如果是通过管理员后端屏幕完成的话不会在那里. (2认同)