我们正在研究magento数据库和表格。 Magento似乎在表sales_flat_order
字段protect_code
中编写代码,以定义是否已完成发票或货件。它看起来像
01b335
或
a0a243
但是没有key
来理解这个保护代码的含义。是否有关于这些代码含义及其生成方式的解释?
答案 0 :(得分:24)
如果你在app/code/core/Mage/Sales/Model/Order.php
左右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值的正确顺序。
它也用于其他领域,例如跟踪信息比较。您可以在Shipment模型中看到调用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;
}
正如您在$this->getProtectCode() == $track->getProtectCode()
中看到的那样,跟踪protect_code
必须与货件protect_code
相符。