如何使用QBXML将订单项添加到现有销售订单

时间:2013-09-17 16:59:21

标签: quickbooks intuit-partner-platform qbxml

我能够很好地提高销售订单,我认为修改已经存在的订单项看起来很有意义,但我该如何添加其他订单项呢?

OSR似乎对我没有意义。 https://developer-static.intuit.com/qbSDK-current/Common/newOSR/index.html

在我申请销售订单后,我会收到这些订单项:

<SalesOrderLineRet>
<TxnLineID>15-1379092567</TxnLineID>
<ItemRef>
<ListID>80000002-1379090362</ListID>
<FullName>4684</FullName>
</ItemRef>
<Desc>tester</Desc>
<Quantity>3</Quantity>
<Rate>600.00</Rate>
<Amount>1800.00</Amount>
<SalesTaxCodeRef>
<ListID>80000002-1378850266</ListID>
<FullName>Non</FullName>
</SalesTaxCodeRef>
<Invoiced>0</Invoiced>
<IsManuallyClosed>false</IsManuallyClosed>
</SalesOrderLineRet>
<SalesOrderLineRet>
<TxnLineID>16-1379092567</TxnLineID>
<ItemRef>
<ListID>80000001-1378935144</ListID>
<FullName>Test Item</FullName>
</ItemRef>
<Desc>Shipment</Desc>
<Quantity>5</Quantity>
<Rate>5.00</Rate>
<Amount>25.00</Amount>
<SalesTaxCodeRef>
<ListID>80000002-1378850266</ListID>
<FullName>Non</FullName>
</SalesTaxCodeRef>
<Invoiced>0</Invoiced>
<IsManuallyClosed>false</IsManuallyClosed>
</SalesOrderLineRet>

现在这是有道理的,那么我看看SalesOrderMod的qbxml以及我看到的订单项部分:

<SalesOrderLineMod> <!-- optional -->
<TxnLineID >IDTYPE</TxnLineID> <!-- required -->
<ItemRef> <!-- optional -->
<ListID >IDTYPE</ListID> <!-- optional -->
<FullName >STRTYPE</FullName> <!-- optional -->
</ItemRef>
<Desc >STRTYPE</Desc> <!-- optional -->
<Quantity >QUANTYPE</Quantity> <!-- optional -->
<UnitOfMeasure >STRTYPE</UnitOfMeasure> <!-- optional -->
<OverrideUOMSetRef> <!-- optional -->
<ListID >IDTYPE</ListID> <!-- optional -->
<FullName >STRTYPE</FullName> <!-- optional -->
</OverrideUOMSetRef>
<!-- BEGIN OR -->
<Rate >PRICETYPE</Rate> <!-- optional -->
<!-- OR -->
<RatePercent >PERCENTTYPE</RatePercent> <!-- optional -->
<!-- OR -->
<PriceLevelRef> <!-- optional -->
<ListID >IDTYPE</ListID> <!-- optional -->
<FullName >STRTYPE</FullName> <!-- optional -->
</PriceLevelRef>
<!-- END OR -->
<ClassRef> <!-- optional -->
<ListID >IDTYPE</ListID> <!-- optional -->
<FullName >STRTYPE</FullName> <!-- optional -->
</ClassRef>
<Amount >AMTTYPE</Amount> <!-- optional -->
<InventorySiteRef> <!-- optional -->
<ListID >IDTYPE</ListID> <!-- optional -->
<FullName >STRTYPE</FullName> <!-- optional -->
</InventorySiteRef>
<InventorySiteLocationRef> <!-- optional -->
<ListID >IDTYPE</ListID> <!-- optional -->
<FullName >STRTYPE</FullName> <!-- optional -->
</InventorySiteLocationRef>
<!-- BEGIN OR -->
<SerialNumber >STRTYPE</SerialNumber> <!-- optional -->
<!-- OR -->
<LotNumber >STRTYPE</LotNumber> <!-- optional -->
<!-- END OR -->
<SalesTaxCodeRef> <!-- optional -->
<ListID >IDTYPE</ListID> <!-- optional -->
<FullName >STRTYPE</FullName> <!-- optional -->
</SalesTaxCodeRef>
<IsManuallyClosed >BOOLTYPE</IsManuallyClosed> <!-- optional -->
<Other1 >STRTYPE</Other1> <!-- optional -->
<Other2 >STRTYPE</Other2> <!-- optional -->
</SalesOrderLineMod>

所以看来我可以修改线条,但我不清楚我是否可以添加新线条。我错过了什么吗?事实是:订单项需要IDTYPE,而新项目不存在,这让我觉得不支持。

1 个答案:

答案 0 :(得分:5)

来自OSR - TxnLineID

TxnLineID  交易行的标识号。 (从v2.0开始支持TxnLineID。使用qbXML v1.0和v1.1时,TxnLineID始终返回为零。)

如果需要在事务Mod请求中添加新的事务行,可以通过将TxnLineID设置为-1来实现。

所以输入-1添加一行。

<SalesOrderLineMod>
  <TxnLineID>-1</TxnLineID>
  ... the rest of your new line item details here ...
</SalesOrderLineMod>