Global search
A store associate should be able to search for orders directly or orders created for a particular customer. Additionally, the store associate should be able search for products and shipments to provide relevant information to the customer.
Solution
The following section describes APIs, user exits, services, and other components.
- Order search
The store associate can click the Global Search icon on the menu bar to search for an order. If the customer has a receipt, the store associate can search by the order number or scan a barcode on the receipt.
- When the store associate scans the barcode on the receipt, the translateBarCode API is called to retrieve the order number. The getOrderList API is called with the order number to retrieve the details of the order.
- If no translation is returned by the translateBarCode API, then the getOrderList API is called with the original input to the translateBarCode API, or the store associate can manually input the order number.
- If multiple translations are returned by the translateBarCode API, an appropriate error message is displayed.
- When the store associate manually enters the order number, the getOrderList API is called to retrieve the order.
- If a single order is found and if the order is confirmed, the Order Summary screen is displayed. If the order is a draft order, the View Cart screen is displayed.
- If multiple orders are found, they are listed and the store associate can select the appropriate order to view or modify.
- If no orders are returned by the getOrderList API, an appropriate error message is displayed.
- The order search also retrieves sales orders created through multiple channels. The order list displays a fixed number of records and the list is sorted by most recent orders first. Sometimes, a customer may not have the order number or the order receipt. In such cases, the store associate can click the Advanced Search link to search for the order using other criteria like customer's first name, last name, email id, phone number, zip code and payment method. For example, if store associate chooses payment method as one of the criteria, the
getPaymentTypeListAPI is called to retrieve all payment types using theCallingEnterpriseCodeattribute for the store. The payment type selected by the store associate is passed as input along with other search criteria to thegetOrderListAPI to retrieve the matching orders. - The search displays a fixed number of orders. If there are more orders to load, a message is displayed indicating the store associate to refine the search. The store associate can use the filter option to narrow down the search result.
- The search lists the orders placed by registered and unregistered customers. The order list provides details like order number, number of products, order channel, store name (in case of store purchase), date, order amount, status, customer name, and so on.
- The
getCompleteOrderLineListAPI returns images for a maximum of two products along with a count of remaining products in the order.
- When the store associate scans the barcode on the receipt, the translateBarCode API is called to retrieve the order number. The getOrderList API is called with the order number to retrieve the details of the order.
- Customer Search
- A store associate can click the Global Search icon on the menu bar and select Customer as the entry point from the adjacent menu. The store associate can type in the complete phone number of customer to search the customer. The
getCompleteCustomerListAPI is called to retrieve the matching customers. The API does an exact match on customer phone numbers and returns the results. Alternatively, the store associate can click Advance Search link to narrow customer search using name, email, phone number, zip code and last digits of credit card.- If a single customer is retrieved, the customer details screen is displayed with the customer' order history.
- If multiple customers are retrieved, the Customer List screen is displayed. After the correct customer is identified, the store associate can click View Orders for that customer.
getOrderListAPI is then called to retrieve the orders associated with that customer. Orders are sorted by most recent first and each order has details such as order number, count of products (order lines), order channel, status, order created date, order amount and so on. Draft orders are also displayed along with confirmed orders. - The
getCompleteOrderLineListAPI returns images for a maximum of two products along with a count of remaining products in the order.
The store associate can filter orders using criteria like order date range, status and order channel. When the store associate clicks the Refine Order List option, the
getCommonCodeListAPI is called to populate the entry type check boxes. The Order Statuses are picked from a pre-defined list in theOrderStatusList.jsonfile, present in the<WAR>\ngstore\shared\order\folder. The file is configurable, so you can customize the statuses as required. The store associate can selectSearch within storeto look for orders created only by the current store.When the store associate selects the appropriate filter criteria and applies the filter, the filter criteria is passed to the
getOrderListAPI to retrieve the orders matching the input criteria. Order status, date range, seller organization code, and a complex query with the appropriateEntryTypeattribute is passed as input to thegetOrderListAPI to retrieve orders. For store channel, theEntryTypeisStoreand for call center channel, theEntryTypeisCallCenter. - A store associate can click the Global Search icon on the menu bar and select Customer as the entry point from the adjacent menu. The store associate can type in the complete phone number of customer to search the customer. The
- Product Search
- A store associate can click the Global Search icon on the menu bar and select Product as the entry point from the adjacent menu. The store associate can search for a product using Product ID, Barcode or Keywords.
- When the store associate enters the keywords and clicks the Search icon, the products that match the search are displayed on the Find Products screen. The searchCatalogIndex API is called with the ItemGroupCode attribute set to PROD, to fetch a list of products that match the keywords. When a product is selected from the list of matching products, the getCompleteItemList API is called to get details of the product.
- Alternatively, if the store associate scans a product or enters a product ID and clicks the Scan button, the getCompleteItemList API is called to get the details of the scanned product.
- When the product details are displayed, the store associate remains on the Find Products screen of the wizard.
- Shipment Search
A store associate can click the Global Search icon on the menu bar and select Shipment as the entry point from the adjacent menu. The store associate can either scan the shipment or order or search for a shipment using order or shipment number. Alternatively, the store associate can perform an advanced search for shipments using several criteria, which include order number or shipment number, fulfillment type, shipment status, carrier, and so on.
- In the Fulfillment Type list, the store associate can select the appropriate fulfillment method. By default, All, Pickup, and Ship from Store are displayed.
- The store associate can select an appropriate status from the Shipment Status list. You can register shipment statuses in the
shipment-status.config.jsfile, present in the <WAR>\ngstore\store\config\ directory. To fetch the list of applicable statuses, a call such asiscShipmentStatus.getShipmentStatusConfig(All)is made, which returns all applicable shipment status for flow nameAll(default flow name for global shipment search). TheiscShipmentStatusProvideris used to register the status for shipments against a flow name. Flow names can bePick,PackorAll. It is customizable and if you want to add your own statuses, you can make a call to theiscShipmentStatusProviderto register new statuses for different flows. For example,iscShipmentStatusProvider.addShipmentStatusConfig(All,9000,shipmentList.LABEL_9000);Only statuses added against the flowAllare listed here in the status list for shipment search. - The
getScacListAPI is called to populate the carriers in the Carrier list. - To further narrow down the search, a store associate can choose to exclude shipments associated with transfer orders and orders being fulfilled by other stores. You can also search for shipments assigned to a particular store associate.
- The store associate can also enter customer details such as first name, last name, phone number and email address as the search criteria and specify whether the customer is a pickup recipient or not.
When the store associate performs a search, the
getShipmentListAPI is called to retrieve the shipments that match the input criteria.The store associate can choose to sort the search results based on the Expected Ship or Pickup date. The
CallingOrganizationCodeandEntity = Shipmentare passed to thegetOrderByListservice to populate the sorting options.The store associate can choose to filter the shipment search results based on shipment statuses. The statuses are fetched in the same manner as in search criteria. Based on the status of a shipment, a store associate with appropriate resource permissions can perform certain tasks on the shipment.
- If the status is “Ready for Backroom Pick”, the store associate can print a pick ticket and perform backroom pick.
- If the status is “Backroom Pick in Progress”, the store associate can choose to continue backroom pick initiated by another user. The store associate is prompted appropriately before proceeding. On confirmation, the shipment is assigned to the currently logged-in store associate who can proceed with the specific wizard flow.
- If the status is “Ready for Packing”, the store associate can choose to pack the shipment.
- If the status is “Packing in Progress”, the store associate can choose to continue with packing process already initiated by another user. The user is prompted appropriately before proceeding. On confirmation, the shipment is assigned to the currently logged-in store associate who can proceed with the specific wizard flow.
- If the status is “Ready for Customer”, the store associate can start the customer pickup task.
Implementation
The following section describes the rules that you must configure.- The store associate must have the
Order Search
resource permission to search for orders. - The store associate must have the
Customer Search
resource permission to search for customers. - The store associate must have the
Order Capture
resource permission to search for products. - The store associate must have the
Global Shipment Search
resource permission to search for shipments.