Интеграция с API служб доставки
Сейчас многие службы доставки заказов разрабатывают или уже имеют свой собственный API для формирования заявок на доставку заказов. Причем у всех свой API, со своими собственными параметрами, списками и прочим.
Задача - сделать упрощенный механизм интеграции с таким API.
Конечно можно писать отдельные модули для админки, но это несколько сложновато и хлопотно. Вот если бы такие обработчики систем доставки заказов можно было бы также "легко" подключать как различные платежные системы.
Вопрос хранения различных параметров доставки в заказе будет решен, как только будет реализовано очень предложение по доп. свойствам заказов.
Вопрос реализации обработчиков доставки можно тоже как-то стандартизовать. Например, самый банальный вариант, который приходит в голову - сделать абстрактный метод для модели заказа «передать в доставку». Этот метод в зависимости от выбранного способа доставки вызывает, при наличии, отпределенный метод этого обработчика. Саму же команду - «передать в доставку» вынести в список действий внизу перечня заказов (вместе с применить) и добавить кнопкой рядом с применить и сохранить в отдельный заказ.
Сейчас это можно сделать, только залезая «руками» в модель заказа и добавляя туда свой собственный метод. Это приведет к тому, что при каждом обновлении системы есть шанс утери этих изменений. Поправьте меня если я тут заблуждаюсь.
Комментарии
-
Или например интеграция с интеграторами)
Типа такого - http://sheepla.ru/Home/Integration
-
На самом деле было бы очень круто!
Многие службы доставки уже имеют готовые модули и решения по интеграции для многих популярных CMS.
Однако HostCMS, как правило, среди них не значится, что не может радовать.
Очень бы хотелось видеть интеграцию со СДЭК.
-
Т.е., вы предлагаете сделать универсальный API, с помощью которого привязывать службы доставки?
-
Универсальный API не сделаешь. Я предлагаю добавить в HostCMS облегченную возможность ингреграции с чужими API. Что-то подобное сейчас уже сделано для платежных систем. Создаем свой класс от общего и пишем там ту логику работы, которая нам нужна в стандартные вызываемые методы.
Что-то аналогичное можно было бы сделать и тут.
Например, набор стандартных методов - "проверить для отправки", "отправить", "изменить", "аннулировать", "распечатать ярлык". в базовом классе они могут быть вообще пустыми. Зато разработчики могут легко создать свой класс с необходимой логикой в этих обработчиках.