Почему IP -адрес клиента иногда не отображается по заказу?
Вопрос
На приборной панели: Система> Конфигурация> Продажи> Продажи ...
У меня есть "скрыть клиент IP: нет"
А это означает, что клиенты IP показаны по заказу и счетам и т. Д.
Это работает почти по каждому заказу, но пара заказов просто не показывает IP вообще. Это очень редко, и, возможно, 1 из каждых 100 заказов не показывает IP.
Что ж, что это вызвало? Меня спросили, почему это так, но у меня просто не было ответа, и теперь мне любопытно.
Спасибо всем.
Решение
Скорее всего, заказ был сделан из среднего.
IP -адрес на заказе происходит из цитаты.
в app/code/core/Mage/Sales/etc/config.xml
есть это:
<config>
...
<global>
...
<fieldsets>
...
<sales_convert_quote>
<remote_ip>
<to_order>*</to_order>
</remote_ip>
...
</sales_convert_quote>
...
</fieldsets>
...
</global>
...
</config>
IP -адрес в цитате установлен в Mage_Checkout_Model_Session::getQuote()
if ($remoteAddr = Mage::helper('core/http')->getRemoteAddr()) {
$this->_quote->setRemoteIp($remoteAddr);
$xForwardIp = Mage::app()->getRequest()->getServer('HTTP_X_FORWARDED_FOR');
$this->_quote->setXForwardedFor($xForwardIp);
}
При создании порядка из бэкэнда Mage_Checkout_Model_Session
не используется. Вместо Mage_Adminhtml_Model_Session_Quote
используется и нет следа remoteIp
или же remoteAddr
внутри него.