FileMaker: интеграция с Magento

#php #database #magento #integration #filemaker

#php #База данных #magento #интеграция #filemaker

Вопрос:

Я хотел бы написать веб-приложение Magento, работающее с базой данных Filemaker.

Могу ли я перезаписать файлы ядра базы данных кодом, используя filemaker php api?

Какие еще есть варианты?

Комментарии:

1. Зачем вам это нужно? Если это связано с настройками вашего хостинга, это будет проще изменить.

2. Поиск в Google Magento Filemaker показывает некоторые интересные результаты

3. Filemaker! Черт возьми. Мне пришлось остановиться и прочитать вопрос, когда я увидел заголовок. Просто вернул некоторые кошмары из прошлого…. давно в прошлом. Удачи с вашим проектом.

4. Пожалуйста, не поймите это неправильно, но, исходя из вашего вопроса, я не думаю, что у вас достаточно опыта, чтобы выполнить то, что вы пытаетесь сделать. Лучшим путем интеграции является написание сценариев, которые могут извлекать информацию из существующей базы данных filemaker и обновлять magento, и наоборот (если в базе данных filemaker требуется какая-либо информация о заказе)

Ответ №1:

Я хотел создать интерфейс между Filemaker и базой данных Magento, но из-за EAV связать базу данных Magento с базой данных filemaker — это кошмар. Если вы хотите сделать это, вам действительно нужно использовать PHP в Filemaker и использовать SOAP API Magento, если они размещены отдельно. Вы также можете интегрировать API ядра Magento в PHP-скрипт с помощью Filemaker API, если вы размещаете свой Magento на том же веб-сервере или устанавливаете новый экземпляр Magento, указывающий на доступную внешнюю базу данных. Вы также можете выполнить локальную репликацию базы данных mysql на сервере Filemaker.

Для простой интеграции Magento Core API в PHP-файл необходимо установить следующее:

 <?php
require_once 'yourmagentoinstallation/path/app/Mage.php';
Mage::app('default'); // default can be replaced by your default store code

// You can use Magento code (model, EAV, singleton, block, etc)
...
?>
  

Это возможно, есть разные способы, но я не нашел, когда мне нужно было готовое решение.

Ответ №2:

Это зависит от того, что вы подразумеваете под «интеграцией». Я сомневаюсь, что вам нужно будет что-то делать в строках «перезаписать основные файлы базы данных». Скорее всего, вам нужно будет обновить FileMaker при размещении заказа и сделать то же самое с Magento, когда они получат обновление на складе. Вполне вероятно, что эти два сценария должны быть реализованы совершенно по-разному.

Вот что может сделать FileMaker. Его XML-серверная часть может легко принимать запросы GET и POST на сервер. Их синтаксис довольно продвинутый, и вы можете находить записи, добавлять, удалять и дублировать их, запускать скрипты FileMaker и т. Д. Это далеко не SQL, особенно поиск, но вполне логично. Сервер отвечает в формате XML. Вот руководство (PDF).

Сервер также может принимать произвольные запросы, отправляемые в его PHP API. (Он также имеет XSLT API, но он устарел и будет удален.) Затем API изменяет запрос по своему усмотрению, взаимодействует с серверной частью XML и возвращает результат. Поскольку я не эксперт по PHP, я не совсем уверен, где объясняется API, но он должен быть где-то здесь.

Сам FileMaker (т.Е. Его настольный клиент или даже сервер) может использовать подключаемые модули для взаимодействия с веб-сервисами. Например. по мере обновления ресурсов настольный клиент может готовить и отправлять запросы в Magento API.

И FileMaker может напрямую обращаться к определенным «большим» базам данных SQL. Например, он может подключаться к базе данных MySQL и работать с ее таблицами так же, как со своими собственными. Возможно, было бы неразумно разрешать бесплатную работу с основными таблицами Magento, но тщательно продуманные обновления выглядят как жизнеспособный вариант.

Подключаемый модуль и прямое подключение лучше оставить разработчикам FileMaker, в то время как XML и PHP (XSLT) API-интерфейсы — довольно стандартный веб-материал.

Ответ №3:

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

Блог о продуктивных вычислениях

Наши продукты NRGship используют PHP API Magento для извлечения данных заказа и обновления статуса заказа после отправки. Чтобы отразить это, вам понадобится некоторый PHP-код на стороне сервера, а затем использовать плагин, такой как Troi URL, для вызова http-запросов для запроса и обновления статуса записи.

Предоставление дополнительной информации о ваших потребностях позволит получить более подробный ответ.

Ответ №4:

Я использую драйвер JDBC, который поставляется с Filemaker Pro, и я создал серверное приложение на Java, которое подключается к filemaker через JDBC для автоматической вставки данных, таких как заказы и т. Д., И выполняю фоновые задачи, автоматизирующие обновления, такие как обновления продукта и обновления статуса заказа, получая данные от filemaker через JDBC. Затем серверное приложение java отправляет запросы SOAP API в Magento для обработки обмена данными.

Мы расширили это еще больше, заставив серверное приложение прослушивать XML-сообщения / команды в сокете, чтобы я мог при необходимости интегрировать filemaker в режиме реального времени. Затем у меня есть простой плагин filemaker, который я написал, используя шаблон плагина Filemaker 24U, который отправляет небольшие XML-сообщения в серверное приложение java, которое затем соответствующим образом вызывает API для magento. Filemaker ожидает ответа серверного приложения, который возвращается, а затем filemaker продолжает выполнение остальной части скрипта, который вызвал метод.

Это намного сложнее, чем это, в том смысле, что у него есть очередь задач для выполнения, чтобы не перегружать magento API, и у нас есть пул подключений к БД для подключений filemaker JDBC, чтобы избежать перегрузки при открытии и закрытии соединений. Это работает действительно очень хорошо, и мы буквально полностью интегрировали Magento с filemaker и создали множество пользовательских модулей API для magento для достижения дополнительной функциональности, которую magento не предоставляет.

Я читал, что можно создавать плагины Java для Java, поэтому теоретически вы могли бы отказаться от серверного приложения и просто создать плагин filemaker, в который встроены вызовы функций API magento. При использовании режима соответствия WSI версии V2 для вызовов magento soap вы можете сгенерировать все классы-заглушки и методы с помощью плагина JAXB web services, который является частью Netbeans, что сэкономит вам много дней работы.