Home > API General, Refunds, Retail/Merchandise > SWS ReturnRetailItems Method

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.):

  • CASH_CREDIT
  • CASH
  • CREDIT_CARD
  • CHECK
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.

  1. No comments yet.
  1. No trackbacks yet.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Google photo

You are commenting using your Google account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s

%d bloggers like this: