QuickBooks API を使用して、会社の製品リストをワークブックのアイテム リストと同期させようとしています。OAuth システムを介して API への読み取り/書き込み要求を行うことができましたが、オブジェクトを更新しようとすると常にエラーが発生します。
私が使用しているリファレンスはhereで、同じドキュメント内に、私がうまく使用できたオブジェクトを取得するためのリファレンスがあります。これが送信する XML です。XML を数時間微調整しましたが、役に立ちませんでした。
表示されるエラー メッセージは、「QB item name already exists ERI=420962215」です。その ERI が私のレルム ID です。既存のアイテムを変更しようとしているときに、QuickBooks が新しいアイテムを追加しようとしていると考えているようです。name フィールドを省略したり、null のままにしたりすると、同様にエラーが発生します。
変更しようとしているアイテムは、QuickBooks で作成され、QuickBook の同期マネージャーを通じて同期されました。次に、そのワークブックに対してアプリを認証し、データを簡単に読み取ることができました。書き込もうとすると問題が発生するだけです。更新が行き詰まっているため、オブジェクトの作成または削除をまだ試みていません。
会社のサイトに、保存時に API をヒットしてデータを更新する単純なフォームを設定しようとしていますが、このエラーを回避する方法が見つかりません。
どんな助けでも大歓迎です。金曜日に問題が発生し始め、今はぐるぐる回っているように感じます。QuickBooks / PHP ライブラリを見つけて、有用な情報が見つかるかどうか調べてみましたが、大きすぎて探しているものを見つけることができませんでした。エラーは単に間違った XML であると思われるからです。
更新リファレンス内のすべての指示に従いましたが、先に進むことができません。認証が機能すること、URL が正しいこと、GET ではなく POST を送信していること、および XML がその例に示されている XML と一致することを 2 回、3 回確認しました。
更新 2012-03-15
API が QuickBooks で作成されたアイテムを更新できないことが問題のようです。すべてのアイテムには id と idDomain があり、API (NG) または Quickbooks (QB) を介して作成されたかどうかを示します。id/idDomain の例は、1/QB または 2556587/NG です。
これを行っているときはいつでも、API を介して作成された項目を完全に更新できましたが、Quickbooks を介して作成された項目は更新できませんでした。サポートされているオブジェクト参照を調べたところ、アイテム アセンブリの更新/作成がベータとしてリストされていることに気付きました。