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

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

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


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

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

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

Со временем такие вещи, как php, js, html, mysql и т.п. перестали быть чем-то за гранью фантастики. Во всяком случае, для потребностей обывательского масштаба. Развивались и мои магазины, некогда начатые на ImageCMS и HostCMS.

Два года назад я понял, что в состоянии самостоятельно допилить один из интернет-магазинов, благо, допиливать нужно было преимущественно клиенткую составляющую. Этот магазин работал на ImageCMS. Убив уйму времени на разбор логики работы этого движка, пытаясь разобраться в документации и пр. я тогда подумал: “А не проще ли запились свой движок интернет-магазина, буду знать всю его логику и, как следствие, смогу оперативно вносить в него любые изменения под любые свои потребности”. Тогда эта мысль осталась только на уровне мысли и в ход не пошла.

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

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

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

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

И именно в этот момент я задумался, а стоит ли в этом случае писать всё с нуля (с фреймворком или без него), если всё равно базовая структура проекта получается ровно такая-же, как и в сторонних движках?! Не проще ли выбрать один-два движка, которые реализуют максимально широкий спектр возможностей, разобраться в них и допиливать под собственные нужды? Может быть пока я еще не начал писать свой собственный интернет-магазин, партнёрку или монетизацию стоит пойти другой дорогой?!

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

Хабравчане, наверняка я не один такой, наверняка здесь много опытных веб-разработчиков. Интересно узнать ваше мнение. Обобщенно я бы сформулировал вопрос следующим образом: «Что эффективнее, писать проекты с нуля, используя по возможности фреймворки, или брать готовый движок и допиливать его под собственные нужды?»
Буду очень признателен за развернутые комментарии. Если вы считаете, что лучше использовать движки, то какие?
Какой подход вы используете для разработки несложных проектов (интернет-магазины, интернет-сервисы, информационные ресурсы), чтобы впоследствии иметь возможность дорабатывать и расширять как клиентскую, так и серверную составляющую?

Проголосовало 443 человека. Воздержалось 175 человек.

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

Комментарии (72)


  1. Sellec
    21.04.2016 22:38
    +2

    15 лет пользуемся собственным движком, написанным (на коленке) еще в 11м классе. С тех пор доработали там все, что можно было, не используя фреймворков. Летает в несколько раз быстрее большинства других магазинов за счет простой и незамысловатой логики. Но есть все, включая самое страшное зло — EAV.
    Разработать с нуля — большой труд. Если у вас не команда в 10 человек с опытом или нет пяти лет на вдумчивую разработку — бросайте это гиблое дело. Что-нибудь обязательно упустите.
    К слову, сейчас начали еще бОльший труд — перенос сего чуда на asp.net mvc в качестве эксперимента — проще застрелиться)


    1. Sellec
      21.04.2016 22:43
      +1

      бросайте это гиблое дело

      Не успел отредактировать камент)
      Бросайте это гиблое дело с разработкой велосипеда. Берите готовое решение, про которое готовы быть уверены, что оно будет существовать долгое время, и изучайте до корней и допиливайте под себя. Это проще, быстрее и даст бОльший профит за меньшее время.


      1. masterdrew
        21.04.2016 22:48

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


        1. pewpew
          21.04.2016 23:47

          Зависит от ваших привязанностей в технологиях. Если вы любите всё новое и экспериментальное, гляньте на Laravel (везде новые технологии и подходы, быстрый старт и простота поддержки). Если проверенное и поддерживаемое — Yii (вторая версия идёт в ногу со временем, а 1.1 — рабочая лошадка с кучей материала). Если фреймворк для вас — это куча компонентов — то Symfony. Если надо что-то небольшое, по-минимуму, то гляньте в микрофреймворки. Тут и Fuel и Slim и даже FatFree.

          Обошёл стороной ZF, ибо он по мне не лучше Symfony. Я на нём одно время много работал. Но в нём нет ничего выделяющегося кроме его длиннющих названий классов. Не посоветую CodeIgniter и Kohana. Они одного поля ягоды и у всех не всё так гладко. Kohana подкупает своей кажущейся лёгкостью, но шаг влево, шаг вправо — расстрел. Да и ORM местный — тот ещё геммор. Да и лишнего много, придётся чуток пилить напильником.

          Лично я остановился на классике: YII 1.X, jQuery + Bootstrap, MySQL, шаблоны в чистом PHP.
          Из YII активно пользуюсь всем кроме CHtml. Его я не перевариваю.

          Но выбр фреймворка и технологий зависит от многих факторов, так что каждому своё.


        1. lesha_firs
          21.04.2016 23:49

          symfony, если мы про php, или подобное. знаете в чем прелесть open source framework, их пилят, не «вася» с «петей» а куча народу, плюс у вас нет привязки к БД, вы ее строите как вам удобно, да приходиться немного больше думать.

          Но, если вы не хотите думать, зачем быть программистом =)

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


          1. masterdrew
            21.04.2016 23:56

            Как раз недавно изучая возможности различных фреймворков и мнения о них, остановился на Symfony. Возникает вопрос, есть ли какие-то решения для e-commerce (готовые корзины, каталоги, прайсы, заказы, партнерки и пр), которые бы в сочетании с Symfony дали бы гибкое решение, которое можно запиливать под собственные нужды?


            1. lesha_firs
              22.04.2016 00:05

              Ну как известно Symfony это «абстрактный» framework, то есть, вы берете что-то готовое, и переопределяете его, ну, я как Symfony эксперт, не очень, но, вот же есть official bundles для Symfony bundles


              1. lesha_firs
                22.04.2016 00:22

                В дополнение про симфони вот хороший доклад Олег Зинченко — Symfony best practices и не только



            1. pudovMaxim
              22.04.2016 13:09

              Из готовых e-commerce есть Sylius и Elcodi


            1. dkorablinov
              22.04.2016 13:09

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


    1. zmeykas
      22.04.2016 01:37
      +1

      А у нас недавно наоборот (почти) перенесли asp (без .net) чудо на Yii. Использовали готовый компонент корзины, но в итоге все равно 90% переписали. В целом когда есть опыт работы с движками магазинов — пилить проще. Кстати EAV не использовали (возможно пока), большинство заказов на магазины с простыми продуктами с небольшими доработками.

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


    1. Eugeny1987
      22.04.2016 13:09

      а что такое EAV?


      1. Sellec
        22.04.2016 13:16
        +3

        Entity-Attribute-Value.
        Если попросту:
        1) У вас есть базовая модель (Entity) с — Id, Name, Category. Это может быть товар, например.
        2) В зависимости от категории, в которой расположен товар, к базовой модели применяются определенные атрибуты (Attribute) — Возраст ребенка, Материал (для игрушек), Вес, Габариты (для большинства товаров) и тому прочее. Ну и для связки Модель-Атрибут задается значение. Это все требует как минимум трех таблиц в реляционной базе (для NoSQL баз вроде другая ситуация, я не сталкивался, честно), не считая всей логики в БД и коде для обслуживания всей этой байды. При наличии большого количества атрибутов и категорий можно столкнуться со сжиранием большого количества памяти. Выход — кеширование и оптимизация структуры.


        1. Eugeny1987
          22.04.2016 13:34

          Спасибо, понятно


        1. Fedcomp
          23.04.2016 22:54

          Напоминает Single Table Inheritance в Ruby on Rails.


          1. oxidmod
            23.04.2016 23:32

            EAV не STI ниразу


  1. masterdrew
    22.04.2016 01:16

    Любопытно. Примерно 20% проголосовавших в опросе использую движки (выбрали третий вариант ответа в опросе). Какие движки вы используете?


    1. AlexTest
      22.04.2016 01:36
      +1

      Для магазинов среди коробочных решений по количеству функционала («из коробки» + сторонние модули) богаче Magento на рынке ничего нет.
      Не самая плохая архитектура позволяет добавлять и сопровождать любой кастомный функционал.
      Единственное — очень высокий порог вхождения для того чтобы понять «как не надо делать», зато потом, при прохождении этого порога — все намного удобнее и проще чем с другими коробочными решениями для магазинов.


    1. zmeykas
      22.04.2016 01:38

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


      1. masterdrew
        22.04.2016 01:43

        Когда я начал прорабатывать структуру для модуля монетизации интернет-сервиса (расширенные возможности по платной подписке + партнёрка), то структура данных стала сильно походить на структуру данных обычного интернет магазина. Так ли это? Есть ли какие-то некоробочные решения для подобных задач?


        1. zmeykas
          22.04.2016 01:54

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


      1. AlexTest
        22.04.2016 01:44

        Как я понимаю, на своем движке у вас цена будет существенно ниже чем на Magento — верно?


        1. masterdrew
          22.04.2016 01:46

          C Magento не сталкивался. Поэтому сложно ответить на вопрос…


        1. zmeykas
          22.04.2016 01:51

          Зависит от задачи. Где больше часов работы, там и цена выше. Обычно соизмеримо.


        1. masterdrew
          22.04.2016 01:51

          Дело в том, что сейчас базовые знания php, js, html, mysql + свежие познания symfony позволяют создавать несложные сервисы. Вот и пытаюсь для себя понять, стоит ли дальше идти в этом направлении, создавая собственный код, используя расширения и фреймворки. Или же выбрать какой-то гибкий и функциональный движок, разобраться в нём, и уже допиливать его под все нестандартные потребности. Собственно моё смятение связано именно с этим вопросом. Выбрать, в каком направлении лучше копать.


          1. AlexTest
            22.04.2016 02:13

            Прежде чем писать свое решение — поработайте с готовыми. Иначе как вы сможете понять что такого надо сделать в своем движке, чего нет в имеющихся? А вдруг там есть все (ну или почти все) что вам надо и «допилить» будет в разы проще чем создавать заново?
            Вроде «железная» логика — или нет?


            1. masterdrew
              22.04.2016 02:17

              В этом то всё и дело. Что уйдя от готовых решений в пользу чего-то своего пару лет назад, сегодня я понимаю, что в итоге создается нечто похожее на то, что и так уже было реализовано другими. Другой вопрос, что обеспечит необходимую гибкость: коробочные решения или фрейморвки с модулями?


              1. AlexTest
                22.04.2016 02:47

                А какая вам нужна гибкость? Все интернет магазины основаны примерно на одной и той же бизнеслогике:
                Различные типы покупателей (покупают) различные типы товаров (с применением) различных типов скидок (оплачивая товары) различными методами оплаты (и указывают) различные методы доставки товара.
                Для обеспечения этого используется четыре основные системы:
                1. система управления товарами, пользователями, методами оплаты/доставки, правилами скидок, и прочими сущностями.
                2. система учета товаров, заказов, оплат и доставок.
                3. система работы с пользователями (акции, рейтинги, отзывы, голосования, расссылки) и т.п.
                3. система сбора и визуализации аналитики для анализа работы вышеперечисленных систем.
                В большинстве коробочных решений это все уже реализовано с помощью десятков мегабайт кода. Дополнительные типы товаров, оплат, доставок, аналитики и прочего реализованы сторонними разработчиками, а это еще десятки мегабайт кода. Многие банки, платежные системы, сервисы доставки, системы аналитики и работы с клиентами уже написали свои модули для готовых движков. Не думаю, что вам в одиночку удастся повторить все это и тем более сделать лучше чем есть в готовых решениях.


                1. masterdrew
                  22.04.2016 02:55

                  Гибкость сводится к возможности расширить возможности движка сторонними или собственными модулями. Какие движки кроме Magento можете порекомендовать?


                  1. oxidmod
                    22.04.2016 08:27
                    -2

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


              1. timetogo
                22.04.2016 10:15

                Посмотрите ExpressionEngine, раз вас интересуют не только магазины, но и веб-сервисы в целом, может это то, что вам нужно.


          1. AlexTest
            22.04.2016 02:17

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


            1. masterdrew
              22.04.2016 02:20

              Да, есть такое дело. Одному клиенту делал простенький проект+сопровождение вообще без админки, т.к. локальные правки было проще вносить непосредственно в код. Он до сих пор периодически спрашивает логин и пароль для того, чтобы вносить какие-то изменения )))


    1. Source
      22.04.2016 11:57
      +1

      Любопытнее, что 72% (а особенно первые 16%) велосипедят для разработки несложных проектов. Готовые движки вполне позволяют подстраивание под конкретный проект. Они для этого и написаны и в их разработку вложены тысячи человеко-часов. И тут Вы либо собираете команду и вкладываете эти тысячи часов (что недопустимо для несложных проектов), либо кое-как кодите на коленке нечто одному Вам понятное…


  1. AlexTest
    22.04.2016 01:35

    deleted


  1. Desfpc
    22.04.2016 04:59
    +1

    Использую 2-а инструмента — или Yii или свой фреймворк, фактически состоящий из набора необходимых функций, разделения логики и отображения, модуля материалов. Готовые движки не люблю из-за того, что под реально большой или уникальный проект приходится уж много всего перепиливать…


    1. masterdrew
      22.04.2016 04:59

      Какие по Yii есть решения для e-commerce?


      1. berezuev
        22.04.2016 11:39

        SamDark вот это написал https://github.com/samdark/yii2-shop
        Правда, не могу сказать, это все-таки готовое решение для продакшна или просто крутой пример использования Yii 2.
        А вообще, как показывает практика, чтобы сделать достойный e-commerce сервис, писать стоит самостоятельно, с использованием фреймворков и учитывая все особенности конкретного проекта.

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


        1. SamDark
          22.04.2016 13:30

          Это не решение. Это результат мастер-класса. Там даже написано:


          This is example project implementing a shop created to help people learn Yii 2.0. It was created during 8 hours workshop performed in Ekaterinburg, Russia. The idea was to show how to deal with Gii, grids, filtering and other Yii 2.0 usage. It is by no means a complete shop script. It may contain bugs, shortcuts etc.



  1. minalexpro
    22.04.2016 08:37

    В опросе не хватает варианта
    — использую свой движок / фреймворк
    т.е. это не первый вариант, т.к. с нуля не пишется
    2 и 3 вариант подразумевается, что инструмент не вами создан.


  1. Teadon
    22.04.2016 12:07

    Я использую ezCatalog для интернет-магазинов. Есть практически все, что надо. Писал несколько модулей под него ещё. Все достаточно просто.


  1. xXxSPYxXx
    22.04.2016 12:59
    -3

    Я использовал Bitrix/OpenCart/Magento


    1. masterdrew
      22.04.2016 13:19

      Какие впечатления от использованного?


  1. JTG
    22.04.2016 13:09

    Переносили интернет-магазин со старого PHP+ShopScript на Python+Flask и в процессе случайно ещё раз написали Django
    Но вообще собрать стек «под задачу», используя микрофреймворки вроде Flask или Silex + ORM/шаблонизатор/генератор форм etc., часто бывает проще, чем перепиливать коробочное решение под заказчика.


  1. DeLuxis
    22.04.2016 13:09
    +1

    Для e-commerce достаточно движка. Сейчас у них достаточно универсальное API для написания модулей без внедрения в ядро.
    Либо тратите время на свой говнокд, либо это же время на доскональное изучение движка. К тому же можно потом присоединиться к сообществу и внедрить свой код.


  1. ustasby
    22.04.2016 13:09
    -1

    Я в работе использую cs-cart, в русской редакции за 100-200 тысяч можно создать весьма хороший магазин, на сегодняшний день это супер бюджетно (я про бизнес, а не про школомагазины)


  1. iit
    22.04.2016 13:30

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

    Все остальные фреймворки либо имеют слишком жесткую структуру которая лишена даже самой минимальной гибкости и создание виджета превращается в ад (Привет Yii1, ZF ), либо наоборот слишком размазаны и собрать что-то толковое из них проблемно (CodeIngiter, Kohana).

    Сейчас база на mysql но мне перестало хватать его возможностей, в планах миграция на Postres.


    1. dirijat
      23.04.2016 15:37

      A почему не использовать Joomla 3.5(поддерживает разные базы данных включая PostgreSQL) + Virtuemart 3 (очень функционален и быстрый) + nginx 1.9 (http/2) + PHP 7 (JIT) = Безопасно + быстро + функционально + современно?


      1. iit
        23.04.2016 20:37

        Если честно, то на большую тройку (WP, Drupal, Joomla) у меня аллергия.

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

        Сейчас они уже на много лучше но все еще не совсем то что нужно. Плюс если по желанию заказчика нужно сделать что-то не совсем стандартное то многое в этом придется приписывать. И при обновлении движка все эти правки очень весело вылетят в трубу.

        Коллеги недавно обновляли Joomla до последней версии — нахватались проблем на пол месяца. Если же не обновлять то первый эксплойт — и на сайте висят веселы банера с масками гая фокса =)


  1. xoma
    22.04.2016 14:42

    Разрабатываем свой движок https://github.com/yupe/yupe на Yii 1.x мигрируем на Yii 2.x


  1. zirix
    23.04.2016 15:36
    +1

    Рекомендую посмотреть в сторону java, конкретно на spring boot (или просто spring. главное использовать не xml файлы, а java config) +JPA + thymeleaf + EhCache.


  1. achekalin
    23.04.2016 16:38

    Если вы опытный разработчик — напишите все сами, и будете рады. НО! Вы должны быть и «опытным», и «разработчиком» сразу, а не просто думать, что с толикой времени и мозга разберетесь во всем. Проблема будет в кол-ве времени, и в применимости на практике.

    Если же нужен результат, да еще и чтобы админка была более-менее, то придется выбирать из готовых комбайнов (как бы они не были монструозны, дороги, геморойны), и из них городить либо что-то стандартное, либо кастомное.

    Но это, конечно, именно разговор о ситуации, когда вам магазин нужен для дела, а не когда вы пилите код ради кода. Просто могу сказать по опыту, что «продаваны» от любого магазина могу легко захотеть вдруг (в рамках развития бизнеса) такое, что никак в исходную стройную и простую логику его работы не укладывается (пример — сложную систему скидок, скажем), и что без костылей не сделаешь. Как начинаем делать костыли — мы тут же понимаем, что наш продукт никак не лучше старого доброго монстрика из тех, что «дружат с 1С*», но только монстрика пишет команда человек в 100, а вы тут такой один, а функционал нужен чуть не завтра, и нет времени сделать под него админку, а уж про безопасность остается только молиться.

    Что же касается «я возьму opensource-движок, и добавлю топор, тьфу, модули по вкусу», то тут, увы и ах, имеем низкое качество (даже нет — низкую приспособленность) модулей в их обычном виде, и необходимость платить/тратить время за/на допил их под реалии строящегося магазина. И еще неизвестно, что легче и проще в сопровождении.

    Сказать по правде, мало есть магазинов, где админка была бы просто удобна. Чуть больше магазинных движков, где админка вменяема (пусть и не всегда понятна сначала), а самопис порой грешит такими косяками в работе бекэнда, что чуть не phpmyadmin впору давать в комплекте с магазином, чтобы хоть как-то он управлялся.

    * Что такое «дружба с 1С», и насколько она вообще заработает в произвольно взятой фирме на из конфиге 1С и их сетапе сайта с конкретным движком — я в курсе. Просто этот лейбл («что-то там с 1С») позволяет брать деньги за движок без стеснения, так что граница проводится легко.


    1. masterdrew
      23.04.2016 16:59

      Какие движки порекомендуете?


      1. oxidmod
        23.04.2016 17:08

        Magento, OXID


      1. achekalin
        23.04.2016 21:40
        -1

        Да какие тут советовать. Не нравится ни один, но — наверное, все же Битрикс, он поживее всех других будет.

        Другой вопрос, кто будет на нем магазин делать.


  1. IvanPanfilov
    23.04.2016 17:42

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

    Всегда умиляют идиотичная вера в то что фреймворк может предоставить что то полезное для разработки, например конкретной используемой вещи как e-commerce.

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

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

    Я уж молчу про то что этих ecommerce как собак нерезаных развелось.


  1. Stan_1
    23.04.2016 21:10

    Один магазин мне делали на заказ на MODx, второй — пробовали писать на OpenCart, но уперлись в ограничения архитектуры. Начал ходить по рынку. В той конфигурации, что мне нужно — цена выходила 250-300к.

    В итоге решил делать сам, хотя есть опыт только RESTful систем на Rails. Писать тоже стал на Rails + ActiveAdmin + PostgreSQL. Сейчас осталось только корзину допилить и все, буду запускать. Сначала к этому с опаской относился, а сейчас уже рад, что сам решился. Получился очень шустрый Интернет-магазин, поскольку структура товаров понятна — за несколько часов спокойно пишу импорт товаров из любых ИМ, прикрутил весь функционал который хотел, при этом с минимальными обращениями в базу данных. В общем, доволен. Но это решение под конкретную задачу. Делать универсальный движок я не планирую.

    Единственное что — нелюбовь к frontend только усилилась. Не люблю я их, и больше всего времени уходит именно на вопросы верстки, а не логики. :(


  1. kolyaflash
    23.04.2016 23:24

    Хабр уже даже не чизкейк…


  1. vitalybaev
    23.04.2016 23:32

    Изначально написал полностью сам поскольку время поджимало да и функционал и начальный был прост. Писал на PHP на Codeigniter, со временем разросся фичами.
    Сейчас, с появлением хорошего опыта, переписываю полностью на Laravel с хорошо продуманной архитектурой.


  1. sooham
    24.04.2016 00:51

    Хочу еще упомянуть PrestaShop — доводилось ковыряться в нем немного, довольно функциональная админка и код вроде нормальный. А самое интересное что его потихоньку на Symfony переписывают.


  1. vanyatwo
    24.04.2016 00:52

    Wordpress + e-commerce тема на ваш вкус + пару плагинов для Woocommerce = 50-200$ за готовый интернет-магазин.
    Тяжело? В интернете ОЧЕНЬ много информации, как всё это запилить, там работы на пару дней.
    О чем речь вообще, господа? :)


    1. masterdrew
      24.04.2016 01:08

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

      Например:
      — применительно для Москвы и Московской области, если доставка в МО, то предоставить клиенту возможность выбрать свой дом на карте и автоматически высчитать доплату за каждый км от МКАД, сразу включить эту доплату в стоимость доставки.
      — добавить возможность пользователю самостоятельно компоновать товар и по разным хитрым схемам высчитывать стоимость (например, составная пицца)
      — партнёрка, которая будет начислять баланс покупателям за покупки, совершенные по их рекомендациям
      В общем любые фантазии, которые каким-то образом могут стимулировать продажи.

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


      1. vanyatwo
        24.04.2016 01:38

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


        1. oxidmod
          24.04.2016 21:13

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


          1. vanyatwo
            24.04.2016 21:36

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


            1. oxidmod
              24.04.2016 21:54

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


              1. vanyatwo
                24.04.2016 21:57

                Я рассуждаю со своей точки зрения.
                Да, magento — «царь зверей». Но у меня нет команды разработчиков, тем более компетентных. А запустить пару десятков интернет-магазинов (из них стабильно работают около 50% — до сих пор общаемся) — получилось, на «бложике с плагином».
                *малый бизнес, ничего эпохального


  1. danforth
    24.04.2016 00:52

    Использую движок Shop-Script 6. Одному написать свой движок очень проблематично. Там и выкладка, и статистика, и брошенные корзины. Товары + категории + корзина — это наверное 15% от всего функционала нормального интернет-магазина.


  1. woomka
    25.04.2016 10:08

    Свой движок можно написать на месяц и работать будет годами без пробдем


  1. trevoga_su
    25.04.2016 10:09

    Я написал свой фреймворк. Примитивная ORM вида DomainObject DataMapper mySQL
    У меня на нем крутится сайт объявлений — github.com/Vasiliy-Makogon/ADV
    Сейчас хочу сделать для себя ИМ на базе сайта объявлений.

    Почему все сам? Свой код понятен, прозрачен и отшлифован. Разобраться в кучу сторонего кода — тяжелее и медленнее.

    Писать с нуля — колоссальная практика и колоссальный опыт.

    Но больше я это делать не буду. Никогда. КПД = 0