Найти в Дзене

Как мы настроили автоматическую выгрузку данных Wildberries в Google Таблицы

Оглавление

Привет! Меня зовут Александр, я опытный аналитик и действующий продавец (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