Пункты Разработки И Продажи Модулей Битрикс

Здесь мы поговорим не столько о технических аспектах расширения Битрикс (одна из причин, почему оно им не нравится), сколько о моментах, связанных с экосистемой Битрикс (еще одна причина, почему оно им не нравится) , хотя технические моменты тоже будут, но в гораздо меньшем объеме, чтобы не повторять документацию.

В этой статье не будет субъективной оценки cms или компании, только сухие факты и мысли, которые помогут вам заработать на модулях.

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

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

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



Зарабатывайте на поддержке, а не на покупках

Покупка, конечно, может быть платной, в идеальном мире должно было бы быть 100? размер заработка от готовых решений (на то они и готовые), но покупатели почти всегда будут непрограммистами и не будут иметь в штате программиста.

Это экосистема, которую создает cms и особенно Битрикс.

Поэтому задачи по интеграции функционала или внесению изменений в дизайн часто ложатся на самих создателей.

А поскольку время программистов стоит дорого, вам придется взимать с клиента сверх суммы покупки, и платить клиенту дважды.

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

По мере увеличения автономности установки может увеличиваться и цена покупки.

Но автономность никогда не будет 100%, потому что не всегда сайты делаются по руководствам Битрикс.

Совет, конечно, актуален только в том случае, если вы собираетесь зарабатывать на модулях.



Давайте переустановим модуль

Иногда нужно просто удалить модуль и установить его заново.

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

Проблема в том, что модулю необходимо хранить данные в базе данных или файлах.

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

А вот при перестановке, наоборот, нужно все как-то сохранить, чтобы пользователю не нужно было заново все заполнять и настраивать.

Предоставление при удалении модуля выбора, стирать данные или нет – лучшее решение в данной ситуации, несмотря на то, что Битрикс обычно говорит о полном стирании следов модуля при удалении.



Много ли функций внутри одного модуля или много маленьких модулей?

Я объясню проблему на примере модуля комментариев.

Итак, вы сделали такой продукт (модуль комментариев) и выпустили его на Маркетплейс.

Вы можете использовать его для написания комментариев к товарам.

И даже можно удалять, редактировать и отвечать другим.

Но один покупатель захотел все, что есть у вас, да еще и в таком же дизайне, но чтобы это были полные обзоры: с рейтингом, фотографиями, полями достоинств и недостатков.

Стоит ли создавать второй модуль или расширять функционал первого? Может показаться, что вопрос сугубо индивидуальный, но если посмотреть на всю экосистему Битрикс: дорогие cms с большим функционалом из коробки, в магазине очень популярны стандартные сайты и даже конструкторы сайтов, цены на разработку довольно высокие.

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

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

лица.

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

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

И вы наверняка слышали истории своих клиентов о том, почему им нужен Битрикс как таковой, и слышали примерно такие же ответы.



Служба поддержки

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

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

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

Даже если у вас есть модуль обратного звонка и он был установлен 4 месяца назад, а вчера отвалилась загрузка в 1С, вам все равно могут написать.

Отчасти это связано с политикой технической поддержки Битрикса.

Всем отвечают, но если видят чужой код, сразу моют руки.

Например, если ваш модуль использует какое-либо событие ядра (а оно, скорее всего, так и есть), то т.е.

поддержка быстро передаст вам проблему клиента, если это событие сработает где-то в скрипте ошибки.

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

И их можно понять.

Кто захочет бесплатно разбираться в чужом коде? И тогда почти никто не будет читать ваши инструкции и не зайдет на вашу интуитивно понятную страницу настроек; в 80% случаев сразу напишут в вашу техподдержку.

Наверное, это справедливо в любой сфере деятельности.

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

Учитывайте это при ценообразовании и планировании трудозатрат.

Возможность настройки шаблонов компонентов путем копирования вместо настройки с помощью параметров подключения компонентов.

Все сайты разные и соответственно от ваших компонентов им нужно разное, например разные тексты для надписей, дизайн, набор элементов.

В Битриксе вы можете копировать шаблоны компонентов и изменять их по-своему.

Это нормальная практика.

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

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

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

Поэтому хорошим решением будет предусмотреть как можно больше настроек для подключения компонента, чтобы всю необходимую настройку можно было провести не редактируя его код, а просто «подкручивая» настройки.

Дополнительным преимуществом такого подхода является то, что клиенту не нужен программист.

Хранение кода JavaScript

Технический момент также связан с кастомизацией.

Вот как в целом выглядит структура компонента:

  • мой.

    компонент/

    • класс.

      php

    • компонент.php
    • .

      parameters.php

    • .

      description.php

    • шаблоны/
      • .

        по умолчанию/

        • .

          parameters.php

        • result_modifier.php
        • шаблон.

          php

        • стиль.

          css

        • скрипт.js
        • компонент_epilog.php
        • язык/
          • RU/
            • .

              parameters.php

            • result_modifier.php
            • шаблон.

              php

            • компонент_epilog.php
    • язык/
      • RU/
        • класс.

          php

        • компонент.php
        • .

          parameters.php

        • .

          description.php

Но вот лучший способ его переделать, если внутри js есть Ajax-вызовы или логика:
  • мой.

    компонент/

    • класс.

      php

    • компонент.php
    • скрипт.js
    • .

      parameters.php

    • .

      description.php

    • шаблоны/
      • .

        по умолчанию/

        • .

          parameters.php

        • result_modifier.php
        • шаблон.

          php

        • стиль.

          css

        • скрипт.js
        • компонент_epilog.php
        • язык/
          • RU/
            • .

              parameters.php

            • result_modifier.php
            • шаблон.

              php

            • компонент_epilog.php
    • язык/
      • RU/
        • класс.

          php

        • компонент.php
        • .

          parameters.php

        • .

          description.php

То есть важные js помещать в компонент, а не держать в шаблоне.

В последнем дёргаться должен только API и использовать обработчики, привязанные к элементам.

Что ж, спасибо, КО.

Общий js для модуля можно поместить в папку самого модуля.

Смысл в том, что все, что находится в папке шаблона компонента, относится только к отображению, а не к логике.

Соответственно, при настройке шаблона копируется вся папка, включая ваш script.js. И появляются те же проблемы с поддержкой и обновлениями, что и в предыдущем пункте, но с предложенной структурой их можно значительно уменьшить.



JavaScript-библиотека Jquery и Битрикс.

Мало кто хочет писать Ajax-вызовы или делать обработку наведения на чистом js, поэтому многих тянет на jQuery, который сейчас сложно не увидеть на случайном сайте.

Некоторые также знают о js-библиотеке Битрикс, которая также предоставляет некоторые обертки для удобства использования.

Но реальность такова, что сама js-библиотека cms действительно бессмысленна, а иногда и вредна, например, потому что по каким-то причинам не работает с композитом.

А проблема jQuery в том, что он подключен почти везде, но все же не везде.

А если подключено, то возможно версия слишком старая.

Мы рекомендуем писать либо на ванили, либо настроить «Должен ли я включать jQueryЭ» компонент, чтобы вы могли тонко настроить этот момент и отключить его там, где это необходимо.

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



Как можно больше уникальных классов CSS и как можно больше правил селектора.

Конечно, имена классов должны быть уникальными; это касается всех стандартных решений в сети, имеющих визуальную часть, поскольку сайт может использовать те же классы, что и ваш.

Обычно мы включаем полное имя модуля в название классов и используем имена BЭMa. Но наличие (и популярность) «конструкторов сайтов» вынуждает вас указывать почти каждый параметр для каждого селектора явно, даже указывать «content:’’» для псевдоэлементов, если вы их не используете.

Более того, будьте готовы к частому использованию «!important» в вашем CSS.

Всегда используйте FTP-доступ, если вам нужно отредактировать код.

Возможно вы знаете, что в админке Битрикс есть встроенный редактор файлов, поэтому редактировать код можно через браузер.

Но опыт показал, что если для устранения или анализа проблемы нужно отредактировать хоть какой-то файл на сайте, то лучше сразу брать FTP, так как можно повлиять на некоторый код, который вызывается в init.php (и такое бывает часто) и сайт сразу крашится без возможности откатить изменения через админку, что тоже не получится.

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

Причины такого поведения нам до сих пор не ясны, но такие случаи случаются.

Поэтому редактирование файлов через браузер – достаточно рискованное занятие, если через минуту вы не можете повторно загрузить сайт.

Покупатели почти всегда деловые

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

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

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

Для нас, как продавцов, это означает более высокие продажи за единицу продукции, но более длительный цикл покупки и хлопоты с бухгалтерами клиентов.



Плохая окружающая среда

На ваш модуль будет влиять код ядра Битрикс, код самого сайта и код других модулей, которые приобрел клиент. Что бы они ни говорили, вам не нужно беспокоиться о коде ядра.

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

А техническая поддержка может помочь в этом бесплатно.

А вот код самого сайта – другое дело.

Здесь может быть ужасный код, так как многие сайты сделаны довольно давно, многие сделаны плохими программистами, так как порог входа в сам PHP довольно низкий.

А некоторые сайты, наоборот, были сделаны «хорошими» программистами, но пришедшими из фреймворков или других систем (иногда самописными) и даже не пытавшимися разобраться в Битриксе.

Видимо, из гордости.

Кстати, есть еще один «конец» кода, когда от Битрикса остается только имя и админка, а большая часть функционала делается в обход модулей Битрикса, и соответственно событий и таблиц базы данных.

Кроме того, модули других разработчиков могут перекрывать ваш модуль своими обработчиками.

Все это приносит проблемы, в основном в поддержке.

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

для дополнительных функций.

работайте над сайтом, потому что иначе ничего не будет работать.



Вам нужно знать D7 в совершенстве?

Довольно давно Битрикс выпустил новое ядро своей системы, в котором было переписано практически всё, появилось много новых возможностей, были слегка унифицированы классы и всё стало ООП.

Но мы решили не писать свои решения на чистом d7. Мы делаем это из-за распространения технологий.

Несмотря на то, что релиз состоялся довольно давно, хотя и изредка, нам всё же попадаются сайты на старом ядре.

Таких клиентов мало и скорее всего проблем с ними будет много (потому что обновятся и всё полетит), поэтому ими можно пренебречь в мыслях.

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

Но мы пока не столкнулись ни с одной проблемой с поддержкой старого ядра.



Вместо заключения

Конечно, некоторые моменты звучат так: «чтобы писать модули, вы должны их писать».

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

Мы собираемся обновлять статью по мере накопления опыта, чтобы использовать ее как шпаргалку внутри компании.

И дополнительно ссылка на официальная документация Битрикс о разработке модуля.

Теги: #Битрикс #Модули Битрикса #маркетплейс #готовые решения #стандартные решения #Монетизация ИТ-систем #Монетизация веб-сервисов #Интернет-маркетинг

Вместе с данным постом часто просматривают: