Setting Up an Order Approval Process for a Store
A store administrator can determine whether orders made in the store require approval prior to being processed.
Orders are approved by users or groups who are assigned approval permissions.
The user groups that can be selected as approvers must satisfy the following two conditions:
-
They must have permissions for the store (the name of the store must be selected in the Allowed to Stores field in the User Group Setup page of this user group).
-
They must have the Approve Customer Orders permission selected for the storefront.
If you wish the approver to also be able to modify the order, ensure that the Modify Customer Orders permission is selected for the storefront.
If no product in the order requires approval, the order will not go through the approval process and will land in the relevant queue.
If an order approval process is set for a store, then by default all store products require approval. However, individual products may be excluded from this rule, as explained in Setting Up Advanced Parameters. In this case, if at least one product in the order requires approval, the approval process for the entire order will take place. The approver will receive the order with an indication as to which product(s) in the order require approval.
The order approval process is not compatible with all clearing options. For example, if a credit card is used for the order payment, no order approval can be applied. In case you selected for your store a clearing option that is incompatible with the order approval process, the order approval page will show a warning message.
The order approval process is not supported in uStore Connect and uStore Connect Enterprise stores.
To set up an order approval process for a store:
-
In the store list, select the required store and then click Store Settings > Order Approval Process.
The Orders Approval page is displayed.
If you selected for your store a clearing option that is incompatible with the order approval process, the following warning message will appear:
In such a case, go back to Store Setup > Clearing tab and select clearing options that are compatible with the approval process.
-
To activate the approval process in the store, select the Orders in this store require approval checkbox.
Note: Once this checkbox is selected, all clearing methods that are available in the mall but are not compatible with the order approval process will be hidden in the Clearing tab of the Store Setup to prevent errors. If you want to enable the use of a credit card in the store, you will have to clear the Orders in this store require approval checkbox for this store before making this clearing option available.
-
In the Approval Process section, select the type of approval process you want to apply to your store:
-
Each user group permitted to this store has a different approver (Single-Level Approval): There is a specific approval process for each customer group that is allowed to this store. The approver (group or single person) that you choose is the only approver.
-
Each user group permitted to this store has a different approval process (Multi-Level Approval): There is a specific approval process for each customer group that is allowed to this store. The approval process does not end with the approver that you choose for the customer user group, but rather continues to a higher level approver, if such was defined, until it reaches the final (highest level) approver.
For example, a company has the following approval process: Marketing department orders need to be approved by the Finance department, and the Finance department needs to be approved by the Management department. The Management department is the highest-level approver and does not need any further approval.
-
User group assigned by external service (Single-Level Group Approval)
Choose this option to let an external service control which user group should approve each order submitted for the store.
Same approval process for all store orders
-
Choose one of the following types of approvers:
-
Group approval. If you want a user group to be responsible for order approvals, ensure that the Select Group Approvers option is selected, and then choose the required group from the list. Note that user groups that have no users cannot be assigned to approve orders.
If you want to enable the customer to select a specific approver from the group, select the User is allowed to select an approver checkbox. In the storefront, the customer will have the option to select the specific approver from the approval group.
In the Order Details page, the customer will be able to change the selected approver using the Change Approver button. This option will be available for orders that are pending approval.
-
Single approver. If you want to specify a single approver instead of a group, select the radio button next to the Type Approver Email field, and then type the email of the required approver. Note that this user must be part of a group that has permission to approve order in this store.
-
-
You can define a price threshold so that the approval process will start only if the order exceeds this threshold. To do so, enter a threshold value in the Approval Start Threshold field.
For example, if you enter 10,000 as the threshold value, no approval is required if the order is priced below 10,000, and the order will go directly to production.
If you wish to set the approval process for any cost, leave this field empty.
-
In the Text Insertion section, you may edit the notification message. This message will be displayed to the customer in the storefront order summary page when the order status is "Pending Approval".
-
Click Save.
Each user group permitted to this store has a different approval process (single or multi-level approval)
-
In the Groups with permission to this store table, choose the approver for each customer user group using one of the following options:
-
Group approval. If you want a user group to be responsible for order approvals, in the GroupApprover column ensure that the Select Group Approvers option is selected, and then choose the required group from the list. Note that user groups that have no users cannot be assigned to approve orders.
If you want to enable the customer to select a specific approver from the group, select the User is allowed to select an approver checkbox. In the storefront, the customer will have the option to select the specific approver from the approval group.
In the Order Details page, the customer will be able to change the selected approver using the Change Approver button. This option will be available for orders that are pending approval.
-
Single approver. If you want to specify a single approver instead of a group, in the Single Approver column select the radio button next to the Type Approver Email field, and then type the email of the required approver. Note that this user must be part of a group that has permission to approve order in this store.
-
-
In the Group Priority column, use the arrows to set the priority of the customer user group. The highest priority is 1.
Setting the group’s priority is important for users that are members in several customer user groups with different approval processes. By setting the priority of the customer's user group, the approval process of the highest priority group will be the chosen approval process for that user.
Note that changing the priority will not affect the existing pending orders.
-
For each group, you can define a price threshold so that the approval process will start only if the order exceeds this threshold. To do so, enter a threshold value in the Approval Start Threshold field.
For example, if you enter 10,000 as the threshold value, no approval is required if the order is priced below 10,000, and the order will go directly to production.
The order approval threshold can also apply to multiple approval steps. For Example, if you enter 10,000 as the threshold value for approver A and 20,000 for approver B, an order valued at 15,000 will need the approval of approver A, but after approval it will be sent to directly to production without stopping for a second approval of approver B.
If you wish to set the approval process for any cost, leave this field empty.
-
In the Text Insertion section, you may edit the notification message appearing in the Order Confirmation Text using approval process text box. This message will be displayed to the customer in the storefront Order Summary page when the order status is "Pending Approval".
-
Click Save.
Notes:
-
When you clear the Orders in this store require approval checkbox, all approver group assignments are removed.
-
Locking occurs when an approver enters the order to approve. If the approver does not reject, approve or modify the order within thirty minutes, the order becomes available for other approvers.
User group assigned by external service (single-level group approval)
Choose this option if you wish for an external service to control which user group should approve each order submitted to this store.
In the Webhook Configuration field, configure the webhook that will choose the approval user group.
The webhook configuration should hold valid JSON input. The JSON should include the following elements:
-
URL: Set your order approval webhook URL.
-
signatureKey: Set a random signature key. It will be used to hash and validate the JSON on both sides.
-
storedProcedureName: The name of the stored procedure that generates the order data JSON to pass to the webhook. You may create a different stored procedure that brings more data or formats the data differently.
Stored procedure call details:
The existing stored procedure "Order_DetailsXml" covers most cases. However, in case a custom stored procedure is needed, it should provide the following parameters: orderId, userID, cultureID. If the webhook requires additional information, it can be extracted from the database using these parameters.
Webhook configuration example:
{ "url": "https://your-webhook-domain.com/service", "signatureKey": "e31092cc-28b7-4797-8533-5a0c26cd9ab0", "storedProcedureName": "Order_DetailsXml" }
Custom configuration is a free text field. This text will also be passed to the webhook.
Learn how to configure the Order approval webhook.