TiA

Рейтинг
116
Регистрация
12.06.2009
Chukcha:
не так страшен черт як его малюют.

Проблем тут сразу несколько. Их можно условно разбить на две группы:

1) Проблема с влиянием одного дополнения на другое.

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

Более сложный пример: в массиве товаров, который отправляется для отображения, одно дополнение добавило поле "color" и такое же поле добавило второе дополнение. И таких неявных ошибок такой подход может создать очень много.

2) Проблема с обновлением и поддержкой

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

Chukcha:
И очень хоршо, то что было в 2.0 это был ужОс.

В текущем виде система событий очень ограничена. Неужели так сложно натыкать фильтров и хуков в самых критических местах как это сделано в том же WP?

Chukcha:
Вы много используете такие поля как ean, jan, isbn

Я сталкивался с магазинами, где некоторые "умельцы" использовали эти поля для меток, например. Метка товара в поле ISBN - это просто феерический костыль. Особенно яркие ощущения возникают при обновлении движка, когда эти все поля, которые заботливо были переименованы "умельцем" в админке, вновь становятся ISBN, EAN и т.д.

Chukcha:
а нужно ли?

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

Chukcha:
Зависимые опции - есть решение (наличие от наличия)
Color option - есть решение
Опции с артикулом, есть решение

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

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

Chukcha:
Ну.. зато упрощена статистика

Зачастую для статистики используются отдельные сервисы от Яндекса или Google. Подход с дублированием товаров крайне неудобен для наполнения и продвижения. Не всем заказчикам нравится перспектива заказывать вместо 2 тысяч описаний 10.

Chukcha:
Дело в том что страница оформления заказов заточена под их требования. а не желания su-зоны.

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

Chukcha:
Расскажите про структуру - что там нужно улучшить?

Самый основным недостатком OpenCart и CMS на его основе является система расширений.

На данный момент основным способом изменения и дополнения функционала системы является правка исходного кода движка посредством ocmod/vqmod. Грубо говоря, в xml-ках (а в 2.х и в базе данных) описано что и где нужно заменить в коде системы. Решение само по себе крайне проблемное в плане поддержки и разработки, особенно в свете тяги разработчиков системы к переписыванию критических кусков кода.

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

Вторым критическим минусом, который органически вытекает из первого является отсутствие возможности указать для товара собственные дополнительные поля. В самом простом случае это может быть банальная метка типа "Хит продаж", "Акция", "Новинка". Выделять под нее атрибут как-то не очень правильно и неудобно в плане наполнения.

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

Четвертый минус - это страница оформления заказа. Я знаком с OpenCart с 2009 года. Каковой та страница была, таковой и осталась в 2016. Никаких тебе оформлений на одной странице, апселов и прочего. Вот и приходится ставить дополнительные модули для реализации этого базового функционала.

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

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

alextwinner:
Посоветуйте что выбрать из этого? Что потянет такой каталог?

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

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

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

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

Если вам нужно запустить небольшой магазин, то и OpenCart, и WordPress + Woo - это вполне достойные варианты. Лично мне как разработчику больше нравится последняя связка. Ее легче поддерживать и расширять.

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

scod:
Плагины уже использую, на каждый сайт устанавливаю плагин wp-super-cache.

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

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

scod:
Ось при установки выбрал Centos-6-amd64, после активации самостоятельно установил на нее Весту и все, больше не каких телодвижений по настройки/оптимизации или выбора параметров с сервером с моей стороны не было. После начал на нее загружать сайты, загрузи для начало один голый движок WP и начал в нем ковыряться и уже на этом этапе начались какие-то лаги и ошибки, после загрузки статей через внутренний плагин (xml импорт) сайт "ложился" - падала БД, на сайтах выдавалась ошибка "Error establishing a database connection". После общения с саппортом и проверки логов выяснилось что это было вызвано из-за недостатка оперативной памяти. Но ведь это всего лишь один сайт, один КАРЛ! (Хотя есть один знакомый, и если ему верить то у того по 50-60 доров на Wordpress хостятся на одной VDS и нечего, все стабильно работает, правда тариф немного по выше - с 1гб ОЗУ.)

После долгих и муторных (для меня переписок, из-за полного отствувия знаний в админской всей этой части) мне саппорты этого хостинга и советы одного товарища смогли как-то более меня оптимизировать нагрузку и теперь на ней держится 7 сайтов на worpdress по 1.5к паг на каждом и средним ежедневным трафом от 50 до 600 человек. Но на днях я купил еще одну ВДСКУ у них, идентичную первой с теми же параметрами (все настройки по дефолту) и та же проблема (два сайта и бд падает), сам я пока не шарю и оптимизировать не смогу, да и саппорты тоже походу не могут или не хотят, только дают советы и намекают что бы повысил тариф.

Подскажите знающие, какие конфигурации/настройки лучше пойду для этой задачи? Что бы хотя бы 10 сайтов на WP на стартовом тарифе более менее стабильно работали. Или можно как-то перебросить все настройки/конфиги c одной ВДС на другую?

Для существенного снижения нагрузки на базу данных вам достаточно установить на сервер расширение APC/APCu для PHP, скачать соответствующий плагин для кеширования для WordPress и включить его. Это самое простое и банальное.

Yurecm, это можно сделать с помощью команды: du -sh /путь_к_папке_с сайтами/*

13-й:
Это меня и беспокоит - насколько сильно придется ковырять движок. Если несильно - можно делать адаптивный диз и расслабиться на пятилетку. Если сильно - наверное, надо постепенно переезжать на другую CMS.

Очень много придется переписывать.

IPB 2.3.6 вышел около 8 лет назад. Судя по отзывам эта CMS более-менее внятно работает на PHP 5.3. С 5.4 уже есть серьезные проблемы.

Денис22:
Вообще не знаю, но я в рамках оптимизации клиентам мету всегда сам пишу своей головой и руками,

Тогда в чем заключается проблема?

Денис22:
Просто в данном случае магаз только сделали, да ещё и сделали коряво, да ещё и в индекс запустили без робот.тхт, вообщем досталось мне чудо с кучей дублей и со всем что писал... Посмотрим как дальше будет но вод с ВП пожалуй работать в будущем не буду... Действительно не лучший вариант для ИМ с точки зрения СЕО.

На самом деле 37% всех магазинов в мире работают на связке WordPress и WooCommerce (статистика). В РФ эту связку используют в среднем 21%.

Самый существенный минус WordPress в общем и WooCommerce в частности - это производительность. В свое время я проводил серию тестов и оказалось, что OpenCart в среднем в 2-2.5 раза быстрее (на тестовой машине у меня время генерации страницы каталога составляло 0.19 секунд против 0.09 у OpenCart).

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

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

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

Описанное в трех предыдущих абзацах является основными недостатками OpenCart. У Даниеля (это один из основных разработчиков данной системы) присутствует необъяснимая тяга переписывать ключевые куски кода от версии к версии.

Казалось бы, зачем было менять способ передачи переменных в шаблон с $this->data['foo'] = $foo; в версии 1.5 на $data['foo'] = $foo; в версии 2.0? Зачем было менять способ присваивания шаблона с $this->template = 'module/module.tpl'; на $this->response->setOutput($this->load->view('module/module.tpl', $data)); ? Зачем было трогать способ подключения перевода и менять $this->data = $this->language->load('path/file'); на $data = $this->language->load('path/file'); ?

В итоге имеем то что имеем: многие модули и темы оформления для версии 1.5 не работают на 2.0, вся совместимость сломана. Этот весь цирк продолжается и в рамках 2.х версии. Достаточно просто посмотреть коммиты в репозитории на гитхабе. Как следствие, имеем вопросы в духе: "а чего это так мало хороших тем".

У PrestaShop схожая ситуация. Разработчики активно пилят версию 1.7, где собираются переходить на Symphony. Обратная совместимость со многими модулями и темами также будет нарушена. Грубо говоря, начинать новый проект на 1.6 нецелесообразно, а на 1.7 пока еще рано.

Денис22:
Есть ли какие-то решения?

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

Вообще лучше описания заказывать у копирайтеров. Поисковые системы это оценят.

13-й:
Кто-нибудь имеет опыт переноса форумов на IPB 2.3.х на php7 ? Реально запустить? У меня несколько живых форумов, движок устраивает. Вот не знаю: делать адаптивный дизайн или готовиться сливать движок?

Если вы решили оставаться на версии 2.3.6, то для ее работы с интерпретатором PHP 7.0 скорее-всего придется внести кучу правок в сам движок, чтобы он более-менее внятно работал.

Вообще старые CMS с новыми версиями интерпретатора не всегда хорошо работают. У меня есть старый проект на Joomla 1.5. На новых версиях PHP она заводится очень трудно. Вот и приходится пока сидеть на 5.4.

LEOnidUKG:
Т.е. Сравнивали чистый PHP. Конечно же скорость будет в разы больше. А вот в реальности всё не так. Маркетинг.

В свое время я достаточно активно изучал этот вопрос. После перехода с PHP 5.6 на 7.0 у сайта на самом обычном WordPress с Woo и сотней товаров скорость генерации страницы увеличилась более чем в два раза. Потребление памяти также ощутимо падало.

Схожие результаты получили ребята из Badoo: Badoo перешли на PHP7 и сэкономили $1M. Вообще в PHP 7.0 переписали и оптимизировали очень многое. Об этом вышел целый цикл статей: Внутреннее представление значений в PHP7.

Всего: 800