9

私たちは、magento データベースとテーブルに取り組んでいます。Magento は、テーブルsales_flat_orderフィールドにコードを書き込んprotect_codeで、請求書または出荷が既に行われているかどうかを定義しているようです。それは次のようになります

01b335また
a0a243

しかし、keyこの保護コードの意味を理解することはできません。これらのコードの意味と、それらがどのように生成されるかについての説明はありますか?

4

1 に答える 1

27

どこで生成されますか?

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を見つけたら。読み込まれる注文がゲストの Cookie 値に対して正しいものであることを確認するために、一部の領域で使用されますloadValidOrderprotect_code

また、追跡情報の比較など、他の分野でも使用されます。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は出荷と一致する必要がありprotect_codeます。

于 2013-09-24T16:31:36.113 に答える