我们正在研究 magento 数据库和表。Magento 似乎在表格sales_flat_order
字段中编写了一个代码protect_code
来定义是否已经完成了发票或装运。它看起来像
01b335
或者
a0a243
但是没有key
人明白这个保护代码是什么意思。是否有解释这些代码的含义以及它们是如何生成的?
如果您查看app/code/core/Mage/Sales/Model/Order.php
around line 2052
,您会发现以下内容:
$this->setData('protect_code', substr(md5(uniqid(mt_rand(), true) . ':' . microtime(true)), 5, 6));
这是protect_code
为订单生成的位置(使用 md5、uniqid 和随机整数的组合。
如果您查看app/code/core/Mage/Sales/Helper/Guest.php
并找到该loadValidOrder
功能。您将看到protect_code
在某些领域使用以确保加载的订单是正确的,以用于客人的 cookie 值。
它还用于其他领域,例如跟踪信息比较。getProtectCode()
您可以看到在 Shipment 模型中调用该方法的几个实例,以将订单与跟踪信息进行比较。使用它的函数示例如下:
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;
}
如您所见$this->getProtectCode() == $track->getProtectCode()
,跟踪protect_code
必须与 Shipment 匹配protect_code
。