Всім вітання!
Я розробник 1С, налаштовую обмін між 1С та Opencart: вивантаження нових товарів, категорій на сайт, оновлення цін та залишків, описів і т.д.
В папці "catalog/controller/api" додав свій контролер з функціями де обробляю POST-запити від 1С.
В папці "catalog/model/catalog" додав модель для оновлення даних у базі.
Все працює.
Але в ході реалізації цієї задачі виникли наступні питання:
1. Наскільки я зрозумів, функціонал адмінки та магазину жорстко розділений. І знаходячись в своєму контролері викликати функції з моделей адмінки "admin/model/catalog" Опенкарт не дозволяє. Тому, моя модель - це копія з "admin/model/catalog/product" та "admin/model/catalog/category".
Чи є можливість уникнути дублювання коду шляхом виклику моделей з "admin/model/catalog" знаходячись в контролері "catalog/controller/api" і як це зробити? Чи для цього потрібно втручатися в ядро Opencart?
2. Наприклад, по першому питанню варіантів окрім дублювання моделі немає.
Як тоді підтримувати свою модель в актуальному стані?
Бо, наприклад, встановили новий модуль, що розширює картку товару - додає якусь пов'язану інфо, що лежить в окремій таблиці в sql.
Цей модуль модифікував стандартну модель "admin/model/catalog/product", а саме функції додавання/оновлення/видалення товару.
А моя модель про це нічого не знає. І виходить коли я через API видалятиму якийсь товар на сайті -товар видалиться, а дані нового модуля, які пов'язані з товаром - залишаться. Наскільки це критично?
Проаналізував репозиторії на гітхабі - вцілому картина така як і у мене - люди роблять свою модель з дублюванням моделей з адмінки.
Чи може є інші варіанти?
Наперед вдячний всім за відповіді)