Entities and Workflow for Common Store 4 Processes


Entities

The following is a flow chart of the main entities involved in moving a tenant in SWS.

So an account can have multiple contacts and multiple rentals. A rental must have a primary contact (Contact Type = Account Manager) and can have additional secondary contacts. Site rules may require at least one secondary contact as well. A contact that is primary on one rental may be primary, secondary or not related at all to another rental on the account. The account name for personal accounts is the last name, first name of the first contact added to the account. For business accounts an account name should be specified. Each rental will be associated with the unit being rented. The unit has a number assigned by the organization and a primary key known as the Unit ID. The two are often confused. If you are displaying information to a tenant you will generally want to use the Unit Number. If you are renting or adjusting a unit in code the unit ID, as the item’s primary key is generally required.

Workflows:

Workflow Chart Code Sample

Finding A Unit and Dynamic Pricing

For a list of available unit types use GetSiteUnitData. This method will return a list of units of each available type in a site (a single unit representing all 10x10 climate controled, single unit representing all 5x5 exterior access, etc.) and optionally their associated available Promos/Discount/Rate Modifications. These pricing options must be set up in the PCD admin section of the UI to be available. The values required are list below:

Unit Information:

Creating An Account

For a brand new tenant call CreateNewAccount. This method will create the Account and at least one new contact, one new address and one new phone which will then be available to accept rentals. The values required are list below:

Account Information:

Making a Reservation/Creating a New Rental

Once you have either created a new account (see above) or located an existing account (SearchBy method) you can create a reservation/rental. First some terminology regarding reservations and rentals:

MakeReservation does all of the above including upgrading from one status to another.

The first step is displaying the available units. There are two options for this GetUnitData and GetSiteUnitData. GetUnitData returns ALL units in a site along with their pertinent information including ID’s and its version number which will be important when reserving the unit. This method allows a site to customize grouping, pricing and promos to their specifications. It means a little more work but things will come out exactly how the organization prefers. The only required parameter is the SiteID, the rest of the parameters allows for filtering the results and are all optional. GetSiteUnitData returns a single unit based on a pre-setup grouping. This grouping takes Width, Depth, Door, Climate, Access Type and Features values into account. For example if you have ten 5X5 units half that are climate controlled and half not. You will receive back, IF available, two units, one with climate control one without. You also have the option to include the best available promotion for each item selected. Again SiteID is the only required field. There are fewer filter options on this as the items have already been winnowed down. Also failing to indicate a desire for promos will default to false for performance purposes. Both methods return the information necessary to complete a reservation/create a new rental using the MakeReservation method.

MakeReservation requires the following:

MakeReservation will always return a QuoteID. If RentNow was selected there will also be a RentalID returned.

Making a Payment

We’ve created the account and we’ve made our unit selection now we have to pay for the thing. Making a payment is a Three Step process.

Step OneGetAssessments - This method retrieves a list of line items to be paid. Regardless if this is a new or existing rental and whether or not you already know the total due this method MUST be called. Assessments may or may not be in existence for the rental. Failing to call this process means you may not be paying for anything which will result in payment errors. The following are required:

The method will return a list of line items that are due for the requested timeframe. If the tenant has any CashCredits (escrow) that can be used for payment, they will also be listed here. Note: CashCredits are not automatically deducted from the total due.

Step TwoGetTotalDue – This step can be skipped if the items in GetAssessments are looped through and totaled. There are some rules to keep in mind for this option. Extended is the total due not including taxes for the assessment, a fulfilled amount indicates some payment has been made on the assessment and that will not be deducted from extended, finally any tax amount must be added in. If a cash credit is present the extended amount indicates the available balance that can be used toward payment. The following are required if the call is made (Note: These are the same fields as in GetAssessments and most will also repeat in MakePayment):

Step ThreeMakePayment – And you thought we’d never get here. MakePayment accepts the above data, some total data and three payment types. One or any combination of payment types is allowed (i.e., customer wishes to pay half cash, half on a card, or possibly split the payment between two cards, etc.).

The method will return a transaction ID if successful. The CashCreditApplied field has been deprecated.