Proposal summary
Marshall would like to Develop a page for the bulk credit card authorization
Requirement
Marshall has the Authorize Credit Card button working properly which is a manual process. Now Marshall would like to develop a bulk credit card authorization page that displays sales orders that meet the following criteria and users with a couple of roles (to be defined) would have access to the page. Through this page, they would be able to select sales orders and submit for credit card Authorization for the selected orders
- Ship Complete Orders
- Ship Complete is checked and Quantity Ordered is equal to Quantity Committed
- Customer Terms is Cash Sale
- Accounting Hold is checked
- Order Entry Hold is unchecked
- Freight Terms is not NULL or Prepaid and Charge
- Status is Pending Fulfillment
- Customer is not on Sales Operations Account Hold or Accounting Account Hold and if there is an Account Hold, Bypass Account Hold must be checked.
- Partial Shipment Orders
- Ship Complete is not checked and Quantity Committed is greater than 1
- Customer Terms is Cash Sale
- Accounting Hold is checked
- Order Entry Hold is unchecked
- Freight Terms is not NULL or Prepaid and Charge
- Status is Pending Fulfillment or Partially Fulfilled or Pending Billing / Partially Fulfilled
- Customer is not on Sales Operations Account Hold or Accounting Account Hold and if there is an Account Hold, Bypass Account Hold must be checked.
If the credit card authorization is successful, the accounting hold is unchecked and the warehouse can then process the order. If the credit card authorization declined, then the accounting hold stays checked and the order entry hold checkbox is checked. This will prevent the workflow from getting a new authorization. Then one of your last developments will automatically send the email to the user that created the sales order to obtain a new card and re-run the authorization. Once the order entry rep gets the card, they can remove the order entry hold and get a new authorization.
Our Solution
Description of Task
The requirement can be achieved developing a custom page which displays the Orders that satisfies the following criteria
- Ship Complete Orders
- Ship Complete is checked and Quantity Ordered is equal to Quantity Committed
- Customer Terms is Cash Sale
- Accounting Hold is checked
- Order Entry Hold is unchecked
- Freight Terms is not NULL or Prepaid and Charge
- Status is Pending Fulfillment
- Customer is not on Sales Operations Account Hold or Accounting Account Hold and if there is an Account Hold, Bypass Account Hold must be checked.
- Partial Shipment Orders
- Ship Complete is not checked and Quantity Committed is greater than 1
- Customer Terms is Cash Sale
- Accounting Hold is checked
- Order Entry Hold is unchecked
- Freight Terms is not NULL or Prepaid and Charge
- Status is Pending Fulfillment or Partially Fulfilled or Pending Billing / Partially Fulfilled
- Customer is not on Sales Operations Account Hold or Accounting Account Hold and if there is an Account Hold, Bypass Account Hold must be checked.
We can include following details on the page
On header
- A single select filter for Customer, Value will be Default to “All”
- Ship Complete single select Filter(Values : Ship Complete, Not Ship Complete), Value will be Default to “Not Ship Complete”
- Ship Date: Date field to filter the sales Order based on Ship date
Available Buttons
- Submit Button to initiate the Authorization Process
- Mark All Button to choose all the orders within a Page
- Unmark All Button to choose deselect all the orders within a Page
On sublist
- A select box as the first column to choose the items for processing
- Date
- Order #
- Customer
- Memo
- PO#
- Created By
- Ship Date
Process
The custom page link can be added on a Tab based on the User Role who has the permission required for this page. The user can open the page and they will be able to see the orders of all customer that satisfies the following criterias (since the Customer filter is All and Ship Complete filter is “Not Ship Complete” by Default)
- Partial Shipment Orders
- Ship Complete is not checked and Quantity Committed is greater than 1
- Customer Terms is Cash Sale
- Accounting Hold is checked
- Order Entry Hold is unchecked
- Freight Terms is not NULL or Prepaid and Charge
- Status is Pending Fulfillment or Partially Fulfilled or Pending Billing / Partially Fulfilled
- Customer is not on Sales Operations Account Hold or Accounting Account Hold and if there is an Account Hold, Bypass Account Hold must be checked.
Users can apply filters to see the order which comes under
- Ship Complete Orders
- Ship Complete is checked and Quantity Ordered is equal to Quantity Committed
- Customer Terms is Cash Sale
- Accounting Hold is checked
- Order Entry Hold is unchecked
- Freight Terms is not NULL or Prepaid and Charge
- Status is Pending Fulfillment
- Customer is not on Sales Operations Account Hold or Accounting Account Hold and if there is an Account Hold, Bypass Account Hold must be checked.
Then they can choose the required orders and need to press the Submit button to initiate the Credit Card Authorization
A scheduled process will be run in background to Get authorization on the selected orders
If the authorization passed, then script will remove the Account Hold on the sales Order which allows the warehouse team to process that order
If the authorization failed, then script will
- Enable the Order Entry Hold on the Order
- An email will be sent to the SO creator to obtain a new card and to re-run the authorization. The email will be exactly similar for the previous development except the sender. We will have use a specific user on the account as a Sender and corresponding to that we will set the Signature
Note
- The Order lines on a single page will be limited to 100
- Add page to tab Transactions > Sales > Credit Card Authorization in Bulk
- Roles that should be visible to Administrator, Warehouse Manager, Operations Manager, Operations Director.
- Sublist fields for page in the following order: checkbox, Date, Ship Date, Customer, PO #, Created By, Memo
- Need to add a validation on the backend script that requests the Credit card Authorization.
So all the Sales Order that satisfies the initially proposed conditions will be listed on the page without Amount To be Authorized Columns. And then we exclude the sales Order with the Amount <= 0 from getting the authorization.
Risks
- The save of Order will fail if the Automation process runs on the Order that is kept in an Edit context (Error Sample : Record has been Changed)
- Quantity of Inventory and Assembly item only be considered for the Ship Complete validation
- The Amount to be Authorized will be calculated as the same as the Partial Credit card Authorization functionality
- The concurrent process is not validated since the functionality will be limited to a specific set of roles, by assuming that the chance for multiple users will be rare. The submission will fail if multiple requests are tried to be processed at the same time by showing an alert.
- The Role list will be provided by MAR on development phase
Testing Plan
- We can implement it in Production account by considering only the Orders created for the customer “Eduardo Serrano (TEST)”