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

Редагування товарів категорій через API Opencart


Recommended Posts

Всім вітання!

Я розробник 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 видалятиму якийсь товар на сайті -товар видалиться, а дані нового модуля, які пов'язані з товаром - залишаться. Наскільки це критично?

 

Проаналізував репозиторії на гітхабі - вцілому картина така як і у мене - люди роблять свою модель з дублюванням моделей з адмінки. 
Чи може є інші варіанти? 
Наперед вдячний всім за відповіді)

 

 

 

Надіслати
Поділитися на інших сайтах


Ну первая преграда обращения в контроллеры админки это то что нужен уникальный токен (авторизованый администратор), второе то что контроллеры админки и каталога работают отдельно. Реализуемо только обращение из админки через ajax в контроллер каталога. На прямую такого нет (вроде). Возможно кто-то ещё что-то скажет.

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

  • +1 1
Надіслати
Поділитися на інших сайтах

12.06.2023 в 23:58, YaroslavHolovatiy сказал:

Чи є можливість уникнути дублювання коду шляхом виклику моделей з "admin/model/catalog"

можно, извратиться

проинклудить файл модели и создать объект (но решение - так себе - костыль)

  • +1 2
Надіслати
Поділитися на інших сайтах

13.06.2023 в 12:20, chukcha сказал:

можно, извратиться

   Типа такого. 

require_once(DIR_APPLICATION.'controller/product/newsearch.php');
class _ControllerProductSearch extends Controller {

Так я делал для доработки фильтра, бо при обновлении модификатора сразу ломается код, а так все оки.

  • +1 1
Надіслати
Поділитися на інших сайтах

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

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

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

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

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

Вхід

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

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

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

×
×
  • Створити...

Important Information

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