Ассортимент нужно как-то занести в систему. Если позиций три — вопроса нет, заводятся руками за пять минут. Если триста, и раз в неделю поставщик присылает новый прайс, ручной ввод превращается в отдельную работу.
OrderGrow — программа для совместных покупок и приёма заказов, и каталог в ней общий: то, что вы завели один раз, видно и в приложении, и на витрине, и в Telegram-боте. Завести товар можно двумя способами, и они не конкурируют: Google-таблица через бота — для объёма, форма в приложении — для единичных позиций. Ниже — что заполняется, как проходит загрузка, что происходит при ошибке, как устроены фотографии и когда какой способ уместнее.
Что заполняется в карточке товара
Набор полей одинаковый в обоих способах:
- Название, категория и подкатегория — по ним товар находится в каталоге и раскладывается по разделам.
- Описание — необязательное, но именно оно отвечает на вопросы покупателя до того, как он их задаст.
- Поставщик — по нему потом собираются накладные и отчёты.
- Кратность, единица и размер коробки — как товар считается и как упакован.
- Цена.
- Статус — «Опубликован», «Скрыт» или «Удалён».
- Дата и время окончания сбора — момент, когда сбор по товару закроется сам.
Статусы отличаются сильнее, чем кажется. «Скрыт» — товар в системе есть, покупателю не виден, вернуть можно в любой момент. «Удалён» — товар помечается удалённым, и вместе с ним убираются его фотографии. Восстановить карточку с прежними снимками уже не получится, поэтому для временного снятия с продажи нужен «Скрыт».
ID — первая колонка в таблице и первое поле в форме. Его можно проставить самому, а можно оставить пустым: система присвоит следующий свободный. Занятый номер повторно присвоить нельзя.
Как загрузить товары из Google-таблицы
Таблица уже создана в нужном формате — колонки и их порядок менять не нужно. Заполняете строки: одна строка — один товар.
Дальше в боте, в режиме администратора, — раздел «Товары», затем «Товары из Google».
Система читает лист, проверяет каждую строку и заносит в каталог то, что прошло проверку. Новые позиции добавляются, существующие обновляются по ID.
Практический вывод: правьте выгруженную таблицу, а не собирайте новую с нуля. В выгрузке все поля уже заполнены текущими значениями, и вы меняете только то, что нужно изменить.
Если в файле окажутся две строки с одним ID, сработает первая, вторая будет отклонена с ошибкой. Товар не «перезапишется дважды», но и вторая строка в каталог не попадёт.
Напротив каждой строки в служебной колонке появляется результат — что именно с ней произошло. Отчёт приходит туда же, где вы работали, а не отдельным файлом.
В конце бот присылает итог: сколько добавлено, сколько обновлено, сколько удалено и сколько строк не прошло.
Что происходит, когда в строке ошибка
Проверка идёт до того, как данные попадают в каталог. Проблемная ячейка подсвечивается, а в служебной колонке появляется текст: что не так и как исправить.
Несколько проверок, с которыми сталкиваются чаще всего:
- обязательные поля не заполнены;
- цена и кратность должны быть числом;
- дата и время окончания сбора либо стоят оба, либо не стоят вовсе, и дата не может быть в прошлом;
- один и тот же ID не может встречаться в файле дважды.
Полный перечень проверок мы не публикуем: это часть логики, которую незачем передавать конкурентам. Практического смысла в списке немного — если строка не прошла, система пишет прямо в таблице, что именно поправить.
Ошибка в одной строке не останавливает остальные. Корректные позиции попадают в каталог сразу, проблемные пропускаются с пояснением. Чинить файл целиком, чтобы завести хоть что-то, не нужно.
Номер не выдаётся строке, которая не прошла проверку. Если оставить ID пустым и ошибиться в другом поле, номер не присвоится. Иначе каждая неудачная загрузка съедала бы номера, и в нумерации копились бы дырки.
Таблица работает в обе стороны
Обмен не односторонний. Система не только читает таблицу, но и обновляет её из каталога: после успешной загрузки в листе оказывается актуальное состояние ассортимента — с проставленными ID, статусами и количеством фотографий.
Пока в таблице есть ошибки, она не перезаписывается. Выгрузка заменяет содержимое листа тем, что лежит в каталоге, — и стёрла бы как раз те строки, которые вы правите. Поэтому она откладывается до чистой загрузки.
Выгрузка останавливается, если в таблице есть строки без ID. Строка без номера означает, что товар дописали руками и ещё не загрузили. Система отказывается выгружать и просит сначала выполнить импорт — иначе новые строки просто исчезли бы, не попав в каталог.
Если вы уже работаете с каталогом через выгрузку в файл и массовые правки, механика знакомая — она описана в материале про работу с каталогом через Excel. Разница в том, что Google-таблица живёт постоянно и обновляется сама, а файл выгружается под конкретную задачу.
Как добавить один товар в приложении
Для одной-двух позиций открывать таблицу незачем.
В приложении в режиме администратора — раздел «Товары», вкладка «Матрица», кнопка «Добавить товар»: на компьютере вверху слева над таблицей, на телефоне внизу по центру.
Поля те же, что в таблице. Разница одна и существенная: здесь же, в карточке товара, прикрепляются фотографии. После «Создать» товар сразу в каталоге.
Как добавляются фотографии
Фотографии загружаются только в веб-версии, через карточку товара. Способов хранения два, и выбор между ними влияет на то, как быстро каталог открывается у покупателей.
Хранение в Telegram. Бесплатный вариант: Telegram выступает накопителем для снимков. Платить не нужно, но появляется зависимость от внешнего сервиса — от его доступности и от ограничений, которые могут действовать в конкретном городе, регионе или стране. Кроме того, при открытии карточек и листании каталога фотографии подгружаются медленнее.
Хранение на сервере. Снимки отдаются покупателю заметно быстрее, и каталог не зависит от того, что происходит с внешними сервисами. Ограничение здесь другое — объём: базовое дисковое пространство конечно, и на большом ассортименте в него можно упереться. Место расширяется за отдельную плату, условия — по запросу.
Способы не исключают друг друга: у одного товара может быть до четырёх снимков в Telegram и до четырёх на сервере — до восьми в сумме.
Когда таблица, а когда приложение
Таблица — когда позиций много, когда поставщик присылает прайс регулярно и когда править нужно сразу по многим строкам: цены, статусы, даты сборов.
Приложение — когда позиция одна, нужна сейчас и с фотографиями.
На практике организаторы используют оба: основной ассортимент заводят таблицей, а разовые позиции добавляют на ходу с телефона. Оба способа входят в базовые возможности программы для совместных покупок — отдельно ничего подключать не нужно.
Есть и третий путь — Excel прямо в приложении, без Google-таблицы и без бота. В разделе «Товары» на вкладке «Матрица» есть кнопки «Выгрузить» и «Загрузить»: выгружаете каталог файлом, правите в привычном редакторе, загружаете обратно. Работает и с телефона. Подходит, когда нужно разово поправить много строк, а держать постоянную таблицу незачем — механика разобрана в материале про работу с каталогом через Excel.
Что проверить после добавления
- Товар появился в каталоге с нужной категорией и подкатегорией.
- Статус — «Опубликован», если товар должен быть виден покупателям.
- Цена, кратность и единица совпадают с тем, что вы вводили.
- Переключиться в режим покупателя и посмотреть карточку его глазами.
Последний пункт кажется лишним, пока однажды не обнаруживается товар с ценой за килограмм при кратности в упаковках.
Чего эти способы не делают
Фотографии через таблицу не загружаются. В ней видно только их количество. Таблица работает с текстом и числами — файлы через неё передавать неудобно и медленно.
Товар не появляется у покупателей сам. Пока статус не «Опубликован», позиция есть в системе, но её не видно. Загрузка каталога и его публикация — разные действия намеренно: ассортимент можно готовить заранее и открыть целиком в нужный момент.
Дата окончания сбора работает только вперёд. Поставить её задним числом, чтобы закрыть сбор, не выйдет — такая строка не пройдёт проверку. Чтобы закрыть сбор сейчас, меняется статус, а не дата.
«Удалён» удаляет фотографии. Это не «Скрыт». Для временного снятия с продажи — «Скрыт».
Таблица не заменяет матрицу. Остатки, заказы и колонка витрины редактируются в приложении: это состояние, которое меняется в течение дня, и держать его в таблице бессмысленно — она устареет быстрее, чем вы её откроете.