SWS ReturnRetailItems Method
Processes returns for retail items based on the site rules. If the credit card option is chosen but fails to process through the card processor, a check will be mailed to the contact instead based on refund approval rules.
Parameters
Name | DataType | Is Required |
---|---|---|
contactInfo:AccountID | Long | Optional |
Description | The account’s ID number. | |
contactInfo:Address1 | String | Optional* |
Description | The first line of the address where the refund check will be sent or the address on the credit card where the funds will be returned. *This is required if using CHECK or CREDIT_CARD refund types. |
|
contactInfo:Address2 | String | Optional |
Description | The second line of the address where the refund check will be sent or the address on the credit card where the funds will be returned. | |
contactInfo:City | String | Optional* |
Description | The city of the address where the refund check will be sent or the address on the credit card where the funds will be returned. *This is required if using CHECK or CREDIT_CARD refund types. |
|
contactInfo:ContactName | String | Required |
Description | The name to whom the check should be made out or the name on the credit card where the funds are being returned. | |
contactInfo:Country | String | Optional |
Description | The country of the address where the refund check will be sent or the address on the credit card where the funds will be returned. | |
contactInfo:PostalCode | String | Optional* |
Description | The postal/ZIP code of the address where the refund check will be sent or the address on the credit card where the funds will be returned. *This is required if using CHECK or CREDIT_CARD refund types. |
|
contactInfo:State | String | Optional* |
Description | The state/province of the address where the refund check will be sent or the address on the credit card where the funds will be returned. *This is required if using CHECK or CREDIT_CARD refund types. |
|
OrgID | Long | Required |
Description | The organization’s ID number. | |
ReturnRetailData | ReturnRetailItem | Required |
Description | The object containing the details about the retail item/s being returned. Create a collection for each RetailObjectID being returned. | |
RefundType | RefundTypes | Required |
Description | The refund type for reimbursing the customer. Available values (Note: The site’s rules determine how a refund will be issued and not all values will be available for all refunds.):
|
|
RentalID | Long | Optional |
Description | The rental item’s ID number. Depending on your xml parser, you may have to pass in a ‘0’ to avoid getting an error. | |
SiteID | Long | Required |
Description | The site’s ID number. This can be found using the GetSiteList method. | |
TransactionID | Long | Optional |
Description | The original transaction’s ID number. Transaction IDs are system generated for each payment transaction that occurs in the system. If there is no transaction ID the transaction failed. The transaction ID is returned when any MakePayment method is used. |
Returned Parameters
Name | DataType |
---|---|
TotalRefundAmount | Decimal |
Description | The refund amount. This is automatically calculated by the Store application, based on the Refund rules for the site. |
RefundMessage | String |
Description | The message associated with the success or failure of processing the refund. This will provide additional information if needed. |
NewReturnTransactionID | Long |
Description | The transaction’s ID number. Transaction IDs are system generated for each payment transaction that occurs in the system. A blank or “0” response indicates the transaction failed. |
Example
As with every method we need to pass in credentials. We do this with the LookupUser request object.
We’ll assume you’ve got a web reference, let’s name it SWS, in your Visual Studio project. At this point we need to our objects. We’ll need the standard service object, a ReturnRetailItems request object and a ReturnRetailItems response object. As part of the ReturnRetailItems request object we also need ContactInfo object and an array of ReturnRetailItem objects. We can define and create those like this:
// Create a request and response objects
SWS.WSSoapClient service = new SWS.WSSoapClient();
SWS.ReturnRetailItems_Request request = new SWS.ReturnRetailItems_Request();
SWS.ReturnRetailItems_Response response;
SWS.ContactInfo contactInfo = new SWS.ContactInfo ();
SWS.ReturnRetailItem returnItem = new SWS.ReturnRetailItem();
Here’s my sample code of the Request object.
// Requests
contactInfo.AccountID = 123456;
contactInfo.ContactName = "John Doe";
contactInfo.Address1 = "123 Main St";
contactInfo.City = "My Town";
contactInfo.State = "CA";
contactInfo.PostalCode = "12345";
returnItem.RetailObjectID = 123456;
returnItem.Quantity = 1;
returnItem.ReturnReason = SWS.RetailReturnReasons.DEFECTIVE_VENDOR_RETURN;
request.OrgID = 123456;
request.SiteID = 123456;
request.TransactionID = 123456;
request.RefundType = SWS.RefundTypes.CREDIT_CARD;
request.ContactData = contactInfo;
request.ReturnRetailData = new SWS.ReturnRetailItem[] { returnItem };
Finally we can call the method and pass across the login object and the request object to return our retail items. 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.ReturnRetailItems(user_request, request);
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}
Note that if something goes wrong the service will respond with an exception. You’ll want to take a look at that message returned in that exception so it can be debugged.
For a full list of methods see SWS Methods.