Báo cáo Magento - Nó có bị khóa bởi UTC không?


7

Tôi dự kiến ​​rằng báo cáo magento (cụ thể là báo cáo bán hàng> đơn đặt hàng) sẽ xô ngày theo giờ địa phương.

Điều này dường như không giống như vậy, ít nhất là trên magento 1.14.2.2. Bằng cách so sánh các đơn đặt hàng thô với báo cáo đơn hàng, rõ ràng một số đơn hàng không được đóng chính xác trong báo cáo, bởi vì nó bị khóa bởi UTC trái ngược với múi giờ địa phương.

Múi giờ được đặt chính xác trong hệ thống và thống kê trọn đời đã được làm mới.

Tôi đã thử với Magento 1.9.2.2 và kết quả dường như bị xô lệch bởi múi giờ địa phương. Tôi đoán điều này có nghĩa là nó có thể là một vấn đề cấu hình, hoặc có thể là một lỗi?

Bất cứ ai có thể xác nhận hoặc từ chối vấn đề này?


Tôi đã tìm thấy, UTC là múi giờ được lưu trữ trong cơ sở dữ liệu. Sau đó, nó được chuyển đổi bằng cách sử dụng cấu hình cửa hàng khi nó được hiển thị cho khách hàng / trong quản trị viên, v.v.
RussellAlbin

Vâng, nhưng tôi đoán điều tôi băn khoăn là, khi nó đang chạy group byđể lấy tổng số, nó đang thực hiện nó trên UTC hay giờ địa phương? Dấu thời gian được cắt ngắn thành một thùng ngày.
surjikal

Từ những gì tôi có thể nói tất cả các lần trong cơ sở dữ liệu là utc. Vì vậy, nhóm sẽ tắt UTC. Sau đó, khi nó được hiển thị trên trang, nó được chuyển đổi. Tôi đã phải hoàn nguyên một số mã mà tôi đã buộc thời gian cơ sở dữ liệu thành thời gian tiêu chuẩn trung tâm trong khi lưu vì các báo cáo đã bị tắt 5 giờ. Đó là cách tôi có thể khám phá làm thế nào nó trên bảng cơ sở dữ liệu.
RussellAlbin

Câu trả lời:


2

Tôi có thể xác nhận hành vi này vào ngày 1.14.2.3 và có vẻ như đó là một lỗi.

Nếu bạn xem cách tổng hợp báo cáo hoạt động, bạn sẽ thấy rằng trong Mage_Reports_Model_Resource_Report_Abstract::_getTableDateRangeSelect()nhóm theo ngày được thực hiện như thế này:

$select  = $adapter->select()
    ->from(
        array($alias => $table),
        $adapter->getDatePartSql(
            $this->getStoreTZOffsetQuery(array($alias => $table), $alias . '.' . $column, $from, $to)
        )
    )
    ->distinct(true);

Trường hợp getStoreTZOffsetQuery()phải thực hiện chuyển đổi múi giờ từ UTC sang múi giờ quản trị viên hiện tại.

Tôi đã không gỡ lỗi thêm để tìm ra lỗi ở đâu, vì vậy thật không may, tôi cũng không có cách khắc phục.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.