SWS2 MakeReservation Method
Allows you to create a rental, create a quote/reservation or convert an existing quote/reservation to a rental. Improvements include: the gate timezone has been added to the contacts object, the PCD field requirements have been significantly reduced, flex fields are available, as are Market Code and Market Source, Inquiry Source will now accept all values including custom values and tax exempt information is also available. We have also improved the performance of the process over the SWS MakeReservation method.
See the New Rental/Reservation Workflow Chart for additional information on creating new rentals and reservations.
Parameters
Name | Data Type | Is Required |
---|---|---|
AcctID | Long | Required |
Description | The account’s ID number. This is returned when you use the CreateNewAccount method or can be retrieved with the SearchBy method. | |
CFlex1 | String | Optional |
Description | A custom field, set up by the organization, designed to hold additional account level information. This is displayed in the “Account Information” tab of the account in the Store application. | |
CFlex2 | String | Optional |
Description | A custom field, set up by the organization, designed to hold additional account level information. This is displayed in the “Account Information” tab of the account in the Store application. | |
CFlex3 | String | Optional |
Description | A custom field, set up by the organization, designed to hold additional account level information. This is displayed in the “Account Information” tab of the account in the Store application. | |
CFlex4 | String | Optional |
Description | A custom field, set up by the organization, designed to hold additional account level information. This is displayed in the “Account Information” tab of the account in the Store application. | |
CFlex5 | String | Optional |
Description | A custom field, set up by the organization, designed to hold additional account level information. This is displayed in the “Account Information” tab of the account in the Store application. | |
Channel | Integer | Optional |
Description | The method being used to create the rental. | |
Contacts: AddressID | Long | Required |
Description | The ID number of the primary contact’s address record. This is returned when using the AddNewAddress method. | |
Contacts: ContactID | Long | Required |
Description | The rental contact’s ID number. This is returned when using the CreateNewAccount or AddNewContact methods or you can search for it using the SearchBy method. | |
Contacts: GateCode | String | Optional |
Description | The gate code that will be assigned to the rental. This should match any currently existing rentals on the account. | |
Contacts: GateTimezone | String | Optional |
Description | Sets the time period that the tenant has access to the gates. See the gate settings for information. | |
Contacts: PhoneID | Long | Required |
Description | The ID of the contact’s phone number record. | |
Contacts: PrimaryFlag | Boolean | Optional |
Description | Indicates if the contact is the primary (“True”) or not (“False”). | |
InquirySource | Integer | Optional* |
Description | Indicates how the customer heard about the site. This is a custom field, please contact the organization for a list of options. *Some organizations may require this field. Check the GetSiteRules – “Item Finder – Require Inquiry Source” rule for information. |
|
MarketCode | Integer | Optional |
Description | Indicates how the customer heard about the site. *Not available at all sites. |
|
MarketSource | String | Optional |
Description | Indicates how the customer heard about the site. *Not available at all sites. |
|
Notes | String | Optional |
Description | Any notes that need to be attached to the account. Max string length of 4000. | |
OverrideReservationAmount | Decimal | Optional |
Description | If you would like to charge a different amount than the default for the reservation, enter the amount here. | |
Pcds: Active | Boolean | Optional |
Description | Indicates the promotion being added is active. | |
Pcds: DiscountAmount | Decimal | Optional |
Description | Indicates the amount of the discount being added to the quote/reservation/rental. | |
Pcds: PCDID | Long | Optional |
Description | Indicates the ID of the promotion/discount being added to the quote/reservation/rental. | |
Pcds: ReasonCode | Integer | Optional |
Description | The numeric value as to why you are applying the discount. | |
Pcds: ReasonDescription | String | Optional |
Description | The textual value as to why you are applying the discount. | |
Price | Decimal | Optional |
Description | If you are renting the item at a rate other than the current rent rate or street rate, enter that amount here. This should not include any discounts as the discount will be calculated separately. | |
QuoteExpiration | DateTime | Optional |
Description | If this is a quote/reservation, this will set the expiration date. | |
QuoteID | Long | Optional |
Description | Allows you to convert the quote/reservation ID to a rental. | |
QuoteStartDate | Long | Optional |
Description | No input required. The system will set the start date as today. | |
QuoteType | String | Required |
Description | Indicates what type of quote/reservation/rental this will be. Available values:
|
|
RentNow | Boolean | Required |
Description | Indicates if this will be a rental (“True”) or a quote/reservation (“False”). | |
SiteID | Long | Required |
Description | The site’s ID number. This can be found using the GetSiteList method. | |
TaxExemptExp | DateTime | Optional |
Description | The date that the customer tax ID for exempt status expires. | |
TaxExemptID | Integer | Optional |
Description | The customer’s tax ID if they are tax exempt. | |
UnitID | Long | Required |
Description | The unit’s ID number. This is returned when you use any of the GetSiteUnitData calls and is maintained through rentals. |
|
Version | Integer | Required |
Description | The unit’s version number which serves to prevent duplicate use of the unit. |
Returned Parameters
Name | Data Type |
---|---|
QuoteID | Long |
Description | The quote’s ID number. |
RentalID | Long |
Description | The rental item’s ID number. |
Example
We’ll assume you’ve got a web reference, let’s name it Store, in your Visual Studio project. At this point we need to reference our objects. We’ll need the standard service object, a MakeReservation_Request request object and at least one MakeReservationContacts object. We can define and create those like this:
// Create a request and response objects
StoreServiceClient client = new StoreServiceClient();
MakeReservation_Request request = new MakeReservation_Request();
MakeReservationContacts contact = new MakeReservationContacts();
As with every method we need to pass in credentials. We also set up the parameters for our request.
client.ChannelFactory.Credentials.UserName.UserName = "user"; client.ChannelFactory.Credentials.UserName.Password = "pass"; client.ChannelFactory.Credentials.SupportInteractive = true; contact.ContactID = 123456; contact.AddressID = 123456; contact.PhoneID = 123456; contact.GateCode = "1234"; contact.GateTimezone = "0"; contact.PrimaryFlag = true; request.SiteID = 123456; request.AcctID = 123456; request.Channel = 999; request.Contacts = new MakeReservationContacts[] { contact }; request.InquirySource = 2; request.Price = 50m; request.QuoteType = 1; request.RentNow = true; request.UnitID = 123456; request.Version = 34;
Finally we can call the method and pass across the login object and the request object to create the reservation. It’s a good idea to do this in a Try Catch block.
try
{
// Call the method that will load the response object
MakeReservation_Response resp;
resp = client.MakeReservation(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 SWS2 Methods.