{"id":14275,"url":"\/distributions\/14275\/click?bit=1&hash=bccbaeb320d3784aa2d1badbee38ca8d11406e8938daaca7e74be177682eb28b","title":"\u041d\u0430 \u0447\u0451\u043c \u0437\u0430\u0440\u0430\u0431\u0430\u0442\u044b\u0432\u0430\u044e\u0442 \u043f\u0440\u043e\u0444\u0435\u0441\u0441\u0438\u043e\u043d\u0430\u043b\u044c\u043d\u044b\u0435 \u043f\u0440\u043e\u0434\u0430\u0432\u0446\u044b \u0430\u0432\u0442\u043e?","buttonText":"\u0423\u0437\u043d\u0430\u0442\u044c","imageUuid":"f72066c6-8459-501b-aea6-770cd3ac60a6"}

eMarket GNU GPL 3.0 (движок интернет-магазина)

Привет. Хочу представить вам новый движок интернет-магазина с открытым кодом. Недавно мы сделали альфа-релиз, и нам есть что показать.

Почему мы начали этот проект? Это главный вопрос.

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

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

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

Проект на GitHub - https://github.com/musicman3/eMarket

Техподдержка и демо - http://emarketforum.com

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

ДЕМО АДМИНИСТРАТИВНОЙ ПАНЕЛИ
http://demo.emarketforum.com/controller/admin/
[email protected]
pass: 1234567
ДЕМО КАТАЛОГА
http://demo.emarketforum.com/
[email protected]
pass: 1234567

0
105 комментариев
Написать комментарий...
Boris Zyryanov

1) О! Еще одна CMS, которая комитит в репу папочку vendor:)
Зачем вы так делаете, в чем смысл? Почему composer install для вас не есть отдельный шаг при деплое/инсталле пользователем?

2) PSR не ночевало в вашем проекте, абстракции в прочем тоже.

3) Я не совсем понимаю зачем делать такую титаническую работу в отрыве от популярных фреймворков. Ну не нравится вам фреймворки, ну программируйте бизнес-логику во framework-agnostic стиле — clean architecture вам в помощь. Но куда там, надо обязательно гвоздями все детали прибить к абстракциями и бизнес-логику размазать по всем слоям.
Не, если вы это для резюме делаете, то зря, с таким кодом в приличное место вас не возьмут.

4) В жопу человекопонятную структуру проекта, у нас будет куча папочек, а в ней другая куча папочек с названиеми типа model, work, а model/classes это вообще шедевр.

Господи, как будто и не было 10 лет развития языка, тулзов и бестпрактисов, какой-то кромешный адищще в коде. Всё очень низкоуровневое и костыльное.

Upd В догонку.
Нету тестов и как это должно работать — без тестов вообще нихуя не ясно. Это вы разработчикам предлагаете изучить всё ваше поделие, чтобы его знать, да? Ну типа wordpress way.

Ответить
Развернуть ветку
Александр
Автор

Не понимаю суть высера? Вы спец а все вокруг никто? Может покажете свой код а мы тут вместе посмеемся?

Ответить
Развернуть ветку
4 комментария
Oleg Garvin

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

Ответить
Развернуть ветку
4 комментария
Roberto Martinez

 И чем вы лучше того же опенкарта? Мне кажется вы опоздали со своим "движком" лет так на десять.

Ответить
Развернуть ветку
Александр
Автор

Вы демо гляньте. Станет понятнее.

Ответить
Развернуть ветку
18 комментариев
Сергей Жаров

Это так кажется. Не понимаю таких людей которые говорят так.

Ответить
Развернуть ветку
Alexander Belousov

Пока не понятно для кого продукт.

Если для разработчиков, которые хотят сделать свой быстрый и сильно кастомизируемый онлайн-магазин, то тогда непонятен отказ от фреймворков. Для того же Laravel/Symphony/Yii 2 существует большое количество модулей и это, наверное, было бы неплохим решением для тех, кто хочет сделать кастомный магазин на хорошо знакомом фреймворке и ему нужна какая-то основа. А так встает вопрос - зачем делать магазин для клиента на непонятном движке, когда можно взять хорошо знакомый фреймворк и сделать все на нем, получив поддержку от большого сообщества?

Для частных предпринимателей и небольших бизнесов ? Тоже нет, слишком сложно, мало готовых модулей и тем по сравнению с лидерами рынка. Дизайн и ux админки (по первому взгляду) не сильно лучше того же Wordpress или Битрикса.

Ответить
Развернуть ветку
Марк Ригер

Я не эксперт, но похоже для разработчиков данный продукт не выход:
а) он строго завязан на определенных решениях, например в плане БД - MySQL;
б) Не понятно как расширять приложение, то есть делать модули;
Поправка: сами модули есть, но похоже что они либо изолированы(функционал не связан с основным приложением), либо модифицируют код приложения(а не расширяют, например с помощью "Событий")
в) Из пункта №2 выходит отсутствие обратной совместимости.

Очень много вопросов к архитектуре. Открыл файл, к примеру: https://github.com/musicman3/eMarket/blob/master/controller/catalog/pages/address_book/index.php

1) В первую очередь: спагетти-код.
2) Не понятна какая парадигма программирования. Весь код довольно смешан: приём данных, валидация, обработка, определение роли и т.д.
3) Сложности в написания тестов из-за №1, №2. При росте приложения, что свойственно для этой тематики, будет сложно тестировать. Всё это мультиплицирует энтропию ПО.
4) Насколько вижу, нет важных компонентов: работа с кэшированием, EAV, ЧПУ.
5) Мелочь, но некоторые конструкции можно было бы сократить для улучшения читаемости. Например: https://pastebin.com/kvFRGYrw

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

Ответить
Развернуть ветку
11 комментариев
Александр
Автор

Это пока что альфа-релиз. Все впереди.

Ответить
Развернуть ветку
2 комментария
reazzon

Изучив ваш проект, имеются несколько вопросов и замечаний.

1) В вашем проекте не преследуются никакие известные паттерны или шаблоны ООП. Как поддерживать и обновлять данную систему?
2) HTML код хардкодом вписан в модели данных. Зачем?
3) Вы делаете упор на "современность" магазина. Но вы используете Bootrstrap 3, когда уже доступен Bootstrap 5. Вы даже не используете современные шаблонизаторы (TWIG например), и пишите PHP код в шаблонах страниц. Почему?
4) URL, которые генерирует ваша система абсолютно не SEO френдли. Почему не сделать адекватный роутинг?
5) Ваши товары не поддерживают торговые предложения (офферы). Почему?
6) Чем Вас не устроили альтернативы? Вы пробовали OctoberCMS + Shopaholic? 

Ответить
Развернуть ветку
Vitali Virulaine

2021 год, какие интернет магазины на PHP? Вам нужно делать Headless CMS куда поступают все товары, вылизываются там (название, описание, картинки) и потом через API выкладываются на платформы (Amazon, eBay, Etsy, Wildberries, Facebook и т.д.). Сейчас интернет-магазин это один из сотен каналов продаж и далеко не основной. Если хотите именно интернет-магазин, то это не 2005й год, есть же AMP, PWA,  статические генераторы (SSG), serverless, наконец. Да и вообще подход no-code

Ответить
Развернуть ветку
John Rickman

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

Ответить
Развернуть ветку
Александр
Автор

Вы правы. Это надо прокачивать. Аудиторию не выбирают а работают с ней.

Ответить
Развернуть ветку
AeternaMens

Сделайте Shopify, только лучше. Вот вам и ориентир. 

Ответить
Развернуть ветку
Igor Yarmolchuk

Ничего не понимаю в сайтостроении , но прочитал все. Спасибо, очень интересно

Ответить
Развернуть ветку
sovsem

От те на

Ответить
Развернуть ветку
Александр
Автор

И немножечко скринов

Ответить
Развернуть ветку
Ol Ka

Тёмная тема?

Ответить
Развернуть ветку
1 комментарий
Ex kasko2go

Безотносительно самого продукта, почему не Apache или MIT? GPL — "вирусная" лицензия, от которой большинство не-красноглазых пытаются бежать как можно дальше.

Ответить
Развернуть ветку
Александр
Автор

Впервые такое слышу. В целом GPL 3.0 максимально открытая, позволяет юзать код как с другими лицензиями. Я пока не вижу проблем с этим. Но если есть предложения, то интересно послушать. Если Вы про авторское лево, то как бы это не проблема в таком коде.

Ответить
Развернуть ветку
7 комментариев
Сергей Жаров

Что ты говоришь? Ттрололо?

Ответить
Развернуть ветку
1 комментарий
Вячеслав Ершов

Вы в качестве вводной даете только одну картинку и щепотку текста?Т.е получает мы - молодцы, мы сделали, вот смотрите. Да, вы - молодцы. Вы проделали большую работу, но мне с неё какой толк?, а сообществу таких же как я?
Вот мне как разработчику, надо лезть в исходники, разбираться как у вас темы настраиваются, а они есть другой вопрос? В readme.md на github ничего про это не написано.
А в чем собственно ваше главное преимущество скажем перед Bitrix, open source only? Ну хорошо, wordpress - тоже свободное ПО, ну так а вы чем лучше?
Вы увидели недостатки в других ecommerce,какие недостатки это были, а какие из этих недостатков решает ваша система?
Вопросы копятся, а ответов в статье нет... Уж простите  

Ответить
Развернуть ветку
Александр
Автор

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

Ответить
Развернуть ветку
Антон Левин

Как pet-проект - вполне подходит, если мотивации хватит. В свое время у меня тоже была CMS. Но там реально была MVC, и некое подобие codeignitter-фреймворка. Сайтов 100 наверно реальных было сделано:) 
Для чего у вас столько синглтонов везде? Как это все отлаживать? И почему класс для работы с базой вы называете PDO, если это вообще ни сколько ни PDO? Насколько я вижу, никакой абстракции от синтаксиса БД нету, это просто обертка вокруг mysqli-query. 
Ну а так успехов... Может быть лучше сразу на Vue + Nuxt.js, например? Ну или что то с SSR, типа Reach + Next.js. Тогда бы было реально какое то УТП. Не знаю, если такие CMS уже в готовом виде. 

Ответить
Развернуть ветку
Александр
Автор

Структура построена на статических классах, так как именно в этом проекте это удобно при такой архитектуре. Где нужно там и объекты есть, но в целом статика да, превалирует так как с ней здесь удобнее в виду именно этой архитектуры. Там отлаживать проблем нет никаких. Если потребуется объектная модель и без нее будет сложнее выполнить какую-то функцию, то применяется этот подход. Но если разработчик выбрал такой подход, то это не значит что надо за это критиковать. Кто-то любит красное, кто то зеленое. Это дело вкуса разработчика. Класс PDO потому что это обертка над PDO с mysqli (а не над mysqli), что ясно видно в классе. Так что это чистый PDO с оберткой. Абстракция не нужна так как 99% потенциальных юзеров этого движка - это MySQL на хостингах. Нет смысла держать абстракцию через ORM ради 1%. Гораздо выгоднее снизить нагрузку за счет обертки. И писанины по запросам так меньше и гибкости больше. Все что касается что бы лучше или не лучше - ребята, вам дали готовое бесплатно а все не так и не этак. Совесть имеется? Это не конкретно к Вам а вообще к этому срачу что тут развели. Все умные пришли критиканы, без своих проектов давай других чихвостить. Хлебом не корми дай только за 2 минуты глянуть гит и тут же сделать выводы о всей архитектуре. Это не серьезно, не изучив архитектуру делать безапелляционные заявления. Никто из критиканов даже не установил на локалку - на гите че то там кликнули, не нашли знакомых вещей - значит говно, давай обгажу сейчас и потешу свое самолюбие. Заминусую тут карму и буду доволен... Да мне если честно плевать на критику. Мы делаем и дальше будем делать. Собака лает а караван идет.

Ответить
Развернуть ветку
7 комментариев
Антон Пятков

Как вариант вывода для клиента также на пыхе, админка на vue/react и допиливать потихоньку

Но думаю тут не был выбран данный стэк по тому что они пишут только на пыхе

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

Ответить
Развернуть ветку
2 комментария
Александр
Автор

После копирования файлов нужно открыть страницу инсталляции - http://localhost/controller/install/
Если все верно, то проверьте права на раздел и файлы

Ответить
Развернуть ветку
Роман Плехов

Установка проходит успешно а потом вот. Как это победить? 2 раза устанавливал

Ответить
Развернуть ветку
8 комментариев
Александр
Автор

Прикрепляю диаграмму того, как устроено MVC + L у нас. Такая схема позволяет размещать свои и сторонние библиотеки в общей папке модели. При желании свои библы можно скидывать на репу и затягивать композером. В том же опенкарте свои классы раскиданы по всему магазину. При желании конечно же можно и там все скидывать, но действий больше. В опенкарте на каждый раздел (admin, catalog, install) свои controller, view, model. У нас же все едино.

Ответить
Развернуть ветку
Александр
Автор

Вот блок-схема всего движка

Ответить
Развернуть ветку
Валерий Калиниченко

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

Ответить
Развернуть ветку
Александр
Автор

Спасибо. Как Вы думаете, мне это интересно? Опенсорс делают потому что эта тема интересна разработчику. Если в будущем будет интересно, то я обязательно вспомню Ваш комментарий. В любом случае спасибо за то что уделили время ознакомлению с темой.

Ответить
Развернуть ветку
7 комментариев
Роман Плехов

Не смог установить. Не запускается инсталляция после копирования файлов на FTP...

P. S. Разобрался)))

Ответить
Развернуть ветку
102 комментария
Раскрывать всегда