Быстрые книги PHP DevKit

В настоящее время я участвую в интеграции моего php-сайта с настольной версией Quickbooks. Приложение находится на удаленном компьютере и должно оставаться в синхронизации с mysql db на моем сервере. После многих исследований выяснилось, что у меня есть два варианта:

  1. Используйте PHP Devkit и веб-коннектор, чтобы выполнить это.
  2. Вручную периодически экспортируйте файлы csv из быстрых книг и проанализируйте их и вставьте данные в мой mysql db.

Что касается первого варианта, я не могу найти какие-либо ресурсы, указывающие, что можно запросить все элементы из quickbooks db. Это было бы идеально, поскольку я мог периодически запрашивать приложение удаленных приложений для всех предметов и вставлять те, которые были добавлены / обновлены. Похоже, что запросы xml для запроса требуют, чтобы вы указывали элемент, который вы запрашивали. Это не сработает для того, что я предполагал. Поскольку мы не делаем никаких заказов с веб-сайта и отображаем только текущие элементы / клиенты, возможно, веб-коннектор не то, что мне нужно.

Это приводит меня к следующему варианту: ручное разбор csv-файлов из приложения. Я не возражаю против этого, поскольку он более прямолинейный, чем настройка набора php dev, чтобы поговорить с веб-коннектором, но требует ручного вмешательства для экспорта файлов данных из quickbooks.

У кого-нибудь есть опыт в выполнении этой задачи / автоматизация синхронизации данных между рабочим столом быстрого доступа и удаленным веб-сайтом php?

Любые комментарии и предложения приветствуются, спасибо.

Что касается первого варианта, я не могу найти какие-либо ресурсы, указывающие, что можно запросить все элементы из quickbooks db.

Это определенно очень полезно.

Вот полный пример этого:

(этот пример также может импортировать все счета-фактуры, всех клиентов и т. д.), но вы можете уменьшить его, если хотите просто делать товары)

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

Нет, они не требуют указания элемента. Вы можете фильтровать вещи или нет.

См. Полный синтаксис здесь:

Если вы посмотрите ItemQuery, вы можете указать имя элемента, если хотите … или если вы не хотите указывать какие-либо критерии вообще, это тоже хорошо. Если вы укажете имя для фильтрации, оно будет фильтровать элементы. Если вы не укажете какие-либо фильтры, вы получите все.

Это приводит меня к следующему варианту: ручное разбор csv-файлов из приложения.

Тьфу. 🙂

У кого-нибудь есть опыт в выполнении этой задачи / автоматизация синхронизации данных между рабочим столом быстрого доступа и удаленным веб-сайтом php?

Да, много. Это не сложно.

Следуйте руководству по быстрому запуску, но вместо этого замените скрипт _import.php, так как вы хотите импортировать данные в MySQL вместо добавления / обновления в QuickBooks:

Если вы следуете за быстрым запуском, вы должны работать в течение получаса. У нас также есть форумы поддержки:

Это не массовый трудный процесс, когда вы обернете вокруг того, как работает соединение.

В большинстве других веб-соединений этого типа вы бы поместили код на компьютере, который может получить доступ к вашим скоростным книгам db (машина в вашей сети с открытым портом для запросов), после чего вы отправляете запросы на этот компьютер для получения информации, он будет запрашивать db и отправить ответ. Это будет работать с использованием REST API или SOAP.

Quickbooks делает это наоборот, разъем сидит на машине с помощью быстрых книг и указывается на ваше приложение для веб-сервера, а затем постоянно просит ваше приложение что-то делать. Ваше приложение проверяет, кто это, а затем соединитель спрашивает, чего хочет ваше приложение, и передает данные на основе ответа. Это немного о-лицо, но есть некоторые хорошие технические причины для этого.

Вы можете запросить любую часть своих quickbooks db, так как я бы сделал это так.

  1. Клиент приходит на ваш сайт и регистрируется в
  2. Клиент запрашивает информацию
  3. Ваше приложение отвечает на веб-коннектор (который, откровенно говоря, прослушивал его для AGES)
  4. Ваше приложение запрашивает веб-коннектор для всего, что могло быть обновлено в отношении информации, которую хочет клиент (временные метки здесь важны)
  5. Веб-соединитель отправляет эту информацию
  6. Приложение обновляет локальную базу данных и отображает информацию

Вы можете изменить эти шаги с точки зрения того, что вы можете заставить ваше приложение обновлять ВСЕ записи, используя задание cron или задачу Windows каждый час / день и т. Д., Но это будет означать, что иногда данные не полностью обновлены, и ваш сервер будет очень каждый раз при запуске обновления.

Как вы это сделаете, это будет зависеть от того, сколько вы используете в своем приложении. Например, для приложения с высоким уровнем использования у меня есть сервер, чтобы показать сайт, сервер db для размещения db для сайта и сервера, который ничего не делает, кроме обновления сервера db каждые пару часов. Я делаю это, блокируя записи при обновлении и следя за тем, чтобы клиент не мог ничего изменить напрямую (я использую задание пакетного обновления, которое отправляет данные обратно в quickbooks).

Я надеюсь, что это (очень краткое) резюме поможет, и я предоставил некоторые ссылки ниже, которые мне помогли.

Web Connector Wiki , очень хороший ресурс для настройки веб-коннектора

Аналогичный вопрос кто-то уже спросил , на него ответил разработчик Web Connect