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