SWS SellRetailWithAccountMultiple Method
Creates a retail assessment for multiple items and attaches it to an account. Once you have a response, you will need to call the GetTotalDue method. This will provide the total amount that needs to be paid using the MakePayment method. To add multiple different items to the account you will need to have an array of “SellRetailWithAccount” for each item that should be added to the account.
Parameters
Name | DataType | Is Required |
---|---|---|
AccountID | Long | Required |
Description | The account’s ID number to which the retail will be attached. This is returned when you use the CreateNewAccount method or can be retrieved with the SearchBy method. | |
Item | AVAIL_SITE_RETAIL_ITEMS | Required |
Description | The object containing the required item information. | |
Quantity | Integer | Required |
Description | The total number of items to be sold. | |
TaxExemptNumber | String | Optional |
Description | If the company or individual is tax exempt, enter their tax ID number here. |
Returned Parameters
Name | DataType |
---|---|
AssessmentID | Long |
Description | An assessment ID is created for every assessment set up in store. |
ErrorString | String |
Description | If the creation of the assessment failed this will give details as to why. |
RetailItemID | Long |
Description | The retail item’s ID number. |
Successful | Boolean |
Description | Indicates if the assessments were added successfully to the account (“True”) or not (“False”). |
Example
As with every method we need to pass in credentials. We do this with the LookupUser request object.
We will assume you have a web reference, let us name it SWS, in your Visual Studio project. At this point we need to define our objects. We will need the standard service object, a SellRetailWithAccountMultiple request object, and a SellRetailMultiple response object. We will also need SellRetailWithAccount request object as the above request takes an array of these items and we will need a response from the GetAvailableRetailItems method. We can define and create those like this:
// Create a request and response objects
SWS.WSSoapClient service = new SWS.WSSoapClient();
SWS.SellRetailWithAccountMultiple_Request request =
new SWS.SellRetailWithAccountMultiple_Request();
SWS.SellRetailMultiple_Response response;
SWS.SellRetailWithAccount_Request[] requestItems =
new SWS.SellRetailWithAccount_Request[1];
SWS.GetAvailableRetailItems_Request retailItemReq =
new SWS.GetAvailableRetailItems_Request();
Here is a sample code of the request object:
// SellRetailWithAccountMultiple Request
retailItemReq.SiteID = 123456;
requestItems[0].AccountID = 123456;
requestItems[0].Quantity = 2;
requestItems[0].Item =
service.GetAvailableRetailItems(user_request, retailItemReq).Details[0];
request.RetailItems = requestItems;
Finally we can call the method and pass across the login object and the request object to retrieve our requested information. It’s a good idea to do this in a Try Catch block.
' Call the method that will load the response object
try
{
response = service.SellRetailWithAccountMultiple(user_request, request);
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}
Note that if something goes wrong the service will respond with an exception. You will want to capture the message in the exception so it can be debugged.
For a full list of methods see SWS Methods.