Fra*_*ent 8 mysql database magento
我们正在研究magento数据库和表.Magento似乎在表格sales_flat_order字段中编写代码protect_code来定义是否已经完成发票或装运.它看起来像
01b335 要么
a0a243
但是没有key理解这个保护代码意味着什么.是否有关于这些代码含义及其生成方式的解释?
Axe*_*xel 24
如果你在app/code/core/Mage/Sales/Model/Order.php附近查看2052,你会发现以下内容:
$this->setData('protect_code', substr(md5(uniqid(mt_rand(), true) . ':' . microtime(true)), 5, 6));
Run Code Online (Sandbox Code Playgroud)
这是protect_code为订单生成的位置(使用md5,uniqid和随机整数的组合.
如果您查看app/code/core/Mage/Sales/Helper/Guest.php并找到该loadValidOrder功能.您将看到protect_code在某些区域中使用以确保正在加载的订单是客户的cookie值的正确订单.
它也用于其他领域,例如跟踪信息比较.您可以getProtectCode()在"货件"模型中查看要调用的方法的多个实例,以将订单与跟踪信息进行比较.使用它的函数示例如下:
public function getTrackingInfoByTrackId()
{
$track = Mage::getModel('sales/order_shipment_track')->load($this->getTrackId());
if ($track->getId() && $this->getProtectCode() == $track->getProtectCode()) {
$this->_trackingInfo = array(array($track->getNumberDetail()));
}
return $this->_trackingInfo;
}
Run Code Online (Sandbox Code Playgroud)
如您所见$this->getProtectCode() == $track->getProtectCode(),跟踪protect_code必须与货件匹配protect_code.