Difference between revisions of "Invoice Manager"
(→Test Cases) |
(→Test Cases) |
||
Line 1,394: | Line 1,394: | ||
# Check and a deposit | # Check and a deposit | ||
# Credit Card and a deposit | # Credit Card and a deposit | ||
− | ; 79 - Item Pay Method Compatibility, On-Demand If Available : If an item is marked on-demand if available, | + | ; 79 - Item Pay Method Compatibility, On-Demand If Available : If an item is marked on-demand if available and contains no items marked 'on-demand required', all orders containing that item can be purchased with any method with two exceptions. First if purchasing online, the customer will only be presented with and only process ondemand methods and second if the purchase is unattended (batch processed) it will use ondemand options on the account if available for both ondemand and billing accounts. |
# If an account has an ondemand options, an API call from applications like meeting registration will only provide on-demand options | # If an account has an ondemand options, an API call from applications like meeting registration will only provide on-demand options | ||
# If an account has an ondemand options, background processing will only use those options | # If an account has an ondemand options, background processing will only use those options | ||
Line 1,401: | Line 1,401: | ||
# Invoice Manager manual payment will not be limited in anyway, but should include a message showing the administrator if an item in the order has this setting | # Invoice Manager manual payment will not be limited in anyway, but should include a message showing the administrator if an item in the order has this setting | ||
# My Account payment screen follows the api call restrictions listed here. | # My Account payment screen follows the api call restrictions listed here. | ||
− | + | ; 80 - Item Pay Method Compatibility, On-Demand Required : If an item is marked on-demand required, all orders containing that item must be purchased ondemand, except if purchased with manual invoice and/or paid with manual payment. | |
− | + | ||
− | ; 80 - Item Pay Method Compatibility, On-Demand Required | + | |
# If an account has an ondemand options, an API call from applications like meeting registration will only provide on-demand options | # If an account has an ondemand options, an API call from applications like meeting registration will only provide on-demand options | ||
# If an account has an ondemand options, background processing will only use those options | # If an account has an ondemand options, background processing will only use those options |
Revision as of 12:59, 12 May 2016
Invoice Manager provides the underlying framework for most online transactions, including Account Management, automated billing, account reporting, and asset reporting. It includes both automated and manual billing features. Other addon collections such as the Ecommerce Cart and Membership Manager use the common Invoice Manager framework to provide a consistent commerce and reporting interface.
Contents
- 1 Getting Started
- 2 Terms
- 3 Roles
- 4 How-To
- 4.1 How to setup Subscription Renewal Notifications
- 4.2 How to create a link directly to Subscriptions or Profile?
- 4.3 How to apply a credit memo
- 4.4 How to add a new account
- 4.5 Create Manual Invoice
- 4.6 Creating Manual Charges or Credits
- 4.7 How to Close Accounts
- 4.8 Sending Manual Invoices or Statements.
- 4.9 How to change an account primary or billing contact.
- 4.10 How to add someone to the account primary or billing contact.
- 4.11 How to remove someone from an account.
- 5 References
- 5.1 Purchase Process
- 5.2 Settings
- 5.3 Pay Methods
- 5.4 Pay Options
- 5.5 Ondemand Payments
- 5.6 Purchase Process Settings
- 5.7 Invoice Settings
- 5.8 General Ledger Transaction Exporting
- 5.9 Exporting a Download File
- 5.10 Reports
- 5.11 Managing Accounts
- 5.11.1 Account List Screen
- 5.11.2 Account Detail Screen
- 5.11.3 Account Contacts
- 5.11.4 Account Contact Types
- 5.11.5 On Demand Payment Types
- 5.11.6 Purchase History Tab
- 5.11.7 Subscriptions Tab
- 5.11.8 Messages Tab
- 5.11.9 Transactions Tab
- 5.11.10 Organizations and Users
- 5.11.11 Organizations Tab
- 5.11.12 User Tab
- 5.11.13 How to add users to an account
- 5.12 Managing Items and Item Categories
- 5.13 Tools
- 5.14 My Account
- 5.15 Developer Resources
- 5.16 Data Structure
- 6 Test Cases
- 7 Use Cases
- 8 Revision History
Getting Started
To install Invoice Manager please contact Contensive.
To use Invoice Manager, go to the /admin backend and open tools in the Navigator. Click Invoice Manager to open.
To Add an account, click the Add button on the main account list page. Enter at least a unique account name and hit save. To modify an existing account, click on the account in the account list to screen see the account detail screen. Account features can be edited here, and more advanced features are accessible through the Edit link. Account contacts listed on the account detail screen can be selected from anyone associated with the account. To edit account contact details, click the edit next to the name.
Terms
- Account
- The entity with which transactions are made.
- Account user
- A person listed in the Users tab of the Account screen. Everyone in this list receives account subscriptions.
- Account purchaser
- An account user who can purchase online using the account's purchasing rights. This is controlled by setting the account drop-down in the person's record. All account purchasers should also be added to the account users list. The system will automatically, periodically add all purchasers to the account user's list.
- Account Terms
- Days to Pay (for billing accounts only) -- this is the number of days after the purchase date that the customer has to pay.
- Account Transaction
- A log that records previous transactions.
- Account Transaction Document
- A list of Account Transactions exported as as one group.
- Anniversary Date
- The anniversary date is the upcoming date which represents another year of membership. When the account pays for a membership invoice that covers a period beginning on or past the Anniversary Date, the Anniversary Date is automatically set to the next year and the account is added to the Membership Kit Fulfillment report. For example, if the Anniversary Date is 2/5/2010 and a membership invoice is paid which covers 2/1 to 2/28, the Anniversary Date does NOT change. In this case, the next invoice covering 3/1/2010 to 3/30/2010 would automatically change the Anniversary Date to 2/5/2011. Another example, if the Anniversary Date is 5/1/2012 and a membership invoice is paid that covers 5/1/2012 to 5/31/2012, then the Anniversary date DOES change because this invoice period begins on (or after) the Anniversary Date.
- Completed Order
- An order that the customer has indicated is ready to purchase.
- Canceled Order
- An unpaid order that is marked to cancel
- Cancellation Grace Period
- Settable in Membership Settings, this is the number of days after the Grace Period that the account will remain expired and users will NOT have site privileges before the membership is cancelled, and membership invoices are cancelled.
- Charged Through Date
- This is the last date that has been charged to a subscription or membership. If the charge is paid, this is the last date that the subscription is valid. The subscription expires on the next day, which means the subscription is expired and cannot be used on the next day.
- Deferred Transactions
- When an invoice is paid, an account transaction is created. If the item has been configured with a differed transaction, a payment transaction is created between revenue and the deferment G/L account and deferred transactions are created in the Account Deferred Transactions table with future dates. For each deferred transactions, on its date, it will be removed and an equivalent account transaction will be created. Items are configured to create deferred transactions by specifying the deferment account, the deferment date, and the number of deferment transactions needed. For instance, you can defer a meeting payment until the meeting date, or defer an annual membership payment to show membership income on a monthly basis.
- Due Date
- when payment is expected.
- Expiration Date
- The last date of the current membership's period. On the following day, this account will be expired if it is not renewed. The Grace Period starts on the day after the Expiration Date. The Cancellation Grace period starts the day after the Grace period. For example, if a membership expires on March 15th, the membership is valid on March 15th, and is expired on march 16th.
- Fulfillment
- The process of delivering goods to the customer as a result of an order.
- Grace period
- Settable in Membership Settings, this is the number of days after the account expires the users still have access to membership privileges. When the Grace Period is over, users will be removed from groups.
- Invoice
- The document generated from an order record, generally unpaid.
- Invoice Date
- the date that the order is billed.
- Items
- Things that can be purchased.
- Join Date
- The date when the account last purchased a membership type and previously had no membership type. If an account has no membership type, and one is purchased, this date is set. It is not set for renewing accounts
- Membership Account
- An account from Invoice Manager, that has a valid Membership Type set
- Membership Types
- A membership type is a special case of an item. When purchased, the membership type is saved in the account record enabling membership features such as the subscription group. An account can only have one membership type at a time so purchasing another will change the account to the new membership type. If the membership type has a subscription type, a membership expiration and a subscription will be added to the account. If the subscription type is empty or perpetual, there will be no expiration date. This account subscription will be managed by the system to automatically renew the membership on the account's membership expiration date. In this case, the term of the new membership is determined by the membership type's subscription type, either periodic, calendar or perpetual.
- Order
- represents a purchase in any stage of completion.
- Paid Order
- A completed order that is paid
- Payment Method
- Accounts are set to one of four possible payment methods, No-Payment, On-Demand, Bill, and Bill and Fulfill.
- Payment Options
- Payment options are the choices available for payment to users of an account. An account may have two credit cards on file. If a user of the account came online to purchase, they could choose from either of these payment options.
- Pay Method Compatibility
- some items are only compatible with On-Demand payments (where payment is required before the transaction is complete).
- Prebill Days
- (for recurring purchases and billing accounts only ) -- this is the number of days before the purchase date that the recurring purchase is to be invoiced.
- Purchase Date
- For credit card purchases, this is just the date of the purchase. For billing, this is the date that the purchase should take place. For instance, for a service, this is the date the service will start. For a membership, this is when the membership starts. For online purchases, this is the date of purchase. For recurring purchases with no pre-bill period this is the invoice date.
- Receipt
- The document generated from an order record, generally paid.
- Subscription Item
- An item that adds account users into a subscription group. The details of the subscription are configured in the subscriptions tab of the item, like if it expires and it is renews.
- Subscription Duration Days
- The number of full days (midnight to midnight EST) granted for a subscription.
- Subscription Duration Months
- The number of months granted for a subscription, starting at the next midnight.
- Subscription Renewal Notification
- An email sent to ondemand accounts in advance of a subscription renewal. This notification is optional.
- Subscriptions (a.k.a. Recurring Purchase)
- Subscription items purchased by an account. A list of subscriptions in maintained for each account. A subscription is added when a subscription item is purchased. If a subscription includes a group, it is used to verify all account user's are put in the group. A subscription can also initiate a new customer charge if the subscription item is marked to renew on expiration. The
Roles
- Administrator
- The site user with administrator rights who configures and maintains the ecommerce system.
- User
- Anyone with a record in the People table.
- Customer
- The user who purchases online, creating an invoice, paying, etc.
- Account Primary Contact
- The user selected as the contact for the account.
- Account Customers
- Users with the account selected in the billing tab of their people record. These people can purchase online using the account.
- Billing Contact
- The user selected in the Accounts Billing Contact. This user receives account notifications such as invoices and statements
- Carbon Copy Contact
- (Optional) The user who receives a duplicate of all notifications.
How-To
These are typical procedures that help with general tasks.
How to setup Subscription Renewal Notifications
A subscription renewal notifications can be sent optionally to accounts before subscription items are renewed.
- Renewal notifications are sent to the billing contact of an accounts. Go to account details and verify the billing contact is selected and has a valid email address.
- Go to ecommerce settings, notifications tab and set the Subscription Renewal Notification Period to the number of days ahead of charging you want to notify the user. Leave blank to disable notifications
- Also in the Subscriptions tab, set the email body you would like to send. The following text will be replaced when the email is sent:
- $item$ is replaced with the name of the subscription item
- $name$ is replaced with the name of the billing contact
- Go to the subscription tab of the item and verify Send Renewal Notification is checked.
- The renewal notification is only sent once during the renewal phase, so verify the subscriptions Date of Last Renewal Notice is either blank, or set to a period prior to the current renewal cycle.
How to create a link directly to Subscriptions or Profile?
Create a link alias for the page that contains the My Account addon. In this example we will assume /MyAccount is the link alias you created, so the link to the my account addon page will be http://www.mySite.com/MyAccount .
http://www.mySite.com/MyAccount?profile will take the user to the profile form
http://www.mySite.com/MyAccount?subscriptions will take the user to the manage subscriptions form
http://www.mySite.com/MyAccount?payment will take the user to the payment form
http://www.mySite.com/MyAccount?history will take the user to the account history form
How to apply a credit memo
A credit memo is reversal of a charge and not a payment. Create an invoice when a service is rendered. Create a payment when the customer pays for an invoice. If the service was never rendered, you can cancel the invoice. But if the service was partially rendered and you need to return part of the invoice you have two options, either cancel the invoice and create a new invoice for the corrected service, or create a credit memo that reverses the undelivered portion of the invoice.
You apply the credit memo at the time the remainder of the invoice is paid. So if you create an invoice for $100 for services rendered, then only deliver $60 worth of the services, you can create a credit memo for $40. When the customer pays the $60, go to the Manual Payments tool, enter the payment of $60 and apply it to the $100 invoice and the $60 Credit memo.
How to add a new account
Login and go to ADMIN, MANAGE ADD-ONS, ECOMMERCE, INVOICE MANAGER. Click ADD at the top of the ACCOUNT LIST. Type in the ACCOUNT NAME and click OK.
Go to account list in INVOICE MANAGER. Find the new account and open it. In the ORGANIZATIONS tab add the organization associated with the account. Then in the DETAILS tab you will see a list of all people associated with the organization in the PRIMARY CONTACT and BILLING CONTACT fields. Select one in each field and also set up the CHARGE METHOD, BILLING TERMS and NOTIFICATION METHOD. Click SAVE.
Create Manual Invoice
To create a manual invoice, login and click on ADMIN, MANAGE ADD-ONS, ECOMMERECE, INVOICE MANAGER.
Next select the TOOLS tab and click on CREATE INVOICE.
Here you will select the account, give the invoice a title (for internal use only), choose payment type, what to do if the credit card fails, and set a shipping charge (optional).
You will also be able to include a custom message on the invoice when it is unpaid and after it is paid.
Finally you will select an item and quantity, or you can enter an item description and price for something not currently in the system.
Click CREATE INVOICE to generate the invoice.
Creating Manual Charges or Credits
Then select CREATE CREDIT MEMO, CREATE ACCOUNT CHARGE or CREATE MANUAL INVOICE. In each case you will select the account from the drop down menu. In each case you will enter the amount and all other information requested. Click the "CREATE" button at the bottom of the screen to create the desired charge or credit.
Here you can enter a custom message in the UNPAID INVOICE MESSAGE and PAID INVOICE MESSAGE fields. When you open the invoice, you will see the messages you created.
You can also use the TOOLS tab to process a batch of pending transactions by clicking on PROCESS BATCH.
How to Close Accounts
Click on the MANAGE ADD-ONS folder. Next click on the MEMBERSHIP MANAGER folder and then click on MEMBERSHIP MANAGER. From here you will click on the INVOICE MANAGER tab. You will see a list of all accounts or only open accounts if you check the OPEN ONLY box. To close any accounts, click the check box by the account name and click on CLOSE ACCOUNT from the menu.
Sending Manual Invoices or Statements.
If you need to send a manual invoice or statement, click on the MANAGE ADD-ONS folder. Next click on the MEMBERSHIP MANAGER folder and then click on MEMBERSHIP MANAGER. From here you will click on the INVOICE MANAGER tab. Next click on the NAME of the account and the PURCHASE HISTORY tab for that account. Click on the box next to any invoices you want to send and then click SEND INVOICES. If you want to send a statement, which shows all outstanding charges for the account, click the SEND STATEMENT button.
If you need to send statements to multiple accounts, click on ECOMMERCE and then INVOICE MANAGER. Place a check in the box next to all accounts you want to receive a statement. Next click SEND STATEMENTS.
How to change an account primary or billing contact.
Open invoice manager, locate the account in the list and click the edit icon. On the details tab are select lists for the account primary contact and the account billing contact. Choose someone from this list and click save.
These select lists include everyone in the users' tab for the account plus the person currently selected in the drop-down. That means if you select someone and later they are removed from the users' list, they will remain in the contact list until you select a replacement.
How to add someone to the account primary or billing contact.
Open invoice manager, locate the account in the list and click the edit icon. Go to the User's tab and verify the person has been added to the account. If they have not, click the add button and add them to the users list and click save.
On the details tab are select lists for the account primary contact and the account billing contact. Choose someone from this list and click save.
How to remove someone from an account.
There are four possible associations between a person and an account that should be verified.
- If they are the primary or billing contact, you must select someone else.
- If they are an individual member, you must remove them from the account on the account's User page.
- If they are a company member, you have to edit their people record and change (or remove) the organization.
- In rare cases, they may be configured to purchase online with the account. Change their billing account in their people record in the billing tab.
Open invoice manager, locate the account in the list and click the edit icon. If the person is the billing or primary contact, select a replacement and click save.
Go to the User's tab and locate the person. Click edit to open the person's People record. Verify their organization is set correctly (remove from the account's organization if necessary). On the Billing tab, verify the Account is selected correctly (remove from the account if necessary).
Click OK on the people record should return you to the invoice manager page. If not, go to invoice manager and select the account.
Go to the user's tab. If the person was an individual user (associated to the account as an individual not as a company employee), you can remove them by checking the box next to their name and clicking Remove Selected User.
References
Purchase Process
- Join Date
- The date when a membership or subscription first becomes effective. It is the first full date following the purchase. If the purchase takes place at 5pm on the 14th, the subscription starts at payment, but the join date becomes the next full date, the 15th.
- Bill Date
- The date will the invoice is created.
- Effective Purchase Date
- The date when the purchase should take place. For example, if you buy a monthly subscription that starts on the 15th of the month, that means the join date was the 15th. The expiration date will be the 14th of the next month and the effective purchase date for the renewal is the 15th.
- Invoice Date
- When the invoice is sent. For subscriptions this is the effective Purchase Date minus the prebill period. If Prebill days in 1, the invoice is sent one day before the effective purchase date.
- Expiration Date
- The last day of the subscription period.
- Invoice Due Date
- The day invoice payment is requested. For subscriptions, this is the effective purchase date plus the account terms.
Settings
To specify settings for the Invoice Manager, log in and go to ADMIN. Click on ECOMMERCE, INVOICE MANAGER and then click on the SETTINGS tab. Here you specify days allowed to pay invoices, days in advance to pre-bill certain accounts, setup for faxed invoices and information about who receives notification at your organization about any ecommerce transactions.
Notifications
Email notifications can be sent for several purposes
Paid Order Notification
To receive a copy of every receipt (paid order), add your user record to the group selected in the notification tab in Settings called "Paid Order Notification Group"
Placed Order Notification
To receive a copy of every order as it is placed, add your user record to the group selected in the notification tab in Settings called "Placed Order Notification Group"
Denied Payment Notification
Denied payment notices are sent to customers when their On Demand payment method fails during a batch process. In the Notifications tab of Settings, you can customize the text in emails sent for denied payments and late notices.
Late Notice Notification
Late notice notifications are sent when Invoices (unpaid orders) go beyond the Payment Due date. In the Notifications tab of Settings, you can customize the text in emails sent for denied payments and late notices.
Fulfillment Notification
Fulfillment notifications are sent when a purchase is ready to send, and would typically be sent to the individual responsible for sending the items purchased. Each item includes in its fulfillment tab a checkbox to enable fulfillment notification and a group to be used for the email. To receive fulfillment notification, set an item to a fulfillment group, enable the items fulfillment notification, and add yourself to the group.
Billing Fulfillment Notification
In addition to the Fulfillment notification, you can also have a notification sent to the ecommerce Administrators when an order is ready to fulfill. To receive the billing fulfillment notification, enter a custom message in the Fulfillment tab of each item.
Pay Methods
Pay Methods are four basic ways to process charges. Accounts are configured to use one of these methods, based on your credit with them. The default is Pay on Demand.
- No Payment Necessary - All orders will be automatically paid as $0
- Pay on Demand - A payment is needed at the time of the purchase. For online purchases, an Pay-on-Demand account will receive a credit card or online check form. For batch purchases, a credit card or echeck must be saved in the account.
- Bill and fulfill on payment - Send a bill to the account. Fulfill (ship) the order when payment received
- Bill and fulfill immediately - Send a bill but ship the order now
Pay Options
Pay Options are the choices offered to customers online, and are created by the administrator. Each Pay Option includes a Pay Method which describes how the payment will be processed if selected. Online customers will only see the options that apply to them, based on their account settings.
- Pay Option set to No Payment - only available if account is set to no payment. if your account is set to No Payment, then all invoices are processed without payment and fulfillment is applied appropriately.
- Pay Option set to Pay on demand - available to everyone. If you account is setup Pay On Demand, then you must submit a payment at the time the order to be completed.
- Pay Option set to Bill and fulfill on payment - If your account is set to Bill and Fulfill on payment, then when you complete your order, an invoice is generated and sent to you billing contact. When payment is made, the fulfillment process is triggered and your order is shipped (or fulfilled appropriately)
- Pay Option set to Bill and fulfill immediately - If your account is set to Bill and Fulfill on immediately, then when you complete your order, an invoice is generated and sent to you billing contact and the fulfillment process is triggered to ship your order.
Ondemand Payments
OnDemand payments are processed directly to a payment processor with either a credit card or echeck.
Supported Payment Processors
- Authorizenet
- We implement Payment Transactions (formerly AIM). To setup Authorizenet you must first have an authorizenet account. The follow the following steps.
- Select AuthorizeNet in the Online Payments Tab of Ecommerce Settings
- Go to the AuthorizeNet tab and set the server (typically https://secure.authorize.net/gateway/transact.dll)
- set Login ID : From the AuthorizeNet Settings page. The username for your account, typically a cryptic alphanumeric string around 10 characters long.
- set Transaction Key : From the AuthorizeNet Settings page. A key unique to each AuthorizeNet Store, typically a cryptic alphanumeric string around 16 characters long.
- The following defaults are preset:
- x_version=3.1
- x_relay_response=False
- x_delim_data=True
- x_delim_char=,
- Verisign
- Your Pay
- My Virtual Merchant
- Sage Payment Services
- Paypal Payments Pro
- Manual
- Accept online credit card transaction and process manually
Credit Card Payments
Echeck Payments (ACH)
Echecks are treated as an On Demand payment, just like credit cards. If you have EChecks configured, the online payment form will automatically include an option to pay by credit card or online check.
An account configured for On-Demand payments can be configured to pay by Echeck as well as credit card for manual invoices or recurring purchases.
To configure online check payment:
- Go to the Invoice Manager
- Click settings in the menu to see the settings page
- Click the Online Payments tab to open the online payment options
- You must select a processor that supports online checks, currently that is only Authorizenet
- Go to the processor's tab and check the Accept Online Checks checkbox
Purchase Process Settings
The purchase process involves adding items to an order, completing and order to create an invoice, paying an invoice to create a receipt, and fulfilling an order.
The terms used to describe these are defined in the terms section and an example follows
Example:
recurring annual membership, expires January 31
prebill set to 30 days
days to pay set to 10 days
Purchase Date = February 1
Invoice Date = January 2 (30 days before the purchase date)
Date Due = February 11 (10 days after the Purchase Date)
Invoice Settings
The system creates invoices based on Invoice Templates, editable through the Data tab in Invoice Manager. You can have as many invoice templates as you need, and each account can be assigned to either the default invoice, or a custom invoice.
- Invoice Email Subject
- For manual invoices, this is the Invoice Title. For invoices sent from recurring purchases and online purchases, the subject line is either "Invoice #1234" or "Receipt for paid Invoice #1234", where 1234 represents the invoice number.
When invoices are generated, special words in the invoice template are replaced with their respective values. They are as follows:
- $invoiceNumber$
- The order number
- $invoiceDate$
- The date of the actual purchase
- $accountNumber$
- The internal account number used for Invoice Manager. This is the column ID on the Account List
- $legacyAccountNumber$
- If value populated in the Legacy Account Number field for each account record
- $invoiceTax$
- The tax charge on the order
- $invoiceShipping$
- The shipping charge on the order
- $itemTotalAmount$
- to total due for this order
- $billName$
- the value of the Order's Bill Name field
- $billEmail$
- the value of the Order's Bill Email field
- $billFax$
- the value of the Order's Bill Fax field
- $billCompany$
- the value of the Order's Bill Company field
- $billAddress$
- the value of the Order's Bill Address field
- $billAddress2$
- the value of the Order's Bill Address Line 2 Name field
- $billCityStateZip$
- A value created from the values of the Order's Bill City, State and Zip fields
- $billFullAddress$
- A value created from the bill address values of the Order's record
- $contactName$
- the value of the order's Contact name
- $contactEmail$"
- the value of the order's Contact email
- $contactFax$"
- the value of the order's Contact Fax
- $contactCompany$
- the value of the order's Company field
- $contactAddress$
- the value of the order's Address field
- $contactAddress2$
- the value of the order's Address Line 2 field
- $contactCityStateZip$
- A value created from the values of the Order's Contact City, State and Zip fields
- $contactFullAddress$
- A value created from the contact address values of the Order's record
- $accountBalanceBeforeInvoice$
- The balance on the account before the order was completed. This amount only reflects the balance at the time of the invoice and should ONLY be used if the invoice will be send only once. As the account is padi, this amount is NOT updated.
$accountBalanceAfterInvoice$ : Similar to accountBalanceBeforeInvoice
- $amountDue$
- the balance to be paid on the invoice. If the invoice is paid, this amount is $0.00
- $terms$
- the account terms.
- $paymentDetail$"
- This reflects the payment status of the invoice, like Paid.
- $dueDate$
- the due date for the invoice, calculated based on the account terms.
- $invoiceTotal$
- The total for this invoice
The display of each line item of the invoice depends on the following
- The quantity and item description
- If the invoice is a manual invoice, the description can be manually entered
- If the item has no charge, it may be configured to hide the invoice line
- if the item is part of a bundled set of items, the bundled items may be hidden with a setting on the bundling item
- if the line is created with a recurring purchase, it includes the period of time covered by the recurring purchase.
General Ledger Transaction Exporting
The system maintains a General Ledger account list and General Ledger Transaction table solely for the purpose of exporting transactions.
- General Ledger Accounts
- General ledger Accounts are a simple list of Account Names and Numbers setup in the system that should match those in the receiving system. After setting-up General Ledger Accounts, go to Ecommerce Settings, to the GL tab and verify each of the hard-coded GL Accounts are set as needed.
- General Ledger Transactions
- General Ledger transactions are created each time an accounting event occurs, like a purchase or a payment. The details of the transaction depend on the General Ledger Post Method set for the invoice.
- General Ledger Posting Methods
- Items include settings that dictate how invoices that include them will be posted. If an invoice contains any items with non-Normal posting methods, the entire invoice becomes Cash-Basis. Any items in teh order set as normal will be posted cash-basis. Items other than normal will be posted as they are selected. Shipping and Tax will be posted Cash-Basis.
House Account Orders
All items within a house account invoice have no charge, and the entire invoice is treated as a cash sale with no defering income, regardless of the post method set on any items.
- CREDIT: item's income GL account
- DEBIT: Misc Adjustments GL account
Posting Method: Normal
- Charge (invoice)
- CREDIT: item's income GL account
- DEBIT: Accounts Receivable GL account
- Payment
- CREDIT: Accounts Receivable GL account
- DEBIT: Cash or Deposit GL account
- Credit Memo
- CREDIT: Accounts Receivable GL account
- DEBIT: Misc Adjustments GL account
- Cash purchases - when a normal item is charged and paid at the same time.
- CREDIT: item's income GL account
- DEBIT: Cash or Deposit GL account
- Deposit - when a payment is received and not applied to a charge.
- CREDIT: deposit GL account
- DEBIT: Cash GL account
Posting Method: Proforma
Proforma orders do not post GL entries until they are paid.
- Charge (invoice)
- no GL entries posted
- Payment
- CREDIT: item's income GL account
- DEBIT: Cash or Deposit GL account
Posting Method: Proforma - Defer to Date
Proforma - Defer date orders do not post GL entries until they are paid. On the payment date, the income is posted to a defer account. Then on a specific date, the defer account is posted back to the item's income account. This can be used to defer the income for a meeting until the meeting month or date.
- Charge (invoice)
- no GL entries posted
- Payment
- CREDIT: item's Defer GL account
- DEBIT: Cash or Deposit GL account
- On the Defer Date
- CREDIT: item's Income GL account
- DEBIT: item's Defer GL account
Posting Method: Proforma - Defer Over Term
Proforma - Defer Term orders do not post GL entries until they are paid. On the payment date, the income is posted to a defer account and a specified number of gl entries are made to future dates that recognize the item's income over a period of months. Each month more and more of the item's income will be recognized as the gl entries come due. For instance, annual dues can be set to a 12 month defer term, resulting in 1/12 of the dues being recognized each month.
If the purchase is a new purchase, the series of deferred income transactions starts on the purchase date. If the purchase is not a renewal (non-recurring purchase) then the series of deferred transactions starts on the payment date.
- Charge (invoice)
- no GL entries posted
- Payment
- CREDIT: item's Defer GL account
- DEBIT: Cash or Deposit GL account
- Each month for x months
- CREDIT: item's income GL account for total/x
- DEBIT: item's Defer GL account for total/x
Exporting a Download File
General Ledger Transactions may be converted to download files to be exported.
From Admin Home, user may go to Manage Add-Ons>>Ecommerce>>Invoice Manager
On the Account List page, go to Settings>>General Ledger
- Enable the Automatic Export field. When box checked, Ecommerce Export will run automatically to create download files.
With Automatic Export enabled,
- Select the Automatic Export Format from the drop down menu.
- Click OK to Save changes.
To view download files, go to Data>>Ecommerce Exports
- Edit export record and click on Export.csv file for review.
- If Automatic Export is not selected, you can run the report from Invoice Manager by clicking on TOOLS, EXPORT G/L TRANSACTIONS.
NOTE: The export will include all data before the current month that has not yet been exported. Each month is exported in a separate file.
Reports
To get reports from the Invoice Manager, log in and go to ADMIN. Click on ECOMMERCE, INVOICE MANAGER and then click on the REPORTS tab. Here you can get reports on account purchase history, account invoice aging and daily ecommerce activity. You can also manage the print queue here.
Purchase History Report
This report shows all charges on the accounts. It includes invoice date, paid date, account name, invoice #, invoice description and amount charged. You can sort the report by any of the columns, except description, and can filter for unpaid only or any of the sortable fields.
Invoice Aging
This report groups invoices by the overdue periods: current, past due, over 30, over 60 and over 90.
Daily Activity
Shows charges, house payments, check payments, auto payments and declined payments over the last 30 days.
Print Queue
The print queue lists documents waiting to be printed. After printing, user your back arrow to return to the print queue.
Top Buyers
Lists clients with the highest item totals. The report can be filtered for a specific category and/or date range.
Top Category Buyers
Lists top buyers in each item category. Can be filtered by date range.
Item Purchase
For each item available for sale, this report lists the number paid for, the number given away for free the total count and the total sales amount. It can be filtered by date range.
Item Category Purchase
This report shows purchases sorted by category. It includes account, item and amount for each purchase. The report can be filtered to look at only a certain category, account and/or date range.
General Ledger Account Summary
The total of all transactions by General Ledger Account during the selected period. This reports breaks transactions down into four categories: Proforma Paid Charges, Cash Paid Charges, non-Proforma Charges, and non-Proforma Payments. Proforma Paid Charges are charges from invoices marked with General Ledger Post Methods: Proforma, Proforma - Defer Date, and Proforma - Defer Term. These are reported only when paid. Cash Paid Charges are non-Proforma Charges that were charged and paid on the same calendar day. Non-Proforma Charges are invoices not marked Proforma. Non-Proforma Payments are payments made during the period on invoices not marked Proforma.
Managing Accounts
To manage accounts, log in and go to ADMIN. Click on Tools >> Invoice Manager.
Account List Screen
You will see a list of all accounts, or only open accounts if you click the check box. From this screen you have the option to ADD an account, CLOSE an account or SEND STATEMENTS to accounts by selecting them with a check mark.
Click on any account to see the Account Detail screen.
If you want to see the balance column on the accounts list page, make sure the following is set correctly:
Go to SETTINGS tab, INVOICE MANAGER tab,and check the second box that says "Include account balance in account list"
Account Detail Screen
To edit information in a specific account or to get more detailed information about that account, click on the account name to open the record for that account.
Account Contacts
Account contacts must come from one of the following:
- anyone with the account set in the billing tab of their people record.
- anyone associated to the account in Membership Manager People tab
- anyone with an organization set in their people record that is associated to the account with Membership Manager
- anyone set to an organization associated to the accountThe three contact types available in INVOICE MANAGER are:
Account Contact Types
The three contact types available in INVOICE MANAGER are:
- Primary Contact: Receives a copy of account invoices if there is no billing contact specified.
- Billing Contact: Receives a copy of all invoices sent to the account. (Invoices for free items are not sent to the account.)
- Carbon Copy (CC) Billing Contact: Receives a duplicate copy of all invoices sent to the account.
On Demand Payment Types
- On Demand payment methods are used to pay invoices generated by the system.
- If the account is configured as an OnDemand account, all invoices must be paid when the invoice is created.
- When an invoice is paid On-Demand, the primary method is attempted first, then the secondary, then each of the others entered until one succeeds.
Purchase History Tab
In the PURCHASE HISTORY tab you can also send any outstanding invoices or statements. Check the STATUS column to see what is paid and what is outstanding. The invoices not yet paid are listed as PAY in blue (and will say LATE PAY after 30 days); the paid invoices are listed as PAID with the pay date.
Subscriptions Tab
In the SUBSCRIPTIONS tab you can ADD, DELETE, EDIT or CANCEL subscriptions (aka recurring purchases).
- To EDIT a subscription, click on the ACCOUNT NAME in the SUBSCRIPTIONS tab. From here go to the STATUS tab to change the Date to Begin or Stop Charging, the Requested Cancel Date or the Date Charged Through. The Date Charged Through is the field used to generate the next invoice, which will begin charging the day after the charged through date. If you delete a subscription from the admin edit page, the appropriate account updates may take 24 hours to appear.
- To cancel or delete a subscription, check the box in the appropriate row and use the Cancel Subscription button or Delete Subscription button.
Messages Tab
The messages tab includes recent activity. Individual messages can be highlighted. Some automatic messages are highlighted as well, like when an account needs attention because of a declined on-demand purchase.
Transactions Tab
Click on the TRANSACTIONS tab to see a list of account activities. The Approved column in the transactions list is true if the transaction was approved (not whether or not the invoice was paid).
SETTING UP MULTIPLE BILLING CONTACTS FOR A SPECIFIC ITEM CATEGORY
To send invoices to multiple people in an organization for a specific item category, create an ACCOUNT CONTACT record by logging in and clicking on ADMIN, MANAGE ADD-ONS, ECOMMERCE and then ACCOUNT CONTACTS. Next click ADD. You will select the ACCOUNT and MEMBER that you want this record to apply to. For a User to show up in this drop down, their User Record must be set to MEMBER in the CONTROLLING CONTENT field in the CONTROL INFO tab.
Next, click on the CATEGORIES tab to select the category that applies. Click OK to save the new record.
NOTE ABOUT ITEM CATEGORIES: To add new categories, login and click on ADMIN, MANAGE ADD-ONS, INVOICE MANAGER, DATA, AND THEN ITEM CATEGORIES. Click ADD and then type in the name of the new category. Click OK to save changes. Next click on ITEMS and open a specific item; choose the CATEGORY from the drop down list. Click OK to save changes to the item.
Organizations and Users
Users associated with accounts through the account manager screen are included in account subscriptions. A user can be associated directly to the account from the User tab, or their organization can be associated to the account through the organization tab.
For a user to be associated to an organization, the organization field in their people record must be set to the organization.
Organizations Tab
Add organizations to this account. Employees of this organization will be granted access to subscriptions from this account
User Tab
This is a list of employees of the organizations listed in the Organization Tab, and any individual members added in this tab
How to add users to an account
You can add company members or individual members
- Add them as an employee of the organization -- Edit their people record and select an Organization that is part of the account.
- Add them an an individual member -- Edit their people record to determine their "record id" at the top. Go the Invoice Manager and go to the account's User Tab. Click [add] and enter the person's Id.
Managing Items and Item Categories
Items are what is purchased, and item categories are a way to group and report on items.
The following features are configurable within items
Bundling
- Use the Bundling tab to add bundled items to an item. An item that contains bundled items is a bundling item. All bundled items are not charged to the invoice. They can optionally be hidden from the invoice as well. The transactions for bundling items however do include charges. The transaction charge for any item is calculated as the item's price minus the total of all its bundled item prices.
- If a subscription or membership includes bundled items, the bundled items are NOT included in future renewals of the subscription or membership. In other words, when the subscription expires, if renew on expiration is set, the bundling item is charged without the bundled items. For example, if you setup a bundling item that is a monthly membership for $10 and bundle in it a book and a yearly subscription to a magazine. The initial charge will be for $10 and the account will be setup for the membership, it will get a subscription for the membership, a subscription for the magazine, and a fulfillment request for the book. One month later, the account will be charged $10 for just the membership renewal. The items bundled with the membership (the book and the magazine) will NOT be included in the subscription renewal. A year later the magazine will charge as well.
- Show Bundled Items
- Bundled Items
Options
- options are a series of option sets, each with a name and the possible values a customer must choose for that name. The name is separated from the values with a colon. The values are separated by commas. Options are separated by a new line. For instance, an item with a two line options field may have in the first line -- "color: red, blue, yellow" and the second line "size: small, medium, large". Customers purchasing this item will be required to select both a size and a color from the choices.
Item Category
- Categories are used by the catalog for display and by ecommerce reporting to group charges.
Subscriptions
A subscription is a way to track items purchased that automatically renew, and/or items that put account users in groups. An item creates a subscription if the subscription type in the subscriptions tab is set to Periodic, Calendar, or Perpetual.
These are some examples of subscriptions:
- A monthly charge that allows user access to a podcast -- Create an item 'monthly subscriber', set subscription type to periodic and the period to 1 month. Select a group into which users will be added, and check renew on expiration. Put your podcasts on a page protected by the selected subscription group.
- An annual newsletter purchased one-time -- Set the subscription type to periodic and do not check renew. Select a group for users. Then each month, send a Group Email to the selected group.
Subscription Settings
- Subscription Type - If blank, this item is not a subscription. Select Calendar to have the subscription expire on a specific month. Select Periodic to have the subscription expire after a set number of days or months. Select perpetual if the subscription never expires.
- Group - When this item is purchased, all users in the account will be added to this group.
- Group Expiration Period (Days) - For Periodic Subscriptions, the days until the subscription expires. (can be used in combination with Months)
- Group Expiration Period (Months) - For Periodic Subscriptions, the months until the subscription expires. (can be used in combination with Months)
- Calendar Duration Month - For Calendar Subscriptions, the month that this subscription expires.
- Renew on Expiration - If checked, the account will be charged for renewal when the subscription expires. For OnDemand (credit card and echeck) accounts, the charge runs a day before expiration. On billing accounts the invoice is sent based on the prebill setting in the Ecommerce Settings.
- Block Duplicate Recurring Purchases - If checked, an account can only have this subscription once.
- recurringPrice - If not blank, this price will be used for renewals.
- inMyAccount - if checked, subscriptions to this item can be canceled from the My Accounts section.
Pricing
- Unit Price
- Sale Price
- Special Price
- On Sale
Promotional Discounts
Misc
- Featured
- New
- Viewings
- Materials
- Allow Receipt Copy
- Receipt Copy
- Is In Catalog
- Msg To Billing When Paid
- invoiceCopy
- allowInvoiceCopy
- isTaxable
- hideInvoiceLineIfNoCharg
- Max Quantity Per Order: Put a number in here to limit the number of this item that can be ordered at one time
Shipping
- Shipping Required
- Shipping Weight
Inventory Management
Use inventory management to help track item levels, notify an administrator when quantities are low, and remove items from the catalog when they are depleted.
- Quantity On-Hand
- The number of items you have available for ordering. This quantity is changed on order fulfillment.
- Quantity Low
- When the quantity on-hand falls below this level, the ecommerce administrators group will receive a notification
Permissions and Roles
In the Catalog tab of Items, in the ORDER BUTTON MODE field, you can select:
- Always Hide to prevent anyone from ordering the item
- Always Show to allow everyone to order the item
- Show Based on User Group Policies to allow users in specific groups to order the item
To set the User Group Policies, go to Ecommerce Cart Settings. In the Group Policies section you will check the box next to ALLOW ORDERING. So for example, if you only want members to be able to order certain items, set the Order Button Mode field to "show Based on User Group Policies" and in Ecommerce Cart Settings check the field Allow Ordering next to the Members group(s).
Fulfillment
- sendFulfillmentNotification
- fulfillmentNotificationGroupId
General Ledger Transactions
- Deferment Method : No Deferment, Defer to Deferment Date, Defer Monthly
- Deferment Account : When a deferment method is selected, paying for this item creates an account transaction crediting this deferment account, and deferred transaction(s) debiting the deferment account to the item's income account.
- Deferment Date : When the Deferment Method is Defer to Deferment Date, a single deferred transaction will occur on this date.
- Number of Monthly Deferment Transactions : When the Deferment Method is Defer Monthly, this many deferred monthly transactions will be created, evenly spacing the income over the period.
- generalLedgerAccountId
The following item fields only apply to Membership Items, used in Membership Manager
- tbd
Tools
You can use INVOICE MANAGER to create manual invoices, credit memos and account charges. To access these features, log in and go to ADMIN. Click on the MANAGE ADD-ONS folder. Next click on the ECOMMERCE folder and then click on INVOICE MANAGER. From here you will click on the TOOLS tab
Enter Payments
Use the enter payments tool to add payments received from accounts and to apply previously entered payments that were saved as deposits.
Payment Methods
- Cash - Select the cash payment method to enter a payment that requires no tracking (check number, credit card history, etc).
- Check - use the check payment method to enter a check payment
- Credit Card - use the credit card payment method to enter and process a credit card payment
- Apply Deposit - use the apply deposit payment method to apply one or more deposits to an invoice.
Create a Deposit
Check this box to create a deposit for the account with the payment, or any excess of the payment not applied to invoice(s)
Do Not Send a Receipt
If the customer account is configured to receive receipt notifications, check this box will prevent a receipt from being sent to the customer for paid invoices.
Transaction Date
Leave this blank to post this transaction at the time the payment is applied. Enter a different transaction date to post the payment as needed. Note that the transaction date is limited by the transaction export data. Once a months data is exported, you cannot post a transaction before the end of that period.
Select unpaid charges
If the payment is to be applied to invoices, select the unpaid charges from the list.
Check Number
For Check payments, enter the check number for tracking purposes.
Credit Cards
For credit card transactions, enter the card number, expiration date and name on the card. Optional fields are available for CSV and billing zip code if you have configured your processor to required them.
Applying Deposits
when appying deposts to pay invoices, select the deposit(s) to apply. If the amount of the deposit(s) is greater than the invoices, check the Create a Deposit checkbox to create a deposit for the excess.
My Account
A public addon that lets account contacts (primary and billing) pay invoices with a credit card they enter.
User Profile
Here you edit name, email/user name, password, phone number, photo and organization selection.
Pay Invoices
Access this to view and pay current invoices.
Payment Information
Use the payment information screen to add or modify online payment methods such as credit cards and/or ACH methods. Select the primary and secondary payment method to be used to automatic payments. The secondary method is used if the primary method fails. If the secondary methods fails, all other payment options will be attempted as well.
Account History
Manage Subscriptions
Manage subscriptions lets a user subscribe and unsubscribe to any groups marked "Public Join", and cancel any paid subscription marked "Manage in My Account".
One application for this section is to let users remove themselves from specific email groups. To do this, include a link in your email to this page.
- Free Subscriptions
- A free subscription is a group that has "Public Join" checked, and is NOT included in a subscription item.
- Paid Subscriptions
- A paid subscription is an item that with a subscription type that has been purchased by the account. If the item is marked "Manage in My Account" in its subscription tab, it will be listed on the Manage Subscriptions page of My Account and users can cancel the subscription by unchecking the box and clicking save.
Manage Staff
Here you add, delete or update profile information for account users.
Manage Organization Profile
Here you can change the company name, address, phone, fax, web or email address.
Developer Resources
The following api is provided to interface with ecommerce
Contensive Events
Any addon can create an Addon Event record. These event records can be manually created or will be created automatically when the addon throws them.
It can then throw the event with a cp method, like cp.site.throwEvent( “My Event” )
Any addon can register for the event with a checkbox in in a tab of the Addon record. When an addon is registered, it is called by contensive when the calling addon calls cp.site.throwEvent.
Arguments should be passed with document properties.
Item Fulfill Event
ecommerce.fulfillOrder
Called when an order is to be fulfilled.
Arguments:
- OrderId: The order that needs to be fulfullled
Fulfillment for an order would include things like adding people to groups they purchase or mailing an item out. When the Fulfillment event occurs depends on the Pay Method. On Demand: Fulfillment happen at the time of the purchase Bill: Fulfillment happends when the bill is paid Bill and Fulfill: fulfillment happens when the bill is sent.
Calculate order details event
ecommerce.calculateOrderDetails
Called after calculating the amounts for each order detail in an order, and before calculating the shipping, taxes and total. use this to calculate a custom amount for an item . Arguments: OrderId: The order that is being calulated
Ecommerce API
To use the ecommerce API, close the gothub repository for ecommerce, build, and make a reference to the apiclass DLL.
getTransactions
Returns a list of transactions for the account.
- arguments:
- accountId
- dateFrom
- dateTo
- return:
- api.transactionClass
// sample // description of sample sampleCode();getChargesAndPayments
Returns a list of account charges and payments that would typically be presented to an account as a statement.
- arguments:
- accountId: required
- dateFrom: optional.
- dateTo: optional.
- return:
- api.transactionListClass
// sample // description of sample sampleCode();
- getOpenOrderId ; Return the current open order Id. Online orders only, browser must support cookies. Returns the current open order for this visitor, or for this user if they are authenticated. When an order is first created online, it is associated to the visit/visitor. At any point it can be converted to a user or account order with setOrderUser or setOrderAccount. Once converted, the order is only accessable online to the user, no longer to the account.
Arguments: (none)
Return:
- orderId or 0 if there is no open order
- createAccount( userId, accountName, )
- creates a new account, sets the account to the user and the user to the account. returns the accountId for the new account Name. The user must have an email address, and can not already have an accountid set.
Arguments
- userId: required, the id of the initial billing and contact member. This person must have a blank accountId. This person must have a valid email address
- accountName: optional. if provided, it is used. if not provided, the name of the user will be used. If blank, an account number will be set in the name.
Return:
- accountId or userErrorMessage
createOrder creates a new order. A user or an account must be set before the order can be completed (billed or paid)
If a user is assigned, the user’s account will be used. If an account is set, the billing contact will be set as the user.
Once a user has been set, online orders will no longer be trackable with visit or visitor.
Arguments: none
Return: string, orderId or userErrorMessage
addOrderItem adds an item to the order Arguments: orderId: required. itemId: required quantity: optional optionString: optional A string added to the order detail to specify item options userId: optional - if provided, this is the individual customer associated with this item purchase. Some items like subscriptions will put the customer in a group during fulfillment.
Return: string, orderDetailId
setOrderAccount assigns an account to an order, only if it currently is unassigned. An account is required before the order can be completed.
Arguments: orderId: required accountId: required
Return: empty
setOrderUser Assigns a user to an order, only if it currently is unassigned. An order requires a user before it can be completed.
Arguments: orderId: required userId: required
Return: empty
setOrderShipMethodId Sets the shipping method to be used for the order
Arguments: orderId: required shippingmethodId: required
Return: empty
getAccountPayMethod returns the pay method set on the account 0 = unknown 1 = no charge 2 = on Demand 3 = Bill 4 = Bill and Fulfill when paid
Arguments: acccountId: required
Return: string, numeric value
getAccountStatus returns the status of the account 0 = unknown 1 = open 2 = closed
Arguments: acccountId: required
Return: string, numeric value
calculateOrder calculates order tax, shipping, itemtotal, total based on itemdetails, etc. It is called by other methods. Call if the order, orderDetails, items, account, user are modified outside the ecommerce API.
Arguments: orderId: required
Return: true if success, else returns a message.
payOrder attempts to pay for the order with either a credit card or a specific onDemandMethod. The order may be complete or not-complete. (A complete order can not be modified). If the order pays OK, it is completed. Otherwise the order is not modified. If the payment fails, no customer notification is sent and no hold is put on the account. If their account has it enabled, the order receipt is sent.
Arguments: orderId: required paymentComment1: optional paymentComment2: optional shipFirstName,lastname,company,address,city,state,zip,country onDemandMethodId: if not 0, it must match an account payMethod for this account. if onDemandmethodId=0 then
CreditCardNumber: (required) CreditCardExpiration: (required) SecurityCode: (required) custFirstName ...LastName,Address,City,State,Zip,Country,Email
- CHANGE 1/19/2013
Return: boolean - true if processed OK argument returnUserError is “OK” or contains a user appropriate msg getInvoice Returns the invoice associated with the orderId
Arguments: orderId: required
Return: string
chargeOrder - charges to account using account pay method - returns true if success, else returns a message. - if the account is setup onDemand and the payment fails, no decline notice is sent and the account is not suspended (held for 3 days) Arguments: orderId: required paymentComment1: optional paymentComment2: optional shipFirstName,lastname,company,address,city,state,zip,country
paidOrder - marks an order paid - creates all charge and pay transactions - assumes caller accepted funds (maybe through paypal) - returns “OK” if success, else returns a message. Arguments: orderId: required paidBy: required, a string that describes how it was paid
billOrder - bills the order, but does not pay and does not fulfill - returns true if success, else returns a message. Arguments: orderId: required
billAndFulfillOrder - bills the order and calls fulfill. - returns true if success, else returns a message. Arguments: orderId: required
getOrderShipOptionSelect Returns an html select list of all options available to the order specified, based on the weight, charge, zipcode and country saved in the order.
Arguments: orderId: required htmlName: required - the name attribute of the html select htmlId: optional - the Id attribute of the html select htmlClass: optional - the class attribute of the html select
Return: string if no shipping options apply, a blank is returned
getShipOptionSelect Returns an html select list of all options available to the order specified, based on the weight, charge, zipcode and country arguments passed.
Arguments: orderId: required htmlName: required - the name attribute of the html select htmlId: optional - the Id attribute of the html select htmlClass: optional - the class attribute of the html select shipMethodId: integer, required - the method currently selected shipWeight: number, required - the weight in pounds itemCharget: number, required - the total of the items for this order shipZip: required, text - the zipcode of the shipping address shipCountry: required, text - the country of the shipping address
Return: string if no shipping options apply, a blank is returned
getShipCharge Returns the charge for shipping based on the arguments provided.
Arguments: shipMethodId: integer, required - the method currently selected shipWeight: number, required - the weight in pounds itemCharge: number, required - the total of the items for this order shipZip: required, text - the zipcode of the shipping address shipCountry: required, text - the country of the shipping address
Return: number
setAccountPayMethod Arguments: accountId: required payMethodId: required 0 = unknown 1 = no charge 2 = on Demand 3 = Bill and fulfill with paid 4 = Bill and fulfill immediately
setAccountPrimaryContact Arguments: accountId: required userId: required setAccountBillingContact Arguments: accountId: required userId: required addAccountOnDemandMethod adds an item to the order Arguments: accountId: required. CreditCardNumber: (required) CreditCardExpiration: (required) SecurityCode: (required) custFirstName ...LastName,Address,City,State,Zip,Country,Email Return: string, onDemandMethodId
setAccountOnDemandMethod Arguments: accountId: required onDemandMethodId: required
setAccountOnDemandMethodSecondary Arguments: accountId: required onDemandMethodId: required
getOnlinePaymentFields Returns all the credit card payment fields using the site’s payment configuration. Add these fields to a form, and when the form is submitted, call processCreditCardPaymentFields. The fields are read from document properties and the transaction is processed. These fields can be wrapped in an html form and submitted with a button, or submitted ajax.
This call must be made from an secure SSL document (page)
Arguments: none
Return: Html string
processOnlinePaymentFields Processes the fields created with getOnolinePaymentFields
Arguments: orderIdList: required - a comma delimited list of OrderId to be paid. returnUserError: if the method returns false, this string contains a message appropriate for the user to understand the issue. payComment1: optional payComment2: optional
Return: Boolean, true if the process is OK, false if there was an error. On error, the argument returnUserError contains a user appropriate explanation
Data Structure
The following database tables are used and/or created by Membership Manager.
People
People is a system Table which stores information about users.
Organizations
People is a system Table which stores information about companies.
Accounts
The account is the record that is charged. All transactions have to have an account to charge and be paid from.
tablename = abAccounts
- memberId
- Primary Contact, The primary contact for the account.
- billingMemberId
- Billing Contact, The person responsible for ensuring payment for the account. If blank, the Primary Contact is used.
- billingMemberId
- Billing Contact, The person responsible for ensuring payment for the account. If blank, the Primary Contact is used.
- closed (Closed)
- When true, this account can no longer be charged.
- payMethodId
- Lookup list below This represents the accounts preferred method of payment.
- 1 - House
- 2 - Credit Card
- 3 - Billing
- notificationMethodId
- Lookup list below. How the account would preferred being notified.
- 1 - Email
- 2 - Fax
- termsId
- Lookup into content “Account Terms”. This information provides credit terms for the account.
- dateHoldBillingUntil
- When not null, no payments can be run against this account until the date indicated. Charges should still accrue.
- dateLastBillingNotice
- This is the date of the last time the account was notificed about a balance due.
- requestedCancelDate
- After this date the account should not longer be charged. Services should be canceled on this date.
- referralCode
- When the account was created, if a code was used for tracking it is saved here.
- commissionAccountId
- If not null, commissions on payments to applicable charges are created in this account.
- emailCharges
- When checked, all charges to the account should be emailed to the billing contact.
Orders
Account Transactions
Each entry represents either a credit or debit to the account. This will be considered an asset account so a charge increases and is a Debit, a payment decreases the balance and is a Credit.
tablename = abAccountTransactions
- Approved
- payment transactions -- shows the payment was approved. If false, the transactions is not valid
- isCharge
- If true, this is a charge transaction. A positive amount represents a charge to the account increases its balance due. A negative amount represents an adjustment that decreases the amount due.
- isCommission
- if true, this transaction is a result of a commission on a different transaction
- amount
- The amount of the transaction. Position amounts increase the balance due from the account.
- accountId
- The account being charged or paying.
- isSetupFee
- for charge transactions -- if true, this transaction is a one-time charge. If false, this transaction is a result of a recurring charge.
- orderId
- Charge Transactions -- The order which originated the transaction
- dateDue
- Charge Transactions -- Determined by the pay method and set at the time of the charge. Any transaction unpaid after this date has passed is passed due.
- fromDate
- Charge Transactions -- When there is a service involved, the fromDate and toDate are the service dates.
- toDate
- Charge Transactions -- When there is a service involved, the fromDate and toDate are the service dates.
- recurringPurchaseId
- Charge Transactions -- When set, this charge was created by the associated entry in Recurring Purchases.
- paidByTransactionId
- Charge Transactions -- When set, this transaction was paid by the associated transaction. One payment can pay multiple charges. If a partial payment is made on a account, the charge must be broken up and each charge paid in full.
- paymentCheckNumber
- Payment Transactions -- The check number
- creditCardNumber
- Payment Transactions -- cc number
- creditCardAuthorization
- Payment Transactions -- authorizations from the payment gateway
- authorizationMessage
- Payment Transactions -- message from the payment gateway
- paymentAppliedToCharges
- Payment Transactions -- if true, this payment has been applied to charges.
- orderId
- For charge transactions, this is the order the created the transaction.
Recurring Purchases
Each record represents a recurring purchase. The account billing process uses these records to create charge transactions periodically, which may then be paid.
table = abRecurringPurchases
- accountId
- The account to be charged
- itemId
- The item to use for purchase details
- discountAmount
- if provided, this amount will subtracted from the product amount when creating the charge transaction
- isCommissionable
- if checked, charges from this recurring purchase will be commissionable
- dateChargeStart
- When set, no charges will be created before this date. When a charge is created, it will never be back-charged earlier then this date. The effect is this will be the start date for the purchase, reguardless of other transactions. However, no refunds will be created based on this setting.
- dateChargeEnd
- When set, this represents the end of a contract period for a recurring purchase. This is generally the anticipated end of a longer purchase. For instance, this may be a monthly charge with a one year contract. The dateChargeEnd is the end of the year. It does not mean cancel, but represents the earliest time when the charge can be ended. The purchase will not be charge after this date.
- requestedCancelDate
- When set, this is the date after which the customer no longer wants the service. The purchase will not be charge after this date.
- referralId
- This is the ID of the referral record in referrals.
- canceled
- When true, this purchase no longer charges
- dateStart (dateJoin)
- This date is set to the date the purchase is created.
- dateChargedThrough
- This date, set by the recurring purchase process is the date that this purchase has been charged through. The recurring purchase process will create a new order based on this date.
- datePaidThrough
- This date is set by the payment process and manual payment entry.
- dateInactivate
- This is the date that the product should be deactivated for non-payment.
- dateCancel
- This is the date that the purchase is canceled for non-payment.
Groups
- membershipControlled
- Contensive -- This is a developer-only field. When set, you can not add or remove anyone or delete the group. The Member Tracking Process (MTP) will set the field when it creates the groups.
Referrals
Is a list of codes created to track promotions and commissions. To use a referral, the customer enters a code which matches a referral record. The commissions and discounts then apply to only those items set in Referral Item Rules.
- code
- The text code assigned to this referral. When entered during the purchase process, this referral is applied
- commissionAccountId
- When provided, this commission account will be used for the Order or Recurring Purchase.
- initialChargeDiscountAmount
- When provided, this discount amount will be applied to the initial purchase.
- recurringChargeDiscountAmount
- When provided, this discount amount will be applied to recurring purchases.
- recurringChargeDiscountPeriods
- When provided, the recurreint ChargeDiscountAmount only applies for this many periods.
Account Notes
Are a list of notes created the administrator.
- accountId
- The account associated with this note
- copy
- The text of the note.
Account Terms
The billing arrangements for accounts set to bill as pay method.
- daysToPay
- The number of days after the purchase date before the due date.
- Account Messages
- Are a list of messges created by the system to track activities.
- accountId
- The account associated with this note
- copy
- The text of the note.
Items
- copy
- Long Text: The long description of an item. Used on the catalog details page.
- overview
- Long Text: The short version of the description. Used on the catalog listing page.
- hideOrderButton
- Boolean: When true, if the item display on a catalog page, it will not have an order button.
- categoryId
- Lookup into Item Categories: Used to categorize items
- itemNumber
- Text: Used only as a reference number on the catalog
- UPC
- Text: Used only as a reference number on the catalog
- materials
- Many to Many to Item Materials: Displays a list of downloadable documents for the item.
- featured
- Boolean : Can be used to select specific items for a custom list.
- new
- Boolean : Can be used to select specific items for a custom list.
- viewings
- Integer : The number of times this item has displayed on the catalog details page.
- quantityOnHand
- integer : For inventory managment, this in the number of items you have on-hand. Automatically decremented on order purchase.
- quantityLow
- integer: For inventory managment, when the quantityOnHand is less than the quantityLow, the Inventory Management notification is sent.
- imageFilename
- image: the large image of the item
- thumbnailFilename
- image: the small image of the item
- options
- Long Text : A list of options and their choices. Separate different options with new lines. Separate choices for each option with commas. For example, if the item is a shirt and you offer three sizes and two colors, the options might be
size: small, medium, large color: red, blue, green
- unitprice
- currency: the quantity 1 price without any discounts, etc.
- saleprice
- currency: the quantity 1 price if the item has OnSale checked.
- specialprice
- currency : the quantity 1 if the custom is in a group selected as a discount group
- onSale
- boolean : when true, the item price will be the salePrice
- allowReceiptCopy
- when true, receipts including this item will include the receiptCopy in the receipt's message box.
- receiptCopy
- long text : when allowReceiptCopy is true, this text is included in the receipt's message box.
- shippingRequired
- boolean : when true, this item will require shipping for the entire order, and the item's weight will be included in the order's weight calculation.
- weight
- number : if shippingRequired is true, this is the shipping weight of the item.
- organizationId
- Lookup into organizations: The source (manufacturer) for the item, included in the catalog.
- sourceitemNumber
- Text: Used only as a reference number on the catalog
- groupId
- The Subscription Group -- if this is not blank, anyone purchasing this item will be added to this group with the group expiration from groupExpirationPeriod and groupExpirationPeriodMonths
- groupExpirationPeriod
- This is an integer value in Days. it is used for both the expiration date of a subscription when it is purchased, and for the recurring billing period when a recurringCharge is included.
- groupExpirationPeriodMonths
- This is an integer value in Months, and acts like groupExpirationDays -- effecting both group expiration for subscriptions and the recurring purchase period.
- isInCatalog (new)
- default true. if true, this item appears in the catalog
- isCommissionable (new)
- default false. if true, the commissionaccountid receives thier commission on this item. For catalog purchases, the commission account is set when a new account is created with a referral code.
- recurringCharge (new)
- if not zero, this purchase creates a recurring purchase record which charges the account at the beginning of each period, based on the groupExpirationPeriod and groupExpirationPerodMonths. If the periods are zero, the recurring Charge is not valid.
- recurringPrebillDays(new)
- For a recurring item, how many days before the purchase date should it be invoiced. The Due date will still be the purchase date plus the days to pay (in account terms)
Orders
An order is created for all completed purchases. Processes may create incomplete orders as well. The line items of the order are orderdetails The completed order total is added to transactions as a purchase. Invoices sent represent a single orders.
- Name
- datePurchase
The effective purchase date for the order. For orders invoiced in advance of the purchase, this is the date the purchase should take place. For instance, for a membership that expires on July 1, you might want to invoice for the renewal 30 days head of time. The datePurchase is July 1, the invoice date may be June 1, and if you extend them 10 days credit, the dueDate would be July 10.
- dateDue
When the order should be paid
- specialPricing
If true, this order qualified
- pricelevelFreeShipping
if true, this order qualified
- itemCharge
The total amount of all items
- shipCharge
The calculated amount of shipping
- taxCharge
The calculated amount of tax.
- priceLevelDiscount
The calculated amount of the discount based on the price Level Discount scheme
- TotalCharge
The total of item, ship, tax and discounts
- orderCompleted
(can be removed and use dateComplete instead) - see orderComplete for details.
- readyForBatchComplete
- When true, the background batch will complete this order, performing all the billing, invoiceing and payment when necessary.
- dateCompleted
- Legacy - set when the order is paid. Current - set when the order is billed. -- however, there is a special case to cover the order upgrade. If dateComplete is set and ccNumber is set, the order is considered legacy and must be Paid. In this case, the payDate is set to the dateCompleted and paidByTransactionid is set to -1 to prevent re-paying.
- payMethod
- a text description of the pay method used
- payDate
- When the order was paid. For online orders this is populated. For offline payments, it is populated at the time the order is paid.
- ccAuthCode
- The code returned from the last payment process attempted.
- ccTypeActionCode
- The code returned from the last payment process attempted.
- ccRefCode
- The code returned from the last payment process attempted.
- billName
- phone
- fax
- company
- address
- address2
- city
- state
- zip
- country
- shipDate
- date when order is shipping
- shipTracking
- tracking number from the shipper
- shipMethod
- text field with the name of the ship method used
- shipWeight
- memberId
- visitorId
- visitId
- visitId
orderDetails
Order Details represent the line items of an order.
- name
- a text description of the item name, quanitity and options
- orderId
- itemId
- itemNumber
- quantity
- options
- unitPrice
- weight
- sourceid
- groupMemberId
- The user Id of the person who will be given membership for items with a groupId. These are items that provide group membership when purchased. The userid is saved in the orderDetail record because the group membership is created when the purchase is completed, which may be by a manual payment long after the purchase is made. if the groupmemberid is not set, the account contact will be used.
- item Categories
- Order Ship Methods
- Item Materials
- item Material Categories
- Item Categories
Test Cases
These tests represent automated tests saved in the testcases folder of the project's GitHub repository. Tests with an asterisk are included in the tool panel unit tests. Tests in brackets [] must be manually tested.
- 1* - Buy Subscription Adds Users to Group
- buy a subscription > adds account's users to the subscription's group
- 2* - Cancel Subscription Removes Group Users
- cancel subscription > removes account's users to the subscription's group
- 3* - Add User updates user's groups
- add a person to an account (as an individual) > adds account's users to the subscription's group
- 4* - Add Org updates users' groups
- add an organization with person to an account > adds all the organization's users to the subscription's group.
- 5* - Remove Account User updates user's groups
- delete an individual user from an account > removes the user from the subscription's group
- 6* - Remove Account Org updates users' groups
- remove an organization with person from an account > removes all the organization's users from the subscription's group.
- 7* - Buy Membership adds users to groups
- buy membership > adds account's users to the membership's group
- 8* - Cancel Membership
- Removes the account's users from the membership's group
- marks the account membership status as canceled
- leaves the membership type alone
- cancels all membership invoices
- 9* - Add User updates Membership group
- add a person to a membership account > adds the person to the membership's group
- 10* - Membership, Add/Remote Company Users
- add an organization with person to a membership account > adds all the organization's users to the membership's group.
- 11* - Membership, Add/Remote Individual Users
- delete an individual user from a membership account > removes the user from the membership's group.
- 12* - Membership, Add/Remove Organization
- remove an organization with people from a membership account > removes all the organization's users from the membership's group.
- 13* - Manually add a subscription
- Manually add a non-membership subscription (recurring purchase) to an account within the Account Manager UI > adds account's users to the subscription's group.
- 14* - Manually add a membership
- Manually add a membership to an account within the Account Manager UI > adds account's users to the membership's group.
- 15* - Manually Delete Subscription in UI
- manually delete a subscription within the Account Manager UI > removes account's users to the subscription's group. NOTE: we do not support deleting recurring purchases in the admin interface.
- 16* - Manually remove Account Membership type
- manually change an account from a valid membership type to a non-member type within the Account Manager UI > removes account's users to the membership's group
- 17* - Close Membership account updates groups
- close a membership account > removes account's users from the membership's group
- 18* - Close non-Membership account updates groups
- : close a non-membership account > removes account's users from the subscription group
- 19* - Remove user from org with subscription
- remove a person from an organization that is part of a non-membership account > remove the person from the subscription group
- 20* - Remove user from org with membership
- remove a person from an organization that is part of a membership account > remove the person from the membership group
- [21] - My Account Echeck if enabled
- Show My Account - Payment Options - eCheck options only if authorizenet payment processor enables eCheck
- 22* - House Account charge and payment
- verify chargeOrder() completes, pays, sends receipt and fulfills
- verify payOrder() on new order completes, pays, sends receipt and fulfills
- 23* - Ondemand account charge and payment
- verify chargeOrder() with no account pay options -- fails
- verify chargeOrder() with good account pay option -- completes, pays, sends receipt and fulfills
- verify payOrder() with good pay option -- completes, pays, sends receipt and fulfills
- 24* - Bill account charge and payment
- verify chargeOrder() -- completes, sends invoice, no fulfillment. Then pay the invoice and verify fulfillment.
- verify payOrder() with good pay option, on new order charges -- completes, pays, sends receipt and fulfills
- 25* - Bill-and-fulfill account charge and payment
- verify chargeOrder() sends invoice and fulfills
- verify payOrder() on new order charges, pays and fulfills with good pay option
- verify payOrder() on open invoice pays and fulfills with good pay option
- 26* - Automatic Activation
- verify new memberships are active when automatic activation is checked, and pending when automatic activation is unchecked.
- 27* PayOptions are used in the correct order
- *If a card or echeck is provided, no alternative methods are attempted
- *Primary is attempted first if it has a valid expiration date
- *if primary fails, secondary is used next if it has a valid expiration date
- *if secondary fails, all non-echeck payoptions are attempted if they have valid expiration dates
- *if account is billing, charging to account does NOT pay.
- 28* - Membership Grace Period
- Verify process with prebill set to 0.
- initial purchase without fulfillment does not fulfill membership
- after payment, run housekeep, membership is active and people are in groups
- after expiration date but before end of grace period, run housekeep, account shows expired but people still in group
- after grace period but before membership cancellation grace period, run housekeep, people are not in group but membership invoice is still ok
- after membership cancellation grace period, run housekeep, invoice is canceled, membership is canceled, people are not in group.
- 29* - Membership renew
- Verify paying a membership renewal invoice extends expiration.
- set grace period to 2, set cancelation grace period to 99
- initial purchase with payment sets expiration and puts people in group
- set date to 1 day after expiration and housekeep -- membership active, invoice created, people in group
- set date to 3 days after expiration and housekeep -- membership expired, people out of group
- pay invoice -- membership active, people in group
- 30 - Expiration Date
- Verify a 1 day subscription creates an expiration date rounded up to the next midnight. So if purchased at 5pm on March 15, the expiration date is March 17, and the subscription is not valid after housekeep runs on March 17.
- 31 - Automatic Subscription Cancellation
- Verify an unpaid non-membership subscription continues charging and allowing users in the group until the subscription cancellation period
- 32 - My Account Subscription cancellation
- Verify any non-membership subscription can be canceled in the My Account subscriptions
- 33 - non-expiring Membership
- Membership groups are determined by the membershiptype, not the subscription record. Remove the account membership expiration and the recurring purchase should be automatically deleted and all group membership should have no expiration date. Add an expiration and a recurring purchase is created and all group expiration is set as well.
- 34 - non-expiring Subscription
- Subscription groups are determined by the subscription record so a non-expiring subscription is one with a charged through date very far in the future (1/1/2100). Verify the user group membership has no expiration date when the subscription > 50 years.
- 35 - Subscription Charges Remaining
- if blank, a new charge is created each time charged through passes. If 0, the recurring purchase is canceled when charged through passes. if >0, it is decremented each time the charged through passes.
- [36] - My Account Subscriptions
- All groups that are not selected in subscription items and have "Allow Public Join" checked can be added and removed in the My Account Subscriptions section. If the account is subscribed to an item and the item is marked "Manager in My Account" in the subscription tab, it can be canceled from the My Account Subscriptions.
- 37 - *Purchase Bundled Items with Subscriptions
- If you purchase a bundling item, the subscriptions for each bundled item are added to the account, and the users in the account are added to the subscription group(s)
- 38 - My Account prevents isRecognized
- if a user is recognized, my account logs them out before displaying any data
- 39 - My Account anonymous requires login
- if you are logged out, you must login
- 40 - My Account fresh page displays last form
- If yor nav to a form and refresh, the same forms comes back
- 41 - My Account select accounts
- The user can manage an account only if they are the primary, billing or carbonCopy contact on the account. If user can manager multiple accounts, user selects one from a list. When user refreshs page they remain on the account they picked. When user logs in, user sees the account they last picked.
- 42 - My Account select organization
- If the account has multiple organizations, the user can select the organization they wish to manager from the Manager Organization tool.
- 43 - getOnlinePaymentFields payment options
- If order contains an onDemandRequired item, only onDemand options are returned.
- If order contains an onDemandPrefered item, only onDemand items are offered.
- if the account is Billable, Bill My Account option is provided.
- If echeck is configured, an online Echeck option is provide.
- If online credit is configured, an online credit card option is provided. If there are any valid account pay options, each is provided as an option.
- 44 item onDemand-Required
- If an order includes an onDemand required item, the entire order must be purchased ondemand.
- 45 Pay Order with bad card
- PayOrder() with card not matching test - card fails
- 46 Pay Order with bad expiration
- PayOrder() with card that has past expiration - card fails
- 47 Pay Order with bad security code
- PayOrder() with card that has past expiration - card fails
- [48] Invoice Manager, Account, Purchase History UI
- An unpaid invoice has a Pay link that takes the user to the manual payment tool, populated for this account and invoice
- Send Invoices
- Send Statement
- Cancel selected invoices.
- 49 - Account List speed
- 10,000 accounts in the account list must display in 5 seconds
- 50 - inactive items show in reports do not show in current activity
- Do not show in
- manual invoice
- (add others as discovered)
- Show in
- Past invoices
- (add others as discovered)
- 51 - Housekeep, skipped if not enabled
- verify when housekeeping is enabled, the housekeep routine does not run. Verify when enabled, it only runs once per day and only during the time period selected.
- 52 - Housekeep, Batch is skipped if not enabled
- verify when housekeeping runs, the batch process runs only if it is enabled.
- 53 - Housekeep, Batch creates orders from recurring purchases
- Verify if a recurring purchase has a past charge-through date, an invoice is created for it and charged to the account
- free orders are paid and fulfilled
- house accounts are paid automatically
- Bill accounts are sent a invoice and not fulfilled
- Bill and Fulfill accounts are sent an invoice and fulfilled
- OnDemand accounts create an invoice and pay it with the account's pay options.
- 54 - Housekeep, Print Queue notification
- Verify a notification is sent to the ecommerce admin if the print queue is not empty
- 55 - Housekeep, Credit Card expiration notification
- Verify a notification is sent to the billing contact of all accounts if their credit card expires within 30 days.
- 56 - Housekeep, Ecommerce Credit Card Contacts group
- Verify all primary and billing contacts who have a non-expired credit card in their account go into this group.
- 57 - Housekeep, Account group and memberships verified
- Verify the following
- if a person is in a subscription group but not authorized, they are removed.
- if a person is an individual member in a subscription, they are added to the group.
- if a person is a company member in a subscription, they are added to the group.
- if a person is in a membership group but not authorized, they are removed.
- if a person is an individual member in a membership, they are added to the group.
- if a person is a company member in a membership, they are added to the group.
- if a person is added directly to the people table, they are added to their account's subscriptions
- 58 - Housekeep, Automatic export
- Verify it exports as follows:
- When disabled, it does not export
- When export mode is not 1 or 2, it does not export
- export mode 1 exports DLI custom format
- export mode 2 exports General Ledger transactions, only after the month is complete and only once per month, as described in this doc
- 59 - Housekeep, cancel all expired memberships
- For all membership past (membershipGracePeriod+membershipCancellationGracePeriod):
- membership status changes to canceled
- all users are removed from groups
- call invoices with membership items are canceled.
- 60 - Housekeep, verify membership recurring purchase
- verify all membership accounts have a recurring purchase that is charged through the expiration date
- 61 - Housekeep, cancel duplicate membership recurring purchase
- verify each account only has one membership recurring purchase.
- 62 - Housekeep, remove subscription group for Canceled Subscription
- verify housekeep removes users from group (boad issue)
- 63 - Housekeep, remove subscription group for Closed Account
- (boad issue)
- 64 - My Account, Online Payments
- Verify a user can pay invoices using the online edit form.
- 65 - Membership Type Purchasing
- Purchasing a membership type creates a membership account.
- if the account is already a membership, the previous membership type is set
- if the membership type has no subscription type or a perpetual subscription type, no membership expiration is set.
- if the subscription type is periodic or calendar, the membership expiration is set and a subscription is created. If renew on expiration is set, the subscription's Charges Remaining is left blank. If Renew is not checked on the membership type, Charges Remaining is set to 0.
- 66 - Subscriptions never fulfill bundled items
- If a bundling item is a subscription or membership, the bundled items are only purchased during the initial purchase and NOT during renewal.
- 67 - Subscription Dependency
- A subscription can be marked to be dependant on another Subscription. If a subscription expires or is canceled, all of it's dependant subscriptions are also canceled.
- 68 - Subscription items bundled with a subscription becomes dependant
- When purchased, a subscription bundled in a subscription automatically becomes a dependant on it's bundling subscription so it will be automatically cancelled when the bundling subscription is canceled.
- 67 - Membership renewal
- When a membership is renewed (all membership invoices created by membership subscriptions are paid), the membership expiration is updated to the subscription's charged through date, the renewed date is set.
- 68 - Membership renewal updates anniversary date : If a membership renewal covers a day PAST the anniversay (all membership invoices are paid), then the anniversary date event occurs, the membership kit is added and the anniversay date is updated by 1 year.
- 69 - OnDemand Account Prebills One Day
- Verify an OnDemand account is charged one day before expiration of a subscription
- 70 - Billing Account Prebill
- Verify the PreBill setting controls when invoices are created from subscriptions.
- The effective purchase date does not change, only the billing day.
- The date due is calculated with respect to the effective purchase date and does not change
- 71 - Subscription Charges Remaining
- Verify blank charges remaining has no effect, numeric charges remaining counts down each time the subscription is charged. If a subscription reaches its charged through date and the charges remaining is 0, it is canceled.
- 72 - subscriptions renew
- Verify subscription creates invoices on charged-Through date, adds people to groups with expiration, advances charged-through, advances group expiration.
- initial purchase with payment creates subscription, sets charge-through and adds people to group.
- set date to 1 day after chargedthrough and housekeep -- invoice created, people in group and expiration extended
- pay invoice -- membership active, people in group
- 73 - Purchase Item with prefers-ondemand
- Verify a billing account uses the ondemand method when available
- in a recurring batched purchase
- in a manual invoice purchase
- in the api chargeOrder call (payOrder is not effected)
- 74 - Purchase Item with prefers-ondemand
- VErify a billing account always uses an onDemand method, else the invoice is not paid, the ecommerce admin recieves a notice, and an account note is created
- in a recurring batched purchase
- in a manual invoice purchase
- in the api chargeOrder call (payOrder is not effected)
- in the api getOnlinePaymentFields, only ondemand fields are made available
- 75 - Add Deposits
- Deposits can be made from any of the payment methods
- Cash payments
- Check Payments
- Credit Card Payments
- 76 - Overpayments result in deposits
- Cash payments
- Check Payments
- Credit Card Payments
- 77 - Invoices can be paid with Deposits
- Single Invoices
- Combinations of Invoices
- 78 - An Invoice can be paid with Combinations of a Deposit and a payment
- Cash and a deposit
- Check and a deposit
- Credit Card and a deposit
- 79 - Item Pay Method Compatibility, On-Demand If Available
- If an item is marked on-demand if available and contains no items marked 'on-demand required', all orders containing that item can be purchased with any method with two exceptions. First if purchasing online, the customer will only be presented with and only process ondemand methods and second if the purchase is unattended (batch processed) it will use ondemand options on the account if available for both ondemand and billing accounts.
- If an account has an ondemand options, an API call from applications like meeting registration will only provide on-demand options
- If an account has an ondemand options, background processing will only use those options
- If an account does not have an ondemand option, an API call from applications like meeting registration will only support manual the ondemand option.
- If an account does not have an ondemand option, background processing will use the pay method set in the account.
- Invoice Manager manual payment will not be limited in anyway, but should include a message showing the administrator if an item in the order has this setting
- My Account payment screen follows the api call restrictions listed here.
- 80 - Item Pay Method Compatibility, On-Demand Required
- If an item is marked on-demand required, all orders containing that item must be purchased ondemand, except if purchased with manual invoice and/or paid with manual payment.
- If an account has an ondemand options, an API call from applications like meeting registration will only provide on-demand options
- If an account has an ondemand options, background processing will only use those options
- If an account does not have an ondemand option, an API call from applications like meeting registration will only support on-demand options.
- If an account does not have an ondemand option, background processing will fail, adding an account note with alert and send email to admin, but not customer.
- Invoice Manager manual payment will not be limited in anyway, but should include a message showing the administrator if an item in the order has this setting
- My Account payment screen follows the api call restrictions listed here.
Use Cases
These are the accepted use cases for the project.
Manage Accounts
Use Account Manager to create accounts, manage account details, and add users and organizations.
- Add an Account
- An administrator can add an account, go to the account list and click [add] button. Enter a name for the account and [save]
- Add a User to an account
- You first add a user to the system, then add the user to the account. A user can be added directly to the account (an individual user), or they can be added to an organization and the organization can be added to the account (a company user). To add an individual user, go to the Account User tab and click [add]. To add a company user, go to the organization tab and add an organization. All people with this organization set will show in the account user tab.
- Add an organization to an account
- On the Organization table of account details, use the add button to add an organization. This adds all the organization's people to the account details people tab.
- Add a Primary Contact
- To add a primary contact, go to the account details tab and select them from the list of account users.
- Add a Billing Contact
- To add a billing contact, go to the account details tab and select them from the list of account users
Account Charge Methods
Set an account charge method on the account details screen. There are four: No Payment Necessary, Pay On-Demand, Bill and Fulfill on Payment, Bill and Fulfill Now.
- No Payment Necessary Purchases
- If an account is set to No Payment Necessary, all purchases will be automatically paid without accepting customer payment. This includes online purchases, manual invoices and automatic batch invoice payments.
- Pay On-Demand
- This is the default charge method for new accounts. All purchases require payment when they are charged.
- Bill and Fulfill on Payment
- When the purchase is made, an invoice is sent to the customer. Fulfillment does not occur until payment is made.
- Bill and Fulfill Now
- When the purchase is made, an invoice is sent to the customer and Fulfillment occurs immediately.
Charging to an account
When a customer purchases, they use the account set in their people record regardless in which account(s) they may be be included. Being included in the users tab of an account gives those uses access to the benefits of a purchase, such as being added to a subscription group or a membership group. To be allows to purchase on the account, each person can have one and only one purchasing account set in their people record.
- Purchase on your Billing Account
- When a person purchases online, they use the account set in their people record under billing.
- Purchasing without a Billing Account
- If the Ecommerce Setting "Create Ecommerce Account Automatically" is checked, an account will be created automatically for the customer when they purchase online. Otherwise the customer cannot purchase online.
- Purchasing with a closed account
- If the Ecommerce Setting "Create Ecommerce Account Automatically" is checked, an account will be created automatically for the customer when they purchase online. Otherwise the customer cannot purchase online.
Orders and Invoices
An order is a list of services and items to be sold to a customer. Online it is represented by a shopping cart. When the order is charged to the customer it is called and Invoice and can no longer be modified. When an Invoice is paid, it becomes a receipt and can no longer be cancelled.
- Uncharged Orders
- When a customer adds items to their shopping cart, the order remains uncharged. For online ordering with on-demand payment methods, the order remains uncharged until it is paid. For all other cases, an order is first charged, then paid.
- Charged Orders (Invoices)
- When an order is charged, it becomes an invoice with a due date based on the customer's charge method.
- Paid Orders (Paid Invoices / Receipts)
- When an order is paid, it becomes a receipt.
Account Statements, Balances and Invoices
An Invoice represents a charge to the account. The account statement reflects the status of an account at a particular moment.
- Add an invoice to a Statement
- Add an unpaid invoice to a billing account (Bill and Fulfill) and it appears on the statement, increasing the account balance.
- Pay an Invoice to remove it from a statement
- When an invoice is paid, it is removed from the account statement.
Closed Accounts
When an account is closed, it can no longer be used, but its history and settings are preserved.
- Close an account
- You can close an account from the account list by selecting the account and clicking [Close Selected Accounts]. You can close an account from the account details page with the close account button.
- Unpaid Invoices and Recurring Purchases are canceled
- When an account is closed, its open invoices and recurring purchases are cancelled.
- Use of a closed account
- Users with a closed account set cannot use it. If they attempt to purchase online, a new account will be created for them.
- Re-Open a Closed Account
- Locate the account in the account list by filtering for closed accounts. Edit the account and change the account status to open. Users who have not created new accounts will be able to use the account again.
Membership Accounts
Membership Accounts are accounts that have a Membership Type set.
- Create a membership type
- A membership type is a type of item. Create a membership type in Membership Manager. Only a name is required.
- Create a Membership Account
- Add an account to the system and set their membership type.
- Add a Membership Group to a Membership Type
- Edit the membership type and on the subscriptions tab, set the group. All users in Membership accounts to the this membership type will be added to this membership group.
- Add an expiration to a membership type
- Edit the membership type and on the subscriptions group, set the subscription duration. Existing membership accounts will not be changed. When this membership type is next purchased, the account's membership expiration will be set based on the duration set in the membership type.
- Membership auto renewal
- Edit the membership type and on the subscription tab, set the membership to renew on expiration. This will create a recurring purchase record of every account set to this membership type with an expiration date. The recurring purchase will be set as "charged through" the account's expiration date.
- All Account Users are added to the Membership Group
- All people in the user table of account details are automatically added to the membership group with the membership expiration date. If you add an individual user to the account, they are automacally added to the Membership Group. If you add an organization to the membership, all the organization's users are added to the Account, and to the Membership Group
- Membership Groups can only be set to people who are users in a Membership Account
- When a person is removed from the people tab of an account, they are automatically removed from the membership group for the account
Automatic Billing
Account Manager automatically charges customers for recurring purchases, and automatically pays outstanding invoices for accounts setup as OnDemand
- Set the automatic billing time of day
- Use Ecommerce Settings to set the time of day when automatic bill occurs.
- Recurring Purchases control automatic charges
- To create an automatic charge, add a recurring purchase to the account. If the charged-through date is blank, the account will be charged on the next batch. Otherwise, the next purchase date will be determined by the "charged-Through" date.
- Recurring purchase for On Demand Accounts
- On Demand Accounts are charged on the "charged-Through" date.
- Recurring purchase for Billing Accounts
- Both Bill and Fulfill and Bill and Fulfill on payment are charged on or before the "charged-Through" date, based on "Pre-bill days for billing accounts" set in Ecommerce Settings.
Invoice Payments
There are several ways an account can pay for an invoice.
- On-Demand Payments
- When an account is configured as on-Demand and has a valid On-Demand payment option configured, an invoice charged to the account is paid by the primary on-demand method first. If that fails, it is paid by the secondary on-demand payment method. If that fails, all others are attempted.
- One-Time On-Demand Payments
- An online payment by credit card or echeck is considered a One-Time on-demand payment. When a one-time payment fails, the order is not converted into an invoice and can be abandonded or modified. Since no invoice is created, the charge is not retried.
Pre 2016
- Test Setup
- Item: Leaves
- Set a name, a unit price, no subscription
- GL, Post Method = Normal (should be default), Defer Account = Deferred Income, Income Account= Leaves Income
- Item: Rock (Proforma)
- Set a name, a unit price, no subscription
- GL, Post Method = Proforma, Defer Account = Deferred Income, Income Account = Rock Income
- Item: Test Meeting
- Set a name, a unit price, no subscription
- GL, Post Method = Defer Date, Defer Date = A Future Date, Defer Account = Deferred Income, Income Account = Meeting Income
- Account: House
- Account: OnDemand-With-Card
- Account: Bill-Ship-Now
- Account: Bill-Ship-On-Payment
- Item: Leaves
- Test Verification
- Valid Unpaid Invoice
- Go to Account > Purchase History > Verify Invoice Row Complete
- Go to Account > Purchase History > click on invoice number > Verify Invoice displays correctly
- Go to Account > Transactions > Verify one row for new charge
- Valid Cash Payment
- (how to validate a cash payment)
- Valid Check Payment
- (how to validate a check payment)
- Valid Credit Payment
- (how to validate a credit card/ach payment)
- Valid Unpaid Invoice
- Test Tools
- Test Create Invoice Tool - this is just to test basic functionality. Transactions will be tested separately.
- Payment Methods
- Charge the account -
- Charge and order to the OnDemand-With-Card account. It should create a paid invoice.
- Charge and order to the Bill-No-Ship account. It should create an unpaid invoice.
- Bill the order but do not pay
- Charge and order to the OnDemand-With-Card account. It should create an unpaid invoice.
- Create the order but do not bill
- Charge and order to the OnDemand-With-Card account. It should create an uncharged invoice.
- Charge the account -
- Shipping Charges
- Set no shipping charge - charge to account Bill-No-Ship. Verify no shipping charges
- Set a shipping charge - charge to account Bill-No-Ship. Verify the shipping charges
- Invoice Messages
- Verify the unpaid message appears on unpaid invoices
- Verify the paid message appears on paid invoices
- Line Item options
- Quantity - Required
- Item - Optional
- General Ledger Account - overrides item's GL Account
- Price - overrides item's GL Account. Required if no Item.
- Description - Required if no Item
- Quantity - Required
- Payment Methods
- Test Enter Payments Tool
- Test Create Credit Tools
- Test Create Charge Tool
- Test Process Batch Tool
- Test Export Data Tool
- Test Item Features
- Subscriptions
- Bundling
- Inventory
- Fulfillment Notification
- Test Create Invoice Tool - this is just to test basic functionality. Transactions will be tested separately.
- Testing Transactions
- Bill Fulfill on Payment Account
- Manual invoice + Cash Payment
- Single Item Order
- GL Post: Normal
- After charge, verify account balance + AR + verify invoice + account transactions + gl transactions
- After payment, verify account balance + AR + verify paid invoice + account transactions + gl transactions
- GL Post: Proforma
- GL Post: Proforma Defer Date
- GL Post: Proforma Defer Term
- GL Post: Normal
- Single Item Order Plus Tax and Shipping
- GL Post: Normal
- GL Post: Proforma
- GL Post: Proforma Defer Date
- GL Post: Proforma Defer Term
- Combination Item Order
- GL Post: Normal + Proforma
- GL Post: Normal + Proforma Defer Date
- GL Post: Normal + Proforma Defer Term
- GL Post: Proforma + Proforma Defer Date
- GL Post: Proforma + Proforma Defer Term
- GL Post: Proforma Defer Date + Proforma Defer Term
- Bundled Item Order
- GL Post: Normal + Normal
- GL Post: Normal + Proforma
- GL Post: Normal + Proforma Defer Date
- GL Post: Normal + Proforma Defer Term
- GL Post: Proforma + Proforma
- GL Post: Proforma + Proforma Defer Date
- GL Post: Proforma + Proforma Defer Term
- GL Post: Proforma Defer Date + Proforma Defer Date
- GL Post: Proforma Defer Date + Proforma Defer Term
- Single Item Order
- Manual invoice + Check Payment
- Manual invoice + Credit Payment
- Manual invoice + Deposit Payment
- Manual invoice + Cash Payment
- On Demand Account
- Bill and Fulfill Account
- House Account
- Bill Fulfill on Payment Account
- Settings#
Revision History
January 15, 2016
- Added Transaction Memo field to Manual Cash Payments to assist when entering non-traditional payments.
- Further clarified the use of capital letters, hash tags, parentheses, and brackets in account transaction descriptions.
- Added a setting to let admin set the time of day for the batch to run.
- Sentences start with capital letter
- square brackets wrap system generated items and enumerations, such as transaction numbers. The brackets provide clarification for empty lists and leading/trailing spaces.
- parentheses set off structurally independent details, such as check numbers and cash memos
- Hash tags (#) are not needed in front of numbers as they take up real estate and provide no additional information.
- fix: Applying a single deposit to an invoice did not work
- fix: transactions dates that include no time portion (now possible with the manual payment transaction date) are not included in the daily summary.
February 25, 2016
- bugfix: Log fills with invoiceId line
- bugfix: if you have multiple credit cards and the first fails, and the second passes, the transaction is marked failed and is retried.
April 8, 2016
- Added ability to add/modify each tab and feature list item so each customer can have custom reports
- Converted subscriptions to account/org/user as memberships had been, so a subscription puts everyone in the account in the subscription group (for division requirement)
- Migrated all membership and subscription account verification to ecommerce api and now called from membership.
- UX update for Visibility of System Status. Button hovers and navigation highlights.
May 6, 2016
- Added Deferral Report to Invoice Manager
- Added Pay Method Compatibility items
- Added ability to pay and invoice with a combination of previous deposits and a current payment.
- Removed No Charged invoices from Invoice Manager list
- Bugfix - account hold should only apply to batch payments