Создать drupal-модуль для интеграции soap сервиса

Цена договорная • безналичный расчёт, электронные деньги
21 января 2018, 14:57 • 1 отклик • 13 просмотров
Нужно создать модуль для интеграции soap сервиса. Документация и
демо-ключи для сервиса есть. Примеры модулей интеграции с другими
подобный сервисами есть, более того требуемый модуль должен быть сделан в
той же схеме, что и существующие модули, то есть практически по
шаблону. Другие модули делают тоже самое, но для других поставщиков. У
всех поставщиком названия функций и форматы ответов отличаются, поэтому
нужны разные модули. Модуль должен реализовывать фунцию, которая на
входе получает требования к продукту, а на выходе отдает стоимость и
наименование продукта, которые получает через soap-сервис. Все
непонятные стороны объясню, от вас только безупречное знание drupal 7
API.

Требования:
  1. никаких sql запросов, всё только через EntityFieldQuery и load функции
  2. всё
    решение представляет собой один drupal-модуль, правильная работа
    которого инициируется установкой и наполнением справочников сервиса на
    специальной странице в админке.
  3. модуль использует wsclient

структура модуля:
  • yourmodule.module
    • содержит hook_menu и другие необходимы хуки и функции
    • содержит hook_default_wsclient_service
  • yourmodule.entity.inc
    • содержит hook_entity_info, где описание моделей справочников
  • yourmodule.install
    • содержит только hook_schema, где описание таблиц необходимых для моделей справочников
  • yourmodule.admin.inc
    • содержит callback-функции для наполнения справочников. Если данных много (как правило), то нужно использовать drupal batch API
  • admin_views_default
    • файлы страниц справочников, они все сделаны через viwes
  • includes

    • YourmodulePluginController.class.inc - специальный контроллер, через
      который остальной код проекта взаимодействует с модулем. Спецификации,
      примеры и инструкции будут даны после выбора исполнителя.

Будет предоставлен git, ssh, внешний сервер, на котором можно будет тестировать конечное решение.