Skip to content

Instantly share code, notes, and snippets.

@thanh4890
Last active November 27, 2023 16:37
Show Gist options
  • Save thanh4890/935f2a4b6a616f23d57106aff46de943 to your computer and use it in GitHub Desktop.
Save thanh4890/935f2a4b6a616f23d57106aff46de943 to your computer and use it in GitHub Desktop.
Ecommerce statistics
var totalOrders = 0;
var totalSpent = 0;
var pulling = true;
var offset = 0;
function getStatistics() {
var orders = [];
var xhttp = new XMLHttpRequest();
xhttp.onreadystatechange = function() {
if (this.readyState == 4 && this.status == 200) {
orders = JSON.parse(this.responseText)['data']['details_list'];
console.log(orders)
totalOrders += orders.length;
pulling = orders.length >= 10;
orders.forEach(order => {
let tpa = order["info_card"]["final_total"] / 100000;
totalSpent += tpa;
});
offset += 10;
console.log('Đã lấy được: ' + totalOrders + ' đơn hàng');
if(pulling) {
console.log('Đang kéo thêm...');
getStatistics();
}
else {
console.log("%cTổng đơn hàng đã giao: "+"%c"+moneyFormat(totalOrders), "font-size: 30px;","font-size: 30px; color:red");
console.log("%cTổng chi tiêu: "+"%c"+moneyFormat(totalSpent)+"đ", "font-size: 30px;","font-size: 30px; color:red");
}
}
};
xhttp.open("GET", "https://shopee.vn/api/v4/order/get_order_list/?list_type=3&offset=" + offset + "&limit=10", true);
xhttp.send();
}
function moneyFormat(number, fixed=0) {
if(isNaN(number)) return 0;
number = number.toFixed(fixed);
let delimeter = ',';
number += '';
let rgx = /(\d+)(\d{3})/;
while (rgx.test(number)) {
number = number.replace(rgx, '$1' + delimeter + '$2');
}
return number;
}
getStatistics()
var totalOrders = 0;
var totalSpent = 0;
var pulling = true;
var page = 1;
var notCountStatus = ['doi_thanh_toan', 'cod', 'canceled']
function getStatistics() {
var orders = [];
var xhttp = new XMLHttpRequest();
xhttp.onreadystatechange = function() {
if (this.readyState == 4 && this.status == 200) {
orders = JSON.parse(this.responseText)['data'];
pulling = orders.length >= 10;
orders = orders.filter(order => ! notCountStatus.includes(order.status))
// orders = orders.filter(order => order.status === 'hoan_thanh')
totalOrders += orders.length;
orders.forEach(order => {
totalSpent += order["grand_total"];
});
page += 1;
console.log('Đã lấy được: ' + totalOrders + ' đơn hàng');
if(pulling) {
console.log('Đang kéo thêm...');
getStatistics();
}
else {
console.log("%cTổng đơn hàng đã giao: "+"%c"+moneyFormat(totalOrders), "font-size: 30px;","font-size: 30px; color:red");
console.log("%cTổng chi tiêu: "+"%c"+moneyFormat(totalSpent)+"đ", "font-size: 30px;","font-size: 30px; color:red");
}
}
};
xhttp.open("GET", "https://tiki.vn/api/v2/me/orders?page=" + page + "&limit=10", true);
xhttp.send();
}
function moneyFormat(number, fixed=0) {
if(isNaN(number)) return 0;
number = number.toFixed(fixed);
let delimeter = ',';
number += '';
let rgx = /(\d+)(\d{3})/;
while (rgx.test(number)) {
number = number.replace(rgx, '$1' + delimeter + '$2');
}
return number;
}
getStatistics()
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment