Предыстория: Интеграция с Kaspi подтягивает всё — даже то, что не нужно
Клиент продаёт товары через Kaspi Магазин и ведёт учёт в МойСклад. На Kaspi у него несколько складов — например, четыре точки в разных городах. Интеграция настроена и заказы автоматически приходят в МойСклад.
Проблема: Клиенту нужно вести учёт только по одному-двум складам, а не по всем четырём. Но интеграция работает на весь аккаунт Kaspi — заказы приходят со всех складов без исключения. Те склады, которые клиенту в МойСклад не нужны, не сопоставлены с системой, и заказы с них создаются без указания склада.
Казалось бы, ну создались и создались — можно просто не обращать на них внимания. Но нет. По каждому такому заказу автоматически формируется цепочка связанных документов: отчёт комиссионера, входящий платёж, приёмка. Все они проводятся и попадают в учёт — без привязки к складу. В итоге: искажённые остатки, раздутая статистика, некорректные отчёты. А выбор по сути был один — либо работать со всеми складами Kaspi, либо мириться с мусором в учёте.
Задача
- Автоматически находить заказы и связанные документы, где склад не указан — то есть заказы с тех складов Kaspi, которые клиенту не нужны.
- Снимать их с проведения — чтобы они не влияли на остатки, отчёты и статистику.
- Оставлять понятный след — чтобы было видно, почему документ снят с проведения.
Решение: Скрипт, который фильтрует заказы по складам автоматически
Мы разработали микросервис, который работает через API МойСклад и отслеживает создание документов в реальном времени.
Как работает
При создании любого из ключевых документов скрипт проверяет связанный заказ покупателя. Если в заказе не указан склад (значит, заказ пришёл со склада Kaspi, который не сопоставлен с МойСклад) — документ автоматически снимается с проведения.
Какие документы контролируются:
- Заказ покупателя — проверяется напрямую. Нет склада — снимается с проведения.
- Отчёт комиссионера — скрипт находит заказ по входящему номеру. Нет склада в заказе — отчёт снимается с проведения.
- Входящий платёж — скрипт находит связанный заказ через привязку документов. Нет склада — платёж снимается с проведения.
- Приёмка — скрипт находит заказ по входящему номеру. Нет склада — снимаются с проведения и приёмка, и связанный с ней исходящий платёж.
Понятные комментарии: При снятии с проведения скрипт добавляет в документ комментарий простым языком — какой документ снят и почему. Если в документе уже был комментарий — он сохраняется, новый дописывается ниже.
Прозрачность: Все действия записываются в Google Таблицу — для каждого типа документа свой лист логов.
Результат
- Работа только с нужными складами: Клиент сопоставил в МойСклад только те склады Kaspi, которые ему нужны. Заказы с остальных складов автоматически снимаются с проведения и не влияют на учёт.
- Чистые отчёты и статистика: Остатки, выручка, аналитика — всё считается только по тем складам, с которыми клиент реально работает. Никакого мусора.
- Вся цепочка под контролем: Снимается не только заказ, но и все связанные документы — отчёты, платежи, приёмки. Ни один лишний документ не проскочит в учёт.
- Менеджер всё видит: Понятный комментарий прямо в документе — сразу ясно, почему он снят с проведения.
- Полный контроль: Логи по каждому типу документа в Google Таблице.
- Без подписок и скрытых платежей: Скрипт передан клиенту в полное владение. Оплата только за часы разработки.