Я пытаюсь использовать 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 указан как бета-версия.