Proposal For QR Based Sales Order Process and Item Price Check

Proposal Summary 

This proposal covers the development and implementation scope for the QR-based Sales Order creation and update process. It also includes functionality to retrieve item prices based on QR codes using NetSuite Suitelet capabilities.

The proposal is based on discussions, expectations, and understandings derived from meetings and other communications. Any additional requirements or changes identified during development will be treated as change requests.  

Requirement 

 

The client requested a feature enhancement to the existing QR-based Product Location Tracking Process integrated with their NetSuite system. The enhancement should enable users to manage Sales Orders by selecting either to update an existing Sales Order or create a new one. The process will include item scanning for efficient addition or update of items and ensure all required data is captured to complete the order. Additionally, the client has requested an optional payment processing functionality using USB-C card readers for iPhone/iPad devices. This feature should allow payments through existing client payment methods stored in NetSuite or new card transactions, with permissions to control user access to payment processing. A second link is also required to display product details, including wholesale and retail prices, as a non-editable return from the QR code. 

Deliverables 

The implementer has thoroughly reviewed the requirements and proposes the following deliverables: 

The new functionality will be developed within the existing application, utilizing NetSuite Suitelet. The NetSuite database will serve as the sole database, with no reliance on external cloud systems like AWS for batch processing. As per the current setup, an external URL with login functionality will be available. To address potential concurrency issues when five or more users access the external URL simultaneously, certain users need to use the internal URL with an active NetSuite login session. Both the internal and external URLs will offer identical functionality, incorporating existing and new features. 

  • The login setup will remain unchanged, utilizing the employee email and custom password fields as per the existing configuration. 
  • Two new tiles will be added to the application’s welcome page: “Sales Order” and “Item Price Check.” 
  • The Tile Access field in the employee record will be modified to a multi-select field with four options: Work Order, Items, Sales Order, and Item Price Check. Tiles will appear on the custom application based on the selected values in this field. 

Sales Order Process 

The proposed functionality will include two primary options: Sales Order Creation and Sales Order Update.  

Sales representatives will be able to manage orders for their own customers as well as for customers assigned to their subordinate sales representatives. Customer and sales representative relationships will be identified through the Sales Rep field on the customer record and the Supervisor field on the employee record. 

Sales Order Creation 

  1. Customer Selection: Users can search for a customer by entering the customer’s name or ID.  

Adding Items: Once the customer is selected, users can add items to the Sales Order by scanning QR codes. Each item must be scanned individually. 

  1. Removing Items: Users will have the option to remove items if an incorrect item is scanned. 
  2. Item Quantity: 
  • For flagship items, the quantity will always default to 1. Bowls, which have unique Authenticity Numbers, fall under this category. 
  • For other items, such as mallets and O-rings, users can specify the desired quantity. 
  • A “Flagship Item” checkbox will be used to identify items where the quantity is fixed at 1. If an item is not marked as a flagship item, users can input the quantity manually after scanning. 
  1. Sales Order Fields and Status: All body fields in the Sales Order will auto-populate based on the selected customer or default values. The sales order status will default to “Pending Fulfillment.” 
  2. Order Total Display: The order total will be displayed on the order creation page and will automatically update whenever items are added or removed. 
  3. Submission: Once all items have been added, users can click the save button at the bottom of the page to create and save the Sales Order in NetSuite. Before saving, a confirmation popup will appear, asking users whether they need to add more items or proceed to save the Sales Order. 
  4. Confirmation: After the order is created, a success message will display the Sales Order document number. 

 

Sales Order Update 

  1. Fetching Orders: Users can input the Sales Order number or customer name to fetch and view a list of Sales Orders. 
  2. Order Selection and Modification: 
  3. Users can select a Sales Order and either add new items (via QR scanning or manual input) or remove existing items. 
  4. Sales Orders with statuses Billed, Closed, or Cancelled cannot be modified by sales representatives. 
  5. Permissions: 
  6. A new field, Sales Order Update Permission, will be added to employee records to determine managers authorized to update closed Sales Orders or delete the sales orders. 
  7. Sales Orders with Fulfilled or Billed statuses cannot be deleted to preserve dependent records such as Item Fulfillments or Invoices. 

 

Add Item Manually Option: In the QR scanning popup or the Sales Order page, users will have the option to manually add an item by entering its “Authenticity” value. This feature will assist sales representatives in streamlining the order creation process in case the QR scanning process fails. The “Authenticity” value will be used to identify items. 

Item Price: If the customer has a membership (Associate, Affiliate, or Partner), the Wholesale price will be applied. Otherwise, the Retail price will be used. The price will auto-populate and cannot be modified through the custom page. The prices will be determined based on the Item Price Level. 

Tax: For membership customers, no sales tax will be applied. For retail customers, sales tax will be applied. A list of tax codes will be provided for selection, and the applicable percentage will be calculated based on the chosen tax code for retail customers. 

Shipping Quote Task: When a new Sales Order is created, a task will automatically be generated and assigned to the shipping manager (Brandon Morrison). The shipping manager will provide a shipping quote and manually create a new task for the sales representative to communicate with the customer. The task will include basic details related to the shipping quote, and the Sales Order will be attached to the task. As per the current scope, the shipping rate cannot be entered to sales order through this custom application. Users will need to open the Sales Order record in NetSuite to update the shipping item and rate. 

Item Price Check 

A dedicated Item Price Check page will be created to enable users to find item prices: 

  1. Item Identification:  
  • Users can either scan the item’s QR code or enter the Authenticity Number to fetch the item. 
  1. Price Display:  
  • The page will display the item name, description, retail price, and wholesale price. 
  • Retail prices will be fetched from the “Full Retail (Base Price)” level, and wholesale prices from the “Distributor Price” level. 
  1. Read-Only Process:  
  • This process is for reference only and will not update any data in NetSuite. 

 

Notes 

  • No external databases, such as AWS or Firebase, will be used. The functionality will be implemented entirely using the NetSuite Suitelet. 
  • The login page will be available via both Internal and External URLs. When using the Internal URL, users may need to log in to both NetSuite and the Custom Application. The functionality for both Internal and External URLs will remain consistent without any differences. 
  • This scope focuses solely on the updates to the Custom page and does not include any changes to the QR code generation for items. The generation of static QR codes for accessories is also excluded from this scope. 
  • Currency conversion is not part of the current scope; only USD will be used for sales orders. 
  • Tasks will only be created when a new sales order is placed; in other cases, users will manually create the tasks. 
  • Payment processing is outside the scope of this phase and will be addressed in future phases. 
  • Since the client has not provided a mock-up, the custom page will be designed and developed based on the implementer’s preferences. The mock-up included in this document is for reference only, and the final design will be determined during the development phase. 
  • Only Inventory Items will be considered for adding items to sales orders. 
  • The QR scanner functionality will be developed in alignment with the existing implementation for Work Order and Item functionalities. 
  • For retail customers, sales tax will be added by the sales representative while adding items to the Sales Order. A list of tax codes will be displayed on the custom page, allowing the user to select one tax code per line item. The corresponding tax percentage will then be applied to the selected item line. Tax selection will need to be done separately for each line. Only individual tax codes will be available in the list, and tax groups will not be included. 

Assumptions 

  • The shipping rate will be added to the sales order directly by the sales representative or shipping manager through a NetSuite record, not through the custom application. In the current scope, the custom application does not allow entry of the shipping amount. 

Questions 

  • Do sales representatives apply any discounts to Sales Orders beyond reward points redemption? If additional discount options are required, adding a field to select a discount item can fulfill this needs. 
  • Regarding reward redemption, can we add a checkbox on the Sales Order creation page to flag it as a reward redemption order? If the checkbox is selected, the available reward points will be applied as a discount to the Sales Order. Please confirm if this approach meets your expectations for applying discounts and rewards. 
  • In the Shipping cost quote, should email reminders be sent to the shipping manager when new sales order is created? Should a task/ email be created for updates to the Sales Order as well? 
  • For the shipping cost quote, should email reminders be sent to the shipping manager when a new Sales Order is created? Additionally, should a task or email notification be generated for updates made to the Sales Order? 

Risks 

  • The use of a Suitelet page in NetSuite may lead to concurrency limitations if multiple users access the page simultaneously. To mitigate this, users are advised to access the Custom Application (Suitelet) via its internal URL. 
  • The QR scanning functionality will be developed using an external JavaScript library. Any changes to this external library may potentially impact the QR scanning functionality in the custom application. 

Leave a comment

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