Иногда, я задаюсь вопросом, а сколько же я потратил на ozon денег? На wildberries всё ясно, там пишут, но на ozon сумму выкупа не пишут.
Если погуглить проблему, то найти можно всего одно решение, считать вручную, но согласитесь, этот метод ужасен, и работает если заказов не много, а если их много? Я решил пойти другим путём и написал javascript для подсчёта.
Ближе к делу
Вначале, я напишу скрипт, чтобы те, кто знает как его применить, дальше могли не читать.
Скрипт актуален на момент публикации, иногда, ozon меняет структуру страницы, но, я буду стараться актуализировать скрипт, если это будет требоваться.
UPD: скрипт проверен 26.01.2025
var doc = document.querySelectorAll('[data-widget="orderList"]');
var doc_c = 0;
while(doc.length != doc_c){
doc_c = doc.length;
document.querySelector('[data-widget="paginator"]').scrollIntoView({ block: "end" });
await new Promise(r => setTimeout(r, 2000));
doc = document.querySelectorAll('[data-widget="orderList"]');
if(doc.length == doc_c){
await new Promise(r => setTimeout(r, 3000));
doc = document.querySelectorAll('[data-widget="orderList"]');
}
}
var price = Array();
for(var i = 0; i < doc.length; i++){
var hz = doc[i].children;
for(var j = 0; j < hz.length; j++){
var temp = hz[j].children[0].querySelectorAll('span')[2];
if(temp)
price.push(parseFloat(hz[j].children[0].querySelectorAll('span')[2].innerText.slice(0,-2).replace(/\s/g, '')));
}
}
console.log("%cСумма заказов: "+price.reduce((a, b) => parseFloat(a) + parseFloat(b), 0),"color:blue; font-size:18px");
проверено в google chrome, должно работать на всех chromium подобных браузерах: edge, opera, vivaldi и т.д.
Заходим на страницу Заказы(https://www.ozon.ru/my/orderlist), если у вас много заказов, я рекомендую фильтровать по годам, чтобы уменьшить огромную страницу
Дело в том, что в озон нет страниц у заказов, история подгружается по мере прокрутки. Мой скрипт вначале подгружает все заказы, т.е. скроллит в низ, ждёт 2 секунды и снова в низ и так, пока все заказы не прогрузятся.
Бывает, что за 2 секунды прогрузиться не успевает, поэтому добавил ещё одну проверку.
if(doc.length == doc_c){
await new Promise(r => setTimeout(r, 3000));
doc = document.querySelectorAll('[data-widget="orderList"]');
}
Вы можете вообще убрать эту часть или наоборот, увеличить время с 2 или с 3 секунд, если у вас возникают проблемы с автоматической прогрузкой.
В консоли, будет результат вычислений суммы заказов ozon, типа такого
Как выполнить скрипт
Теперь для тех, кто не знает как выполнить скрипт.
Заходим на страницу Заказы(https://www.ozon.ru/my/orderlist), открываем "Инструменты разработчика" с помощью комбинации клавиш Ctrl+Shift+I или ПКМ - "Просмотреть код" или ПКМ - "Инструменты разработчика" - Инспектировать или ПКМ - Проверить. В общем, зависит от браузера, комбинация клавиш самый универсальный вариант.
Переходите во вкладку консоль и просто вставляете в поле скрипт выше и enter.
Всё, скрипт начал работать, дождитесь окончания работы и результата.
Если консоль, при попытке вставить, пишет что-то типа такого
Вам надо вручную написать в консоль "allow pasting" ("разрешить вставку" если на русском) без кавычек, после чего вставлять скрипт.
Предостережение
Никогда не выполняйте подозрительные скрипты, если сами не понимаете, что будет делать скрипт. Как вы уже догадались, мой скрипт не исключение.
Все действия производятся на ваш страх и риск.