Привет! Меня зовут Александр, я опытный аналитик и действующий продавец (seller) на Wildberries. Сегодня хочу рассказать, как мы организовали процесс автоматической выгрузки данных из Wildberries в Google Таблицы.
Автоматизация рутинных задач позволяет экономить время, минимизировать ошибки и сосредоточиться на важных аспектах бизнеса: анализе данных, планировании поставок и улучшении ассортимента. В этом посте я подробно расскажу, как вы можете внедрить подобное решение.
Что мы сделали?
Мы разработали решение на основе Google Apps Script, которое:
- Автоматически запрашивает данные о складах за вчерашний день через API Wildberries.
- Обрабатывает и фильтрует полученные данные.
- Выгружает их в структурированном виде в Google Таблицы для удобного анализа.
Как это работает?
1. Настройка Google Таблицы
Создайте два листа в Google Таблице:
- API — здесь указывается ваш API-ключ (например, в ячейке B2).
- Отчёт по остаткам — в этом листе будет формироваться выгрузка данных.
2. Написание скрипта
В редакторе Google Apps Script добавьте код, который:
- Делает запрос через API Wildberries.
- Фильтрует данные по дате изменений.
- Обновляет таблицу: очищает старую информацию и добавляет актуальные данные.
Пример кода:
function updateSheet() {
const spreadsheet = SpreadsheetApp.getActiveSpreadsheet();
const reportSheetName = "Отчёт по остаткам"; // Название листа для выгрузки
const apiKey = PropertiesService.getScriptProperties().getProperty("API_KEY");
if (!apiKey) {
Logger.log("API-ключ не найден в свойствах проекта!");
return;
}
const yesterday = new Date();
yesterday.setDate(yesterday.getDate() - 1); // Вчерашняя дата
const formattedYesterday = yesterday.toISOString().split('T')[0];
const url = `https://statistics-api.wildberries.ru/api/v1/supplier/stocks?dateFrom=${formattedYesterday}`;
const params = {
method: "GET",
headers: { Authorization: apiKey },
muteHttpExceptions: true
};
try {
const response = UrlFetchApp.fetch(url, params);
const statusCode = response.getResponseCode();
if (statusCode === 200) {
const data = JSON.parse(response.getContentText());
if (!data || data.length === 0) {
Logger.log("Нет данных для вчерашнего дня.");
return;
}
let reportSheet = spreadsheet.getSheetByName(reportSheetName);
if (!reportSheet) {
reportSheet = spreadsheet.insertSheet(reportSheetName);
}
reportSheet.clear();
const headers = [
"Date", "Time", "warehouseName", "supplierArticle", "nmId", "barcode",
"quantity", "inWayToClient", "inWayFromClient", "quantityFull",
"category", "subject", "brand", "techSize", "Price", "Discount",
"isSupply", "isRealization", "SCCode"
];
reportSheet.appendRow(headers);
const rows = data
.filter(row => row.lastChangeDate && row.lastChangeDate.startsWith(formattedYesterday))
.map(row => {
const [date, time] = (row.lastChangeDate || "").split('T');
return [
date || "",
time ? time.split('.')[0] : "", // Убираем миллисекунды, если есть
row.warehouseName || "",
row.supplierArticle || "",
row.nmId || "",
row.barcode || "",
row.quantity || 0,
row.inWayToClient || 0,
row.inWayFromClient || 0,
row.quantityFull || 0,
row.category || "",
row.subject || "",
row.brand || "",
row.techSize || "",
row.Price || 0,
row.Discount || 0,
row.isSupply ? "Да" : "Нет",
row.isRealization ? "Да" : "Нет",
row.SCCode || ""
];
});
if (rows.length > 0) {
reportSheet.getRange(2, 1, rows.length, headers.length).setValues(rows);
reportSheet.getRange(2, 1, rows.length, headers.length).sort([{ column: 1, ascending: false }]);
Logger.log("Таблица успешно обновлена остатками за вчерашний день.");
} else {
Logger.log("Нет данных с изменениями на вчерашний день.");
}
} else {
Logger.log(`Ошибка API: ${statusCode}`);
}
} catch (error) {
Logger.log(`Ошибка выполнения: ${error.message}`);
}
}
3. Автоматизация через триггеры
Настройте автоматический запуск скрипта. Например, он может выполняться ежедневно в 8:00 утра. Это позволяет к началу рабочего дня получить обновлённый отчёт без лишних действий.
4. Обновление данных
Скрипт автоматически очищает старую информацию, добавляет свежие данные и сортирует их по дате. Это гарантирует, что в отчёте всегда актуальная информация.
Особенности решения
- Проверка на ошибки: Скрипт обрабатывает такие ситуации, как неверный API-ключ, превышение лимита запросов или отсутствие данных.
- Гибкость: Если лист "Отчёт по остаткам" отсутствует, он создаётся автоматически.
- Сортировка данных: Информация сортируется по дате, чтобы вы всегда видели самые свежие остатки в начале таблицы.
Почему это полезно?
- Вам больше не нужно вручную запрашивать и обрабатывать данные — всё происходит автоматически.
- Вы экономите время и минимизируете вероятность ошибок.
- Такие отчёты можно легко интегрировать в дашборды или BI-системы для дальнейшего анализа.
Немного обо мне
Меня зовут Александр, и я не только аналитик, но и действующий продавец на Wildberries. Это позволяет мне понимать задачи с обеих сторон: как продавца, работающего с платформой, и как аналитика, занимающегося автоматизацией процессов. За свою карьеру я внедрил десятки решений, которые помогли моим клиентам и коллегам оптимизировать управление данными и улучшить показатели бизнеса.
Если вы хотите внедрить автоматизацию или настроить процесс анализа данных, я готов вам помочь!
📩 Связаться со мной можно в Telegram: https://t.me/Alex_Lukashev
#автоматизация #аналитика #wildberries #гуглтаблицы #API #seller