Proposal Summary
This proposal outlines a comprehensive solution for implementing the maximum discount and promotion and setting approval workflow in the Bacchus Account. The automation focuses on approving sales orders based on the maximum discount and automatically applying the promotion according to the item, customer, sales rep and location. This automation aims to streamline the sales process, enhance efficiency, and ensure compliance with discount policies and promotional offers. The estimated effort for implementing the customization in the sandbox and production is 100 hours.
The scope and the provided estimate are based on the anticipation, expectation, and understanding through our discussions and email. If the scope change/additional feature development identified during actual development, they will be treated as change request.
Requirement From Bacchus Wine Merchant
Bacchus has expressed their desire of implementing the Sales order approval based on Max-discount and discount and auto applying the promotion in the sales order based on the item, customer, sales rep and location.
Statement of Work (SOW)
The implementer proposes a custom solution utilizing the capabilities of a custom script within the sales order record to filter promotions based on specified criteria. Based on the discount chosen in the item line the amount will be updated.
If the discount of the item is greater than the max discount in the item line, then the sales order goes through the approval process.
1. Sales Order Approval based on Max discount and Discount
Existing Functionality – 3 in 1 Development:
Whenever a sales order is created, it will go through the approval process if the order has ‘Waive Split Fee’, ‘Waive Delivery Fee’, and the customer category is Off-Premises, and the order has ‘On Prem’ items. If any one of these scenarios is met, the order will go to the approval process. After approval, an item fulfilment will be created for the committed items.
Incorporating Max Discount Approval Workflow with 3-in-1 Approval Workflow
A ‘Discount Approval’ checkbox will be added to the sales order record by the implementer. This checkbox is pivotal in tracking and managing discounts that exceed the maximum allowable discount. If any item line in the sales order includes a discount greater than the predefined maximum discount, the ‘Discount Approval’ checkbox is automatically checked, indicating that the sales order should goes through the max discount approval. Upon activation of this checkbox, a new field appears prompting the user to enter a reason code. This reason code provides justification for granting the maximum discount at the item line level. This will be set as a mandatory field whenever the discount is greater than max discount.
The user must enter a valid reason code explaining why the maximum discount is being applied. This step ensures accountability and provides a rationale for audit purposes.
Once the reason code is entered, and the sales order is saved, it enters the approval workflow.
- The approve max discount and reject max discount buttons will be visible in the sales order record along with the buttons in the 3-in-1 approval.
- The item fulfillment will be generated based on the following scenarios
Scenario
Consider a sales order with following item lines:
- First Item Line: 3DChard 21 – Discount is not greater than the max discount
- Second Item Line: 3DChard 22 – Discount is greater than the max discount
- Third Item Line: 3DChard 22 – On-prem item is added
Here, the sales order undergoes a process for maximum discount and a 3-in-1 approval. Depending on these approvals, four buttons will appear on the sales order record, indicating different approvals.
Approval Scenarios
- Max Discount and On-Prem Approved:
- If both the maximum discount and the on-prem conditions are approved, an item fulfillment will be created in NetSuite.
- On-Prem Approved then Max Discount Approved:
- If the on-prem condition is approved first, followed by the maximum discount approval, an item fulfillment will be created in NetSuite.
- Max Discount Rejected:
- If the maximum discount is rejected, regardless of the on-prem approval status, the item fulfillment will not be created. A prioritization of maximum discount approval is given in the customization. An email notification will be sent to the sales representative indicating the reason for the rejection of the discount.
- The sales representative on receiving the rejection email then update the sales order by either:
- Removing the line item with discount greater than max discount.
- Reducing the discount to make it less than the max discount.
- After making these adjustments, the sales order can be saved again for remaining approval.
- Once the sales order is adjusted and approved, it can be saved, and item fulfillment can be created.
Assumptions
- Approval and reject buttons will be available based on the approval process.
- Implementer will restrict the Sales order save if the discount is not adjusted within the line level.
- Email will only send with rejection reason if the sales rep has an email associated with them.
- Implementer will consider the sales order with status pending approval and pending fulfillment.
Scope Limitations
- The maximum characters in reason code will be 100 characters
- If the corresponding item fulfillment is removed from the sales order, the sales order will need to undergo the approval process again, following the 3-in-1 approval workflow.
- Approval buttons will be available to the 3-in-1 approvers (Implementer assume that the approvers are same)
- Once the sales order is submitted for approval, only the approvers can make edits to the sales order until the approval process is complete.
2. Auto applying Promotion
Pre-requisites
- Custom Field
Implementer will be creating a custom list field “Promotion” in the sub-list which allows the user to select the promotion from the list.
- Custom Record
Implementer will create a custom record called “Promotion Record” in the NetSuite account to store promotion details. This custom record will store a list of promotions, including their respective discounts, customer and sales rep information, quantities, start date, end date and applicable states.
- Remove custom column field
Remove the custom column field WINERY CLAIM % and WINERY AUTH PERS from the sales order item line.
When a sales order is created with the relevant details and an item is added to the item line, the implementer will check for applicable promotions based on the item, location, sales rep, and customer. Using this information, a custom search will be performed within the “Promotion” custom record to identify any available promotions, which will then be displayed in a custom list.
When a discount-related promotion is selected, the total amount will be adjusted to reflect the associated discount. If offer-related promotions are chosen, the quantity will be adjusted in the sales order. If item-related promotions are selected, a new item will be added to the sales order record. For whole order promotions, the discount will be applied to the entire sales order.
Categories of promotions
There exist multiple categories of promotions that can be applied to the sales order,
CASE 1: Percentage is specified in the promotion
During the creation of a sales order at the item line level, the user will select a promotion. If the chosen promotion entails, for instance, a 15 percent discount, the discount field will automatically populate with the value 15. Consequently, the total amount will be reduced by 15 percent. The custom field Discount amount and Total amount will be populated accordingly.
CASE 2:(Offer promotion Eg: buy 2 cases get 1 free minimum order3)
If a quantity-based promotion is selected in the custom list field, the implementer will modify the quantity rather than applying a discount. The discount field will remain empty, and the quantity will be adjusted according to the chosen promotion.
When a user attempts to select a promotion that doesn’t meet the quantity criteria, an alert message will appear.
For instance, if the “Buy 3, Get 1 Free” promotion is selected, the quantity will be adjusted to 4 while maintaining the total amount and without altering the units.
CASE 3: (Promotion based on customer category Eg:On-premise and off Premise customer)
This promotion is exclusively applicable to customers categorized as on-premises or off-premises. After a sales representative enters a sales order, the promotion should only be accessible in the promotion list if the customer falls under the on-premises or off-premises category. This ensures that the sales team can select this specific promotion based on the customer’s category. In such instances, thorough verification of the item, customer, and location is necessary to determine the list of promotions applicable to that item based on the location, as well as the customer’s category.
CASE 4: Combined promotion Eg: on-premises + MM Magnum promotion
For on-premises customers selecting this category of promotion, a discount can be applied to the total order amount. Additionally, an extra item for MM Magnum (FD2MOTHER) will be included in the sales order, with the quantity set to one and the price set to zero.
To fulfill this promotion, the implementer will assess the availability of all vintages (21/22/23). If any older vintages are in stock, they will be prioritized for inclusion in the sales order item line. If no older vintages are available, the next available vintage will be selected. The Implementer must include the logic to select the MM item based on the vintage year. If the item with combined promotion is removed from the item line, the additional MM item that implementer has added to the sales order must be removed.
CASE 5: (Whole order promotion)
Whenever a user creates a sales order and on saving the record the user will be notified with the privilege of a whole order promotion that can be chosen to apply for the whole order.
A fixed percentage discount that can be applied to the entire order, subject to specific criteria.
For instance, a 20% discount will be applicable to the entire order if the total quantity of products purchased reaches 64 cases.
This discount will be applied at the order level rather than at the individual line level. For example, if the total order amounts to $800, a 20% discount will be deducted from the overall amount.
To streamline the process, users will be given the option to choose between line-level promotions and the whole order promotion. However, to avoid confusion, line-level promotions will be automatically removed once the whole order promotion is selected.
Implementer will create a custom list field to display the list of whole order promotion that can be applied to the order. Based on the promotion chosen from the list the discount item will be automatically chosen in the sales order and the corresponding amount will be deducted from the whole order.
Validation functions need to be implemented to check whether either the line level or whole order promotion is only applied to the sales order.
Furthermore, to ensure clarity and user awareness, alert messages will be triggered. An alert message will be shown to notify the user can avail the whole order promotion. Similarly, if a line-level promotion is already chosen and the user attempts to select the whole order promotion, they will be alerted to this discrepancy.
CASE 6: Winery Claims
If the “Promotions” custom record indicates a winery claim as “Yes” and the item has a discount lower than the actual promotion listed in the custom record, the company is eligible to claim the discount. In these instances, a custom record “Winery claim” should be generated with the details and attached to the sales order.
Assumptions
- Only a single promotion can be chosen from the custom list.
- The promotion in the custom list will be populated based on the values from the custom record.
- If the whole order promotion is chosen, then all other promotions applied in the line level will be removed from the line-level.
- Implementer assumes that the user does not choose the standard promotion from the sales order.
- The custom record details will be shared by the client prior to the development.
- The promotion details will only populate from the custom record.
- Each promotion has a defined validity period, determined by a start date and an end date.
- If the end date is not specified, the promotion is considered valid indefinitely until manually deactivated.
- Implementer assume that the Winery claim, and Winery Auth Pers are not used in any other customizations. And removal of these columns from the item line will not impact any existing development.
- The discount amount will be deducted from the total amount if discount related promotion is added.
Scope Limitations
- As there exist multiple customizations in the sales order record, there might be a chance to slow down the system performance.
- Only a single promotion can be chosen from the list.
- Once a promotion is applied to a sales order, the details of that promotion are fixed and do not change even if the underlying custom record of the promotion is updated.
- Updates to the custom record (such as changes in promotion terms, customer name, or discount amounts) are only applicable to new sales orders created after the update.
- If an item does not have a matching promotion in the custom record, the custom list will be shown as empty.