Перейти до вмісту
Пошук в
  • Детальніше...
Шукати результати, які ...
Шукати результати в ...

Про Opencart

  • запис
    1
  • коментарів
    47
  • переглядів
    738

Opencart 5


MaxD

2 647 переглядів

Щось в останній час мене включило кодити, давно такого не було з початку вторгнення. Зайнявся Opencart 4, наваяв багато крутих штук для нього, і майже дописав підтримку доповнень від Opencart 3 (принаймні на рівні доставок-оплат). І тут виникло відчуття розвилки - можна намагатися врятувати Opencart 4, або дати йому потонути.

 

По факту Opencart 4 "не взлітає". Вялі інновації, переускладнений код, всі старі проблеми не вирішені. До цього плюсується абсолютна неадекватність Даніеля і його одноосібний контроль на репозиторієм. Проект, який би міг яскраво рухатись вперед силами ком'юніті, ледь ворушиться по міліметру за півроку.

 

Зашквару ситуації додає те, що люди качають на opencart.com Opencart 4, як актуальну версію, а на форумах та й сам Даніель кажуть, що це бета і використовуйте Opencart 3 (причому не з сайту, а з гітхабу). Люди чухають потилицю і йдуть собі далі.

 

Як на мене, розклад з Opencartом зараз один з найгірших за всі роки, і треба щось робити. Можна почати ваяти публічний Opencart 5, взявши за базу Opencart 3 (а калічну четвірку лишити Даніелю). У людей купа класних ідей, персонально у мене теж є немало крутих наробок.

 

Цим постом я хочу прощупати, чи є у нас ентузіазм? )

 

Ніша Opencart

Opencart вирізняється серед інших рішень простотою коду, який можна читати, розуміти і правити. Абсолютна прозорість, процедурність та голі SQL запити цьому допомагають. Це його і слабкість, і сила. І тільки у цій ніші він може жити. vQmod/ocMod є вираженням ідеї "я бачу, що мені треба поміняти в коді, і я просто міняю". Будь-які спроби від цього піти одразу переводять проект в іншу категорію, де і так є свої давні гравці - Prestashop, Magento, Woo.

 

Загалом, треба починати з основ. І перше питання, яке треба вирішити - це code style. Я зробив трансформацію кодової бази Opencart 3 з своїм баченням основ, хочу вам це показати і почути вашу думку. Ось збірка, у ній можна подивитись, як виглядає новий код - https://devs.mx/down/opencart_experiment1.zip

 

Що зроблено?

1. $registry "упразднен", всі об'єкти переведені на статичні класи.

Це дає можливість доступатися до них з любого місця без всякої додаткової магії. Раніше було:

$this->url->link('product/product', 'product_id=' . $this->request->get['product_id'])

Стало:

url::link('product/product', 'product_id=' . request::get['product_id'])

Так, :: естетично виглядає гірше, ніж ->, але крім цього одні плюси, і в швидкодії теж. Нарешті IDE повністю розуміє, що звідки береться, працює підсвітка параметрів, code completion та переходи по Ctrl-клік.

 

2. Моделі уже не треба завантажувати в явному вигляді перед використанням. Із звертання для лаконічності забрано префікс model_.

Було:

$this->load->model('catalog/product');

$product_info = $this->model_catalog_product->getProduct($product_id);

Стало:

$product_info = catalog_product::getProduct($product_id);

 

3. Моделі адмінки мають префікс admin_, що дає можливість завантажувати адмінські моделі в каталозі і навпаки:

$product_id = admin_catalog_product::addProduct(request::post);
$preview = catalog_product::getProduct($product_id);

 

4. Забрано DB_PREFIX.

Ситуації, коли в одну базу треба поставити 2 магазини - супер-рідкі і вирішуються створенням нової бази.

Було:

$this->db->query("SELECT * FROM " . DB_PREFIX . "category c LEFT JOIN " . DB_PREFIX . "category_description cd 
ON (c.category_id = cd.category_id) LEFT JOIN " . DB_PREFIX . "category_to_store ... ")

Стало:

db::query("SELECT * FROM category c LEFT JOIN category_description cd 
ON (c.category_id = cd.category_id) LEFT JOIN category_to_store ... ")

 

5. Додано коротку функцію esc(), яка екранує та додає одинарні лапки. Було:

$this->db->query("INSERT INTO " . DB_PREFIX . "category_description SET category_id = $category_id, name = '" . $this->db->escape($value['name']) . "', 
description = '" . $this->db->escape($value['description']) . "'");

Стало:

db::query("INSERT INTO category_description SET category_id = $category_id, name = " . esc($value['name']) . ", 
description = " . esc($value['description']));

 

6. Додана коротка функція config(), яка повертає ключ конфігурації, що починається з префікса config_, та переводить його в int, якщо він закінчується на _id.

Було:

$this->db->query("SELECT * FROM " . DB_PREFIX . "category c LEFT JOIN " . DB_PREFIX . "category_description cd 
ON (c.category_id = cd.category_id) WHERE cd.language_id = '" . (int)$this->config->get('config_language_id') . "' 
AND c2s.store_id = '" . (int)$this->config->get('config_store_id')) . "'")

Стало:

db::query("SELECT * FROM category c LEFT JOIN category_description cd 
ON (c.category_id = cd.category_id) WHERE cd.language_id = " . config('language_id') . " 
AND c2s.store_id = " . config('store_id'))

 

7. Повністю забраний механізм events, як непрозорий.

 

8. Більшість шляхів та URL тепер відносні. config.php тепер один, в ньому немає купи дублюючих визначень:

<?php

const SITE_URL = 'http://localhost/opencart5/';
const DIR_STORAGE = 'system/storage/';

// DB
const DB_HOSTNAME = 'localhost';
const DB_USERNAME = 'root';
const DB_PASSWORD = 'root';
const DB_DATABASE = 'opencart5';

 

9. З адмінської частини забрано user_token в URL.

Хтось знає реальний сценарій атаки, від якого він захищав?

Якщо так, то є менш кодо-засираючі методи захиститись, наприклад автоматичне додавання IP, з якого логіняться, в білий список.

 

10. При цьому всьому за допомогою обгорток повністю підтримується старий синтаксис і працють доповлення Opencart 3.

Принаймні, я встановив модуль Нової Пошти і він нормально працює )

 

Поки більше нічого не поміняно, візуально все виглядає по старому. Як вам такий напрямок змін?

  • +1 8

47 коментарів


Recommended Comments



03.08.2023 в 13:00, Vladzimir сказал:

За концептом найкраще вийшло у simpla. А код потрібно робити схожий на це https://github.com/ikkez/f3-cortex як розширення цього https://fatfreeframework.com

Тоді питання щодо окмоду відпадуть

З моделям згоден повністю

Та там багато чого
Якщо вже events то треба розібратися с простирадлами в контролерах
Чому index() має простирадло коду
Чому не зробити уніфіковано  наприклад так
Гіпотетично

 public function index() {
            return $this
                ->start()
                ->load_language()
                ->header()
                ->breadcrumb()
                ->main()
                ->positions()
                ->output();
        }

Де events в бібліотеках...
Я взагалі не питаю що там роблять по суті контролери в бібліотеці... а потім усі туда сують
 

   public function __construct($registry) {
        $this->registry = $registry;

 

Надіслати

Ух, яку тему пропустив)) 
Якщо ще не пізно то вискажу свою думку, яку вже не раз висловлював тут.
Взагалі такий проект потрібно починати ніяк не із стилів кодування, це якраз можна зробити і потім. 
Головне - це концепція, що у даної збірки буде такого, що буде якісно відрізняти її від теперіншього опенкарту, який докотився все "до ручки"..
І зробити це дуже не складно - за основу беремо недоліки опенкарту (які ми всі дуже добре знаємо) та просто їх виправляємо, залишивши при цьому всі переваги. 
А не просто переписати все на статичні класи і все, це не вирішить жодних проблем. Це те саме що по суті робить сам Даніел - замість того щоб виправляти глобальні проблеми в коді добавляє нові шаблонізатори та змінює версії бутстрапу. Як на мене це всеодно, що починати ремонт у старій хрущовці не з заміни сантехніки, електрики, штукатурки итд. а з переклеювання шпалер та вкладання нової плитки в у санвузлі, яку будуть ложити на старі гнилі та іржаві труби та стару штукатурку - зовні може буде і гарно, але не це ж пц повний.. 


Які переваги у опенкарта: 
1. Немала популярність, вона знижується, але на ньому все ще працює дуже багато сайтів
2. Дуже багато розробників які з ним працюють і на яких по суті все і тримається і які повинні бути дуууже зацікавлені щоб опенкарт розвивався і далі 
3. Сам двіжок дуже простий в освоєнні та роботі та дуже швидкий, я бачив магазини на опенкарти де було більше мільйона товарів! 
4. Величезна к-сть модулів, плагінів та тем
5. (можете доповнити)


Недоліки (і їх також вистачає)
1. За розвиток всього двіжка відповідає аж одна людина, яка робить виключно те, що сама вважає за необхідне. На мою думку у Даніела просто не має необхідного технічного досвіду, щоб зробити з опенкарта нормальний двіжок. З нього б вийшов дуже гарний та відповідальний міддл розробник, який би працював з вже спроектованою архітектурою, але спроектувати велику систему самостійно він тупо не може.. З самого початку у мене таке враження що основу двіжка він десь злизав з якогось фреймворка (мені код дуже нагадує перші версії codeigniter) а далі вона взагалі не розвивається. Тобто сам зробити не може, а іншим не дає.. 
2. Дуже жахливе відношення Даніела до інших розробників, коли для кожної нової мінорної версії двіжка потрібно писати нову версію модуля, бо там змінилася якась дрібниця типу створення посилань чи ще щось. Коли для кожного модуля потрібно писати гору html коду а потім його щей переписувати під кожну нову версію твіга чи бутстрапа. Коли за 15 років існування двіжка все ще немає нормальної системи розширень. Коли будь-які пропозиції та побажання щось виправити тупо ігноруються.. на і так дал. Тобто, розробників на яких все тримається тупо посилають подалі з їхніми проблеми. 
Писав про це ось тут

 

3. Примітивне ядро самого двіжка. Всі говорять, що опенкарт простий і це його плюс, ні, він, не простий - він примітивний і це не плюс, а насправді величезний мінус. І те, де опенкарт опинився зараз це якраз і результат цього. 
Відсутність нормальної системи розширень. Гарна система розширень це по суті основа, фундамент любого двіжка. Бо навіть якщо там буде дуууже примітивний функціонал, то маючи гарну систему розширень інші розробники самі все допишуть та щей зароблять на цьому продаючи різні розширення. 
Я вважаю і багато розробників цю думку підтримують що система модифікацій vqmod/ocmod це дійсно зло. Цей підхід суперечить багатьом фундаментальним принципам програмування. Наприклад принципи SOLID, другий принцип O - принцип відкритості-закритості, який говорить що програмі рішення повинні бути відкриті для розширень та закриті для модифікацій коду, тобто всі розширення повинні робитися через інструменти, які при цьому не змінюють програмний код! В опенкарті ж це не просто робитися як виключення, на цьому побудована вся! система розширень самого двіжка.. Це просто вибух мозку для мене бо це породжує просто нереальну кількість конфліктів та проблем. І в результаті з цього двіжка втікають як самі розробники, так і прості користувачі, яким постійно приходиться стикатися та виправляти якісь помилки. Для чого їм це якщо зараз є десятки сервісів, де вони можуть в пару кліків мишки створити свій магазин взагалі без знань програмування, і не просто створити, але і розширити його модулями та темами. І при цьому їм не прийдеться виправляти жодної помилки! І це на мою думку головна проблема опенкарту! (як мінімум одна із головних) і її потрібно вирішувати в першу чергу, без цього просто неможливо створити нічого якісно кращого за теперішній опенкарт
Як це можна виправити? Добавити систему Подій (Events) 
Вони взагалі не складні! Вся суть у тому, що коли у системі настає якась подія то до чи після неї запускається якась функція модуля. Все. Що тут складного? Просто Даніел спочатку добавив події без жодної документації, потім постійно у кожній новій версії їх змінював змінюючи і синтаксис і самі події, а потім взагалі забрав модифікатори, коли за допомогою подій не можна було вирішити великої к-сті необхідних задач.. і що в такій ситуації робити розробникам?? 
Самі події це дуже простий та елегантний концепт, це готовий патерн програмування, який використовується величезною к-сть інших двіжків, фреймворків та систем ітд. І скрізь це працює. Так чому ж це не працює в опенкарті? Тому що для впровадження цього інструменту мало створити клас Event.. тут потрібно змінювати сам двіжок, щоб він їх у повній мірі підтримував. Щоб через Events можна було вирішити не половину всіх можливих задач, а максимально набализитися до 100%, покриваючи фактично всі можливі задачі. 
Як це можна зробити не буду повторюватися, писав тут


Ось вам готовий варіант двіжка, концепт, який буде якісно відрізнятися від існуючого опенкарта (а не тупо скопіює всі його проблеми не вирішивши їх, замінивши об'єкти на статичні класи..) і на який я б наприклад з радістю перейшов замість сьогоднішнього опенкарту, який вже якщо често в печінках сидить через свої баги, конфлікти, помилки та жахливе ставленням Даніела до всіх розробників.

  • +1 6
Надіслати
29.09.2023 в 13:52, sv2109 сказал:

3. Сам двіжок дуже простий в освоєнні та роботі та дуже швидкий, я бачив магазини на опенкарти де було більше мільйона товарів!

Якраз Opencart простий в освоєнні та швидкий тому, що в ньому по суті немає івентів і додаткових рівнів абстракцій, а просто код, який читаєш, розумієш і міняєш.

 

Порівняйте час освоєння розробки для Opencart та Prestashop/WooCommerce.

  • +1 1
Надіслати
On 10/2/2023 at 3:31 AM, MaxD said:

Якраз Opencart простий в освоєнні та швидкий тому, що в ньому по суті немає івентів і додаткових рівнів абстракцій, а просто код, який читаєш, розумієш і міняєш.

1. я вам вище написав як працюють події - там все дуже просто, після виконання якоїсь події запускається якийсь метод модуля, все. Що тут складного? Якби була нормальна документація зі всіма подіями, до яких можна підключитися та реальні приклади роботи з ними то освоїти події можна максимум за 1 день це якщо комусь ну дуже тяжко дається щось нове, а так то їх можна вивчити за півгодини. 
2. до чого нас довела "простота" опенкарту ми всі вже прекрасно бачимо, до ручки вже дійшли. Далі по суті 2 шляхи - або почати щось змінювати вже зараз (точніше це потрібно було робити ще декілька років тому) або весь опенкарт просто приречений, він і надалі буде занепадати поки не загнеться остаточно.. нажаль. Бо у 2023 році писати SQL запити вручну а потім ще й змінювати це все за допомогою модифікаторів це.. гм.. пц. короче. 
 

 

On 10/2/2023 at 3:31 AM, MaxD said:

Порівняйте час освоєння розробки для Opencart та Prestashop/WooCommerce.

я ж ніде не написав, що опенкарт потрібно перетворити у престашоп чи вукомерс, до речі трохи працював і з тим і з тим і код там просто жесть.. 
Задача якраз таки залишити всю простоту опенкарта при цього добавити функціоналу та зменшити к-сть конфліктів. 
Якщо замість sql запиту на півсторінки буде один зрозумілий $sql->select('*')->where('...')... при чому не потрібно буде вручну писати весь sql код, не потрібно буде скрізь писати префікс таблиці, не потрібно буде екранувати всі дані (бо конструктор це все зробить за тебе) і саме головне будь-який sql на сайті можна буде дуже легко змінити при чому без конфліктів з другими модулями у майбутньому то де тут ускладнення? Як на мене то все навпаки стане простішим.  І при чому тут престашоп? У нас буде той самий опенкат, тільки з яким працювати буде в рази комфортніше і к-сть конфліктів буде в десятки разів меншою, якщо все буде працювати через події. 
Тут якраз таки навпаки ми отримаємо велику перевагу бо по якості та функціоналу опенкарт стане багато у чому не гіршим за конкурентів, а у простоті освоєння в рази простішим. 
А якщо тупо викинути події бо комусь вони знаються надто складними та повернутися назад до модифікаторів - то це тупо шлях в нікуди і якщо років 10-15 тому на це ще можна було якось дивитися то зараз, то у 23 році це жесть, це архітектура, яка вже мінімум років 10 як застаріла. 

  • +1 5
Надіслати
02.10.2023 в 19:22, sv2109 сказал:

Якби була нормальна документація зі всіма подіями, до яких можна підключитися та реальні приклади роботи з ними то освоїти події можна максимум за 1 день це якщо комусь ну дуже тяжко дається щось нове, а так то їх можна вивчити за півгодини. 

Яка документація?

Події з'явились ще у 2.3. Хто заважав вивчати?
Події потрібні для розширення функціонала.

 

 

02.10.2023 в 19:22, sv2109 сказал:

Якщо замість sql запиту на півсторінки буде один зрозумілий $sql->select('*')->where('...')

Тоді потрібні події на рівні library
Крім того, такий запит не зовсім  зрозумілий, - треба розуміти  принцип білдера, Це простий запит
А якщо потрібно join-іть?

Згоден, що sql-білдер потрібен.

Надіслати
В 03.10.2023 в 10:17, chukcha сказав:

Згоден, що sql-білдер потрібен.

Потрібен не білдер, а Data-Mapper, з лінивою загрузкою, наприклад як цей https://github.com/ikkez/f3-cortex. Тоді ніякі джоіни не потрібні. І зникає оверхед від запитів у циклах і т.і. І розширювати цю систему буде дуже легко.

Надіслати
On 10/3/2023 at 11:27 AM, Vladzimir said:

Потрібен не білдер, а Data-Mapper, з лінивою загрузкою, наприклад як цей https://github.com/ikkez/f3-cortex. Тоді ніякі джоіни не потрібні. І зникає оверхед від запитів у циклах і т.і. І розширювати цю систему буде дуже легко.

Дуже спірно, як на мене. 
Data Mapping це по суті ORM, ORM це дуже крута штука, згідний, але для опенкарту це буде занадто складно, особливо зараз. Зараз люди звичайний конструктор запитів не можуть прийняти бо для них це заскладно, то як вони повинні прийняти цілу ORM яка буде значно складнішою? + вона також буде працювати повільніше, бо це ще один великий шар абстракції. До ORM потрібно дорости і опенкарт як на мене ще взагалі не доріс що цього. 
ORM дуже зручна якщо мова йде про не складні запити, але коли з'являються зв'язки, особливо зв'язки many to many де в ідеалі потрібно створювати ще одну проміжну pivot таблицю і працювати через неї, щоб побудувати цей зв'язок то це значно ускладнює все. Взяти наприклад таблицю товару в опенкарті (яка пов'язана ще мабуть із десятком інших таблиць, а ті ще з іншими) і як це все перенести на ORM? Перенести то можна, але що в результаті вийде і як воно потім буде працювати по швидкості? Та і рішення яке вийде буде ніяк не простим. 
Ну і + ORM це штука, яка добре працює у великих системах, де крім самої ORM є ще дуже багато всього (різні міграції, фабрики, кешування, події, інтеграція із шаблонізатором ітд.) і все працює як одне ціле, наприклад в Laravel я через ORM отримую колекцію (по замовчуванню отримується тільки поля основної таблиці, без зв'язків, щоб зробити запит швидким), передаю її у шаблонизатор, там в циклі прохожуся по якомусь зв'язку цієї таблиці і все працює (знову ж таки, потрібно добре розуміти як це все працює під капотом, щоб розуміти скільки запитів до бази при цьому буде створено). А не так що взяти одну ORM і всунути її у опенкарт бо це круто і правильно. 
У той час як конструктор запитів до бази даних, так, він не такий функціональний, але він і набагато простіший, легший в освоєнні та швидший. І для опенкарт на зараз як на мене підійшов би просто ідеально, як заміна сьогоднішнього підходу коли всі SQL запити тупо пишуть вручну.. Зараз це була б золота середина між голими запитами як зараз та ORM, яка накладає свої обмеження та складнощі.  
Пізніше коли б всі звикли до конструктора то можна було би подумати щоб впроваджувати щось більш складне та функціональне, але на зараз як на мене це зайве. 
Якось так, моя досить аргументована позиція)) 

Надіслати
В 03.10.2023 в 20:46, sv2109 сказав:

Якось так, моя досить аргументована позиція)) 

Ця аргументація стосується саме для Ларавел. Наведений мною мікрофрейморк не страждає всім вище переліченим.

Там все значно простіше і легко розширюється. Просто ви навіть і не дивилися ні приклади ні код.

  

В 03.10.2023 в 20:46, sv2109 сказав:

Взяти наприклад таблицю товару в опенкарті (яка пов'язана ще мабуть із десятком інших таблиць, а ті ще з іншими) і як це все перенести на ORM? Перенести то можна, але що в результаті вийде і як воно потім буде працювати по швидкості?

Швидкість зросте в кілька разів, тому що замість підзапитів для кожного товару, буде виконуватися тільки один для кожної таблиці.

 

До того ж там присутні події

    onload
    onset
    onget
    beforeerase
    aftererase
    beforeinsert
    afterinsert
    beforeupdate
    afterupdate

Що значно розширює можливості модифікації, при чому в одному місці.

Надіслати

Ларавел добрий FW але перевантажений
Опенкарт ... ну тут вина Даніеля.. я так зрозумів це його "технічний потолок" розуміння і вище він не стрибне ... поки
Як можна в бібліотеки засунути фактично контролери
Як можна в 2023 році робити простирадла кода в "головних" контролерах
А івенти ... толку від них практично нуль... бо, так, простирадла, а івенти будуть працювати тільки спочатку кода та в кінці.. а що в тілі буде все попусту "працювати" та гальмувати.
По перше треба привести до ладу всі ці простирадла коду в контролерах... перевести на виклик методів
Типу (по швидкому накидав, суть я думаю зрозуміла)

        public function index() {
            return $this
                ->start()
                ->load_language()
                ->header()
                ->breadcrumb()
                ->main()
...
                ->positions()
                ->output();
        }

Прибрати "контролери" з бібліотек. (по типу $this->document ... а!.. уважніше... $this ;) .. ознака роботи чого і що роблять розробники.. ааа... конструкт з передачею регістрі :?  а поітм вимагають там івентів) Залишити там тільки вендорські класи
І не треба навіть подій до бібліотек тулити бо там будуть вендорські та кастомні "просто" класи (до речі ось там можна змінювати ocmod-м як патчінг)
Ну звісно білдер запитів, бо без нього толку з івентів ровно нуль
ocmod залишити (нічого поганого в цьому не бачу навіть в "тіні" стандартів (зауважу що конфлікти можуть бути між "розробниками" та їх кодом і в івентах (а що це мені в before на after прийшло змінено від когось... wtf, "мені" тут воно не потрібне.. конфлікт? Так!)  , як це люблять "кричати" на кожному кроці опоненти ocmod (якщо нормально написаний ocmod - ніяких конфліктів не буде взагалі)).


 

  • +1 1
Надіслати
On 10/4/2023 at 12:30 PM, markimax said:

якщо нормально написаний ocmod - ніяких конфліктів не буде взагалі)

а то я мабуть 10 років з якимось іншим опенкартом працюю))) 

при використанні модифікаторів конфлікти будуть завжди! Причому їх буде дуже багато. Бо модифікатор змінює код самого опенкарту. І питання тут не у тому правильно написаний той модифікатор чи ні, конфлікти будуть у будь-якому випадку бо модулі пишуть різні розробники і один взагалі нічого не знає і не може знати що у голові у іншого... 
Я пишу свій модуль і прив'язуюся в модифікаторі до якогось конкретного куска коду в стандартному опенкарті, добавляю свій код після нього. І все працює, бо у стандартному опенкарті цей код є. 
А до мене якийсь інший розробник змінив цей кусок коду на інший чи дописав щось своє, бо для його модуля саме це треба було зробити, і що буде? мій модуль вже не знайде потрібний код та не добавить свій код після нього. І що це як не конфлікт? маємо помилку і або один модуль не буде працювати або два. Або і ще гірше - два модуля будуть працювати і жодних помилок не буде, але логіка роботи зміниться і наприклад десь у корзині якась ціна буде нараховуватися неправильно.. і подібні помилки взагалі дуже тяжко виправляти бо все вроді працює і в логах чисто.. 
Так ще не розповідайте басні, що ніяких конфліктів не буде, якщо у магазині встановлено декілька десятків модулів (практично у кожному магазині так) і кожен із модулів вносить десятки змін у код самого опенкарту + ще встановлена якась тема тиду джорнал яка сама по собі переписує половину опенкарту і в результаті отримуємо опенкарт, встановити якийсь новий модуль на який ще те задоволення.. сидиш і тупо виправляєш конфлікти бо все не так як треба. 

  • +1 3
Надіслати
В 04.10.2023 в 15:03, sv2109 сказав:

при використанні модифікаторів конфлікти будуть завжди!

Пишіть краще ocmod - не буде конфліктів.
Точно такі ж конфлікти можуть бути з івентами. Це теж зміни. Хтось х..к івентом змінив назву шаблону на "свою", чи дані які не треба було змінювати,  іншому розробнику та т. п.  варіантів конфліктів дуже багато, так само як з ocmod-м можуть бути, коли пишуть поганий ocmod чи івент
Так що давайте "не будемо" ... влаштовувати необгрунтований хайп по ocmod.  Не подобається вам, ну так не хайпуйте. Є він і добре. Нема зараз в 4-ці - все погано. Ось вам факт. В мене не виникає якихось конфліктів ocmod і я давно не натрапляв на конфлікти між іншими розробниками модулів. Всі вже давно навчилися писати нормальні патчі ocmod і знають де можна прив'язатися, а не де ні. Поліпшуйте свій рівень, і у вас також не буде конфліктів з ocmod.
А я навіть гадаю, що ви м'яко кажучи ...3.14...лукавите, щоб "обгрунтувати" свій хайп по цьому поводу.

Надіслати

Як на мене OpenCart не хватає простої CRM системи, яка б зразу підняла сам OpenCart над конкурентами.

На разі почав юзати OpenCart 4, розумію що це продовження OpenCart 3 версії, але вже знайшов пару плюсів для себе у порівнянні з OpenCart 2.3

 

Поживемо побачимо, що буде далі цікавого.

 

Надіслати
31.10.2023 в 21:29, Espresso.Doktor сказал:

не хватає простої CRM системи,

Це окрема область.
При правильних рішеннях, відокремлених від ядра (крім бази) це можна зробити, тільки є питання. наскільки це  затребувано.

  • +1 1
Надіслати
В 31.10.2023 в 20:35, chukcha сказав:

Це окрема область.
При правильних рішеннях, відокремлених від ядра (крім бази) це можна зробити, тільки є питання. наскільки це  затребувано.

 

Ще трохи треба прикрутити модулів до OpenCart 4, i буде більше розуміння чого бракує для мінімальної CRM. 

 

У свій час встиг поюзати Бітрікс, так і не зрозумів за що хочуть грошей.

Постійно потрібно щось виправляти, після оновлення те що працювало, перестає працювати, і пішло поїхало все по новій.

 

Сам по собі OpenCart містить багато данних, інформацію про покупця, адресу доставку, інформацію про товар, опції, і відповідно ділитися безкоштовно цими даними з "платними хмарними рішеннями" у більшості людей немає бажання. Наступне не відомо де і коли спливе "чутлива інформація" з хмарної CRM, що мені особисто не сильно подобається про це навіть думати. 

Змінено користувачем Espresso.Doktor
  • +1 1
Надіслати

Відносно попиту, немає правильної пропозиції на ринку, немає і попиту.

Сам продукт і створює бажання його використовувати.

 

Тут потрібна базова CRM плюс окремо модулі, тобто має бути такий собі конструктор, який коштує адекватних грошей і працює після оновлення.

Надіслати
В 31.10.2023 в 22:53, Espresso.Doktor сказав:

Відносно попиту, немає правильної пропозиції на ринку, немає і попиту.

Сам продукт і створює бажання його використовувати.

 

Тут потрібна базова CRM плюс окремо модулі, тобто має бути такий собі конструктор, який коштує адекватних грошей і працює після оновлення.

А я навпаки вважаю що адмінка опенкарту потрібна тільки для налаштувань магазину. Для всього іншого є спеціалізовані речі, які суттєво розширують можливості ведення контенту/замовлень.

Наприклад контент ідеально вести в pim-системах які на 164% перекривають усі наявні модулі опенкарту для цього. Аналогічно і щодо crm.

  • +1 1
Надіслати
В 01.11.2023 в 10:50, Vladzimir сказав:

А я навпаки вважаю що адмінка опенкарту потрібна тільки для налаштувань магазину. Для всього іншого є спеціалізовані речі, які суттєво розширують можливості ведення контенту/замовлень.

Наприклад контент ідеально вести в pim-системах які на 164% перекривають усі наявні модулі опенкарту для цього. Аналогічно і щодо crm.

 

Теж згідний що облік товару, взаєморозрахунки з контагентами має відбуватися в обліковій системі, а не в самому опенкарті.

Але якщо підходити з точки погляду, що ви вчора торгували на базарі з записником, а потім вирішили освоїти інтернет, то для людини яка починає цей шлях, освоювати кілька програм, а вони ще і платні у своїй більшості, ой як не легко, і у 80% людей скажуть "та нахрен воно надо".

 

Повинна бути проста система, зі зрозумілим інтерфейсом, де буде зразу все і зразу що потрібно для старту, а не 2-4 окремих софта.

Бо сьогодні витрати часу на вивчення і освоєння певної кількості програм, дуже сильно загоняє у депресію.

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

  • +1 1
Надіслати
В 02.11.2023 в 14:06, Espresso.Doktor сказав:

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

Так, вони позбавляють геморою, на старті. Але додають суттєвого геморою при масштабуванні з інтернет-ларька до нормального магазину.

Краще день втратити, але за годину долітіти (С).

Надіслати
В 02.11.2023 в 13:08, Vladzimir сказав:

Так, вони позбавляють геморою, на старті. Але додають суттєвого геморою при масштабуванні з інтернет-ларька до нормального магазину.

Краще день втратити, але за годину долітіти (С).

 

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

Якщо людина з базару веде облік товару в екселі, то це вже крок у цифрові технології, бо більшість людей не можуть попрощатися зі своїм "базарним записником".

 

Хоча сам прекрасно розумію, що дуже важко створити одне універсальне рішення для більшості. :oops:

Так само повна фігня, коли люди ставлять значення, що є в наявності, а по факту нічого немає, і постійно чуєш пару хвилин назад продали, та інші казки.

  • +1 1
Надіслати
В 31.10.2023 в 22:53, Espresso.Doktor сказав:

Тут потрібна базова CRM плюс окремо модулі, тобто має бути такий собі конструктор, який коштує адекватних грошей і працює після оновлення.

Вважаю, що в базову збірку не потрібно впроваджувати CRM, тому що вона не буде повноцінною, а вийде все одно якийсь огризок.

 

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

 

Значно ефективніше підібрати собі нормальну повноцінну CRM, яка вміє вирішувати твої задачі і просто вивантажувати товари і замовлення

Надіслати

чом би одразу не поєднати ocStore/Оpencart (у варіанті Opencart 5) з шаблонами (наприклад OCTemplates)  - користувачі мали б відразу купу готових варіантів магазинів під різні потреби і напрямки бізнесу  з налагодженим чистим кодом без глюків, які практично не потребуватимуть використання модифікаторів бо ті таки створють конфлікти бо змінють код. 

Надіслати

Створіть аккаунт або увійдіть для коментування

Ви повинні бути користувачем, щоб залишити коментар

Створити обліковий запис

Зареєструйтеся для отримання облікового запису. Це просто!

Зареєструвати аккаунт

Вхід

Уже зареєстровані? Увійдіть тут.

Вхід зараз
  • Зараз на сторінці   0 користувачів

    • Ні користувачів, які переглядиють цю сторінку
×
×
  • Створити...

Important Information

На нашому сайті використовуються файли cookie і відбувається обробка деяких персональних даних користувачів, щоб поліпшити користувальницький інтерфейс. Щоб дізнатися для чого і які персональні дані ми обробляємо перейдіть за посиланням . Якщо Ви натиснете «Я даю згоду», це означає, що Ви розумієте і приймаєте всі умови, зазначені в цьому Повідомленні про конфіденційність.