Hi Joshua,
it's a long time ago and I hope you were able to solve your issue. For others who want to change prices in sales orders the following might be helpful:
It is not possible to set the price of a sales order in the create webservice call. You need to create the sales order first and then call the webservice a second time with actionCode="02" (Update).
The following is an extract from the sales order webservice documentation:
Node – PriceAndTaxCalculation
A price and tax calculation is the summary of the determined price and tax components for a business case. A specification of the general procedure for price and tax determination and valuation using attributes those are characteristic or relevant for the whole object.
Note: PriceAndTaxCalculation cannot be created but can only be modified. So this means that if the customer wishes to change the Discount or Freight charge, then the customer has to create the order first and then make a second web-service request to the update this sales order with the pricing information that is to be changed.
For the update you only need to send the ID of the sales order, the IDs of the items and the PriceAndTaxCalculation node.
The following would be an easy XML example for the update call:
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:glob="http://sap.com/xi/SAPGlobal20/Global"> <soapenv:Header/> <soapenv:Body> <glob:SalesOrderBundleMaintainRequest_sync> <SalesOrder> <ID>1234</ID> <Item actionCode="02"> <ID>10</ID> <PriceAndTaxCalculationItem actionCode="02"> <ItemMainPrice> <Rate> <DecimalValue>5.00</DecimalValue> <CurrencyCode>USD</CurrencyCode> </Rate> </ItemMainPrice> </PriceAndTaxCalculationItem> </Item> </SalesOrder> </glob:SalesOrderBundleMaintainRequest_sync> </soapenv:Body></soapenv:Envelope>
If you need further help with webservices or C#, let me know.
Best regards,
Felix