Ошибка QuickBooks API при обновлении

Я пытаюсь использовать QuickBooks API для синхронизации списка продуктов моей компании с списком товаров в книге. Я прошел через систему OAuth, чтобы иметь возможность делать запросы на чтение / запись в API, но всегда получаю сообщение об ошибке при попытке обновить объект.

Ссылка, которую я использую, приведена здесь , и в той же документации есть ссылка на получение объекта, который я смог использовать просто отлично. Это XML, который я отправляю . Я несколько раз настраивал XML на несколько часов безрезультатно.

Сообщение об ошибке, которое я получаю, это « Название элемента QB уже существует ERI = 420962215 ». Это ERI – мой идентификатор моего королевства. Кажется, QuickBooks думает, что я пытаюсь добавить новый элемент, когда я пытаюсь изменить существующий. Если я опускаю поле имени или оставляю его нулевым, это также дает мне ошибку.

Элемент, который я пытаюсь изменить, был создан в QuickBooks, а затем синхронизирован с помощью диспетчера синхронизации QuickBook. Затем я аутентифицировал свое приложение в этой книге и смог легко прочитать данные. У меня проблема только при попытке написать. Мне еще нужно попытаться создать или удалить объект, так как я останавливаюсь при обновлении.

Я пытаюсь просто создать простую форму на сайте моей компании, которая попадет в API и обновит данные при сохранении, но я не могу найти способ этой ошибки.

Любая помощь будет принята с благодарностью. У меня начались проблемы в пятницу, и я чувствую, что сейчас кружась кругами. Я нашел библиотеку QuickBooks / PHP и попытался просмотреть ее, чтобы узнать, могу ли я найти полезную информацию, но мне было слишком сложно найти то, что я искал, так как я думаю, что ошибка – это просто некорректный XML.

Я следил за всеми указаниями в ссылке на обновление и просто не мог добиться прогресса. Я дважды и тройка проверил, что моя проверка подлинности работает, что URL-адрес правильный, что я отправляю POST, а не GET, и что мой XML соответствует XML, показанному в этом примере.

ОБНОВЛЕНИЕ 2012-03-15

Похоже, проблема в том, что API не может обновить элемент, созданный с помощью QuickBooks. Каждый элемент имеет идентификатор и idDomain, который указывает, было ли это сделано через API (NG) или Quickbooks (QB). Пример id / idDomain будет 1 / QB или 2556587 / NG.

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

Кажется, что то, что я написал в обновлении, правильно. Я не могу обновлять элементы, которые были сделаны в quickbooks через API. Я могу читать элементы, созданные в quickbooks, я могу создавать элементы, и я могу редактировать элементы, созданные через API, но редактирование элемента, сделанного в quickbooks через API, возвращает эту ошибку.

Несколько вещей:

  • С каким URL-адресом вы отправитесь?
  • Можете ли вы показать полный HTTP-ответ, который вы получаете? У IDS есть плохая привычка возвращать сообщения об ошибках / коды, которые иногда неоднозначны, если вы не смотрите на полный ответ XML.
  • Некоторые из этих полей не обновляются: QtyOnPurchaseOrder, QtyOnSalesOrder
  • Вы знаете, что можете использовать только диспетчер IDS / Sync для приложений, которые вы собираетесь перепродавать другим компаниям, не так ли? т.е. вы не можете использовать его для внутренних / одноразовых приложений.
  • Если вы разместите эти вопросы на форумах разработчиков Intuit, вы получите гораздо лучшую поддержку: https://idnforums.intuit.com/

Вы можете подумать о переходе на QBO V3, с которым лучше и проще работать. для этой цели есть очень хороший апи. который вы можете получить здесь. https://github.com/consolibyte/quickbooks-php (Made By: Keith Palmer)

Я использую это и очень доволен этим.