Lấy thông tin Shopee

mail@pastecode.io avatar
unknown
javascript
3 years ago
2.5 kB
5
Indexable
Never
var tongPhiVanChuyen = 0;
var tongTienHang = 0;
var conDon = true;
var tongChi = 0;
var tongSP = 0;
var offset = 0;
var soDon = 0;
var lim = 10;

function showThongKe() {
    var orders = []; // tạo mảng rỗng, tí dồn vô bằng JSON

    var xhttp = new XMLHttpRequest(); // cái này đi cop, chắc là để tạo đối tượng xin API

    xhttp.onreadystatechange = function () {
        if (this.readyState == 4 && this.status == 200) { // cái if này cũng ko hiểu
            
            orders = JSON.parse(this.responseText)['orders']; // này là parse JSON
            soDon += orders.length; // cộng dồn số đơn vô length của cái JSON
            conDon = orders.length >= lim; // trả về true nếu lim chưa vượt length của orders, true thì tí đệ quy nữa

            orders.forEach(order => { // for trong JSON rồi get data ra
                let t1 = order["merchandise_subtotal"] / 100000; // làm tròn số chứ ko có gì á
                tongTienHang += t1;

                let t2 = order["actual_price"] / 100000;
                tongChi += t2;

                let t3 = order["shipping_fee"] / 100000;
                tongPhiVanChuyen += t3;

                order["items"].forEach(item => { // JSON trong JSON nên phải for để lấy thông tin sp
                    let t4 = item["amount"];
                    tongSP += t4; // đếm sp thôi
                });
            });

            offset += lim; // tăng offset lên sau mỗi lần đệ quy

            if (conDon) {
                showThongKe(); // nếu còn đơn chưa lấy hết thì đệ quy
                console.log("Đợi tí má, còn load");
            }
            else {
                // hết đơn thì show hàng
                tongTienHang = tongTienHang;
                console.log("Tiền đã dùng: " + "" + tongChi + " vnđ");
                console.log("Tổng đơn: " + "" + soDon + " đơn hàng");
                console.log("Tổng sản phẩm: " + "" + tongSP + " sản phẩm");
                console.log("Tổng tiền vận chuyển: " + "" + tongPhiVanChuyen + " vnđ");
            }
        }
    };

    // lim define trên kia, đổi tuỳ ý nếu mạng mạnh
    xhttp.open("GET", "https://shopee.vn/api/v1/orders/?order_type=3&offset=" + offset + "&limit=" + lim, true);
    xhttp.send(); // send request lên server
}

showThongKe();