Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

tabela magento sales_flat_order campo protect_code explicação

Onde é gerado?


Se você olhar em app/code/core/Mage/Sales/Model/Order.php na linha 2052 , você encontrará o seguinte:
$this->setData('protect_code', substr(md5(uniqid(mt_rand(), true) . ':' . microtime(true)), 5, 6));

É aqui que protect_code é gerado para o pedido (usando uma combinação de md5, uniqid e inteiro aleatório.

Para que é usado?


Se você olhar em app/code/core/Mage/Sales/Helper/Guest.php e encontre o loadValidOrder função. Você verá protect_code usado em algumas áreas para garantir que o pedido que está sendo carregado seja o correto para o valor do cookie do hóspede.

Também é usado em outras áreas, como o rastreamento de comparações de informações. Você pode ver várias instâncias do getProtectCode() método sendo chamado nos modelos de Remessa para comparar o pedido com as informações de rastreamento. Um exemplo de uma função que o utiliza é:
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;
}

Como você pode ver com $this->getProtectCode() == $track->getProtectCode() , o protect_code de rastreamento deve corresponder ao protect_code da Remessa .