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

Я пытаюсь использовать API QuickBooks для синхронизации списка продуктов моей компании со списком элементов книги. Я прошел через систему 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. Изучив ссылку на поддерживаемые объекты, я заметил, что эта сборка update/create указан как бета-версия.


person kingcoyote    schedule 13.03.2012    source источник


Ответы (3)


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

person kingcoyote    schedule 20.03.2012

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

  • Какой URL-адрес вы отправляете?
  • Можете ли вы показать полный ответ HTTP, который вы получаете? У IDS есть плохая привычка возвращать сообщения/коды ошибок, которые иногда могут быть неоднозначными, если вы не просмотрите полный ответ XML.
  • Некоторые из этих полей не подлежат обновлению: QtyOnPurchaseOrder, QtyOnSalesOrder.
  • Вы ведь знаете, что можете использовать IDS/Sync Manager только для приложений, которые собираетесь перепродавать другим компаниям, верно? то есть вы не можете использовать его для внутренних/разовых приложений.
  • Вы получите гораздо лучшую поддержку, если разместите эти вопросы на форумах разработчиков Intuit: https://idnforums.intuit.com/
person Keith Palmer Jr.    schedule 14.03.2012
comment
1) Я отправляю сообщение на services.intuit.com/sb/item/v2. /‹realm-id› 2) К сожалению, я так радикально изменил код (и на время отключил свою книгу), что не могу показать полный HTTP-ответ, но это было в значительной степени просто это сообщение об ошибке, код ошибки -3002 и DBErrorCode, который я не могу вспомнить. 3) Я только пытаюсь обновить название, описание и цену. 4) Я этого не знал, но посмотрю. 5) Я просматривал их форумы и так часто вопросы оставались без ответа, что вместо этого я пошел сюда. - person kingcoyote; 15.03.2012

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

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

person user3065103    schedule 01.01.2014