TGS JSON Rollup
tgs_json_rollup
by TGS Development Team · github.com/thuy2k/tgs_json_rollup · website
★ 0stars
0forks
Install
No release zip yet. The repository archive installs, but the folder name will carry the branch suffix and updates will not flow:
wp plugin install https://github.com/thuy2k/tgs_json_rollup/archive/refs/heads/main.zipTGS JSON Rollup Plugin
Giải pháp rollup đơn giản: 1 bảng, 1 JSON, 1 dòng/shop/ngày
Đặc điểm
- ✅ Đơn giản tối đa: 1 bảng thay vì 10 bảng
- ✅ Hiệu suất cao: Nhanh hơn 20-50 lần so với tgs_rollup_analytics
- ✅ Tiết kiệm: Giảm 95% dung lượng database
- ✅ Dễ mở rộng: Thêm metric mới = thêm key trong JSON
- ✅ Realtime: Snapshot cuối + Movement hôm nay
Cấu trúc
tgs_json_rollup/
├── tgs-json-rollup.php (main file)
├── includes/
│ ├── class-database.php (schema)
│ ├── class-rollup-inventory.php (core logic)
│ └── class-rollup-helpers.php (helpers)
└── admin/
└── class-admin-page.php (UI admin)
Cách sử dụng
1. Activate plugin
Plugin sẽ tự động tạo bảng wp_global_daily_rollup
2. Rollup thủ công qua Admin UI
Network Admin → JSON Rollup → Nhập blog_id, from_date, to_date → Chạy Rollup
3. Sử dụng API trong code
// Lấy tồn kho realtime
$helpers = new TGS_JSON_Rollup_Helpers();
$inventory = $helpers->get_realtime_inventory($blog_id);
// ['SKU001' => ['qty' => 100, 'value' => 5000000], ...]
// Lấy tồn của 1 SKU
$sku_data = $helpers->get_sku_inventory($blog_id, 'SKU001');
// ['qty' => 100, 'value' => 5000000, 'avg_cost' => 50000]
// Lấy lịch sử 1 SKU
$history = $helpers->get_sku_history($blog_id, 'SKU001', '2026-01-01', '2026-01-31');
Database Schema
CREATE TABLE wp_global_daily_rollup (
rollup_id BIGINT UNSIGNED AUTO_INCREMENT PRIMARY KEY,
blog_id BIGINT UNSIGNED NOT NULL,
rollup_date DATE NOT NULL,
rollup_snapshot LONGTEXT NOT NULL, -- JSON
rollup_status VARCHAR(20) DEFAULT 'success',
error_message TEXT,
created_at DATETIME NOT NULL,
updated_at DATETIME,
UNIQUE KEY uk_blog_date (blog_id, rollup_date)
);
JSON Format
{
"inventory": {
"SKU001": {"qty": 100, "value": 5000000, "avg_cost": 50000},
"SKU002": {"qty": 200, "value": 10000000, "avg_cost": 50000}
},
"metadata": {
"total_skus": 2,
"rollup_version": "1.0",
"rollup_date": "2026-01-15",
"blog_id": 123
}
}
Roadmap
- [x] Core rollup engine
- [x] Admin UI
- [ ] REST API endpoints
- [ ] Cron job tự động
- [ ] Rollup doanh thu, khách hàng
- [ ] Export Excel
So sánh với tgs_rollup_analytics
| Tiêu chí | tgs_rollup_analytics | tgs_json_rollup |
|---|---|---|
| Số bảng | 5-10 bảng | 1 bảng |
| Số dòng/năm | 1.2 tỷ | 237,250 |
| Dung lượng | 500GB-1TB | 20-50GB |
| Query tồn kho | 200-500ms | 5-10ms |
| Mở rộng | Khó (ALTER TABLE) | Dễ (thêm key) |
Version: 1.0.0
Author: TGS Development Team