Скрипты для склада и закупок
Скрипты держат таблицу склада в актуальном виде: остатки и заказы загружаются сами, а о заканчивающихся товарах приходит сообщение.
Остатки и заказы
| Откуда | Что сделать |
|---|---|
| МойСклад | Остатки и заказы МоегоСклада |
| 1С | Интеграция с 1С |
| Wildberries и Ozon | Заказы Wildberries и Ozon |
Сообщение о заканчивающихся товарах
Раз в день скрипт сравнивает доступный остаток с минимумом и присылает в Telegram список товаров, которые пора заказывать. Остатки берутся с листа «Остатки», например из руководства по МоемуСкладу, а минимумы — с отдельного листа «Минимумы» со столбцами «Код» и «Минимум». Отдельный лист нужен потому, что лист остатков скрипт выгрузки переписывает целиком, и строки на нём меняют порядок.
Триггер: по расписанию, раз в день. Секрет: TELEGRAM_BOT_TOKEN.
const CHAT_ID = 123456789;
function main() {
const minimums = new Map(
Coverse.table.getSheet("Минимумы").getDataRange().getValues().slice(1)
.filter((row) => row[0] !== "" && row[1] !== "")
.map((row) => [String(row[0]), Number(row[1])]),
);
const rows = Coverse.table.getSheet("Остатки").getDataRange().getValues();
const head = rows[0];
const code = head.indexOf("Код");
const name = head.indexOf("Товар");
const stock = head.indexOf("Доступно");
if (code === -1 || name === -1 || stock === -1) throw new Error("На листе «Остатки» нужны столбцы «Код», «Товар» и «Доступно»");
const low = rows.slice(1).filter((row) => minimums.has(String(row[code])) && Number(row[stock]) < minimums.get(String(row[code])));
if (low.length === 0) return;
const lines = low.slice(0, 50).map((row) => row[name] + " — " + row[stock] + " (минимум " + minimums.get(String(row[code])) + ")");
Telegram.send(CHAT_ID, "Заканчиваются товары: " + low.length + "\n" + lines.join("\n"));
}
Если заканчивается больше 50 товаров, в сообщение попадают первые 50, а общее число видно в первой строке.
Порядок в таблице
- Перенос выполненных строк в архив: закрытые заказы уходят на лист «Архив».
- Раскраска строк по статусу: отгруженные, ожидающие и проблемные строки разными цветами.