От идеи до строчки в каталоге решений

Приходите с идеей — уходите с готовым решением для МойСклад

Каталог решений МойСклад — это витрина, к которой каждый день подходят десятки тысяч компаний. Попасть на нее можно. Дорога туда размечена не указателями, а граблями — и я знаю, где лежит каждая.

Я провожу разработчиков и компании через весь путь: от «есть идея, но непонятно, с чего начать» до опубликованного решения, которое устанавливают клиенты и за которое приходят деньги. Не пишу код за вас — объясняю, показываю, разбираю ваш код и держу за руку на поворотах, где обычно все и сходят с дистанции.

2020
С первого дня

Разрабатываю решения с момента основания маркетплейса МойСклад.

20
Своих решений

Опубликовано в каталоге. Не теория из документации, а собственный опыт.

50 000
Рублей

Стоимость тьюторства. Фиксированная, без почасовки и доплат.

Кому подходит

Кого я веду

Общее у всех одно: руки и голова на месте, а карты местности нет.

Разработчикам

Вы умеете писать код, но Vendor API видите впервые и не понимаете, где у него дно.

Студиям и командам

Хотите добавить в портфель продукт с подпиской вместо разовых заказов.

Партнерам МойСклад

Вы внедряете МойСклад и уже сто раз писали клиентам одно и то же руками. Пора упаковать это в решение.

Компаниям со своей интеграцией

У вас есть работающий сервис, и логично отдать его каталогу, а не рассказывать про него каждому клиенту.

Тем, у кого есть идея

Идея звучит хорошо, но непонятно, взлетит ли и сколько будет стоить ошибка.

Тем, кто уже пробовал

Решение застряло на модерации или падает при активации, и непонятно почему.

Программа

Что разбираем

Весь путь решения: от черновика в личном кабинете до денег на расчетном счете.

Как устроен каталог

Типы решений, что такое серверное решение, что вообще можно и чего нельзя.

Черновик и личный кабинет

Регистрация решения, appId, appUid, секретный ключ, аккаунт разработчика для отладки.

Дескриптор application.xml

Схема v2, endpointBase, права доступа, пермиссии — почему XSD ругается и как это чинить.

Активация и деактивация

PUT и DELETE от МойСклад, статусы Activated, SettingsRequired, Activating и что означает каждый.

JWT в обе стороны

HS256 на секретном ключе: как проверять входящие токены и как подписывать свои.

Ретраи и идемпотентность

X_Lognex_RequestId, повторы в 3 минуты и в 24 часа, почему без этого будут дубли.

Токен JSON API 1.2

Что приходит при активации, где это хранить и почему нельзя ответить 200 раньше времени.

Виджеты и iframe

Встраивание в карточку сущности, postMessage, масштабирование по высоте.

Кнопки и сценарии

Кастомные кнопки на документах, действия в сценариях, синхронный и асинхронный ответ.

Экран настроек

Модерация требует настройку внутри МойСклад — как это делают и как не делать.

Отладка

HTTPS-туннель на время разработки, логи решения в кабинете, чтение чужих ошибок.

Модерация

Требования к решению, типовые причины отказа, сколько ждать публикацию.

Деньги

Ценообразование, подписка, вознаграждение разработчика, отчеты и выплаты.

Безопасность

Где обычно утекают токены и почему тело запроса без проверки подписи — это публичный API.

Жизнь после публикации

Поддержка пользователей, обновления, что бывает, если решение начинает сбоить.

Подводные камни

Грабли, на которые наступают все

Ни одна из этих вещей не написана в документации крупным шрифтом. Каждую я узнал на своей шкуре.

  • Ответили 200 на активацию, не сохранив токен доступа. Токен больше не придет никогда, решение мертвое.
  • Не проверяете подпись входящего запроса. Значит, ваш эндпоинт — публичный API, которым может воспользоваться кто угодно.
  • Игнорируете идентификатор запроса. МойСклад повторяет запросы при сбоях — и у клиента появляются дубли.
  • Вернули не тот код ответа. Решение падает в ActivationFailed, и пользователь видит ошибку вместо вашей формы настроек.
  • Настройка вынесена во внешний сервис. Модерация такое не пропускает — настраивать должны внутри МойСклад.
  • Просите у пользователя логин и пароль от МойСклад. Отказ. Работать можно только по токену, который выдается решению.
  • Виджет не масштабируется по высоте и обзаводится вторым скроллом. Формальный повод для замечания.
  • Цена придумана «на глаз». Ее нельзя менять как угодно, а от нее зависит и ваше вознаграждение, и спрос.
  • Нет ИП или юрлица и расчетного счета. Решение опубликовать можно, а получить деньги — нет.
  • Решение опубликовали и забыли. Сбои при установке и удалении — повод снять его с публикации.

Экономика

Как решение зарабатывает

Все решения в каталоге продаются по подписке: цена указывается в рублях за месяц и должна быть кратна 100. Клиент может купить месяц или сразу год — при годовой оплате у него скидка 20%, а у вас предсказуемый доход и меньше отказов от продления.

Вознаграждение разработчика — 75% от того, что МойСклад получил от клиента. Остальное — комиссия площадки. Партнеры МойСклад покупают решения со скидкой 30%, и вознаграждение считается от итоговой суммы. Отчет по проданным подпискам появляется в кабинете в начале каждого месяца, выплата приходит на расчетный счет после подписания документов через ЭДО.

Все это я разбираю на цифрах: сколько останется у вас при цене 500, 1000 или 3000 рублей в месяц, через сколько установок отобьется разработка и почему ставить цену ниже рынка — плохая идея. Сразу говорю и неприятное: если вы не резидент и без счета в рублях, деньги забрать будет сложно.

Процесс

Как проходит тьюторство

Не курс с уроками по расписанию, а сопровождение вашего конкретного решения.

1

Разбор идеи

Смотрим, что вы задумали: реализуемо ли это в каталоге, нужно ли это кому-то кроме вас, нет ли уже такого.

2

Карта пути

Раскладываю задачу на этапы: что делать, в каком порядке и что на каждом шаге может пойти не так.

3

Обучение по делу

Разбираем механику каталога на вашем примере: дескриптор, активация, токены, виджеты.

4

Разработка с подстраховкой

Вы пишете код, я отвечаю на вопросы, читаю ваш код и говорю, где рванет.

5

Подготовка к модерации

Проверяем решение по требованиям площадки, чтобы не собрать отказ на очевидном.

6

Публикация и первые деньги

Отправка на модерацию, выход в каталог, настройка выплат и что делать дальше.

Стоимость

50 000 RUB за все сопровождение

Фиксированная сумма за путь целиком, а не за час разговора. Вы платите не за информацию — она вся есть в документации. Вы платите за то, что кто-то уже прошел этот путь двадцать раз и не даст вам потратить три месяца на выяснение того, что выясняется за один вечер.

Это дешевле одной ошибки. Неудачная архитектура активации переписывается неделю, отказ модерации отбрасывает на две, а решение, которое сняли с публикации из-за сбоев, возвращать обратно дороже, чем выпустить правильно с первого раза.

Тьюторство

50 000 ₽
за проект, а не за час
  • Разбор вашей идеи
  • Вся механика каталога
  • Ответы на вопросы по ходу
  • Подготовка к модерации
  • Доведение до публикации

Почему я

Двадцать решений и ни одного чужого

Я разрабатываю решения для каталога МойСклад с 2020 года — с первого дня, когда маркетплейс решений вообще появился. Тогда документация была тоньше, ошибок больше, а спросить было не у кого. Все, что я знаю, добыто в бою.

В каталоге опубликовано 20 моих решений. Каждое прошло модерацию, живет у пользователей, обновляется и приносит подписки. Я знаю не только как выпустить решение, но и как оно чувствует себя через год после запуска.

И главное: я не пересказываю документацию. Документацию вы прочтете и сами. Я рассказываю то, чего в ней нет — почему сделано так, что на самом деле проверяет модератор и какие решения не взлетают, сколько их ни полируй.

Вопросы

Частые вопросы

Нет. Код пишете вы или ваш разработчик — тьюторство про то, как и что писать. Если нужно, чтобы решение сделали под ключ, это отдельная услуга, обсуждаем отдельно.

Кто-то в вашей команде должен. Серверное решение — это ваш сервер, который принимает запросы от МойСклад. Если разработчика нет, начинать стоит не с этого.

На любом, где есть HTTP-сервер и библиотека для JWT. Механика каталога от стека не зависит, а разбирать ее мы будем на вашем.

Зависит от сложности идеи и вашего темпа. Техническая обвязка каталога — вопрос нескольких дней, основное время уходит на саму функциональность решения.

Разберем замечания и исправим. Задача подготовки к модерации в том и состоит, чтобы отказ не стал сюрпризом: типовые причины известны заранее.

Это первое, что мы обсудим. Иногда честный ответ — «такое уже есть» или «за это не будут платить». Лучше услышать это до разработки, чем после.

Вам. Решение регистрируется на вас, публикуется от вашего имени, деньги идут вам. Я в этой схеме нигде не появляюсь.

ИП или юрлицо и расчетный счет в рублях. Выплаты приходят по отчету, документы подписываются через ЭДО. Все это разбираем отдельно, чтобы не выяснилось в последний момент.

Можно, и у обоих вариантов свои последствия — в том числе для выплат. Разберем, какой формат подходит вашей задаче.

Да. Пока я жив — смогу помочь по вашему решению: подсказать, разобрать проблему, объяснить изменения в API.

Обсуждаем в Telegram. Работаю с клиентами из России и Беларуси, с ИП, юрлицами и физлицами.

Расскажите свою идею

Скажу честно, взлетит она или нет, и что нужно, чтобы довести ее до каталога. Отвечаю в течение дня.