System and method for automatically combining split deliveries for a single customer

By receiving and analyzing order information in a computerized system and automatically determining and rescheduling delivery waves, the problem of difficulty in combining multiple delivery in existing systems is solved, and the effect of reducing delivery costs is achieved.

CN115699048BActive Publication Date: 2025-05-27COUPANG CORP
View PDF 3 Cites 0 Cited by

Patent Information

Application Number
CN202080003831.8
Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
Priority Date
2019-12-17
Filing Date
2020-09-21
Publication Date
2025-05-27
Estimated Expiration
2040-09-21

AI Technical Summary

Technical Problem

Existing computerized order processing systems have difficulty determining when multiple delivery can be combined into a single delivery to reduce costs or inefficient in determining a merger.

Method used

By receiving order information from a remote system, the fulfillment center and delivery waves are determined based on the associated identifier and the remote system, and associated storage in the database, thereby automatically rescheduling the delivery waves to merge the delivery of multiple packages.

Benefits of technology

Automatically merge the delivery of multiple packages through multiple delivery waves into a single wave, reducing the cost incurred for multiple delivery to the same location when only one delivery is required.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN115699048B_ABST
    Figure CN115699048B_ABST
Patent Text Reader

Abstract

The disclosed embodiments generally relate to a computerized system for delivery wave scheduling. The method may at least include: receiving order information including a plurality of products and associated identifiers from a remote system; determining, based on the associated identifiers and the remote system, a fulfillment center and a delivery wave from among a plurality of delivery waves for each of the plurality of products; storing the determined delivery waves associated with the products in a database; determining that at least one delivery wave is associated with a time period earlier than a later delivery wave, and in response thereto: modifying the database such that products initially associated with an earlier delivery wave are associated with a later delivery wave; and forwarding computer instructions to at least one mobile device to generate a graphical user interface displaying the products and information associated with the second delivery wave.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] The present disclosure generally relates to computerized systems and methods for automatically rescheduling package deliveries. In particular, embodiments of the present disclosure relate to innovative and unconventional systems that analyze electronic order information through a logistics management system based on data collected from multiple subsystems to determine when split deliveries can be combined into a single delivery and automatically reschedule the delivery after such a determination. Background Art

[0002] With the advancement and popularity of computer technology, online shopping (also known as e-commerce) has become one of the main ways of doing business. Consumers and businesses purchase goods from online suppliers more frequently than ever before, and the number of transactions and sales revenues are expected to grow at an alarming rate year by year. As the scope and volume of e-commerce continue to grow, the number of different products available online and the average number of purchases made within a given period are also growing exponentially. For example, it is said that the number of different products sold by a popular online retailer has reached over 600 million products, and the number of packages shipped by the same retailer per day has reached over 1.6 million.

[0003] Each online purchase inherently requires the purchased goods to be delivered to their intended recipients. Each online purchase or order typically includes one or more goods, where the one or more goods can be packaged into one or more packages, each package having its own promised delivery date. A typical order can be processed, for example, through the following steps: receiving an order for one or more goods from a customer; retrieving the one or more goods from inventory; packaging the one or more goods into one or more packages; and delivering the one or more packages to the intended recipient before the promised delivery date. The promised delivery date can be set by the retailer itself or the shipping courier, or a customer can request a specific date, which can then be designated as the promised delivery date. An ideal order processing system would deliver each package to the intended recipient before the promised delivery date without failure.

[0004] In some cases, an order processing system can operate using a "wave process", in which products are scheduled to be delivered to a specified area during one or more waves within a given time period. For example, wave delivery can include a first wave of packages around a specific area (e.g., a route including sub-routes) at one time of day and then a second wave of packages to the same area at a later time of day. This process can be used as an alternative to a "shift process", in which products are delivered in one or more shifts in different areas (e.g., two shifts covering two halves of a specified area). The "wave process" can offer certain advantages over the "shift process". For example, the "wave process" can provide excellent area coverage and can enable delivery to certain areas that would otherwise be unavailable for delivery. However, since the "wave process" may cover the same area multiple times a day, using this process may result in delivering products to the same location multiple times a day when only one delivery is needed, significantly increasing costs.

[0005] Current existing computerized order processing systems include varying degrees of automation and complexity in implementing the above steps. However, as the number of different products and orders increases, and is exacerbated by the fact that orders need to pass through a complex network of subsystems and the fact that certain orders have complex factors (e.g., partial returns), current systems have the problem that they cannot determine when multiple deliveries to the same recipient can be combined into one delivery to reduce costs (i.e., each package in an order is delivered to the intended recipient in a single wave rather than multiple waves) or are very inefficient when making such a determination.

[0006] Accordingly, there is a need for improved methods and systems for automatically combining the delivery of multiple packages over multiple delivery waves into a single wave in order to reduce the costs incurred by delivering to the same location multiple times when only one delivery is needed. SUMMARY OF THE INVENTION

[0007] One aspect of the present disclosure relates to a computerized system for delivery wave scheduling. The system may include: at least one processor; and at least one non-transitory storage medium including instructions that, when executed by the at least one processor, cause the at least one processor to perform steps including: receiving order information including a plurality of products and associated identifiers from a remote system; determining, based on the associated identifiers and the remote system, a fulfillment center and a first delivery wave from a plurality of delivery waves for a first product among the plurality of products; storing the first delivery wave in a database in association with the first product; determining, based on the associated identifiers and the remote system, a fulfillment center and a second delivery wave from a plurality of delivery waves for a second product among the plurality of products, the second delivery wave being different from the first delivery wave; storing the second delivery wave in the database in association with the second product; determining that the first delivery wave is associated with an earlier time period than the second delivery wave, and in response thereto: modifying the database to associate the first product with the second delivery wave; and forwarding computer instructions to at least one mobile device to generate a graphical user interface displaying the first product and information associated with the second delivery wave.

[0008] Another aspect of the present disclosure relates to a computer-implemented method for delivery wave scheduling. The method may include: receiving order information including a plurality of products and associated identifiers from a remote system; determining, based on the associated identifiers and the remote system, a fulfillment center and a first delivery wave from a plurality of delivery waves for a first product among the plurality of products; storing the first delivery wave in a database in association with the first product; determining, based on the associated identifiers and the remote system, a fulfillment center and a second delivery wave from a plurality of delivery waves for a second product among the plurality of products, the second delivery wave being different from the first delivery wave; storing the second delivery wave in the database in association with the second product; determining that the first delivery wave is associated with an earlier time period than the second delivery wave, and in response thereto: modifying the database to associate the first product with the second delivery wave; and forwarding computer instructions to at least one mobile device to generate a graphical user interface displaying the first product and information associated with the second delivery wave.

[0009] Another aspect of the present disclosure relates to a computerized system for delivery wave scheduling. The system may include: at least one processor; and at least one non-transitory storage medium including instructions that, when executed by the at least one processor, cause the at least one processor to perform steps that include: receiving order information including a plurality of products and associated identifiers from a remote system; determining, based on the associated identifiers and the remote system, a fulfillment center and a first delivery wave from a plurality of delivery waves for a first product among the plurality of products, the first wave being associated with a condition; storing the first delivery wave in association with the first product in a database; determining, based on the associated identifiers and the remote system, a fulfillment center and a second delivery wave from a plurality of delivery waves for a second product among the plurality of products, the second delivery wave being associated with a time period that is different from the time period associated with the first delivery wave; storing the second delivery wave in association with the second product in the database; determining that the time period associated with the first wave and the time period associated with the second wave occur during the same time period; determining that the first delivery wave is associated with an earlier time period than the second delivery wave, and determining the second delivery wave based on the second product not meeting the condition, and in response thereto: modifying the database to associate the second product with the first delivery wave; and forwarding computer instructions to at least one mobile device to generate a graphical user interface displaying the second product and information associated with the first delivery wave.

[0010] Other systems, methods, and computer-readable media are also discussed herein. BRIEF DESCRIPTION OF THE DRAWINGS

[0011] Figure 1A is a schematic block diagram showing an exemplary embodiment of a network including a computerized system for communication that implements shipping, transportation, and logistics operations;

[0012] Figure 1B depicts a sample search result page (SRP) in accordance with an embodiment of the present disclosure that includes one or more search results satisfying a search request and interactive user interface elements;

[0013] Figure 1C depicts a sample single display page (SDP) in accordance with an embodiment of the present disclosure that includes a product and information about the product and interactive user interface elements;

[0014] Figure 1D depicts a sample shopping cart page in accordance with an embodiment of the present disclosure that includes items in a virtual shopping cart and interactive user interface units;

[0015] Figure 1Edepicts a sample order page in accordance with the disclosed embodiments, including items from a virtual shopping cart, information regarding purchase and shipping, and an interactive user interface unit;

[0016] Figure 2 is an illustration of an exemplary fulfillment center configured to utilize the disclosed computerized system in accordance with the disclosed embodiments;

[0017] Figure 3 is a block diagram showing an exemplary embodiment of a database accessible by a Fulfillment Optimization (FO) system in accordance with the disclosed embodiments;

[0018] Figure 4 provides a flowchart showing an exemplary consolidation process that can be performed to consolidate split deliveries in accordance with the disclosed embodiments;

[0019] Figure 5 provides a flowchart showing a detailed exemplary consolidation process that can be performed to consolidate split deliveries in accordance with the disclosed embodiments;

[0020] Figure 6A provides an exemplary process in accordance with the disclosed embodiments that can be performed to reschedule the delivery of multiple products after determining that they should be delivered in the same wave;

[0021] Figure 6B provides a flowchart showing an exemplary process that can be performed to print and replace a package label after determining that the delivery of the label should be rescheduled to another wave in accordance with the disclosed embodiments;

[0022] Figure 6C provides a flowchart showing an exemplary process that can be performed to prevent the delivery of a product during a wave after the delivery of the product has been rescheduled to a different wave in accordance with the disclosed embodiments;

[0023] Figure 7 provides an explanation of how product information stored in a database can be modified to reschedule delivery in accordance with the disclosed embodiments. Detailed Description

[0024] The following detailed description refers to the accompanying drawings. Whenever possible, the same reference numerals are used in the drawings and the following description to refer to the same or like parts. Although several illustrative embodiments are described herein, modifications, adaptations, and other implementations are possible. For example, components and steps shown in the drawings may be replaced, added, or modified, and the illustrative methods described herein may be modified by replacing, reordering, removing, or adding steps to the disclosed methods. Accordingly, the following detailed description is not limited to the disclosed embodiments and examples. Instead, the proper scope of the invention is defined by the appended claims.

[0025] Embodiments of the present disclosure relate to systems and methods configured to automatically consolidate split deliveries to a single customer. Specifically, the disclosed embodiments relate to consolidating the delivery of multiple packages over multiple delivery waves into a single wave in order to reduce the costs associated with multiple deliveries to the same location when only one delivery is needed.

[0026] Referring Figure 1A , a schematic block diagram 100 is shown illustrating an exemplary embodiment of a system including a computerized system for communication that implements shipping, transportation, and logistics operations. As Figure 1A shown, system 100 may include various systems, where each system may be connected to each other via one or more networks. Systems may also be connected to each other via direct connections (e.g., using cables). The described systems include a Shipment Authority Technology (SAT) system 101, an external front-end system 103, an internal front-end system 105, a transportation system 107, mobile devices 107A, 107B, and 107C, a seller portal 109, a Shipment and Order Tracking (SOT) system 111, a Fulfillment Optimization (FO) system 113, a Fulfillment Messaging Gateway (FMG) 115, a Supply Chain Management (SCM) system 117, a warehouse management system 119, mobile devices 119A, 119B, and 119C (depicted as being inside a Fulfillment Center (FC) 200), third-party fulfillment systems 121A, 121B, and 121C, a Fulfillment Center Authorization System (FC Authorization) 123, and a Labor Management System (LMS) 125.

[0027] In some embodiments, the SAT system 101 may be implemented as a computer system that monitors order status and delivery status. For example, the SAT system 101 may determine whether an order has exceeded its Promised Delivery Date (PDD), and may take appropriate actions, including initiating a new order, reshipping items in an undelivered order, canceling an undelivered order, initiating contact with the ordering customer, etc. The SAT system 101 may also monitor other data, including outputs (e.g., the number of packages shipped within a specific time period) and inputs (e.g., the number of empty cardboard boxes received for shipping). The SAT system 101 may also act as a gateway between different devices in the system 100, enabling communication (e.g., using store-and-forward or other techniques) between devices (e.g., the external front-end system 103 and the FO system 113).

[0028] In some embodiments, the external front-end system 103 may be implemented as a computer system that enables external users to interact with one or more systems in the system 100. For example, in an embodiment where the system 100 enables the presentation of the system to allow users to place orders for items, the external front-end system 103 may be implemented as a web server that receives search requests, presents item pages, and requests payment information. For example, the external front-end system 103 may be implemented as a computer or multiple computers running software (e.g., Apache HTTP Server, Microsoft Internet Information Service (IIS), NGINX, etc.). In other embodiments, the external front-end system 103 may run custom web server software designed to receive and process requests from external devices (e.g., the mobile device 102A or the computer 102B), obtain information from databases and other data stores based on those requests, and provide responses to the received requests based on the obtained information.

[0029] In some embodiments, the external front-end system 103 may include one or more of: a network cache system, a database, a search system, or a payment system. In one aspect, the external front-end system 103 may include one or more of these systems, and in another aspect, the external front-end system 103 may include interfaces (e.g., server-to-server, database-to-database, or other network connections) connected to one or more of these systems.

[0030] by Figure 1B 、 Figure 1C 、 Figure 1D and Figure 1EA set of illustrative steps shown will help to depict some operations of the external front-end system 103. The external front-end system 103 can receive information from systems or devices in the system 100 for presentation and / or display. For example, the external front-end system 103 can host or provide one or more web pages, including a Search Result Page (SRP) (e.g., Figure 1B ), a Single Detail Page (SDP) (e.g., Figure 1C ), a shopping cart page (e.g., Figure 1D ) or an order page (e.g., Figure 1E ). A user device (e.g., using the mobile device 102A or the computer 102B) can navigate to the external front-end system 103 and request a search by entering information in a search box. The external front-end system 103 can request information from one or more systems in the system 100. For example, the external front-end system 103 can request information from the FO system 113 that satisfies the search request. The external front-end system 103 can also request and receive a promised delivery date or "PDD" for each product included in the search results (from the FO system 113). In some embodiments, the PDD can represent an estimate of when a package containing the product will arrive at the location desired by the user, or the date on which the product is promised to be delivered to the location desired by the user if the product is ordered within a specific time period (e.g., by the end of the day (11:59 p.m.)) (the PDD will be further discussed below with respect to the FO system 113).

[0031] The external front-end system 103 can prepare an SRP based on this information (e.g., Figure 1B ). The SRP can include information that satisfies the search request. For example, this can include pictures of products that satisfy the search request. The SRP can also include the respective prices of each product, or information related to enhanced delivery options, PDD, weight, size, quotes, discounts, etc. for each product. The external front-end system 103 can send the SRP to the requesting user device (e.g., via a network).

[0032] Then, the user device can select a product from the SRP, for example, by clicking or tapping on the user interface, or using another input device, to select the product represented on the SRP. The user device can formulate an information request for the selected product and send the request to the external front-end system 103. In response, the external front-end system 103 can request information related to the selected product. For example, this information can include additional information beyond the information presented for the product on their respective SRPs. This can include, for example, shelf life, country of origin, weight, dimensions, number of items in the package, usage instructions, or other information about the product. The information can also include recommendations for similar products (e.g., based on big data and / or machine learning analysis of customers who purchased this product and at least one other product), answers to frequently asked questions, reviews from customers, manufacturer information, pictures, etc.

[0033] The external front-end system 103 can prepare an SDP (Single Detailed Page) based on the received product information (e.g., Figure 1C ). The SDP can also include other interactive elements, such as "Buy Now" button, "Add to Cart" button, quantity field, pictures of the item, etc. The SDP can also include a list of sellers offering the product. This list can be sorted based on the price offered by each seller, such that the seller offering the product at the lowest price can be listed at the top. The list can also be sorted based on seller rankings, such that the highest-ranked seller can be listed at the top. The seller rankings can be formulated based on multiple factors, which can include, for example, the past track record of the seller's PDD in fulfilling commitments. The external front-end system 103 can deliver the SDP to the requesting user device (e.g., via the network).

[0034] The requesting user device can receive the SDP listing the product information. After receiving the SDP, the user device can then interact with the SDP. For example, the user of the requesting user device can click on the "Place in Cart" button on the SDP or otherwise interact with the "Place in Cart" button on the SDP. This adds the product to the shopping cart associated with the user. The user device can send this request to the external front-end system 103 to add the product to the shopping cart.

[0035] The external front-end system 103 can generate a shopping cart page (e.g., Figure 1D)。In some embodiments, the shopping cart page lists the products that the user has added to the virtual "shopping cart". The user device can request the shopping cart page by clicking on an icon on the SRP, SDP, or other page or otherwise interacting with the icon on the SRP, SDP, or other page. In some embodiments, the shopping cart page can list all the products that the user has added to the cart, as well as information about the products in the cart, such as the quantity of each product, the price per item of each product, the price of each product based on the associated quantity, information about the PDD, the delivery method, the shipping cost, user interface elements for modifying the products in the cart (e.g., deleting or modifying the quantity), options for ordering other products or setting up recurring delivery of the products, options for setting up interest payments, user interface elements for proceeding with the purchase, etc. The user at the user device can click on a user interface element (e.g., a button labeled "Buy Now") or otherwise interact with the user interface element to initiate the purchase of the products in the cart. After doing so, the user device can send the request to the external front-end system 103 to initiate the purchase.

[0036] The external front-end system 103 can generate an order page in response to receiving a request to initiate a purchase (e.g., Figure 1E )。In some embodiments, the order page re-lists the items from the shopping cart and requests input of payment and delivery information. For example, the order page can include sections that request information about the purchaser of the items in the cart (e.g., name, address, email address, phone number), information about the recipient (e.g., name, address, phone number, delivery information), delivery information (e.g., speed / method of delivery and / or pickup), payment information (e.g., credit card, bank transfer, check, stored value card), and a user interface unit that requests a cash receipt (e.g., for tax purposes), etc. The external front-end system 103 can send the order page to the user device.

[0037] The user device can enter information on the order page and click on a user interface unit that sends the information to the external front-end system 103 or otherwise interact with the user interface unit that sends the information to the external front-end system 103. From there, the external front-end system 103 can send the information to different systems in the system 100 to initiate the creation and processing of a new order for the products in the cart.

[0038] In some embodiments, the external front-end system 103 can also be configured to enable the seller to send and receive information related to the order.

[0039] In some embodiments, the internal front-end system 105 may be implemented as a computer system that enables internal users (e.g., employees of an organization that owns, operates, or leases system 100) to interact with one or more systems in system 100. For example, in an embodiment where system 100 enables the presentation of the system to allow users to place orders for items, the internal front-end system 105 may be implemented as a web server that enables internal users to: view diagnostic and statistical information about orders, modify item information, or review statistical information related to orders. For example, the internal front-end system 105 may be implemented as a computer or multiple computers running software (such as Apache HTTP Server, Microsoft Internet Information Services (IIS), NGINX, etc.). In other embodiments, the internal front-end system 105 may run custom web server software designed to: receive and process requests from the systems or devices described in system 100 (and other devices not depicted), obtain information from databases and other data stores based on those requests, and provide responses to the received requests based on the obtained information.

[0040] In some embodiments, the internal front-end system 105 may include one or more of a network cache system, a database, a search system, a payment system, an analysis system, an order monitoring system, etc. In one aspect, the internal front-end system 105 may include one or more of these systems, and in another aspect, the internal front-end system 105 may include interfaces (e.g., server-to-server, database-to-database, or other network connections) connected to one or more of these systems.

[0041] In some embodiments, the transportation system 107 may be implemented as a computer system capable of communicating between the systems or devices of the system 100 and the mobile devices 107A - 107C. In some embodiments, the transportation system 107 may receive information from one or more of the mobile devices 107A - 107C (e.g., mobile phones, smartphones, personal digital assistants (PDAs), etc.). For example, in some embodiments, the mobile devices 107A - 107C may include devices operated by delivery workers. The delivery workers (who may be permanent, temporary, or shift employees) may utilize the mobile devices 107A - 107C to effect the delivery of packages containing products ordered by users. For example, to deliver a package, the delivery worker may receive on the mobile device a notification indicating which package to deliver and where to deliver it. After arriving at the delivery location, the delivery worker may locate the package (e.g., in the back of a truck or in a crate of packages), use the mobile device to scan or otherwise obtain data associated with an identifier on the package (e.g., barcode, image, text string, RFID tag, etc.), and deliver the package (e.g., by leaving the package at the front door, handing the package to security, delivering the package to the recipient, etc.). In some embodiments, the delivery worker using the mobile device may take a photo of the package and / or may obtain a signature. The mobile device may send information including information about the delivery (including, for example, time, date, GPS location, photo, identifier associated with the delivery worker, identifier associated with the mobile device, etc.) to the transportation system 107. The transportation system 107 may store this information in a database (not shown) for access by other systems in the system 100. In some embodiments, the transportation system 107 may use this information to prepare tracking data and send the tracking data to other systems, the tracking data indicating the location of a particular package.

[0042] In some embodiments, certain users may use one type of mobile device (e.g., permanent workers may use a dedicated PDA with customized hardware (e.g., barcode scanner, stylus, and other devices)), while other users may use other types of mobile devices (e.g., temporary workers or shift workers may utilize off - the - shelf mobile phones and / or smartphones).

[0043] In some embodiments, the transportation system 107 may associate a user with each device. For example, the transportation system 107 may store an association between a user (represented by, for example, a user identifier, an employee identifier, or a phone number) and a mobile device (represented by, for example, an International Mobile Equipment Identity (IMEI), an International Mobile Subscription Identifier (IMSI), a phone number, a Universal Unique Identifier (UUID), or a Globally Unique Identifier (GUID)). The transportation system 107 may use this association in combination with data received at the time of delivery to analyze the data stored in the database in order to determine, among other things, the location of a worker, the efficiency of a worker, or the speed of a worker.

[0044] In some embodiments, the seller portal 109 may be implemented as a computer system that enables a seller or other external entity to communicate electronically with one or more systems in the system 100. For example, a seller may use a computer system (not shown) to upload or provide product information, order information, contact information, etc. of products that the seller wishes to sell through the system 100 using the seller portal 109.

[0045] In some embodiments, the shipping and order tracking system 111 may be implemented as a computer system that receives, stores, and forwards information about the location of a package that contains products ordered by a customer (e.g., by a user using devices 102A - 102B). In some embodiments, the shipping and order tracking system 111 may request or store information from a web server (not shown) operated by a courier company that delivers the package containing the products ordered by the customer.

[0046] In some embodiments, the shipping and order tracking system 111 may request and store information from the systems described in system 100. For example, the shipping and order tracking system 111 may request information from the transportation system 107. As described above, the transportation system 107 may receive information from one or more mobile devices 107A - 107C (e.g., mobile phones, smartphones, PDAs, etc.) associated with one or more of a user (e.g., a delivery worker) or a vehicle (e.g., a delivery truck). In some embodiments, the shipping and order tracking system 111 may also request information from a Warehouse Management System (WMS) 119 to determine the location of individual products within a fulfillment center (e.g., fulfillment center 200). The shipping and order tracking system 111 may request data from one or more of the transportation system 107 or WMS 119, process the data, and present the data to devices (e.g., user device 102A and user device 102B) upon request.

[0047] In some embodiments, the Fulfillment Optimization (FO) system 113 may be implemented as a computer system that stores information about customer orders from other systems (e.g., the external front - end system 103 and / or the shipping and order tracking system 111). The FO system 113 may also store information describing where a particular item is held or stored. For example, certain items may be stored in only one fulfillment center, while certain other items may be stored in multiple fulfillment centers. In other embodiments, certain fulfillment centers may be designed to store only a particular set of items (e.g., fresh produce or frozen products). The FO system 113 stores this information along with associated information (e.g., quantity, size, receipt date, expiration date, etc.).

[0048] The FO system 113 may also calculate a corresponding PDD (Promised Delivery Date) for each product. In some embodiments, the PDD may be based on one or more factors. For example, the FO system 113 may calculate the PDD of a product based on the product's past demand (e.g., how many times the product has been ordered over a period of time), the product's expected demand (e.g., how many customers are expected to order the product in an upcoming period of time), the past demand across the network indicating how many products have been ordered over a period of time, the expected demand across the network indicating how many products are expected to be ordered in an upcoming period of time, one or more counts of the product stored in each fulfillment center 200, in which fulfillment center the product is stored, the expected or current orders for the product, etc.

[0049] In some embodiments, the FO system 113 can periodically (e.g., hourly) determine the PDD for each product and store the PDD in a database for retrieval or send it to other systems (e.g., the external front-end system 103, the SAT system 101, the shipping and order tracking system 111). In other embodiments, the FO system 113 can receive an electronic request from one or more systems (e.g., the external front-end system 103, the SAT system 101, the shipping and order tracking system 111) and calculate the PDD as needed.

[0050] In some embodiments, the fulfillment messaging gateway (FMG) 115 can be implemented as a computer system that receives a request or response from one or more systems in the system 100 (e.g., the FO system 113) in one format or protocol, converts the request or response to another format or protocol, and forwards the request or response to other systems (e.g., the WMS 119 or third-party fulfillment systems 121A, 121B, or 121C) in the converted format or protocol, and vice versa.

[0051] In some embodiments, the supply chain management (SCM) system 117 can be implemented as a computer system that performs prediction functions. For example, the SCM system 117 can predict the demand level for a particular product based on, for example, the past demand for the product, the expected demand for the product, the past demand across the network, the expected demand across the network, the counted products stored in each fulfillment center 200, the expected orders or current orders for each product, etc. In response to the predicted level and the quantity of each product across all fulfillment centers, the SCM system 117 can generate one or more purchase orders to purchase and stock sufficient quantities to meet the predicted demand for the particular product.

[0052] In some embodiments, the warehouse management system (WMS) 119 can be implemented as a computer system that monitors the workflow. For example, the WMS 119 can receive event data indicating discrete events from various devices (e.g., devices 107A - 107C or devices 119A - 119C). For example, the WMS 119 can receive event data indicating the use of one of these devices to scan a package. As described below with respect to the fulfillment center 200 and Figure 2As discussed, during the fulfillment process, a package identifier (e.g., barcode or RFID tag data) can be scanned or read by a machine (e.g., an automated or handheld barcode scanner, RFID reader, high-speed camera, device (e.g., tablet 119A), mobile device / PDA 119B, computer 119C, etc.) at a particular stage. The WMS 119 can store each event indicating the scanning or reading of a package identifier, along with the package identifier, time, date, location, user identifier, or other information, in a corresponding database (not shown), and can provide this information to other systems (e.g., the shipping and order tracking system 111).

[0053] In some embodiments, the WMS 119 can store information associating one or more devices (e.g., devices 107A - 107C or devices 119A - 119C) with one or more users associated with the system 100. For example, in some cases, a user (e.g., a part-time or full-time employee) can be associated with a mobile device since the user owns the mobile device (e.g., the mobile device is a smartphone). In other cases, a user can be associated with a mobile device since the user is temporarily in custody of the mobile device (e.g., the user checks out the mobile device at the start of the day, will use it during the day, and will return it at the end of the day).

[0054] In some embodiments, the WMS 119 can maintain a work log for each user associated with the system 100. For example, the WMS 119 can store information associated with each employee, which includes any assigned processes (e.g., unloading trucks, picking items from the pick area, work at the consolidation wall, packing items), user identifier, location (e.g., floor or zone in the fulfillment center 200), the number of units moved by the employee through the system (e.g., the number of items picked, the number of items packed), the identifier associated with a device (e.g., devices 119A - 119C), etc. In some embodiments, the WMS 119 can receive check-in and check-out information from a timekeeping system (e.g., a timekeeping system operating on devices 119A - 119C).

[0055] In some embodiments, the third-party fulfillment (3PL) systems 121A - 121C represent computer systems associated with third-party providers of logistics and products. For example, while some products are stored in the fulfillment center 200 (as described below with reference to Figure 2discussed), but other products may be stored off-site, produced on demand, or may not be storable in fulfillment center 200. The 3PL systems 121A - 121C may be configured to receive orders from the FO system 113 (e.g., via the FMG 115) and may directly provide products and / or services to customers (e.g., delivery or installation). In some embodiments, one or more of the 3PL systems 121A - 121C may be part of system 100, while in other embodiments, one or more of the 3PL systems 121A - 121C may be outside of system 100 (e.g., owned or operated by a third-party vendor).

[0056] In some embodiments, the fulfillment center authorization system (FC authorization) 123 may be implemented as a computer system with various functions. For example, in some embodiments, FC authorization 123 may act as a single sign-on (SSO) service for one or more other systems in system 100. For example, FC authorization 123 may enable a user to log in via the internal front-end system 105, determine that the user has similar privileges to access resources at the shipping and order tracking system 111, and enable the user to access those privileges without a second login process. In other embodiments, FC authorization 123 may enable users (e.g., employees) to associate themselves with specific tasks. For example, some employees may not have electronic devices (e.g., devices 119A - 119C) and instead may move from one task to another and from one area to another within the fulfillment center 200 during the course of a day. FC authorization 123 may be configured to enable these employees to indicate what tasks they are performing and in what areas at different times of the day.

[0057] In some embodiments, the labor management system (LMS) 125 may be implemented as a computer system that stores attendance and overtime information for employees (including full-time and part-time employees). For example, LMS 125 may receive information from FC authorization 123, WMS 119, devices 119A - 119C, the transportation system 107, and / or devices 107A - 107C.

[0058] Figure 1A The specific configurations described are merely examples. For example, although Figure 1ADescribe an FC authorization system 123 connected to an FO system 113, although not all embodiments require this specific configuration. In fact, in some embodiments, the systems in system 100 can be connected to each other via one or more public or private networks, including the Internet, intranet, WAN (Wide Area Network), MAN (Metropolitan Area Network), wireless network compliant with IEEE 802.11a / b / g / n standards, leased lines, etc. In some embodiments, one or more systems in system 100 can be implemented as one or more virtual servers implemented in a data center, server farm, etc.

[0059] Figure 2 Describe fulfillment center 200. Fulfillment center 200 is an example of a physical location where items to be shipped to customers are stored when an item is ordered. The fulfillment center (FC) 200 can be divided into multiple zones, each zone is described in Figure 2 In some embodiments, these "zones" can be considered as virtual divisions between different stages of the process of receiving items, storing items, retrieving items, and shipping items. Thus, although Figure 2 the "zones" are described in Figure 2 other divisions of the zones are possible, and in some embodiments, the zones in

[0060] The inbound zone 203 represents the area of the FC 200 where items are received from a seller who wishes to sell products using the system 100 from Figure 1A For example, the seller can use a truck 201 to deliver items 202A and 202B. Item 202A can represent a single item large enough to occupy its own shipping pallet, while item 202B can represent a group of items stacked together on the same pallet to save space.

[0061] Workers will receive items in the inbound area 203 and can optionally inspect the items for damage and correctness using a computer system (not shown). For example, the worker can use the computer system to compare the quantities of items 202A and 202B with the ordered quantity of the items. If the quantities do not match, the worker can reject one or more of items 202A or 202B. If the quantities match, the worker can move the items (using, for example, a cart, a hand truck, a forklift, or manually) to buffer 205. For example, buffer 205 can be a temporary storage area for items that are not currently needed in the picking area because there is a high enough quantity of that item in the picking area to meet the predicted demand. In some embodiments, forklift 206 operates to move items around buffer 205 and between inbound area 203 and unloading area 207. If item 202A or 202B is needed in the picking area (e.g., due to predicted demand), the forklift can move item 202A or 202B to unloading area 207.

[0062] Unloading area 207 can be an area of FC 200 where items are stored before being moved to picking area 209. Workers assigned to picking tasks ("pickers") can access items 202A and 202B in the picking area, scan the barcodes of the picking area using a mobile device (e.g., device 119B), and scan the barcodes associated with items 202A and 202B. Then, the picker can bring the items to picking area 209 (e.g., by placing the items on a cart or carrying it).

[0063] Picking area 209 can be an area of FC 200 where items 208 are stored on storage units 210. In some embodiments, storage units 210 can include one or more of physical shelves, bookcases, boxes, tote bags, refrigerators, freezers, cold storage rooms, etc. In some embodiments, picking area 209 can be organized into multiple levels. In some embodiments, workers or machines can move items into picking area 209 in a variety of ways (including, for example, forklifts, elevators, conveyor belts, carts, hand trucks, trolleys, autonomous robots or devices, or manually). For example, a picker can place items 202A and 202B on a hand truck or cart in unloading area 207 and walk to ship items 202A and 202B to picking area 209.

[0064] The picker can receive instructions to place (or “load”) an item at a specific point (e.g., a specific space on storage unit 210) in the picking area 209. For example, the picker can scan the item 202A using a mobile device (e.g., device 119B). The device can indicate (e.g., using a system that indicates aisles, racks, and locations) where the picker should load the item 202A. Then, the device can prompt the picker to scan a barcode at that location before loading the item 202A at that location. The device can send data (e.g., via a wireless network) to a computer system (e.g., Figure 1A the WMS 119 in

[0065] indicating that the user of device 119B has loaded the item 202A at that location. Once the user places an order, the picker can receive instructions on device 119B to retrieve one or more items 208 from the storage unit 210. The picker can retrieve the item 208, scan the barcode on the item 208, and place the item 208 on the transport mechanism 214. In some embodiments, although the transport mechanism 214 is depicted as a slider, the transport mechanism can be implemented as one or more of a conveyor belt, elevator, cart, forklift, hand truck, trolley, cart, etc. Then, the item 208 can reach the packing area 211.

[0066] The packing area 211 can be the area of the FC 200 that receives items from the picking area 209 and packs the items into boxes or bags for final shipment to the customer. In the packing area 211, the worker designated to receive the items (“consolidation worker”) will receive the item 208 from the picking area 209 and determine the order corresponding to the item 208. For example, the consolidation worker can scan the barcode on the item 208 using a device (e.g., computer 119C). The computer 119C can visually indicate which order the item 208 is associated with. This can include, for example, a space or “cell” on the wall 216 corresponding to the order. Once the order is complete (e.g., because the cell contains all the items for the order), the consolidation worker can indicate to the packing worker (or “packer”) that the order is complete. The packer can remove the items from the cell and place the items in a box or bag for shipment. Then, the packer can send the box or bag to the hub area 213 (e.g., via a forklift, cart, trolley, hand truck, conveyor belt, manually, or otherwise).

[0067] The hub area 213 can be the area of the FC 200 that receives all boxes or bags (“parcels”) from the packing area 211. Workers and / or machines in the hub area 213 can retrieve the parcels 218 and determine which part of the delivery area each parcel is intended for, and route the parcels to the appropriate camp areas 215. For example, if the delivery area has two smaller sub-areas, the parcels will go to one of the two camp areas 215. In some embodiments, a worker or machine can scan the parcel (e.g., using one of the devices 119A - 119C) to determine the final destination of the parcel. Routing the parcels to the camp areas 215 can include, for example, determining (e.g., based on the zip code) the part of the geographical area to which the parcel is being shipped and determining the camp area 215 associated with that part of the geographical area.

[0068] In some embodiments, the camp area 215 can include: one or more buildings, one or more physical spaces, or one or more areas where parcels are received from the hub area 213 for sorting the parcels into routes and / or sub-routes. In some embodiments, the camp area 215 is physically separated from the FC 200, while in other embodiments, the camp area 215 can form part of the FC 200.

[0069] Workers and / or machines in the camp area 215 can determine (e.g., based on a comparison of the destination with existing routes and / or sub-routes, calculation of the workload of each route and / or sub-route, time of day, delivery method, cost of delivering the parcel 220, PDD associated with the items in the parcel 220, etc.) which route and / or sub-route the parcel 220 should be associated with. In some embodiments, a worker or machine can scan the parcel (e.g., using one of the devices 119A - 119C) to determine the final destination of the parcel. Once the parcel 220 is assigned to a specific route and / or sub-route, the worker and / or machine can move the parcel 220 for shipping. In an exemplary Figure 2 example, the camp area 215 includes trucks 222, cars 226, and delivery workers 224A and 224B. In some embodiments, the truck 222 can be driven by the delivery worker 224A, where the delivery worker 224A is a full-time employee who delivers parcels for the FC 200, and the truck 222 is owned, leased, or operated by the same company that owns, leases, or operates the FC 200. In some embodiments, the car 226 can be driven by the delivery worker 224B, where the delivery worker 224B is a “flexible” or temporary worker who delivers on an as-needed basis (e.g., seasonally). The car 226 can be owned, leased, or operated by the delivery worker 224B.

[0070] Further, the disclosed delivery system can operate in different delivery processes or paradigms. For example, the system can operate using a "wave process", a "shift process", or a combination thereof. The wave process can schedule deliveries in the form of delivery waves at different times. For example, a wave delivery can include a first package wave for a specified wave period (e.g., one day) several times around a specific area (e.g., a route including sub-routes). In contrast, the shift process can schedule deliveries to different areas, first delivering to a portion (e.g., 50%) of a specific area and subsequently delivering to the remaining portion of the specific area. The disclosed systems and methods can be configured to reconfigure routes and worker schedules based on optimization parameters for the delivery process.

[0071] In some embodiments, a delivery system operating in a "wave process" can provide package delivery to customers within a specific delivery area during one of multiple waves during a specific wave period. For example, a delivery worker can deliver packages to intended recipients along a route or sub-route corresponding to the delivery area during the morning wave and deliver packages again during the afternoon wave. Each wave can correspond to a cutoff time and a PDD. The cutoff time will generally correspond to an online order for shipment and can be the time associated with a specific wave or the PDD of an order for which the wave or the PDD associated with the wave becomes unavailable to the customer. In other words, if a customer does not order a package before the cutoff time, they will no longer be able to receive the item at the PDD associated with the cutoff time and will only be able to receive the item at the next available PDD.

[0072] Utilizing the "wave process" can provide certain advantages over the "shift process" for a delivery system. For example, since each wave can cover the entire area multiple times a day, while each shift can only be assigned to a specific area once a day, using the "wave process" will result in much better area coverage than obtained from the "shift process". On the other hand, the "wave process" can also result in multiple deliveries to the same location within a single time period where only one delivery is needed, which increases costs. This can be due to, for example, a single order including multiple products, where these products were initially assigned to separate waves. For example, a customer may have ordered two products at 7:00 PM on Monday for shipment in two days, such that both packages will arrive on Wednesday. However, the first product may have had an 8:00 PM cutoff time associated with the Wednesday morning wave, while the second product may have had a 6:00 PM cutoff time associated with that morning wave. Typically, this will result in the first product being delivered on Wednesday morning and the second product being delivered in the afternoon. The disclosed embodiments address this inefficiency by enabling these split deliveries to be combined in the "wave process", and thus can greatly reduce the costs associated with the split deliveries.

[0073] In a preferred embodiment, the disclosed process may be executed by FO system 113. However, although the disclosed process will be described as being executed by FO system 113, the disclosed process or portions of the disclosed process may be executed by system 100 as a whole, or by any component of system 100 capable of executing at least a portion of the process (e.g., one or more processors, SAT system 101, etc.). In some embodiments, FO system 113 may include at least one processor and at least one non-transitory storage medium or memory storing instructions that, when executed by the at least one processor, cause the at least one processor to execute one or more processes described in the present disclosure.

[0074] Figure 3 FIG. 4 is a block diagram showing an exemplary embodiment of database 301 accessible by FO system 113. Database 301 may be communicatively coupled to FO system 113 (e.g., via a network) such that FO system 113 can access, upload, and / or modify information stored in database 301. Database 301 may store order information related to order 302, e.g., records of one or more products 303 included in one or more orders. The database may also store information corresponding to each product 303 in the order, e.g., the associated FC 304 from which the product will be delivered and the associated wave 305 during which the item will be shipped.

[0075] Figure 4 FIG. 5 provides a flowchart showing an exemplary consolidation process 400 that may be performed to consolidate split deliveries in accordance with the disclosed embodiments. At step 401 of wave consolidation process 400, FO system 113 may receive order information including multiple products. For example, the FO system may receive information indicating that a customer has ordered one or more products at a single time. However, in some embodiments, receiving order information including multiple products may include receiving information indicating that a customer has ordered products in multiple orders at separate times. Thus, the disclosed process for consolidating split deliveries may be applied to the delivery of products ordered in one order or in multiple separate orders. After receiving the order information, process 400 may proceed to step 402, in which the FO system may determine from which FC each product should be delivered and in what wave they should be delivered. FO system 113 may make these determinations based on one or more of various factors, such as the availability of each product among one or more FCs and the deadlines and corresponding waves associated with each product in the order. At step 403, FO system 113 may determine whether the products are assigned to different waves.

[0076] If the product is not assigned to multiple waves, then the wave consolidation process 400 can end at step 404 (i.e., no action is required to consolidate split deliveries because all products in the order are scheduled to be delivered in the same wave). If the product is assigned to multiple waves, then the FO system 113 can make another determination as to whether the multiple waves fall within the same time period. The time period can be predefined and can correspond to a time period that encompasses a set of waves (e.g., one day or multiple days), or the time period can correspond to a time period associated with the PDD of one or more of the products. For example, if two products in an order are to be delivered in separate waves, but the waves occur on different days or weeks, then consolidating the deliveries into a single wave may not be desirable because this may result in a significant delay in delivering one of the products to the customer (e.g., consolidating split deliveries will result in one or more products being delivered after their associated PDD). If the multiple waves are not within the same time period, then the wave consolidation process can end at step 406 (i.e., no action is required to consolidate split deliveries because consolidation may delay delivery). Otherwise, at step 407, if the assigned waves are within the same time period, then the FO system 113 can reassign the delivery waves for one or more products such that all products are delivered during the same wave. Reassigning the delivery waves can include one or more actions that the FO system 113 can take to ensure that the products are delivered within the same wave (e.g., modifying the database 301), which will be discussed in more detail with reference to Figure 6A 、 Figure 6B and Figure 6C more detail.

[0077] Figure 5 A flowchart is provided showing a detailed exemplary consolidation process 500 that can be performed by the FO system 113 to consolidate split deliveries in accordance with the disclosed embodiments. Process 500 begins at step 501. At step 501, the FO system 113 can receive order information including multiple products and associated identifiers (e.g., barcodes, images, text strings, RFID tags, etc.) from a remote system (e.g., the external front-end system 103, the shipping and order tracking system 111, etc.). In some embodiments, the order information can correspond to a single order from a customer that includes multiple products. However, in some embodiments, the order information can include two customer orders, with a first product in the first customer order and a second product in the second customer order. In other words, the multiple deliveries do not need to come from exactly the same order in order to be consolidated into a single delivery by the consolidation process 500. For example, a customer can order multiple products on one day and additional multiple products on the next day. In this example, receiving the order information can include receiving the two orders at different times and aggregating the two orders into the order information.

[0078] After step 501 has been completed, merge process 500 can then proceed to step 502. At step 502, FO system 113 can determine, based on the associated identifier and the remote system, the FC and the first delivery wave from among multiple delivery waves for the first product among the multiple products. In some embodiments, the FC can be determined by identifying the area associated with the remote system information and determining the FC from a set of FCs associated with the identified area. For example, the remote system information can include delivery information, such as the delivery address of the recipient, and FO system 113 can determine that the address is within the delivery area of multiple areas. After identifying the area, FO system 113 can consult the inventory records of the products held at each FC currently within the area to determine which FCs hold one or more products corresponding to the identifier corresponding to the first product (i.e., the availability of the products in each FC). In some embodiments, the associated identifier and the remote system can include the purchase time of the product, the deadline associated with the purchase time, and / or the wave associated with the deadline. Based on this information, FO system 113 can determine from which FC in the area the product should be delivered and further determine the first wave in which the first product should be delivered. At step 503, FO system 113 can assign the product to the determined FC and delivery wave by storing the determined FC and the first delivery wave in association with the first product in a database (e.g., database 301).

[0079] In some embodiments, determining the FC for a product can be based on a comparison of the wave schedule among one or more FCs with the average travel time of the product through each FC. The schedule can be a record of the waves for each FC and can also include, for example, information indicating which waves are associated with the PDD of each product. The average travel time of the product through each FC can be the average time it takes for a given product to move from the FC to the camp area and can be based on historical data stored in a database (e.g., database 301) within system 100, which represents the previous times associated with the movement of one or more similar products through the FC. The historical data can be collected continuously or periodically by FO system 113 from one or more mobile devices (e.g., mobile device 107A, mobile device 107B, mobile device 107C) and can include information such as the times associated with the product arriving at different zones within the FC (e.g., inbound zone 203, offloading zone 207, picking zone 209, hub zone 213, camp area 215, etc.). These times can be used to calculate the travel time of each product, and the aggregated travel times can be used to calculate the average travel time. The average travel time can be compared with the wave schedule of each FC to determine whether the product will arrive at the camp area of the FC before the time associated with the picking of the associated wave.

[0080] In some embodiments, determining the FC may include storing a plurality of previous electronic requests and associated FCs in a database (e.g., database 301), partitioning the previous electronic requests into a training data set and a validation data set (the training data set having more requests than the validation data set), and generating a prediction model based on the training data set that associates request information and FCs. For example, FO system 113 may store historical data associated with previously ordered products in the database, the data indicating information associated with the previous electronic requests (e.g., identifiers of products ordered in the request, associated FCs, waves, and / or PDDs, etc.). FO system 113 may use a larger portion of this data (i.e., the training data set) to generate a prediction model. The prediction model may be an equation in the form of one or more general statistical models, such as linear regression, random forest, or logistic regression, representing the relationship between electronic request information and associated FCs.

[0081] After FO system 113 has generated a prediction model, in some embodiments, FO system may validate the prediction model using the validation data set. The validation data set may be at least a portion of the historical data not used in generating the prediction model. To validate the prediction model, FO system 113 may generate a set of predicted associated FCs for each electronic request in the validation data set and compare the predicted associated FCs with the actual associated FCs. For example, if the prediction model meets a predetermined confidence threshold (e.g., the model correctly predicts at least 95% of the associated FCs), the prediction model may be validated. After the prediction model has been validated, FO system 113 may apply the model to future electronic requests to determine the associated FCs.

[0082] After step 503 has been completed, merge process 500 may then proceed to step 504. In step 504, FO system 113 may determine an FC and a second delivery wave from among a plurality of delivery waves for a second product among the plurality of products, based on the associated identifier and the remote system, the second delivery wave being different from the first delivery wave. The FC and the second delivery wave may be determined using processes similar to those just described for determining the FC and the first delivery wave for the first product. In step 505, FO system 113 may store the second delivery wave associated with the second product in the database.

[0083] Although Figure 5 the steps are described as being performed consecutively, in accordance with the disclosed embodiments, these steps may be performed in any order or configuration. For example, step 502 and step 503 may occur serially or in parallel with step 504 and step 505. Additionally, in some embodiments, FO system may determine that the FC associated with the first product and the FC associated with the second product are different from each other.

[0084] After step 505 has been completed, merge process 500 can then proceed to step 506. At step 506, FO system 113 can determine that the first delivery wave is associated with an earlier time period than the second delivery wave. In some embodiments, FO system 113 can additionally determine that the first delivery wave and the second delivery wave fall within the same time period. For example, after FO system 113 determines that separate products ordered by the same customer are being delivered to the customer in separate waves, the FO system can further determine that the separate waves occur on the same day. In this example, FO system 113 can thus determine that the products should be delivered in the same wave so that the costs associated with split deliveries can be eliminated. In response to this determination, FO system 113 can reschedule the deliveries so that they occur during the same wave. FO system 113 can, for example, reschedule the deliveries by performing one or more actions to ensure that each package is not shipped until the most recent common wave. Refer to Figure 6A , Figure 6B and Figure 6C describe in more detail the actions that the FO system can perform.

[0085] In some embodiments, at step 506, FO system 113 can determine that the first delivery wave is associated with an earlier time period than the second delivery wave, and the second delivery wave is determined based on the second product not meeting a condition. The condition can be based on an identifier associated with the product and / or order information and can indicate whether the product or the customer ordering the product is eligible for expedited delivery. A product is eligible for expedited delivery because the product is readily available at the FC for delivery. However, a product can also be eligible for expediting due to certain conditions met by the customer. Many order processing systems can offer expedited delivery services to customers who pay a one-time expedited delivery fee or a subscription fee for the product to the order processing system so that they receive free expedited delivery of the products ordered through the system.

[0086] For example, an order that includes multiple products may be from a customer who has not paid a one-time fee or a subscription fee, and thus the products in the order do not meet the conditions for expedited delivery. However, when determining the delivery wave and FC for each product in the order, their deliveries can still be scheduled on different waves on the same day. In some cases, one or more products that are scheduled to be delivered during a later wave may already be available for delivery during an earlier wave, and if the customer had paid a one-time fee or a subscription fee, that product may have been eligible for delivery during the earlier wave. Thus, although a one-time fee or a subscription fee can be implemented to offset the cost of expedited delivery, due to split deliveries, in some cases, the lack of delivery payment may result in increased costs. In these cases, although some products do not meet the conditions, it may be more cost-effective to deliver all products during an earlier wave. To address this issue, in some embodiments, the FO system 113 can be configured to determine whether one or more products are scheduled to be delivered during a later wave because they do not meet the conditions for an earlier wave. In response to that determination, the FO system 113 can then reschedule the deliveries such that they occur during an earlier wave rather than during the most recent common wave.

[0087] Figure 6A An exemplary process 610 that conforms to the disclosed embodiments is provided, and the process can be executed to reschedule the deliveries of multiple products after determining that they should be delivered in the same wave. At step 611, the FO system 113 can modify a database (e.g., database 301) to associate a first product with a second delivery wave. Modifying the database can include rewriting the previously stored first delivery wave associated with the first product and replacing the stored first delivery wave with the second delivery wave. Thus, the memory stored in the database will reflect that the first product is now scheduled to be delivered during the second wave. At step 612, the FO system 113 can also forward computer instructions to at least one mobile device (e.g., mobile devices 107A, 107B, and 107C of the transportation system 107) to generate a graphical user interface that displays the first product and information associated with the second delivery wave. Generating the graphical user interface can include displaying a notification on the mobile device that indicates which package is to be delivered and in which wave it should be delivered. The generated graphical interface can be generated as part of a program or application downloaded to the user device.

[0088] Figure 7Instructions are provided on how product information stored in a database can be modified to reschedule delivery. The figure depicts database 701 as undergoing step 611 of process 610, resulting in a modified database 702. Database 701 and the modified database 702 can be the same database previously described in this disclosure (e.g., database 301). Initially, database 701 contains information corresponding to order 703, in which a first product 711 and a second product 721 are associated with a morning wave 712 and an afternoon wave 722, respectively. However, in this example, FO system 113 has determined that the two products should be delivered during the afternoon wave 722 and thus implements process 610. After undergoing step 611 of process 610, the information corresponding to order 703 stored in the modified database 702 can indicate that both the first product 711 and the second product 721 are associated with the afternoon wave 722.

[0089] After modifying the database to reflect the updated delivery arrangement, an information request for the database can return information associated with the second delivery wave. This can occur when the first product is scanned by a mobile device at any point during the delivery process. In some embodiments, the mobile device can return information associated with the second delivery wave retrieved from the modified database.

[0090] However, in some embodiments, if the mobile device is not configured to retrieve information from the database, the mobile device can only return information associated with the product or package label. Further, the delivery worker can only consult the label to determine the delivery wave and can thus be notified that the delivery wave may have been changed. Therefore, it may be desirable to implement systems that replace the package label in response to the FO system 113 determining that the delivery of one or more products should be rescheduled to a different wave.

[0091] Figure 6BA flowchart is provided showing an exemplary process 620 in accordance with the disclosed embodiments, which exemplary process may be executed to print and replace a package label after determining that the delivery of the package label should be rescheduled to another wave. At step 621, the FO system 113 may forward a second set of instructions to the printing device. The second set of instructions may be a set of computer instructions configured to cause the printing device to print a label listing information associated with the second wave. The printing device may be a mobile device (e.g., mobile devices 107A, 107B, and 107C of the transportation system 107) or any other device associated with the system 100. The printing device may also be a printer (e.g., a laser printer, an inkjet printer, or a thermal printer). Printing a label listing information associated with the second wave may include printing a label including an updated barcode or other identifier that, when scanned by the mobile device, causes the mobile device to display information associated with the second wave. Although Figure 6B Step 621 is described as occurring after step 612, but process 620 may also occur independently and / or in parallel with process 610.

[0092] Figure 6C A flowchart is provided showing an exemplary process 630 in accordance with the disclosed embodiments, which exemplary process may be executed to prevent a product from being delivered during a wave after the delivery of the product has been rescheduled to a different wave. At step 631, the FO system 113 may receive a scan event from a mobile device (e.g., mobile devices 107A, 107B, and 107C of the transportation system 107) including an identifier of a first product. The scan event may occur, for example, when a worker or machine in the camp area 215 scans the first product before delivering the product to determine its final destination. The scan event may occur during a time period corresponding to the first wave. If the FO system 113 has rescheduled the delivery of the first product to the second wave, then process 630 may proceed to step 632. At step 632, the FO system 113 may determine, based on the received scan event, that the scan event occurred during a time period associated with the first delivery wave and not associated with the second wave. In other words, the FO system 113 may be configured to identify that the first package is going to be delivered during the wrong wave.

[0093] After step 632 is completed, process 630 can proceed to step 633. At step 633, the FO system 113 can send an indication to the mobile device that the first product should not be delivered during the first delivery wave. The indication can include a notification that can be displayed, for example, on the user interface of the mobile device, which notifies the user that the first product should be delivered in the second wave or any wave to which its delivery has been reallocated. The worker can then hold the product until the second wave so that it can be delivered concurrently with the second item.

[0094] After step 633 is completed, process 630 can proceed to step 634. At step 634, the FO system 113 can prevent a scan event from being inserted into the database of completion events. Typically, during the delivery process, scan events can be inserted into the database associated with system 100 so that the SAT system 101 can manage and monitor the status of the delivery. The database can be the same database (e.g., database 201 and database 601) for storing information about the FC and wave associated with each product, or it can be a separate database associated with system 100 (e.g., a dedicated database used by the SAT system 101 to monitor the delivery status). However, the SAT system 101 can make an incorrect determination that a product has been shipped based on a scan event being inserted into the database when the product is actually being held for delivery during a later wave, which can disrupt the delivery or cause unnecessary complications. To address this issue, if the FO system 113 has sent an indication to the mobile device that a scan event should not be delivered in the wave associated with the time period in which the scan event occurred, the FO system 113 can prevent the scan event from being inserted into the database.

[0095] In some embodiments, inserting a scan event can include the mobile device sending a data packet including information indicating that the scan event has occurred to the database, and preventing insertion can include intercepting the data packet and deleting the data packet. In some embodiments, the database can receive the data packet, and preventing insertion can include removing the data packet from the database. Preventing insertion can also include marking the database as read-only so that if a data packet is received, the information including the scan event in the data packet cannot be inserted into the database. In some embodiments, preventing a scan event can include sending an instruction to the mobile device to prevent the mobile device from sending a data packet to the database.

[0096] Although the present disclosure has been shown and described with reference to particular embodiments thereof, it should be understood that the present disclosure may be practiced in other environments without modification. The foregoing description is presented for purposes of illustration. It is not exhaustive and is not limited to the precise forms or embodiments disclosed. Modifications and adaptations will be apparent to those skilled in the art by considering the specification and practice of the disclosed embodiments. Additionally, although aspects of the disclosed embodiments are described as being stored in memory, those skilled in the art will appreciate that these aspects may also be stored on other types of computer-readable media, such as secondary storage devices (e.g., hard disks or CD ROMs, or other forms of RAM or ROM, USB media, DVDs, Blu-ray discs, or other optical drive media).

[0097] Computer programs based on the written description and disclosed methods are within the skill range of experienced developers. Various programs or program modules may be created using any techniques known to those skilled in the art, or various programs or program modules may be designed in combination with existing software. For example, program portions or program modules may be designed or designed by the following methods:.Net Framework,.Net Compact Framework (and related languages, such as VisualBasic, C, etc.), Java, C++, Objective-C, HTML / AJAX combinations, XML, or HTML containing Java applets.

[0098] Moreover, although illustrative embodiments have been described herein, the scope of any and all embodiments having equivalent elements, modifications, omissions, combinations (e.g., aspects across multiple embodiments), adaptations, and / or alterations will be understood by those skilled in the art based on the technology of the present disclosure. The limitations in the claims will be broadly construed based on the language used in the claims and are not limited to the examples described in the specification or during the prosecution of the application. These examples should be construed as non-exclusive. Additionally, the steps of the disclosed methods may be modified in any manner, including by reordering steps and / or inserting or deleting steps. Accordingly, the specification and examples are to be regarded as illustrative only, with the true scope and spirit being indicated by the full scope of the appended claims and their equivalents.

Claims

1. A computerized system for delivery wave scheduling, the system comprises: at least one processor; and at least one non-transitory storage medium including instructions which, when executed by the at least one processor, cause the at least one processor to perform steps, the steps including: Receiving order information including a plurality of products and associated identifiers from a remote system; Based on the associated identifiers and the remote system, determining a first fulfillment center and a first delivery wave from a plurality of delivery waves for a first product among the plurality of products; Storing the first delivery wave associated with the first product in a database; Based on the associated identifiers and the remote system, determining a second fulfillment center and a second delivery wave from the plurality of delivery waves for a second product among the plurality of products, the second delivery wave being different from the first delivery wave; Storing the second delivery wave associated with the second product in the database; Determining that the first delivery wave is associated with an earlier time period than the second delivery wave, and in response thereto: Modifying the database to associate the first product with the second delivery wave; and When a scan event occurs during a time period associated with the first delivery wave and not associated with the second delivery wave, preventing the scan event from being inserted into a database of completed scan events by the following steps, the scan event including an identifier of the first product: Receiving a scan event including an identifier of the first product from a mobile device; Intercepting a data packet including information indicating the occurrence of the scan event, wherein the data packet is sent to the database when the scan event is completed; and Deleting the data packet.

2. The system according to claim 1, wherein, the first fulfillment center and the second fulfillment center are different.

3. The system according to claim 2, wherein, the order information includes two customer orders, the first product is in the first customer order, and the second product is in the second customer order.

4. The system according to claim 1, wherein, the steps further include: Forwarding a second set of computer instructions to a printing device, the second set of computer instructions being configured to cause the printing device to print a label listing information associated with the second delivery wave.

5. The system according to claim 1, wherein, each delivery wave occurs during a time period including a plurality of delivery waves, and the steps further include: determining that the first delivery wave and the second delivery wave occur during the same time period.

6. The system according to claim 1, wherein, determining the first fulfillment center and the second fulfillment center includes: Determining a region associated with the remote system information; and Determining a fulfillment center from a set of fulfillment centers associated with the determined region.

7. The system according to claim 1, wherein, determining the first fulfillment center and the second fulfillment center includes: Store multiple previous electronic requests and associated fulfillment centers in a database; Divide the previous electronic requests into a training data set and a validation data set, the training data set having more requests than the validation data set; Generate a prediction model based on the training data set associating request information with fulfillment centers; Validate the prediction model using the validation data set; and Determine the first fulfillment center and the second fulfillment center by applying the prediction model to an electronic request.

8. The system according to claim 1, wherein, Determining the first fulfillment center and the second fulfillment center includes: comparing the scheduling of the delivery wave of the product with the average travel time of the product through each of the multiple fulfillment centers.

9. A computer-implemented method for delivery wave scheduling, the method comprising: Receiving order information including a plurality of products and associated identifiers from a remote system; Based on the associated identifiers and the remote system, determining a first fulfillment center and a first delivery wave from a plurality of delivery waves for a first product among the plurality of products; Storing the first delivery wave associated with the first product in a database; Based on the associated identifiers and the remote system, determining a second fulfillment center and a second delivery wave from the plurality of delivery waves for a second product among the plurality of products, the second delivery wave being different from the first delivery wave; Storing the second delivery wave associated with the second product in the database; Determining that the first delivery wave is associated with an earlier time period than the second delivery wave, and in response thereto: Modifying the database to associate the first product with the second delivery wave; Determining that a scan event occurs during a time period associated with the first delivery wave and not associated with the second delivery wave, the scan event including an identifier of the first product; and Preventing the scan event from being inserted into a database of completed scan events by: Receiving a scan event including an identifier of the first product from a mobile device; Intercepting a data packet including information indicating that the scan event has occurred, wherein the data packet is sent to the database when the scan event is completed; and Deleting the data packet.

10. The method according to claim 9, wherein, The first fulfillment center associated with the first product and the second fulfillment center associated with the second product are different.

11. The method according to claim 10, wherein, The order information includes two customer orders, the first product is in the first customer order, and the second product is in the second customer order.

12. The method according to claim 9, wherein, The method further includes: Forwarding a second set of computer instructions to a printing device, the second set of computer instructions being configured to cause the printing device to print a label listing information associated with the second delivery wave.

13. The method according to claim 9, wherein, Each delivery wave occurs during a time period that includes a plurality of delivery waves, and the method further includes: determining that the first delivery wave and the second delivery wave occur during the same time period.

14. The method according to claim 9, wherein, the method further includes: determining a region associated with the remote system information; and determining a fulfillment center from a group of fulfillment centers associated with the determined region.

15. The method according to claim 9, wherein, determining the first fulfillment center and the second fulfillment center includes: storing a plurality of previous electronic requests and associated fulfillment centers in a database; dividing the previous electronic requests into a training data set and a validation data set, the training data set having more requests than the validation data set; generating a prediction model based on the training data set associating request information with fulfillment centers; validating the prediction model using the validation data set; and determining the first fulfillment center and the second fulfillment center by applying the prediction model to an electronic request.

16. The method according to claim 9, wherein, determining the first fulfillment center and the second fulfillment center includes: comparing the scheduling of the delivery wave of the product with the average travel time of the product through each of the plurality of fulfillment centers.

17. A computerized system for delivery wave scheduling, the system comprising: at least one processor; and at least one non-transitory storage medium including instructions that, when executed by the at least one processor, cause the at least one processor to perform steps that include: receiving order information including a plurality of products and associated identifiers from a remote system; determining a first fulfillment center and a first delivery wave from a plurality of delivery waves for a first product among the plurality of products based on the associated identifier and the remote system, the first delivery wave being associated with a condition; storing the first delivery wave associated with the first product in a database; determining a second fulfillment center and a second delivery wave from the plurality of delivery waves for a second product among the plurality of products based on the associated identifier and the remote system, the second delivery wave being associated with a time period, the time period associated with the second delivery wave being different from the time period associated with the first delivery wave; storing the second delivery wave associated with the second product in the database; determining that the time period associated with the first delivery wave and the time period associated with the second delivery wave occur during the same time period, the time period including a plurality of waves; determining that the first delivery wave is associated with an earlier time period than the second delivery wave, and determining the second delivery wave based on the second product not meeting the condition, and in response thereto: modifying the database to associate the second product with the first delivery wave; and When a scanning event occurs during a time period associated with the first delivery wave and not associated with the second delivery wave, the scanning event including the identifier of the first product is prevented from being inserted into the database of completed scanning events by the following steps: Receiving, from a mobile device, a scanning event including the identifier of the first product; Intercepting a data packet including information indicating the occurrence of the scanning event, wherein the data packet is sent to the database when the scanning event is completed; and Deleting the data packet.

Citation Information

Patent Citations

  • Method and system for providing adaptive processing and delivery of food catering orders

    US20110258134A1

  • Methods and Apparatus for Fulfilling Tote Deliveries

    US20110320034A1

  • Collective delivery system, program, and collective delivery method

    US20160342932A1