Erro da API QuickBooks ao atualizar

Estou tentando usar a API do QuickBooks para sincronizar a lista de produtos da minha empresa com a lista de itens da pasta de trabalho. Eu alcancei o sistema OAuth para poder fazer solicitações de leitura / gravação para a API, mas sempre recebo um erro ao tentar atualizar um object.

A referência que eu tenho usado está aqui , e dentro da mesma documentação é uma referência para recuperar um object que eu tenho podido usar bem. Este é o XML que estou enviando . Eu tenho ajustado o XML por algumas horas agora, sem sucesso.

A mensagem de erro que recebo é “O nome do item QB já existe ERI = 420962215 “. Essa ERI é minha identidade do reino. Parece que o QuickBooks pensa que estou tentando adicionar um novo item, quando estou tentando modificar um existente. Se eu omitir o campo de nome ou deixá-lo nulo, isso também me dá um erro.

O item que eu estou tentando modificar foi criado no QuickBooks, então sincronizado através do Gerenciador de synchronization do QuickBook. Eu então autenticou meu aplicativo naquele livro e consegui ler dados com facilidade. Eu só tenho um problema quando eu tento escrever. Ainda tenho tentado criar ou excluir um object desde que eu estive paralisando a atualização.

Estou tentando apenas configurar um formulário simples no site da minha empresa que atingirá a API e atualizará os dados ao salvar, mas não consigo encontrar um caminho para evitar esse erro.

Qualquer ajuda seria muito apreciada. Comecei a ter problemas na sexta-feira e sinto que estou apenas girando em círculos agora. Eu encontrei uma biblioteca QuickBooks / PHP e tentei examiná-la para ver se eu poderia encontrar informações úteis, mas era um pouco grande demais para eu localizar o que eu estava procurando, pois acho que o erro é apenas um XML incorreto.

Eu segui todas as instruções dentro da referência de atualização e simplesmente não posso fazer progresso. Eu chequei e triplas verifiquei se minha autenticação funciona, que o URL está correto, que estou enviando POST e não GET e que o meu XML corresponde ao XML mostrado nesse exemplo.

UPDATE 2012-03-15

Parece que o problema é que a API não é capaz de atualizar um item que foi criado através do QuickBooks. O item Ever tem um id e um idDomain, o que indica se foi feito através da API (NG) ou Quickbooks (QB). Um exemplo id / idDomain seria 1 / QB ou 2556587 / NG.

Sempre que estava fazendo isso, consegui atualizar perfeitamente um item que foi feito através da API, mas não um feito através de Quickbooks. Depois de pesquisar a Referência do object suportado , notei que a atualização / criação do conjunto de itens está listada como beta.

Parece que o que escrevi na atualização está correto. Não consigo atualizar itens que foram feitos em quickbooks através da API. Posso ler itens feitos em quickbooks, posso criar itens e posso editar itens feitos através da API, mas editar um item feito em quickbooks através da API retorna esse erro.

Algumas coisas:

  • Em que URL você está POSTando?
  • Você pode mostrar a resposta HTTP completa que você está recebendo? O IDS tem um mau hábito de retornar mensagens / códigos de erro às vezes ambíguos se você não olhar para a resposta XML completa.
  • Alguns desses campos não podem ser atualizados: QtyOnPurchaseOrder, QtyOnSalesOrder
  • Você sabe que você só pode usar o IDS / Sync Manager para aplicativos que você vai revender para outras empresas, certo? ou seja, você não pode usá-lo para aplicações internas / únicas.
  • Você receberá um apoio muito melhor se você publicar essas perguntas nos fóruns do desenvolvedor da Intuit: https://idnforums.intuit.com/

Você pode considerar migrar para o QBO V3, é muito melhor e fácil de trabalhar. há um excelente api para isso. que você pode chegar aqui. https://github.com/consolibyte/quickbooks-php (Made By: Keith Palmer)

Estou usando isso e estou muito satisfeito com isso.