2015-12-02 3 views
0

Я использую QuickBooks Online Plus, что означает, что я могу редактировать элемент. Я хотел бы использовать API для изменения в # для элемента. Я создал элемент «test1» через QuickBooks Online Plus. Когда я прочитал элемент из API, я получил следующее в прикрепленном json-файле. все отлично выглядит следующим образом:Как обновить количество товаров вручную с помощью QuickBooks Online Plus

{ 
    "QueryResponse": { 
    "Item": [ 
     { 
     "Name": "test1", 
     "Active": true, 
     "FullyQualifiedName": "test1", 
     "Taxable": false, 
     "UnitPrice": 3, 
     "Type": "Inventory", 
     "IncomeAccountRef": { 
      "value": "60", 
      "name": "Sales of Product Income" 
     }, 
     "PurchaseCost": 1, 
     "ExpenseAccountRef": { 
      "value": "61", 
      "name": "Cost of Goods Sold" 
     }, 
     "AssetAccountRef": { 
      "value": "62", 
      "name": "Inventory Asset" 
     }, 
     "TrackQtyOnHand": true, 
     "QtyOnHand": 6, 
     "InvStartDate": "2015-12-02", 
     "domain": "QBO", 
     "sparse": false, 
     "Id": "19", 
     "SyncToken": "1", 
     "MetaData": { 
      "CreateTime": "2015-12-01T14:38:23-08:00", 
      "LastUpdatedTime": "2015-12-01T14:38:42-08:00" 
     } 
     } 
    ], 
    "startPosition": 1, 
    "maxResults": 1 
    }, 
    "time": "2015-12-02T09:59:29.936-08:00" 
} 

Но когда я пытался обновить этот элемент с помощью объекта JSON ниже:

{ 
     "Name": "test1", 
     "Active": true, 
     "Taxable": false, 
     "UnitPrice": 3, 
     "Type": "Inventory", 
     "IncomeAccountRef": { 
      "value": "60", 
      "name": "Sales of Product Income" 
     }, 
     "PurchaseCost": 1, 
     "ExpenseAccountRef": { 
      "value": "61", 
      "name": "Cost of Goods Sold" 
     }, 
     "AssetAccountRef": { 
      "value": "62", 
      "name": "Inventory Asset" 
     }, 
     "TrackQtyOnHand": true, 
     "QtyOnHand": 16, 
     "InvStartDate": "2015-12-02", 
     "domain": "QBO", 
     "sparse": false, 
     "Id": "19", 
     "SyncToken": "2" 
} 

, я получил сообщение об ошибке, как это:

{"Fault":{"Error":[{"Message":"Stale Object Error","Detail":"Stale Object Error : You and [email protected] were working on this at the same time. [email protected] finished before you did, so your work was not saved.","code":"5010","element":""}],"type":"ValidationFault"},"time":"2015-12-02T10:42:52.466-08:00"} 

I хотел бы обновить количество под рукой. Кто-нибудь знает, что случилось и как это сделать? Благодарю.

ответ

0

Проблема с «SyncToken». Я считаю, что когда вы пытаетесь обновить новый элемент, вам не следует увеличивать «SyncToken», вы должны сохранять его одинаково. QBO обновит «SyncToken» для вас.