Credit Card Authorization: Automation Proposal

Proposal summary

Marshall would like to automate the Credit Card authorization for specific Orders

Requirement 

Marshall has the Authorize Credit Card button working properly which is a manual process. Now Marshall would like to automate getting credit card authorizations for sales orders that meet the following criteria.

  1. Ship Complete Orders
    1. Ship Complete is checked and Quantity Ordered is equal to Quantity Committed
    2. Customer Terms is Cash Sale
    3. Accounting Hold is checked
    4. Order Entry Hold is unchecked
    5. Freight Terms is not NULL or Prepaid and Charge
    6. Status is Pending Fulfillment
    7. 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.
  2. Partial Shipment Orders
    1. Ship Complete is not checked and Quantity Committed is greater than 1
    2. Customer Terms is Cash Sale
    3. Accounting Hold is checked
    4. Order Entry Hold is unchecked
    5. Freight Terms is not NULL or Prepaid and Charge
    6. Status is Pending Fulfillment or Partially Fulfilled or Pending Billing / Partially Fulfilled
    7. 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.

Workflow/script should run every 5 minutes between Monday-Friday from 7am to 3pm PST.

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 by deploying a script that can be scheduled every 15 minutes on Monday-Friday from 7am PST(Netsuite Company Time zone). 

Upon script initiation, it validate whether the Time is on or before 3.00pm PST, If so

The proposed script will search for the Order that satisfies the following conditions

  1.   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.
  2. 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.

The proposed script will run the Partial Authorization for each order that results in the above search criteria.

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 

Risks

  • We cannot run the process every 5 minutes. So we proposed to run it every 15 minutes.
  • The End time validation needs to be done within the script as there is no option to choose the End Time on scheduling setup
  • The Amount to be Authorized will be calculated as the same as the Partial Credit card Authorization functionality
  • 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

Testing Plan

  • We can implement it in Production account by considering only the Orders created for the customer “Eduardo Serrano (TEST)”

Leave a comment

Your email address will not be published. Required fields are marked *