WO2001075746A2 - Order fulfillment system and method - Google Patents

Order fulfillment system and method Download PDF

Info

Publication number
WO2001075746A2
WO2001075746A2 PCT/US2001/011099 US0111099W WO0175746A2 WO 2001075746 A2 WO2001075746 A2 WO 2001075746A2 US 0111099 W US0111099 W US 0111099W WO 0175746 A2 WO0175746 A2 WO 0175746A2
Authority
WO
WIPO (PCT)
Prior art keywords
product
delivery
fulfillment
order
information
Prior art date
Application number
PCT/US2001/011099
Other languages
French (fr)
Inventor
Andrew Krainin
Herbert Kummer
Ken West
Original Assignee
Sameday.Com, Inc.
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Sameday.Com, Inc. filed Critical Sameday.Com, Inc.
Priority to AU51343/01A priority Critical patent/AU5134301A/en
Publication of WO2001075746A2 publication Critical patent/WO2001075746A2/en

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q10/00Administration; Management
    • G06Q10/08Logistics, e.g. warehousing, loading or distribution; Inventory or stock management
    • G06Q10/087Inventory or stock management, e.g. order filling, procurement or balancing against orders

Definitions

  • TECHNICAL FIELD This invention relates to computer-assisted commerce and, more particularly, to product purchase, product availability, and order fulfillment and delivery information communicated over computer networks in real-time.
  • Vendors can provide application software packages with the requisite functionality, but much custom programming must still be developed for the retailer's particular needs. Vendors who can provide such applications that support e- commerce applications for order processing and database management include Oracle Corporation of Santa Clara, California, USA and SAP AG of Walldorf, Germany. While such ordering systems, when connected to on-line Web sites, can make the ordering process easier for the consumer, they are quite expensive and complicated to implement for the retailer.
  • Order processing networks and software applications can be provided, for example, through companies such as: Yantra Corporation of Acton, Massachusetts, USA;
  • WebNan and Kozmo.com for example, both provide consumers with drug store items such as toiletries and household goods.
  • the order systems of these companies can provide real-time information to consumers about products in stock, but only for one of their distribution centers at a time. Moreover, the order systems do not typically provide information about any other retailers' products. Finally, from both a technical integration and warehouse operations perspective, these systems are limited and specifically tailored to their own business needs.
  • an integrated product order processing technique receives product orders and/or product availability requests over a computer network, wherein the product orders are generated by a plurality of computer network user nodes (e.g., Internet customers or users) and are directed to computer network sites of a plurality of product vendors (e.g., online vendors or merchants).
  • a system data processing center collects transaction data, wherein the transaction data relates to each of the product orders and specifies the respective ordering network user nodes (e.g., who ordered the product) and the product vendor network sites (e.g., which online vendor) from which the products were ordered.
  • the orders are then filled from a plurality of product Fulfillment Centers, wherein the system automatically determines product availability and delivery time, and locates one or more product Fulfillment Center locations from which product orders may be shipped regardless of the ultimate destination, and product inventories for multiple vendors are maintained at the Fulfillment Center locations.
  • the system automatically determines product availability and delivery time, and locates one or more product Fulfillment Center locations from which product orders may be shipped regardless of the ultimate destination, and product inventories for multiple vendors are maintained at the Fulfillment Center locations.
  • Figure 1 is a block diagram representation of an order purchase and fulfillment system constructed in accordance with the present invention.
  • Figure 2 illustrates the data flow between users, vendors, Distribution Server, Fulfillment Centers, and Delivery Carriers.
  • Figures 3A and 3B are block diagrams of a representative database schema in accordance with the present invention.
  • Figure 4 is a flow diagram that illustrates the method of fulfilling product orders in accordance with the present invention, as provided by the system illustrated in Figure 1.
  • FIG 5 is a flow diagram that illustrates the method of updating inventory availability information in accordance with the present invention, as provided by the system illustrated in Figure 1.
  • Figures 6 A, 6B, 6C, 6D, 6E, 6F, and 6G illustrate the method of determining the fastest delivery service in accordance with the present invention, as provided by the system illustrated in Figure 1.
  • Figure 7 is a block diagram representation of one of the computers illustrated in Figure 1.
  • FIG. 1 is a block diagram representation of an order fulfillment system 100 constructed in accordance with the present invention.
  • the system 100 communicates ,with multiple vendors 102 and is transparent to users 104, who place product orders, and request status and product availability information.
  • the users may comprise, for example, consumers at home computers or authorized employees of businesses who place orders on behalf of their employer for supplies and materials. Users typically place their orders directly with a vendor, for example, via an online shopping cart system 103 implemented by such vendor.
  • the vendor then transmits the orders or requests to the order fulfillment system 100, particularly, to the Distribution Server 108, typically via a standard interface defined and understood by both vendors 102 and order fulfillment system 100 (i.e., via a real-time Application Program Interface (API).
  • API Application Program Interface
  • the system 100 supports multiple users (from multiple vendors) who place orders, and request order status and product availability information at client machines 104, and who communicate with the vendors 102 over a shared network 106, such as the Internet, to place product orders, and request order status and product availability information.
  • a shared network 106 such as the Internet
  • the system 100 receives orders and requests for product availability and status information from the vendors 102 across a shared network, such as the Internet, at an order fulfillment system 100, particularly the Distribution Server 108, which interfaces with the multiple vendors.
  • the Distribution Server 108 communicates with multiple Fulfillment Centers 112, wliich may comprise product warehouses with inventory managed by warehouse management systems 111A, and also communicates with multiple Delivery Carriers 114, which may comprise delivery services managed by the provider of the system 100 or may comprise independent delivery services such as UPS, FedEx, USPS, and others, or may comprise a combination of these.
  • the Distribution Server 108 determines availability of requested product from a Fulfillment Center 112, the service tier (or service level) that is available from a Delivery Carrier 114 to an order ship-to address (e.g., FedEx overnight), the earliest available shipment date and time, a projected product delivery date and time (collectively referred to as an availability-to-promise (ATP)), and, for orders where product is not available from a single Fulfillment Center, an analysis of the shipment options available to the user 104.
  • Fulfillment centers are typically distribution centers or warehouses that stock inventory. Delivery carriers are typically shipping or delivery companies, such as FedEx, UPS, DHL, and the like.
  • the service tier may include, not limited to, overnight delivery (e.g., for FedEx and UPS), two-day air, ground, and the like).
  • the vendors 102 communicate with the Distribution Server 108 through a data network, preferably the Internet, with a "many- to-many” connectivity on a synchronous, real-time basis (e.g., through the use of Hypertext Transfer Protocol (HTTP) "posts” and “gets” which are methods to send and obtain information, respectively).
  • HTTP Hypertext Transfer Protocol
  • the Distribution Server 108 Concurrently, while communicating with the vendors 102, the Distribution Server 108 also communicates through a data or communications network 110, preferably the Internet, with one or more Fulfillment Centers 112 and/or Delivery Carriers 114 on an asynchronous, real-time basis utilizing XML messages.
  • Information sent between the various parties in the system may also be encrypted using readily-available technology, such as RSA.
  • the communications networks 110 may also be a value added network such as Advantis from IBM.
  • a virtual private network may be created to utilize encryption and other security mechanisms to ensure that only authorized users of the system may access the network and that data are not intercepted.
  • it may be implemented through a wide area network, and the like.
  • the system 100 supports a number of different fulfillment or shipment options, which the vendor may select as desired, or which the vendor may provide to the user for selection.
  • the fulfillment options include a requirement that no orders may be split into multiple shipments, so that no shipment will be made unless the entire order is available for shipment at the same time, and shipment options also include alternatives called split for most items, split for fastest delivery, a most-items split selection option, a fastest-delivery split selection option, and a multi-split option. These fulfillment options are described in further detail below.
  • the availability-to-promise information, shipment options, and other data concerning order availability is returned to the vendors 102, who communicate this information to their respective users 104 in real-time.
  • the Distribution Server 108 maintains: a global and Fulfillment Center-specific view of product availability (updated in real-time to reflect product orders and product replenishments) for each of the vendors 102; Delivery Carrier and service tiers availability by country, state or province, and "ZIP" or postal code; pick up and drop off cut-off times and blackout days/dates specified for each Delivery Carrier and service tier combination for each Fulfillment Center, availability of operational resources (e.g., picking, packing, gift wrapping, and shipping) in each Fulfillment
  • the Distribution Server 108 splits order shipments as necessary and routes the order to the selected the Fulfillment Centers 112, which may incorporate transportation management services 11 IB, and to one of the Delivery Carriers 114, which may incorporate a shipment management system 113, who will together fulfill the ordered products.
  • these systems will provide Fulfillment Center, transportation, and delivery status information in real time for each ordered line item and closing of the order (delivery of all ordered product or cancellation) to the Distribution Server 108, where a record of the order status persists and can be requested in real-time by the vendor 102.
  • the Fulfillment Center locations 112 comprise inventory storage locations from which at least one product of a product order may be shipped to a designated delivery address.
  • the system 100 thereby provides real-time product availability and order status information for multiple vendors 102 selling to multiple users 104 in an online, interactive environment through a vendor interface provided for by the Distribution Server 108. In this way, the functionality of the system 100 is transparent to the end users 104.
  • the Fulfillment Centers 112 can co-locate the inventory of multiple vendors under control of the system 100.
  • the system can also permit users 104 of one vendor 102 to order product from another vendor 102, if the second vendor has specified that the first may resell its inventory.
  • the system can advantageously utilize the same Delivery Carriers' 114 services for all the vendors 102. For example, a delivery carrier service having a single fleet of delivery vehicles can be used to provide same-day delivery of products ordered by multiple users 104 through multiple vendors 102. Both inventory storage costs and delivery costs are thereby reduced, improving the efficiency of the delivery system.
  • the order purchase and fulfillment system 100 places no constraints on the support systems (computer hardware, network telecommunications hardware, operating system software, network connection software, database system software, and application systems software) utilized by vendors 102 nor on the systems that collectively support operations of the Fulfillment Centers 112 and Delivery Carriers 114 to users 104, with the exception that such systems must be connected to networks 106 and 110 to which the Distribution Server 108 is also connected and that the systems can comply with the interface specifications for the Distribution Server 108.
  • support systems computer hardware, network telecommunications hardware, operating system software, network connection software, database system software, and application systems software
  • the network 110 over which the Distribution Server 108 communicates with the Fulfillment Centers and Delivery Carriers may comprise a computer network such as the Internet or a local area network (LAN) or wide area network (WAN), and may include a voice communications network (such as the public telephone network or other means of communication) and wireless communications network.
  • a computer network such as the Internet or a local area network (LAN) or wide area network (WAN)
  • LAN local area network
  • WAN wide area network
  • voice communications network such as the public telephone network or other means of communication
  • wireless communications network such as the public telephone network or other means of communication
  • the features are written as one or more JAVA applications and run using a BEA WebLogic Server from BEA Systems of San Jose California.
  • Data encryption such as RSA and PGP, may also be supported by the fulfillment system 100, particularly, for asynchronous messaging.
  • FIG. 2 illustrates the data flow within and outside the order fulfillment system 100.
  • a user 104 sends a product availability request (PAR) 202 to a vendor 102, which in turn transmits such request 204 in its original or modified form (e.g., modified to meet the interface specification of the Distribution Server 108) to the Distribution Server 108.
  • the Distribution Server 108 processes such request and checks its database to determine if the products requested are available.
  • the Distribution Server 108 in turn returns the product availability information 206, optionally including other ATP information such as the earliest available shipment date and time, to the vendor 102, which in turn sends this information 207 to the user 104. All of the above functions occur in real-time.
  • a user may also place an order 208 (preliminary or confirmed) with the vendor, which in turn sends such order 210 (original or modified form) to the Distribution Server 108.
  • the Distribution Server 108 after analyzing the options available sends the order fulfillment options (further discussed in Figures 6 A to 6G) to the Vendor 102, which in turn sends the corresponding order fulfillment options 212 to the User 104.
  • pick order information 212 i.e., instructions to the Fulfillment Center 112 indicating which items must be prepared for delivery, assembly, gift wrapping, and the like
  • back order information 214 if appropriate
  • pick order information 212 i.e., instructions to the Fulfillment Center 112 indicating which items must be prepared for delivery, assembly, gift wrapping, and the like
  • back order information 214 if appropriate
  • pick order information 212 i.e., instructions to the Fulfillment Center 112 indicating which items must be prepared for delivery, assembly, gift wrapping, and the like
  • back order information 214 if appropriate
  • the warehouse management system 111 A returns the order receipt confirmation 236 indicating that the Fulfillment Center 112 has received the pick order, to the Distribution Server 108 which updates its database accordingly.
  • the Fulfillment Center 112 transportation management systems sends the shipment/delivery instructions 232 to the Delivery Carrier 114 and receives back the shipment tracking ID's 233 from the Delivery Carriers 114.
  • the Fulfillment Center 112 also sends the order shipment confirmation 237 to the Distribution Server 108, which updates its database accordingly.
  • the order shipment confirmation tells the Distribution Server
  • the Delivery Carrier may send proof of delivery 224 for shipments (e.g., name of person who signed or received the order) to the Distribution Server 108 which updates its database accordingly.
  • a user may at any time request order status information 218 from the vendor, which then transmits such request 220 (original or modified form) to the Distribution Server 108.
  • the Distribution Server 108 may have to request in transit status information 222 (e.g., via tracking numbers) from the Delivery Carriers 114, which receives such request and in turn sends the in transit status information 234 back to the Distribution Server 108.
  • Order status information e.g., via tracking numbers
  • delivery status or in transit status information (if applicable) 226, is then sent back to the vendor 102, which in turn sends such order status information 228 to the user 104. All of the above functions occur in real-time.
  • the Fulfillment Centers 112 may be receiving inventory replenishments and making adjustments to inventory (for example to reflect breakage, cycle count results, etc.), typically via a warehouse management system (111 A in Fig. 1).
  • the increment to inventory levels caused by an inventory receipt 215 is sent to the Distribution Server 108, which increments the global and fulfillment-center specific availability of the received products within its database.
  • the change to inventory levels caused by an adjustment 216 are sent to the
  • Distribution Server 108 which appropriately increments or decrements the global and fulfillment-center specific availability of the received products within its database.
  • inventory adjustments include inventory replenishments.
  • the vendor 104, the Distribution Server 108, the Fulfillment Center 112, and the Delivery Carriers 114 communicate with each other in real time, meaning that information is sent to one system and is received in turn in one session, rather than via a batch "snapshot" mechanism.
  • Information between each system is also typically sent or posted using XML messages.
  • the elements in the XML messages are predefined by the Distribution Server 108 interface specification such that each sending and receiving party recognize the XML messages sent and received.
  • the order receipt confirmation 236 from the Fulfillment Center 112 may be modified by the Distribution Server 108 into a form that would be understood by the vendor 102 (e.g., incorporated in an order status information 226).
  • Extensible Markup Language is a subset of the Standard Generalized Markup Language (SGML), which is a means of providing platform- and application-independent documents that retain formatting, indexing, and linked information.
  • XML uses tags to delimit data, such as text and graphics, in a document.
  • a tag comprises a less than sign " ⁇ ", a tag name, and a greater than sign ">.”
  • data are delimited between a start tag, e.g., " ⁇ Name>,” and an end tag, e.g., " ⁇ /Name>,” with the end tag exactly like the start tag except a slash ("/") precedes the tag name.
  • Data delimited by a start tag and an end tag is called an element, and the data between the start and end tags are called the element's content or value.
  • Table I contains a sample XML message, particularly a pick order message (212 in Fig. 2), sent by the distribution server 108 to the warehouse management system 111 A of a Fulfillment Center 112.
  • a "1:M" designation in the figure means that there is a one-to-many relationship between the two database tables linked by the arrow. For each record in the database table from which the arrow starts, there must be at least one and may be many related records in the database table where the arrow terminates, e.g., for every one country, there must be at least one and maybe more provinces or states.
  • a "0:M” designation means that there is a zero to many relationship between the two database tables linked by the arrow. For each record in the database table from which the arrow starts, there may be zero, one or many related records in the database table where the arrow terminates, e.g. a carrier service tier 328 may have no blackout dates, one blackout date, or many blackout dates.
  • a "0:1" designation means a zero-to-one relationship between the two database tables linked by the arrow. For each record in the database table from which the arrow starts, there may be zero or one related record in the database table where the arrow terminates, e.g., each user order header 3702 (in Figure 3B) record may contain no custom message 3700 or one custom message 3700.
  • the Country database table 320 enables the support of multi-country operation with fields such as country ID, and country name (e.g., USA).
  • the province database table 334 (or State database table) contains data on the provinces or states for a particular country with fields such as province ID, country ID, province name or state name (e.g., California), time zone split indicator, time zone
  • the order fulfillment system 100 knows that ShipNow and ShipToday are not available for that order considering that if the earliest delivery time is 10:00 p.m. (California time), it is already the next day in New York (1:00 a.m.).
  • the Post Code database table (or "ZIP" code) 344 maintains data on the postal
  • the Restriction City 352 database table specifies the shipment restrictions on a city, with fields such as city name, country ID, province ID, post code, entire city indicator, delivery not earlier than, delivery not later than, and the like. For example, it may contain information indicating that there can be no delivery in Hollywood, California earlier than 5:00 a.m. These restrictions may be those imposed by the Delivery Carriers 114.
  • the Restriction Street database table 354 contains streets where delivery restrictions exist. It contains field such as street name, city name, country ID, province
  • ID post code
  • street name start number
  • end number delivery not earlier than
  • delivery not later than and the like.
  • it may contain data indicating that there is no delivery earlier than 10:00 a.m. and later than 2:00 p.m. to 400-500 Boxer Street, Hollywood, California with post code 93066.
  • the Vendor database table 324 contains vendor profiles, with fields such as vendor ID, country ID, vendor name, full catalog available, single distribution center ID or name, primary distribution center, order fulfillment method desired, and the like.
  • the Delivery Carrier database table 322 identifies delivery carriers (or carriers) available within a country with fields such as carrier ID, country ID, carrier name, carrier logo, and the like.
  • the Provider database table 325 contains provider inventory specific information considering that a provider of the order fulfillment system may also provide Delivery Carrier service.
  • the Fulfillment Center database table 326 contains information about the Fulfillment Centers (both primary and alternate) within the system, including the operational constraints at each Fulfillment Center, with fields such as Fulfillment Center ID, Fulfillment Center name, time zone, latitude and longitude (for static locations), type of Fulfillment Center (e.g., warehouse and truck), picking/packing lead time for 1 item, picking/packing lead time for two to 10 items, picking/packing lead for more than 10 items, gift service lead time, gift service available indicator, and the like.
  • the system dynamically create a list of Fulfillment Centers ordered in ascending sequence of distance from the Fulfillment Centers to the order's ship-to location.
  • the system creates a temporary version of database table 348 specific to the order it is evaluating for fulfillment, designating the closest Fulfillment Center as the PFC and the further Fulfillment Centers as the AFC's.
  • the system creates a temporary version of database table 348 specific to the order it is evaluating for fulfillment, designating the closest Fulfillment Center as the PFC and the further Fulfillment Centers as the AFC's.
  • PFC is always checked first to determine if it can satisfy or fulfill the order before the AFC's are checked in their predetermined or dynamically determined order.
  • the Fulfillment Center/Drop Ship Source database table 362 contains drop ship source information (e.g., drop ship warehouse) as it relates to a Fulfillment Center, with fields such as drop ship ID, Fulfillment Center ID, country ID, vendor ID, time required for a round trip to location, latest pick up time, and the like.
  • the Fulfillment Center/Drop Ship Item database table 360 contains information about drop ship items available from drop ship sources. It contains fields such as drop ship ID, Fulfillment Center ID, product number, country ID, vendor ID, quantity on hand, quantity reserved, quantity on back order, date due for replenishment, time due for replenishment, replenishment quantity, and the like.
  • the Inventory Item (Product) database table 332 contains information about items stocked on behalf of the vendors, with fields such as inventory ID, country ID, vendor ID, vendor stock number, active inventory indicator, fast moving item indicator, item name, earliest retail date (e.g., earliest date for retail delivery for video releases), drop ship indicator (i.e., item is not in stock needs to be pick-up), item sell by date, lot control indicator, serial control indicator weight, dimensions of item, minimum box size, special packaging required, minimum driver class for item delivery, item may be gift wrapped indicator, gift wrap size required (size of gift wrapping paper required), assembly required, quantity on hand, quantity reserved (i.e., on hand quantity that is reserved against pending orders), quantity on back order, earliest date for replenishment, earliest due time for replenishment, replenishment quantity, distribution center, and the like.
  • fields such as inventory ID, country ID, vendor ID, vendor stock number, active inventory indicator, fast moving item indicator, item name, earliest retail date (e.g., earliest date for retail delivery for video releases), drop
  • the Fulfillment Center/Inventory Item database table 342 contains information about inventory within a Fulfillment Center with fields such as Fulfillment Center ID, vendor ID, inventory ID, vendor stock number, quantity on hand, quantity reserved, quantity on back order, date due for next replenishment, time due for next replenishment, and quantity for next replenishment.
  • the Lot database table 350 contains inventory on hand information about items that must be managed through lots, e.g. pharmaceuticals with sell-by dates, paint that must be drawn from the same manufacturers lot (to ensure the same color tone for multi-quantity item orders), and the like. It contains fields such as Fulfillment Center ID, Vendor ID, Vendor stock number, lot ID, sell by date (date after which items in the lot may not be sold), quantity on hand, quantity reserved, lot closed indicator, and the like.
  • the Bill-Of-Material Item (BOM) database table 330 contains information about materials that may be combined or assembled to create an order, that is, an assemble-to-order item, with fields such as country ID, vendor ID, vendor stock number, quantity of component item required, and the like.
  • the Shipping Restriction database table 340 contains a list of inventory items that may not be shipped via a specific carrier, for example, the item is oversized, overweight, or a hazardous material. It contains fields such as carrier ID, service tier ID, inventory ID, country ID, reason for restriction, and the like.
  • the Truck database table 346 identifies the trucks belonging to a particular Fulfillment Center, with fields such as Fulfillment Center ID, the truck ID, the cut off time for ShipNow, and the like. A truck is also considered as a Fulfillment Center 112 when it has unordered items on board.
  • the Truck/Inventory Item database table 356 contains the unordered inventory items carried on a specific truck, with fields such as Fulfillment Center ID, truck ID, vendor ID, vendor stock number, quantity on hand, quantity reserved, and the like.
  • Figure 3B illustrates an embodiment of the order information architecture in accordance with the present invention.
  • the User database table 364 provides the structure for capturing user information, with fields such as user ID, country ID, vendor's user ID, user name, contact information, delivery instructions, time zone, best time to call, and the like.
  • the User/Vendor database table 366 identifies the users for each vendor with fields such as country ID, the vendor ID, the vendor's user ID, and the like.
  • the Standard Message database table 368 contains the messages that vendors may want to be reproduced on their invoice and/or packing slip, with fields such as vendor ID, country ID, vendor message ID, font ID, font size, message text, and the like.
  • the Sales Order Header database table 3702 contains header information about an order, with fields such as order ID, country ID, vendor ID, vendor order identifier, date order placed, time order placed, invoice address, ship to address, ship-to business indicator, P.O. Box indicator, international indicator, shipment quoted, gift no price indicator (i.e., price should not be printed on the packing slips), gift wrap indicator, insurance indicator, standard message ID, custom message ID, and the like.
  • the Order Line Item database table 380 contains information about the line items for each order header with fields such as order ID, line item number, country ID, vendor ID, vendor order identifier, vendor item number, description, unit price local, taxable indicator, quantity ordered, gift wrap individually indicator, shipping and handling cost, extended price, and the like.
  • the Fulfillment Center pick order header 374 contains information pertinent to a Fulfillment Center's component of a sales order. It contains fields such as pick order
  • the Custom Message database table 3700 contains order-specific custom messages that a vendor may want to be reproduced on the invoice and/or packing slip.
  • the Recipient Contact database table 376 provides contact information for the ship-to person if different from the one who placed the order. It contains fields such as
  • the Order Gift Wrap/Message database table 378 provides user and/or vendor information or instructions on how the order should be wrapped such as the type of wrapping, type of card included, message in the card, and the like. It contains fields such as country ID, vendor ID, vendor order identifier, wrapper paper identifier, greeting card identifier, greeting text, and the like.
  • the Line Item Gift Wrap/Message database table 384 provides information about the wrapping and card selected by the user for a particular line item in the order. It is similar to the order wrap, however, information is for line item order rather than per order.
  • the Shipment database table 382 provides shipping information about each order, with fields such as country ID, vendor ID, vendor order identifier, shipment number, shipment method, ship date, ship time, shipping and handling cost, carrier ID, service tier ID, tracking number, signature required indicator, special delivery instructions, successful indicator (shipment successfully delivered) indicator, and the like.
  • the Shipment/Order Line Item database table 386 contains information about fully or partially fulfilled line item orders by shipment, with fields such as Order ID, line item number, country ID, vendor ID, vendor order identifier, vendor item number, quantity shipped, and the like.
  • databases defined herein, as well as the fields in the database table may be modified, added, or deleted depending, for example, on the functions provided by the system, the information required to be sent, summary information to be generated, database design, system implementation, query speed, and the like.
  • databases described herein are not a comprehensive or an exhaustive illustration of the databases that may be required to employ the features of the present invention.
  • FIG. 4 is a flow diagram of the processing operations executed by the system 100 illustrated in Figure 1.
  • the system receives a communication from a vendor who subscribes to the order fulfillment system constructed in accordance with the invention.
  • Such communications are either a Product Availability Request (PAR) or an order and are received at the Distribution Server 108 or other communications interface of the system 100. If the communication is a PAR, then the PAR is processed by the PAR.
  • PAR Product Availability Request
  • the PARs comprise requests for product availability information that are generated by a plurality of computer network user nodes and received at computer network sites of a plurality of product vendors, who forward these requests in real-time to the Distribution Server.
  • the Distribution Server responds to these requests with the global inventory availability for the products listed in the request, as represented by flow diagram box numbered 404.
  • the Distribution Server 108 returns the availability of product in the Fulfillment Centers identified as the vendor's primary or alternate Fulfillment Center for the ship-to postal code and the fastest carrier/delivery service tier combination available from each Fulfillment Center available to the ship-to postal code, in addition to global inventory availability.
  • a user visits the vendor's Web site and views the product offerings.
  • the online shopping cart system (or e- commerce system) (103 in Fig. 1) of the vendor requests PAR information for the products being displayed to the consumer from the system 100 of the invention, which consults its database of product availability across all the Fulfillment Centers (that is, the inventory is viewed as a global resource).
  • the vendor e-commerce system receives information from the Distribution Server concerning the availability for each product specified in the request and provides it to the user. Other processing then continues. For example, the user may request product availability for another product, or submit an order to the vendor's e-commerce Web site, or may terminate the communications.
  • An order may be a preliminary order that does not contain payment information and authorization, or may be a confirmed order, which includes authorization to pay and ship. Both types of orders preferably contain at least "ZIP" code or postal code delivery information and identify a specific product for the order. Confirmed orders must contain the full ship-to address and recipient's name.
  • the orders are generated by a plurality of computer network user nodes and are received at computer network sites of a plurality of product vendors and are forwarded in real-time to the Distribution Server.
  • both preliminary orders and confi ⁇ ned orders are analyzed to identify an order-based primary Fulfillment Center for the order-specified delivery location, the quantity of each product ordered compared to the availability in the primary Fulfillment Center, the time of day at the primary Fulfillment Center, operational resources available at the primary Fulfillment Center, the carrier/delivery service tier (if any) requested for the order, and the vendor's shipping preferences.
  • This processing is represented by the flow diagram box numbered 408.
  • One of the fulfillment options is to permit only a single shipment for the order (i.e. "no split- shipments" option).
  • a vendor may select that for all orders it forwards to the system 100, or a vendor may provide that fulfillment option as a selectable requirement to the vendor's users.
  • the order analysis will require that an order will be placed (for purposes of analysis) from a Fulfillment Center and Delivery Carrier at which the entire order can be delivered, with the best available service tier. If an order cannot be delivered completely from any one Fulfillment Center, then that condition will be indicated and, upon order confirmation with payment authorization, the order will be placed on backorder at the closest Fulfillment Center with the most number of items from the order, awaiting fulfillment.
  • a second fulfillment option is the "split for most" option, which permits orders to be split into a number of shipments (e.g., two) based on filling (shipping) the most number of items in the order for a Fulfillment Center.
  • a number of shipments e.g., two
  • the delivery schedule is indicated, and if an order cannot be so completed, then a back order condition is indicated, in the case of preliminary orders.
  • confirmed orders with payment authorization if the order can be fulfilled with the promised delivery level from two Fulfillment
  • the "most items split shipment” option analyzes an order such that, if an order can be completed from, for example, two Fulfillment Centers, then that option or availability is presented as well as the option of placing the entire order on back order condition with the closest Fulfillment Center with the most number of items. If the order cannot be completed from two Fulfillment Centers, then the option to receive the most items in one shipment is returned to the vendor, along with a back order placed on the Fulfillment Center with the most of the remaining items, along with the option of placing the entire order on back order with the Fulfillment Center having the most number of items from the order.
  • Yet another fulfillment option supported by the system is to permit a "fastest delivery split" option.
  • the Distribution Server analyzes the order such that, if any part of the order can be fulfilled at the indicated service tier, then that schedule is returned to the vendor with the best-case single shipment schedule for the remaining order. If the order can be completed from, for example, two Fulfillment Centers, then that option is presented, along with the option of placing the entire order on back order with the closest Fulfillment Center having the most number of items.
  • a fulfillment option is provided for a multi-split option, such that if an order can be fulfilled with more than, for example, two shipments, an order is created for all items that can be fulfilled at the indicated service tier, and additional orders are created to best fulfill the remaining items.
  • Shipment for the remaining items will be based on a vendor specified default schedule.
  • the different fulfillment options are discussed in more detail below. It should be understood that the processing of the shipment options would not actually be carried out with respect to forwarding order instructions to a Fulfillment Center unless a confirmed order is received.
  • a preliminary order may contain product (item) and shipment destination information, but will not include payment authorization, whereas a confirmed order includes all product item and quantity information, payment authorization, and destination location information needed for completion of the order.
  • the Distribution Server After the fulfillment analysis processing, the Distribution Server returns the results of the order analysis back to the vendors' e-commerce systems (103 in Fig. 1) that made the request, which in turn communicate the order analysis back to their users so the users can indicate their preference for how the order should be fulfilled and the carrier/delivery service tier that should be used for each shipment.
  • the next operation is represented by the flow diagram box numbered 410, wherein the vendor's e-commerce system forwards the confirmed order (updated to reflect the consumer's fulfillment/shipping preferences) to the Distribution Server.
  • the Distribution Server creates a pick order for each of the Fulfillment Centers from which one or more products (or items) will be drawn and for each of the Delivery Carriers through winch such item (s) will be shipped.
  • the Distribution Server 108 also forwards these pick orders to the appropriate Fulfillment Centers' and Delivery Carriers' systems, and reserves the quantity of each item drawn from each Fulfillment Center, thereby reflecting the decrease of quantity available the next time availability for those items are requested. This processing is represented by the flow diagram box numbered 412.
  • the Fulfillment Center and Delivery Carrier systems track the operational processes of picking, packing, shipment staging, transportation, and delivery to the consumer. At appropriate points in the process for each order, these systems generate status updates that are forwarded in real-time to the Distribution Server, as represented by the flow diagram box numbered 416.
  • the Distribution Server records the order status updates in its database and, when the status update indicates that a shipment has occurred, decrements the Fulfillment Center's record of reserved quantity and quantity-on-hand to reflect the quantity of each product in the shipment.
  • order status requests generated by a plurality of computer network user nodes are received at computer network sites of a plurality of product vendors and are forwarded in real-time to the Distribution Server, represented by flow diagram box numbered 420.
  • the Distribution Server responds with all the status information that has been recorded for the order.
  • the system illustrated in Figure 1 also carries out inventory availability update processing, to receive and respond to status requests and ensure that accurate, updated product availability information is provided to vendors.
  • inventory availability update processing to receive and respond to status requests and ensure that accurate, updated product availability information is provided to vendors.
  • Such processing is illustrated in Figure 5.
  • the operations illustrated in Figure 5 comprise order replenishment processing (for shipped inventory) and order adjustment processing (for accommodating returned product or to account for loss or breakage). It should also be understood that such replenishment processing and adjustment processing are carried out in parallel, but the flow diagram represents such operations serially for convenience of description.
  • product replenishments are received into a plurality of Fulfillment Centers for a plurality of product vendors and recorded in the Fulfillment Center systems that generate real-time replenishment notifications to the Distribution Server, represented by flow diagram box numbered 524, which records the increment to quantity available for the product for the Fulfillment Center and globally, thereby reflecting the increase of quantity available the next time there is a request for information about availability for those products.
  • the Distribution Server 108 retrieves the vendor's preference for using predefined or dynamically created Fulfillment Center lists 6002.
  • the vendor's preference is to dynamically create the Fulfillment
  • the system establishes the latitude and longitude of the ship-to location 6006, through the use of an electronic gazette, then retrieves the list of the vendor's Fulfillment Centers and loops through them 6008, calculating the distance between the latitude/longitude of ship-to location and the predefined latitude/longitude of each Fulfillment Center 6010, and storing the Fulfillment
  • the system retrieves first Fulfillment Center in the sorted list which is designated as the primary Fulfillment Center (PFC) 6018 with the second and subsequent ones in the temporary list designated as alternate Fulfillment Center's (AFC's) for the purposes of process 6022.
  • PFC primary Fulfillment Center
  • AFC's alternate Fulfillment Center's
  • gazettes databases
  • location e.g. city name within a country
  • gazettes can be purchased and the content extracted and loaded into the fulfillment system 100 database which can then be searched by the city and country of the order's ship-to address to determine its latitude and longitude.
  • the system retrieves the PFC based on the ship-to location (of the order) sent by the vendor system 6020.
  • the list of AFC's for such PFC 6022, and the list of carrier/service tier combinations utilized by such vendor 6024 from database tables contained in the order fulfillment system 100 (for example, from the Vendor 324, Fulfillment Center 326, and Alternate Fulfillment Center 348 database tables or the temporary table created in process 6034).
  • the Distribution Server 108 determines whether the order received has only one line item.
  • the Distribution Server 108 determines the fastest delivery service available from the PFC, at box 6030, sends a Pick Order for the item to the PFC 6032, and returns such availability and delivery service information (e.g., estimated time of delivery) to the vendor 102, at box 6034.
  • the system in determining the fastest delivery service takes into account the restrictions on the Delivery Carrier as well as on their respective service tiers (e.g., via the
  • the Fulfillment Center database table 326 may contain the maximum unit of work allowable in a day for such Fulfillment Center.
  • the order fulfillment system 100 Using the picking/packing lead time fields contained in that Fulfillment Center database table 326, e.g., by translating these fields to units of work, the order fulfillment system 100 would be able to determine if a particular Fulfillment Center has reached its full capacity.
  • Another example is the gift wrap size required field of the Inventory Item database table 332. This field indicates the amount of gift wrapping paper required to wrap a particular item.
  • the order fulfillment system 100 monitors the amount of wrapping paper used and thus is aware when no gift-wrapping paper is available to wrap a gift order item.
  • the order fulfillment system 100 may also send a replenishment request of gift- wrapping paper to the vendor 102.
  • a "no" outcome at decision box 6028 the system loops through the AFC's in order of the preference (specified by the vendor) 6036 until the item is found in a Fulfillment Center 6038 or all AFC's have been checked. If the item is found, a "yes" outcome at decision box 6038, the system determines the fastest delivery service available from that AFC 6030, sends pick order to the Fulfillment Center 6032, and returns such availability and delivery service information to the vendor 102 at step 6034.
  • the system creates a back order item for the PFC at box 6042 and returns the back order information to the vendor at box 6044.
  • the back order item may be sent to the PFC via an interface, such as an XML message, indicating that such items should be ordered accordingly.
  • the vendor's selected fulfillment method is retrieved at box 6046.
  • the preferred order fulfillment method for each vendor is predefined and contained typically in the Vendor database table 324.
  • Several fulfillment methods are employed in the present invention: (a) no split shipment, with no consumer choice 6050; (b) most items split into maximum of two deliveries with no consumer choice 6052; (c) fastest delivery split into maximum of two deliveries with no consumer choice 6054; (d) most items split into maximum of three deliveries with consumer choice 6056; (e) fastest delivery split into maximum of three deliveries with consumer choice 6058; and (f) split for maximum lines fulfilled in least number of deliveries, with no maximum on the number of deliveries 6060.
  • the system branches 6048 into various processing logic as indicated by boxes 6050, 6052, 6054,
  • Fig. 6B shows that if vendor has more than one line item and the vendor's indicated fulfillment method is "no split shipment with no consumer choice," the system first checks if all items ordered are available at the PFC at box 6202. If all items are available, a "yes" outcome at decision box 6202, the system determines the fastest delivery service for the PFC at box 6204, sends pick order information to that PFC at box 6206, and then returns the order information to the vendor at box 6208.
  • Table I is an example of a pick order in a XML format message sent by the order fulfillment system 100 to a Fulfillment Center 112 warehouse management system (Fig 1. 11 IA)).
  • a "no" outcome at decision box 6202 the system determines and counts which items are available in the PFC at box 6210. Then the system checks, in order of ranking or preference, the corresponding AFC's for the primary Fulfillment Center at box 6212. Once the system determines that an alternate Fulfillment Center contains all the items listed in the order, a "yes" outcome at decision box 6214, the system determines the fastest delivery service for that Fulfillment Center 6204, sends pick order information to that Fulfillment Center 6206, and returns order information to the vendor at box 6208.
  • a "no" outcome at decision box 6214 the system keeps track of the number of items that are available within each AFC at box 6216. Once all the AFC's have been checked by the system, a "yes" outcome at decision box 6218, the system then selects the AFC which has the most item availability count 6220, determines the fastest delivery service from that Fulfillment Center 6222, sends a pick order and back order information to that AFC, at step 6224, and returns order information to vendor at step 6208. In determining the most or greatest item availability count, box 6216, depending on system design and implementation, it may be the number of items available or the number of line items available which control. Referring to Fig.
  • the system checks if all the items ordered are available in the PFC at box 6302. If all items are available, the system then determines the fastest delivery service for the PFC 6304, sends pick order information to that Fulfillment Center 6306, and returns vendor information to the vendor at step 6308.
  • a "no" outcome at decision box 6302 the system flags each item that is available at the PFC at step 6310. The system then loops through, in order of preference, each of the AFC's, at step 6312. If all items ordered are found in an AFC, a "yes" outcome at decision box 6314, the system does steps 6304, 6306, and 6308, as discussed above, using that AFC.
  • the system first determines if the PFC is capable of same day delivery (i.e., "ShipNow” or "ShipToday”). If the PFC is incapable of same day delivery, a "no" outcome at decision box 6402 (e.g., the order was placed after the cut-off time for "ShipNow” or “ShipToday” or the Fulfillment Center 112 resources have all been allocated to handle orders to be shipped for that day, and the like), the system applies the same method steps illustrated in Fig. 6C ("most items split with maximum of two deliveries, with no consumer choice") as shown in box 6404.
  • Fig. 6C most items split with maximum of two deliveries, with no consumer choice
  • a "yes" outcome at decision box 6402 the system determines if all ordered items are available at the PFC, at step 6406. If all items are available, a "yes" outcome at decision box 6406, the system is set to the best possible same day service (either "ShipNow” or "ShipToday") 6408, sends pick order information to that Fulfillment Center 6410, and then returns the order information to the vendor at 6412.
  • the best possible same day service either "ShipNow” or "ShipToday”
  • a "no" outcome at decision box 6406 the system flags each item available for fulfillment by the PFC at steps 6414 and 6416, sets delivery service to same day (e.g., ShipNow or ShipToday) 6418, sends pick order information to the PFC 6420, and then returns order information to the vendor 6422.
  • the system next selects the items that were not fulfilled by the PFC (because they were unavailable from the PFC), at step 6424, and using such selected items checks each AFC to count the items available at each AFC at steps 6426 and 6428.
  • the system selects the AFC with the greatest number of items available 6432, determines the fastest delivery service for that AFC 6434, sends pick order and back order information to that selected AFC 6436, and, finally, returns the order information to the vendor at step 6412.
  • the system first determines if same day delivery is available from the PFC at step 6502. If same day service is available, a "yes" outcome at decision box 6502, the system then determines if all items ordered are available from the PFC at step 6504. If they are, a "yes" outcome at decision box 6504, the systems sets the delivery service to the best same day service 6506, sends pick order information to the PFC 6508, and, finally, returns the order information to the vendor at step 6510.
  • the system flags each item available at the PFC for fulfillment by the PFC at steps 6512 and 6514, determines the fastest delivery service from the PFC 6516, sends pick order information to the PFC 6518, and then returns order information to the vendor at step 6520.
  • the system selects items that are not flagged for fulfillment by the PFC, at step 6522, and uses such selected items to loop and count items available at each AFC at box 6524 and 6526.
  • a "yes" outcome at decision box 6528 the system then loops through each AFC with items available for fulfillment 6530, selects the AFC with the greatest number of items available 6532, determines the fastest delivery from that AFC 6534, and then sends pick order information to that AFC at step 6536. If there are still items available in any AFC that would satisfy or fulfill the order, a "yes" outcome at decision box 6538, the system repeats steps 6530, 6532, 6534, and 6536 as discussed above.
  • the systems then sets the unfulfilled items as back order items 6540, determines the fastest delivery service from the PFC 6542, sends back order information to the PFC 6544, and, finally, returns order information to the vendor at step 6510.
  • the system goes through the steps illustrated in Fig. 6B at step 6602, in Fig. 6C at step 6604, and in Fig. 6E at step 6606.
  • the system then returns the three options obtained from the steps 6602, 6604, and 6606 to the vendor (e.g., to enable a user to choose one of the three fulfillment options) at step 6608.
  • Fig. 6G if the order has more than one line item and the fulfillment method chose is the "fastest delivery split with maximum of three deliveries with consumer choice," the system goes through the steps illustrated in Fig. 6B at step 6702, in Fig. 6D at step 6704, and in Fig. 6E at step 6706 as separate options. These options are returned to the vendor at step 6708.
  • FIG. 7 is a block diagram of an exemplary computer 7000 on which the technique of the present invention may be performed.
  • Each computer 7000 operates under control of a central processor unit (CPU) 7002, such as a "Pentium" microprocessor and associated integrated circuit chips, available from Intel Corporation of Santa Clara, California, USA.
  • CPU central processor unit
  • a computer user can input commands and data from a keyboard 7004 and can view inputs and computer output at a display 7006.
  • the display is typically a video monitor or flat panel display.
  • the computer 7000 also includes a direct access storage device (DASD) 7007, such as a hard disk drive.
  • the memory 7008 typically comprises volatile semiconductor random access memory (RAM).
  • Each computer preferably includes a program product reader 7010 that accepts a program product storage device 7012, from which the program product reader can read data (and to which it can optionally write data).
  • the program product reader can comprise, for example, a disk drive, and the program product storage device can comprise removable storage media such as a magnetic floppy disk, a CD-R disc, or a CD-RW disc.
  • the computer 7000 can communicate with other computers over a network 7013 through a network interface 7014 that enables communication over a connection 7016 between the network and the computer.
  • the CPU 7002 operates under control of programming steps that are temporarily stored in the memory 7008 of the computer 7000.
  • the computer performs its functions.
  • the CPU executes the programming operations, the CPU implements the operations illustrated, for example, in Figures 6A-6G.
  • the programming steps can be received from the DASD 7007, through the program product storage device 7012, or through the network connection 7016.
  • the storage drive 7010 can receive a program product 7012, read programming steps recorded thereon, and transfer the programming steps into the memory 7008 for execution by the CPU 7002.
  • the program product storage device can comprise any one of multiple removable media having recorded computer-readable instructions, including magnetic floppy disks and CD-ROM storage discs.
  • Other suitable program product storage devices can include magnetic tape and semiconductor memory chips. In this way, the processing steps necessary for operation in accordance with the invention can be embodied on a program product.
  • the program steps can be received into the operating memory 7008 over the network 7013.
  • the computer receives data including program steps into the memory 7008 through the network interface 7014 after network communication has been established over the network connection 7016 by well-known methods that will be understood by those skilled in the art without further explanation.
  • the program steps are then executed by the CPU to implement the processing of the steps of the present invention.
  • the computer 7000 can have an alternative construction from that illustrated and described above, so long as it can support the functionality described herein.
  • Distribution Server 108 While the above embodiment describes a single computer acting as a Distribution Server 108, those skilled in the art will recognize that the functionality, including the database tables described in Figures 3A and 3B, can be distributed over a plurality of computer, as well as be placed in various nodes of a data network such as the Internet.

Description

ORDER FULFILLMENT SYSTEM AND METHOD
TECHNICAL FIELD This invention relates to computer-assisted commerce and, more particularly, to product purchase, product availability, and order fulfillment and delivery information communicated over computer networks in real-time.
BACKGROUND ART For many years, consumers have been able to place orders with a retailer by consulting a printed catalog of the retailer and viewing a collection of products that are available for purchase from the retailer. The consumer then placed an order with the retailer, either by visiting a store location or by mailing an order form or by placing an order through a telephone call. Most catalog retailers maintained a network of warehouse and distribution facilities from which orders were fulfilled. A catalog order was fulfilled by delivering products at a local retail outlet for pick up by the consumer, or was delivered directly to a designated consumer address. The time needed to deliver the ordered products typically required several days to many weeks.
With the advent of the Internet, many retailers have taken to providing on-line access to their product wares by providing an Internet Web site where consumers can view on-line listings of their products and can place orders with the retailer. Thus, rather than have the consumer visit a retail catalog store or phone or mail an order form, the retailer permits a consumer to place an on-line order. Typically, consumers at their computers will communicate with a retailer's e-commerce server computer to place their order. The retailer server computer will then forward the consumer's order to an appropriate warehouse or distribution center of the retailer, either directly or through an intervening order management server computer and software.
Construction and programming of such on-line retailing facilities can be quite involved and expensive. Vendors can provide application software packages with the requisite functionality, but much custom programming must still be developed for the retailer's particular needs. Vendors who can provide such applications that support e- commerce applications for order processing and database management include Oracle Corporation of Santa Clara, California, USA and SAP AG of Walldorf, Germany. While such ordering systems, when connected to on-line Web sites, can make the ordering process easier for the consumer, they are quite expensive and complicated to implement for the retailer.
Other vendors can provide more complete order processing networks or software applications that integrate Web site order processing and database management applications. Typically, a retailer constructs and maintains an Internet Web site to display their products, and automatically forwards any consumer orders to the order processing network or software applications of a third party vendor. The orders can then be forwarded to the retailer's distribution facilities to be fulfilled, or to third party order fulfillment facilities under contract to the retailer. Such order processing networks and software applications can be provided, for example, through companies such as: Yantra Corporation of Acton, Massachusetts, USA;
GOWarehouse.com, Inc. of Santa Monica, California, USA; and OrderTrust, LLC of Lowell, Massachusetts, USA. Such vendors simplify the retailer's efforts for providing an on-line ordering presence. Such on-line order processing networks simplify the e- commerce solution for retailers, but can still be quite costly to implement. Furthermore, such systems do not have the flexibility of allowing multiple retailers within their database schema, thus, if two unrelated retailers want to avail of such order processing networks and software applications, two distinct systems need to be implemented.
More recently, e-commerce Web sites have begun to promise faster delivery of products. For example, some retailers promise one-day or two-day delivery of orders by using package delivery services such as FedEx, Inc., United Parcel Service (UPS), and Airborne Package Express. Such retailers fulfill orders from their warehouse facilities and provide the packages to one of the package delivery services, which then complete the product delivery process. Other retailers have even begun to promise same-day delivery in designated areas. Such same-day providers include WebNan Group, Inc. of San Francisco, California, USA and Kozmo.com, Inc. of New York, New York, USA. Typically, same-day product providers purchase an inventory of products and store the inventory at their own dedicated facilities. WebNan and Kozmo.com, for example, both provide consumers with drug store items such as toiletries and household goods. The order systems of these companies can provide real-time information to consumers about products in stock, but only for one of their distribution centers at a time. Moreover, the order systems do not typically provide information about any other retailers' products. Finally, from both a technical integration and warehouse operations perspective, these systems are limited and specifically tailored to their own business needs.
Other order processing networks or software applications, however, usually cannot provide definitive real-time order processing information to a consumer. For example, a consumer is unable to determine whether a product is actually in stock or how quickly they can receive such product, because such Internet-based shopping sites do not generally communicate with systems containing authoritative inventory information until an order is placed, and then those communications are not in real time. Such systems typically use a batch "snapshot" mechanism where a file of information, e.g. inventory levels for every product, is periodically extracted from the authoritative system and passed to the receiving system, which in turn uses it to update its database, e.g. the inventory database. By definition a "snapshot" reflects a certain instance in time and the information that it contains is only accurate for the point in time at which it was taken. Therefore the receiving system never truly reflects the current information contained in the authoritative system.
In addition, such systems do not have the algorithms or information to determine the speed at which a consumer can receive their order (i.e., what is the shortest time needed before a customer can receive the order). Thus, a consumer who wants to place an order with a vendor only if a certain promised delivery schedule can be maintained, such as next-day delivery, may have to shop at multiple Web sites, place multiple orders, and wait until shipment confirmation to determine the promised delivery schedule. At that point, it would typically be too late to cancel orders where next-day delivery cannot be promised, and consequently, the consumer is forced to return excess orders in order to obtain a refund. In addition, such order processing systems are inefficient, in that an extensive network of warehouse facilities must be provided by each retailer who wants to provide rapid, same-day or next-day delivery services in multiple locations, e.g., Los Angeles and New York City.
From the discussion above, it should be apparent that there is a need for an order processing technique that can provide real-time product availability information to support a desired product promised delivery schedule, and can support multiple retailers within one integrated system, at reduced cost. The present invention solves this need.
DISCLOSURE OF INVENTION
In accordance with the invention, an integrated product order processing technique receives product orders and/or product availability requests over a computer network, wherein the product orders are generated by a plurality of computer network user nodes (e.g., Internet customers or users) and are directed to computer network sites of a plurality of product vendors (e.g., online vendors or merchants). A system data processing center collects transaction data, wherein the transaction data relates to each of the product orders and specifies the respective ordering network user nodes (e.g., who ordered the product) and the product vendor network sites (e.g., which online vendor) from which the products were ordered. The orders are then filled from a plurality of product Fulfillment Centers, wherein the system automatically determines product availability and delivery time, and locates one or more product Fulfillment Center locations from which product orders may be shipped regardless of the ultimate destination, and product inventories for multiple vendors are maintained at the Fulfillment Center locations. In this way, real-time product availability and delivery time information for multiple vendors is provided to consumers in an on-line, interactive environment, and distribution costs are reduced by utilizing common facilities distributed across multiple Fulfillment Center locations.
Other features and advantages of the present invention should be apparent from the following description of the preferred embodiment, which illustrates, by way of example, the principles of the invention.
BRIEF DESCRIPTION OF THE DRAWINGS
Figure 1 is a block diagram representation of an order purchase and fulfillment system constructed in accordance with the present invention.
Figure 2 illustrates the data flow between users, vendors, Distribution Server, Fulfillment Centers, and Delivery Carriers.
Figures 3A and 3B are block diagrams of a representative database schema in accordance with the present invention. Figure 4 is a flow diagram that illustrates the method of fulfilling product orders in accordance with the present invention, as provided by the system illustrated in Figure 1.
Figure 5 is a flow diagram that illustrates the method of updating inventory availability information in accordance with the present invention, as provided by the system illustrated in Figure 1.
Figures 6 A, 6B, 6C, 6D, 6E, 6F, and 6G illustrate the method of determining the fastest delivery service in accordance with the present invention, as provided by the system illustrated in Figure 1.
Figure 7 is a block diagram representation of one of the computers illustrated in Figure 1.
BESTMODEFORCARRYINGOUTTHEINVENTION
The following detailed description illustrates the invention by way of example, not by way of limitation of the principles of the invention. This description will clearly enable one skilled in the art to make and use the invention, and describes several embodiments, adaptations, variations, alternatives and uses of the invention, including what we presently believe is the best mode of carrying out the invention.
Figure 1 is a block diagram representation of an order fulfillment system 100 constructed in accordance with the present invention. The system 100 communicates ,with multiple vendors 102 and is transparent to users 104, who place product orders, and request status and product availability information. The users may comprise, for example, consumers at home computers or authorized employees of businesses who place orders on behalf of their employer for supplies and materials. Users typically place their orders directly with a vendor, for example, via an online shopping cart system 103 implemented by such vendor. The vendor then transmits the orders or requests to the order fulfillment system 100, particularly, to the Distribution Server 108, typically via a standard interface defined and understood by both vendors 102 and order fulfillment system 100 (i.e., via a real-time Application Program Interface (API). Thus, the system 100 supports multiple users (from multiple vendors) who place orders, and request order status and product availability information at client machines 104, and who communicate with the vendors 102 over a shared network 106, such as the Internet, to place product orders, and request order status and product availability information.
The system 100 receives orders and requests for product availability and status information from the vendors 102 across a shared network, such as the Internet, at an order fulfillment system 100, particularly the Distribution Server 108, which interfaces with the multiple vendors. The Distribution Server 108 communicates with multiple Fulfillment Centers 112, wliich may comprise product warehouses with inventory managed by warehouse management systems 111A, and also communicates with multiple Delivery Carriers 114, which may comprise delivery services managed by the provider of the system 100 or may comprise independent delivery services such as UPS, FedEx, USPS, and others, or may comprise a combination of these.
In real time, the Distribution Server 108 determines availability of requested product from a Fulfillment Center 112, the service tier (or service level) that is available from a Delivery Carrier 114 to an order ship-to address (e.g., FedEx overnight), the earliest available shipment date and time, a projected product delivery date and time (collectively referred to as an availability-to-promise (ATP)), and, for orders where product is not available from a single Fulfillment Center, an analysis of the shipment options available to the user 104. (Fulfillment centers are typically distribution centers or warehouses that stock inventory. Delivery carriers are typically shipping or delivery companies, such as FedEx, UPS, DHL, and the like. The service tier may include, not limited to, overnight delivery (e.g., for FedEx and UPS), two-day air, ground, and the like).
In the preferred embodiment, the vendors 102, communicate with the Distribution Server 108 through a data network, preferably the Internet, with a "many- to-many" connectivity on a synchronous, real-time basis (e.g., through the use of Hypertext Transfer Protocol (HTTP) "posts" and "gets" which are methods to send and obtain information, respectively). This enables multiple vendors with multiple customers to communicate with the Distribution Server 108 and enables each vendor to simultaneously send and receive information from the Distribution Server 108.
Concurrently, while communicating with the vendors 102, the Distribution Server 108 also communicates through a data or communications network 110, preferably the Internet, with one or more Fulfillment Centers 112 and/or Delivery Carriers 114 on an asynchronous, real-time basis utilizing XML messages. Information sent between the various parties in the system may also be encrypted using readily-available technology, such as RSA. The communications networks 110 may also be a value added network such as Advantis from IBM.
Those skilled in the art will recognize that the present invention may be implemented over a network in various forms. For example, a virtual private network may be created to utilize encryption and other security mechanisms to ensure that only authorized users of the system may access the network and that data are not intercepted. Alternatively, it may be implemented through a wide area network, and the like.
The system 100 supports a number of different fulfillment or shipment options, which the vendor may select as desired, or which the vendor may provide to the user for selection. In the preferred embodiment, the fulfillment options include a requirement that no orders may be split into multiple shipments, so that no shipment will be made unless the entire order is available for shipment at the same time, and shipment options also include alternatives called split for most items, split for fastest delivery, a most-items split selection option, a fastest-delivery split selection option, and a multi-split option. These fulfillment options are described in further detail below. The availability-to-promise information, shipment options, and other data concerning order availability is returned to the vendors 102, who communicate this information to their respective users 104 in real-time. To provide this functionality, the Distribution Server 108 maintains: a global and Fulfillment Center-specific view of product availability (updated in real-time to reflect product orders and product replenishments) for each of the vendors 102; Delivery Carrier and service tiers availability by country, state or province, and "ZIP" or postal code; pick up and drop off cut-off times and blackout days/dates specified for each Delivery Carrier and service tier combination for each Fulfillment Center, availability of operational resources (e.g., picking, packing, gift wrapping, and shipping) in each Fulfillment
Center updated in real-time, and a profile for each of the vendors 102 that specifies the carrier/service tier combinations (e.g., FedEx overnight and US Postal Service Priority Mail) offered to their users 104, the shipment option processing to be used for orders that require drawing products from multiple Fulfillment Centers, and system security related information.
The Distribution Server 108 splits order shipments as necessary and routes the order to the selected the Fulfillment Centers 112, which may incorporate transportation management services 11 IB, and to one of the Delivery Carriers 114, which may incorporate a shipment management system 113, who will together fulfill the ordered products. Collectively, these systems will provide Fulfillment Center, transportation, and delivery status information in real time for each ordered line item and closing of the order (delivery of all ordered product or cancellation) to the Distribution Server 108, where a record of the order status persists and can be requested in real-time by the vendor 102. The Fulfillment Center locations 112 comprise inventory storage locations from which at least one product of a product order may be shipped to a designated delivery address. The system 100 thereby provides real-time product availability and order status information for multiple vendors 102 selling to multiple users 104 in an online, interactive environment through a vendor interface provided for by the Distribution Server 108. In this way, the functionality of the system 100 is transparent to the end users 104. The Fulfillment Centers 112 can co-locate the inventory of multiple vendors under control of the system 100. The system can also permit users 104 of one vendor 102 to order product from another vendor 102, if the second vendor has specified that the first may resell its inventory. The system can advantageously utilize the same Delivery Carriers' 114 services for all the vendors 102. For example, a delivery carrier service having a single fleet of delivery vehicles can be used to provide same-day delivery of products ordered by multiple users 104 through multiple vendors 102. Both inventory storage costs and delivery costs are thereby reduced, improving the efficiency of the delivery system.
The order purchase and fulfillment system 100 places no constraints on the support systems (computer hardware, network telecommunications hardware, operating system software, network connection software, database system software, and application systems software) utilized by vendors 102 nor on the systems that collectively support operations of the Fulfillment Centers 112 and Delivery Carriers 114 to users 104, with the exception that such systems must be connected to networks 106 and 110 to which the Distribution Server 108 is also connected and that the systems can comply with the interface specifications for the Distribution Server 108.
The network 110 over which the Distribution Server 108 communicates with the Fulfillment Centers and Delivery Carriers may comprise a computer network such as the Internet or a local area network (LAN) or wide area network (WAN), and may include a voice communications network (such as the public telephone network or other means of communication) and wireless communications network.
In one embodiment of the invention, the features are written as one or more JAVA applications and run using a BEA WebLogic Server from BEA Systems of San Jose California. Data encryption, such as RSA and PGP, may also be supported by the fulfillment system 100, particularly, for asynchronous messaging.
Figure 2 illustrates the data flow within and outside the order fulfillment system 100. A user 104 sends a product availability request (PAR) 202 to a vendor 102, which in turn transmits such request 204 in its original or modified form (e.g., modified to meet the interface specification of the Distribution Server 108) to the Distribution Server 108. The Distribution Server 108 processes such request and checks its database to determine if the products requested are available. The Distribution Server 108 in turn returns the product availability information 206, optionally including other ATP information such as the earliest available shipment date and time, to the vendor 102, which in turn sends this information 207 to the user 104. All of the above functions occur in real-time.
A user may also place an order 208 (preliminary or confirmed) with the vendor, which in turn sends such order 210 (original or modified form) to the Distribution Server 108. Depending on inventory availability and the fulfillment option selected by the vendor, the Distribution Server 108 after analyzing the options available sends the order fulfillment options (further discussed in Figures 6 A to 6G) to the Vendor 102, which in turn sends the corresponding order fulfillment options 212 to the User 104. If the order is confirmed, pick order information 212 (i.e., instructions to the Fulfillment Center 112 indicating which items must be prepared for delivery, assembly, gift wrapping, and the like) and back order information 214 (if appropriate) are sent to one or more Fulfillment Centers 112 where they are received by the warehouse management system (Fig 1, 111A) and transportation management systems (Fig 1, 11 IB). All of the above functions occur in real-time.
The warehouse management system 111 A returns the order receipt confirmation 236 indicating that the Fulfillment Center 112 has received the pick order, to the Distribution Server 108 which updates its database accordingly. The Fulfillment
Center 112 transportation management systems sends the shipment/delivery instructions 232 to the Delivery Carrier 114 and receives back the shipment tracking ID's 233 from the Delivery Carriers 114. The Fulfillment Center 112 also sends the order shipment confirmation 237 to the Distribution Server 108, which updates its database accordingly. The order shipment confirmation tells the Distribution Server
108 that the order (or corresponding pick order) and the shipping information have been sent to the Delivery Carrier 114. The Delivery Carrier may send proof of delivery 224 for shipments (e.g., name of person who signed or received the order) to the Distribution Server 108 which updates its database accordingly. After placement of an order, a user may at any time request order status information 218 from the vendor, which then transmits such request 220 (original or modified form) to the Distribution Server 108. The Distribution Server 108 may have to request in transit status information 222 (e.g., via tracking numbers) from the Delivery Carriers 114, which receives such request and in turn sends the in transit status information 234 back to the Distribution Server 108. Order status information
226, including delivery status or in transit status information (if applicable) 226, is then sent back to the vendor 102, which in turn sends such order status information 228 to the user 104. All of the above functions occur in real-time.
Concurrently with the processing described above, the Fulfillment Centers 112 may be receiving inventory replenishments and making adjustments to inventory (for example to reflect breakage, cycle count results, etc.), typically via a warehouse management system (111 A in Fig. 1). The increment to inventory levels caused by an inventory receipt 215 is sent to the Distribution Server 108, which increments the global and fulfillment-center specific availability of the received products within its database. The change to inventory levels caused by an adjustment 216 are sent to the
Distribution Server 108, which appropriately increments or decrements the global and fulfillment-center specific availability of the received products within its database. Hereinafter, unless stated otherwise, inventory adjustments include inventory replenishments. The vendor 104, the Distribution Server 108, the Fulfillment Center 112, and the Delivery Carriers 114 communicate with each other in real time, meaning that information is sent to one system and is received in turn in one session, rather than via a batch "snapshot" mechanism. Information between each system is also typically sent or posted using XML messages. The elements in the XML messages are predefined by the Distribution Server 108 interface specification such that each sending and receiving party recognize the XML messages sent and received. Those skilled in the art will recognize that depending on the interface specifications defined by the Distribution Server 108, information sent by one party in the system, for example, the order receipt confirmation 236 from the Fulfillment Center 112 may be modified by the Distribution Server 108 into a form that would be understood by the vendor 102 (e.g., incorporated in an order status information 226).
Those skilled in the art will understand that Extensible Markup Language (XML) is a subset of the Standard Generalized Markup Language (SGML), which is a means of providing platform- and application-independent documents that retain formatting, indexing, and linked information. XML uses tags to delimit data, such as text and graphics, in a document. A tag comprises a less than sign "<", a tag name, and a greater than sign ">." Generally, data are delimited between a start tag, e.g., "<Name>," and an end tag, e.g., "</Name>," with the end tag exactly like the start tag except a slash ("/") precedes the tag name. Data delimited by a start tag and an end tag is called an element, and the data between the start and end tags are called the element's content or value.
Table I contains a sample XML message, particularly a pick order message (212 in Fig. 2), sent by the distribution server 108 to the warehouse management system 111 A of a Fulfillment Center 112.
Figure imgf000013_0001
Figure imgf000014_0001
Figure imgf000015_0001
Figure imgf000016_0001
Those skilled in the art will recognize that the elements defined and required in the interface, e.g., via an XML message, are a function of system implementation, design, requirements, and the like, and therefore may vary, accordingly. Furthermore, those skilled in the art will recognize that other forms of interface specification, for example, HTML (HyperText Markup Language) files via HTTP (HyperText Transfer Protocol) request, may also be used.
Figures 3A and 3B illustrate an embodiment of the information architecture in accordance with the present invention. In the preferred embodiment, the database tables are stored using Oracle 81 database, and distributed over the network for speed and load balancing. In the preferred embodiment, there is a single logical database, which may be physically distributed over multiple computers and/or database management system. This single logical database contains all information about all vendors, orders, inventories, Fulfillment Centers, and the like, however, each vendor is able to retrieve and get a vendor-specific view of the vendor's orders, inventories that it may access, Fulfillment Centers, and the like. This enables the order fulfillment system 100 to handle more than one vendor and/or one type of vendor.
A "1:M" designation in the figure means that there is a one-to-many relationship between the two database tables linked by the arrow. For each record in the database table from which the arrow starts, there must be at least one and may be many related records in the database table where the arrow terminates, e.g., for every one country, there must be at least one and maybe more provinces or states. A "0:M" designation means that there is a zero to many relationship between the two database tables linked by the arrow. For each record in the database table from which the arrow starts, there may be zero, one or many related records in the database table where the arrow terminates, e.g. a carrier service tier 328 may have no blackout dates, one blackout date, or many blackout dates. A "0:1" designation means a zero-to-one relationship between the two database tables linked by the arrow. For each record in the database table from which the arrow starts, there may be zero or one related record in the database table where the arrow terminates, e.g., each user order header 3702 (in Figure 3B) record may contain no custom message 3700 or one custom message 3700.
The Country database table 320 enables the support of multi-country operation with fields such as country ID, and country name (e.g., USA).
The Province database table 334 (or State database table) contains data on the provinces or states for a particular country with fields such as province ID, country ID, province name or state name (e.g., California), time zone split indicator, time zone
(e.g., pacific standard time), and the like. _ •
The order fulfillment system 100 is specifically designed to support Vendors that want to provide the highest speed of order delivery to their Users, i.e. same day delivery. However, when availability-to-promise of ordered products precludes the use of the fastest delivery service, the system also provides for the use of slower delivery services. Also, Vendors select which of the carrier/delivery service tiers made available by the provider to use to deliver orders to their users and may therefore elect not to provide same day delivery as a choice for their Users. If the provider of the system 100 also manages delivery services, additional fields such as provider ShipNow available, provider SbipToday available, provider ShipTomorrow available, provider ShipBasic available, and the like may be added to the system to enable the system to determine delivery services offered by such provider. Those skilled in the art will recognize that if the provider also manages its own delivery system, additional fields may be added in the database tables described herein to keep track of that provider's delivery means, availability, and the like. (ShipNow means ship within a certain number of hours, ShipToday means ship on the same day as order date, ShipTomorrow means ship one day later than order date, and ShipBasic means ship two days or more from order date.). The time zone field in the Province database table 334, as well as in other database tables described herein, enables the order fulfillment system 100 to account for time differences between the locations of users 104, Fulfillment Centers 112, Delivery Carriers 114, vendors 102, and the order fulfillment system 100, thereby enabling a correct calculation of time between the different systems. Thus, if an order is placed in New York at 10:00 p.m. with the Fulfillment Center in California (order placed 7:00 p.m. California time), the order fulfillment system 100 knows that ShipNow and ShipToday are not available for that order considering that if the earliest delivery time is 10:00 p.m. (California time), it is already the next day in New York (1:00 a.m.). The Post Code database table (or "ZIP" code) 344 maintains data on the postal
(or post) codes of each province or state, with fields such as post code, country ID, province ID, time zone split available, and the like.
The Restriction City 352 database table specifies the shipment restrictions on a city, with fields such as city name, country ID, province ID, post code, entire city indicator, delivery not earlier than, delivery not later than, and the like. For example, it may contain information indicating that there can be no delivery in Hollywood, California earlier than 5:00 a.m. These restrictions may be those imposed by the Delivery Carriers 114.
The Restriction Street database table 354 contains streets where delivery restrictions exist. It contains field such as street name, city name, country ID, province
ID, post code, street name, start number, end number, delivery not earlier than, delivery not later than, and the like. For example, it may contain data indicating that there is no delivery earlier than 10:00 a.m. and later than 2:00 p.m. to 400-500 Boxer Street, Hollywood, California with post code 93066. These restrictions may be those imposed by the Delivery Carriers 114.
The Vendor database table 324 contains vendor profiles, with fields such as vendor ID, country ID, vendor name, full catalog available, single distribution center ID or name, primary distribution center, order fulfillment method desired, and the like.
The Delivery Carrier database table 322 identifies delivery carriers (or carriers) available within a country with fields such as carrier ID, country ID, carrier name, carrier logo, and the like.
The Service Tier database table 328 identifies the service tier (e.g., overnight delivery) by Delivery Carrier for each vendor in the system, with fields such as Service Tier ID, carrier ID, country LO, vendor ID, delivery blackout dates, maximum days between shipment and delivery, delivery allowed to P.O. box indicator, Internet- tracking available, maximum insurance coverage, and the like. This enables the order fulfillment system 100 to determine the different types of service tier, including Delivery Carriers, utilized by each vendor.
The Delivery Blackout database table 338 contains dates when carriers may not deliver or pickup items, with fields such as Country ID, carrier ID, service tier ID, blackout date, and the like. This enables the order fulfillment system 100 to determine if certain carriers (in combination with their service tiers) are able to deliver or pickup orders on a specified date.
The Provider database table 325 contains provider inventory specific information considering that a provider of the order fulfillment system may also provide Delivery Carrier service.
The Fulfillment Center database table 326 contains information about the Fulfillment Centers (both primary and alternate) within the system, including the operational constraints at each Fulfillment Center, with fields such as Fulfillment Center ID, Fulfillment Center name, time zone, latitude and longitude (for static locations), type of Fulfillment Center (e.g., warehouse and truck), picking/packing lead time for 1 item, picking/packing lead time for two to 10 items, picking/packing lead for more than 10 items, gift service lead time, gift service available indicator, and the like.
Vendors choose which Fulfillment Centers in which to stock their products. Those that choose to stock product in multiple Fulfillment Centers may choose to pre- designate a Primary Fulfillment Center (PFC) for each geographical location where their orders can be shipped. If necessary, PFC's can be specified to the Post Code (e.g. Zip Code) level. The Vendor can also specify which of their Fulfillment Centers are the Alternate Fulfillment Centers (AFC's), ranked in order of preference, for each of their PFC's. These predefined Fulfillment Center relationships are specified in the
Alternate Fulfillment Center database table 348. The database table also specifies the fastest service level (e.g., Ground Tomorrow, Ground 3 Day) that may be provided on behalf of the primary Fulfillment Center. It contains fields such as primary Fulfillment Center ID, alternate Fulfillment Center ID, ranking, fastest carrier/service tier available (e.g., Ground Tomorrow), Carrier ID, service tier ID, and the like. The Vendor may specify the carrier/service tier at each of the AFC's or simply specify a default. The alternate distribution center may be a warehouse, truck, mobile warehouse, and the like. In this embodiment, each vendor has a primary Fulfillment Center for each post code with each primary Fulfillment Center having zero or more alternate Fulfillment Centers. . Alternatively, the Vendors may choose to have the order fulfillment system
100 dynamically create a list of Fulfillment Centers ordered in ascending sequence of distance from the Fulfillment Centers to the order's ship-to location. In this embodiment, the system creates a temporary version of database table 348 specific to the order it is evaluating for fulfillment, designating the closest Fulfillment Center as the PFC and the further Fulfillment Centers as the AFC's. In either embodiment, the
PFC is always checked first to determine if it can satisfy or fulfill the order before the AFC's are checked in their predetermined or dynamically determined order.
The Fulfillment Center/Service Tier database table 336 contains the carrier/service tier combination (e.g., FedEx overnight, US Postal Service 2-day priority, and the like) available in each Fulfillment Center, with fields such as carrier
ID, service tier ID, Fulfillment Center ID, service tier still available, country ID, pick up indicator (will carrier pick up packages from the Fulfillment Center), pick up cut off time, drop off indicator (will Fulfillment Center drop off packages at carrier), drop off cut off time, and the like. The Drop Ship Source database table 358 contains drop ship source and location
(e.g., drop ship warehouse) for each vendor, with fields such as drop ship ID, country ID, vendor ID, address, contact name, and the like. Drop ship items are inventory items not stocked in the Fulfillment Center and thus must be picked up from the drop ship source closest to the Fulfillment Center responsible for shipping the order. The Fulfillment Center/Drop Ship Source database table 362 contains drop ship source information (e.g., drop ship warehouse) as it relates to a Fulfillment Center, with fields such as drop ship ID, Fulfillment Center ID, country ID, vendor ID, time required for a round trip to location, latest pick up time, and the like.
The Fulfillment Center/Drop Ship Item database table 360 contains information about drop ship items available from drop ship sources. It contains fields such as drop ship ID, Fulfillment Center ID, product number, country ID, vendor ID, quantity on hand, quantity reserved, quantity on back order, date due for replenishment, time due for replenishment, replenishment quantity, and the like.
The Inventory Item (Product) database table 332 contains information about items stocked on behalf of the vendors, with fields such as inventory ID, country ID, vendor ID, vendor stock number, active inventory indicator, fast moving item indicator, item name, earliest retail date (e.g., earliest date for retail delivery for video releases), drop ship indicator (i.e., item is not in stock needs to be pick-up), item sell by date, lot control indicator, serial control indicator weight, dimensions of item, minimum box size, special packaging required, minimum driver class for item delivery, item may be gift wrapped indicator, gift wrap size required (size of gift wrapping paper required), assembly required, quantity on hand, quantity reserved (i.e., on hand quantity that is reserved against pending orders), quantity on back order, earliest date for replenishment, earliest due time for replenishment, replenishment quantity, distribution center, and the like.
The Fulfillment Center/Inventory Item database table 342 contains information about inventory within a Fulfillment Center with fields such as Fulfillment Center ID, vendor ID, inventory ID, vendor stock number, quantity on hand, quantity reserved, quantity on back order, date due for next replenishment, time due for next replenishment, and quantity for next replenishment.
The Lot database table 350 contains inventory on hand information about items that must be managed through lots, e.g. pharmaceuticals with sell-by dates, paint that must be drawn from the same manufacturers lot (to ensure the same color tone for multi-quantity item orders), and the like. It contains fields such as Fulfillment Center ID, Vendor ID, Vendor stock number, lot ID, sell by date (date after which items in the lot may not be sold), quantity on hand, quantity reserved, lot closed indicator, and the like.
The Bill-Of-Material Item (BOM) database table 330 contains information about materials that may be combined or assembled to create an order, that is, an assemble-to-order item, with fields such as country ID, vendor ID, vendor stock number, quantity of component item required, and the like.
The Shipping Restriction database table 340 contains a list of inventory items that may not be shipped via a specific carrier, for example, the item is oversized, overweight, or a hazardous material. It contains fields such as carrier ID, service tier ID, inventory ID, country ID, reason for restriction, and the like.
The Truck database table 346 identifies the trucks belonging to a particular Fulfillment Center, with fields such as Fulfillment Center ID, the truck ID, the cut off time for ShipNow, and the like. A truck is also considered as a Fulfillment Center 112 when it has unordered items on board. The Truck/Inventory Item database table 356 contains the unordered inventory items carried on a specific truck, with fields such as Fulfillment Center ID, truck ID, vendor ID, vendor stock number, quantity on hand, quantity reserved, and the like.
Figure 3B illustrates an embodiment of the order information architecture in accordance with the present invention. The User database table 364 provides the structure for capturing user information, with fields such as user ID, country ID, vendor's user ID, user name, contact information, delivery instructions, time zone, best time to call, and the like.
The User/Vendor database table 366 identifies the users for each vendor with fields such as country ID, the vendor ID, the vendor's user ID, and the like. The Standard Message database table 368 contains the messages that vendors may want to be reproduced on their invoice and/or packing slip, with fields such as vendor ID, country ID, vendor message ID, font ID, font size, message text, and the like.
The Sales Order Header database table 3702 contains header information about an order, with fields such as order ID, country ID, vendor ID, vendor order identifier, date order placed, time order placed, invoice address, ship to address, ship-to business indicator, P.O. Box indicator, international indicator, shipment quoted, gift no price indicator (i.e., price should not be printed on the packing slips), gift wrap indicator, insurance indicator, standard message ID, custom message ID, and the like. The Order Line Item database table 380 contains information about the line items for each order header with fields such as order ID, line item number, country ID, vendor ID, vendor order identifier, vendor item number, description, unit price local, taxable indicator, quantity ordered, gift wrap individually indicator, shipping and handling cost, extended price, and the like. The Fulfillment Center pick order header 374 contains information pertinent to a Fulfillment Center's component of a sales order. It contains fields such as pick order
ID, order ID, country ID, vendor ID, vendor order identifier, Fulfillment Center ID, carrier ID, service tier ID, shipping and handling information, invoice address, ship to address, delivery date, delivery time, time slot start, time slot end, requested delivery time, requested delivery date, recipient contact information, user contact information, message ID, packing slip indicator, gift wrapping indicator, and the like.
The Custom Message database table 3700 contains order-specific custom messages that a vendor may want to be reproduced on the invoice and/or packing slip. The Recipient Contact database table 376 provides contact information for the ship-to person if different from the one who placed the order. It contains fields such as
Order ID, vendor order identifier, country ID, vendor ID, recipient contact information, recipient time zone, and the like.
The Order Gift Wrap/Message database table 378 provides user and/or vendor information or instructions on how the order should be wrapped such as the type of wrapping, type of card included, message in the card, and the like. It contains fields such as country ID, vendor ID, vendor order identifier, wrapper paper identifier, greeting card identifier, greeting text, and the like.
The Line Item Gift Wrap/Message database table 384 provides information about the wrapping and card selected by the user for a particular line item in the order. It is similar to the order wrap, however, information is for line item order rather than per order.
The Shipment database table 382 provides shipping information about each order, with fields such as country ID, vendor ID, vendor order identifier, shipment number, shipment method, ship date, ship time, shipping and handling cost, carrier ID, service tier ID, tracking number, signature required indicator, special delivery instructions, successful indicator (shipment successfully delivered) indicator, and the like.
The Shipment/Order Line Item database table 386 contains information about fully or partially fulfilled line item orders by shipment, with fields such as Order ID, line item number, country ID, vendor ID, vendor order identifier, vendor item number, quantity shipped, and the like.
Those skilled in the art will recognize that the databases defined herein, as well as the fields in the database table, may be modified, added, or deleted depending, for example, on the functions provided by the system, the information required to be sent, summary information to be generated, database design, system implementation, query speed, and the like. Furthermore, one skilled in the art will realize that the databases described herein are not a comprehensive or an exhaustive illustration of the databases that may be required to employ the features of the present invention.
Figure 4 is a flow diagram of the processing operations executed by the system 100 illustrated in Figure 1. In the first processing operation, represented by the decision box numbered 401, the system receives a communication from a vendor who subscribes to the order fulfillment system constructed in accordance with the invention. Such communications are either a Product Availability Request (PAR) or an order and are received at the Distribution Server 108 or other communications interface of the system 100. If the communication is a PAR, then the PAR is processed by the
Distribution Server 108 at the flow diagram box numbered 402. More particularly, the PARs comprise requests for product availability information that are generated by a plurality of computer network user nodes and received at computer network sites of a plurality of product vendors, who forward these requests in real-time to the Distribution Server. The Distribution Server responds to these requests with the global inventory availability for the products listed in the request, as represented by flow diagram box numbered 404. When the PAR contains the ship-to postal code, the Distribution Server 108 returns the availability of product in the Fulfillment Centers identified as the vendor's primary or alternate Fulfillment Center for the ship-to postal code and the fastest carrier/delivery service tier combination available from each Fulfillment Center available to the ship-to postal code, in addition to global inventory availability.
Thus, a user (who comprises a consumer or a business or any other computer user who wishes to purchase product from one of the vendors 102) visits the vendor's Web site and views the product offerings. The online shopping cart system (or e- commerce system) (103 in Fig. 1) of the vendor requests PAR information for the products being displayed to the consumer from the system 100 of the invention, which consults its database of product availability across all the Fulfillment Centers (that is, the inventory is viewed as a global resource). The vendor e-commerce system then receives information from the Distribution Server concerning the availability for each product specified in the request and provides it to the user. Other processing then continues. For example, the user may request product availability for another product, or submit an order to the vendor's e-commerce Web site, or may terminate the communications.
If the communications received at the Distribution Server from the vendor is an order, then the system processes the order as represented by the flow diagram box numbered 406. An order may be a preliminary order that does not contain payment information and authorization, or may be a confirmed order, which includes authorization to pay and ship. Both types of orders preferably contain at least "ZIP" code or postal code delivery information and identify a specific product for the order. Confirmed orders must contain the full ship-to address and recipient's name. The orders are generated by a plurality of computer network user nodes and are received at computer network sites of a plurality of product vendors and are forwarded in real-time to the Distribution Server. At the Distribution Server, both preliminary orders and confiπned orders are analyzed to identify an order-based primary Fulfillment Center for the order-specified delivery location, the quantity of each product ordered compared to the availability in the primary Fulfillment Center, the time of day at the primary Fulfillment Center, operational resources available at the primary Fulfillment Center, the carrier/delivery service tier (if any) requested for the order, and the vendor's shipping preferences. This processing is represented by the flow diagram box numbered 408. For orders that camiot be immediately fulfilled in their entirety from the primary Fulfillment Center, the Distribution Server determines optimal alternative Fulfillment Center location(s) from which it can entirely fulfill the order and the carrier/service tier combination (e.g., FedEx overnight) for shipping from each Fulfillment Center location that maximizes delivery speed. As noted above, a variety of shipment options may be selected by each of the vendors for fulfilling orders placed by users. The order analysis of box 408 includes consideration of fulfillment options, as follows.
One of the fulfillment options is to permit only a single shipment for the order (i.e. "no split- shipments" option). A vendor may select that for all orders it forwards to the system 100, or a vendor may provide that fulfillment option as a selectable requirement to the vendor's users. In the case of the "no split shipments" option, the order analysis will require that an order will be placed (for purposes of analysis) from a Fulfillment Center and Delivery Carrier at which the entire order can be delivered, with the best available service tier. If an order cannot be delivered completely from any one Fulfillment Center, then that condition will be indicated and, upon order confirmation with payment authorization, the order will be placed on backorder at the closest Fulfillment Center with the most number of items from the order, awaiting fulfillment.
A second fulfillment option is the "split for most" option, which permits orders to be split into a number of shipments (e.g., two) based on filling (shipping) the most number of items in the order for a Fulfillment Center. With this option, assuming a maximum of two shipments is required, if the order can be fulfilled with the promised delivery level from two Fulfillment Centers, then the delivery schedule is indicated, and if an order cannot be so completed, then a back order condition is indicated, in the case of preliminary orders. In the case of confirmed orders with payment authorization, if the order can be fulfilled with the promised delivery level from two Fulfillment
Centers, then two pick orders are created, one for each fulfillment center, and fulfilled. If an order cannot be so completed, then an order is created that fulfills the most items in one shipment, with a back order placed on the Fulfillment Center having the most number of items remaining from the order. With the "split for fastest delivery" option, an order is analyzed such that, if any part of the order can be fulfilled, an order is created to ship the most items with the promised level of shipment, and with the best-case single shipment for the remainder of the order. For preliminary orders, the delivery schedule is provided, but the order is not placed with Fulfillment Centers. Depending on vendor's preference, however, the items may be marked reserved, and accordingly unreserved if the order is not confirmed. If item delivery is not possible at the level of service requested, then the shipment will be split into multiple shipments for fastest delivery possible.
The "most items split shipment" option analyzes an order such that, if an order can be completed from, for example, two Fulfillment Centers, then that option or availability is presented as well as the option of placing the entire order on back order condition with the closest Fulfillment Center with the most number of items. If the order cannot be completed from two Fulfillment Centers, then the option to receive the most items in one shipment is returned to the vendor, along with a back order placed on the Fulfillment Center with the most of the remaining items, along with the option of placing the entire order on back order with the Fulfillment Center having the most number of items from the order.
Yet another fulfillment option supported by the system is to permit a "fastest delivery split" option. With this option, the Distribution Server analyzes the order such that, if any part of the order can be fulfilled at the indicated service tier, then that schedule is returned to the vendor with the best-case single shipment schedule for the remaining order. If the order can be completed from, for example, two Fulfillment Centers, then that option is presented, along with the option of placing the entire order on back order with the closest Fulfillment Center having the most number of items. If the order cannot be completed from two Fulfillment Centers and no products can be shipped with the indicated service tier (timetable), then the option to receive the most items in one shipment is returned, with back order at the Fulfillment Center with the most number of the remaining items, along with the option of placing the entire order on back order at the Fulfillment Center with the most items.
Finally, a fulfillment option is provided for a multi-split option, such that if an order can be fulfilled with more than, for example, two shipments, an order is created for all items that can be fulfilled at the indicated service tier, and additional orders are created to best fulfill the remaining items. , Shipment for the remaining items will be based on a vendor specified default schedule. The different fulfillment options are discussed in more detail below. It should be understood that the processing of the shipment options would not actually be carried out with respect to forwarding order instructions to a Fulfillment Center unless a confirmed order is received. As noted above, a preliminary order may contain product (item) and shipment destination information, but will not include payment authorization, whereas a confirmed order includes all product item and quantity information, payment authorization, and destination location information needed for completion of the order.
After the fulfillment analysis processing, the Distribution Server returns the results of the order analysis back to the vendors' e-commerce systems (103 in Fig. 1) that made the request, which in turn communicate the order analysis back to their users so the users can indicate their preference for how the order should be fulfilled and the carrier/delivery service tier that should be used for each shipment. This completes the processing of the flow diagram box numbered 408. The next operation is represented by the flow diagram box numbered 410, wherein the vendor's e-commerce system forwards the confirmed order (updated to reflect the consumer's fulfillment/shipping preferences) to the Distribution Server.
After box 410, the Distribution Server creates a pick order for each of the Fulfillment Centers from which one or more products (or items) will be drawn and for each of the Delivery Carriers through winch such item (s) will be shipped. The Distribution Server 108 also forwards these pick orders to the appropriate Fulfillment Centers' and Delivery Carriers' systems, and reserves the quantity of each item drawn from each Fulfillment Center, thereby reflecting the decrease of quantity available the next time availability for those items are requested. This processing is represented by the flow diagram box numbered 412.
In the next operation, represented by the flow diagram box numbered 414, the Fulfillment Center and Delivery Carrier systems track the operational processes of picking, packing, shipment staging, transportation, and delivery to the consumer. At appropriate points in the process for each order, these systems generate status updates that are forwarded in real-time to the Distribution Server, as represented by the flow diagram box numbered 416. The Distribution Server records the order status updates in its database and, when the status update indicates that a shipment has occurred, decrements the Fulfillment Center's record of reserved quantity and quantity-on-hand to reflect the quantity of each product in the shipment.
In the next operation, represented by the flow diagram box numbered 418, order status requests generated by a plurality of computer network user nodes are received at computer network sites of a plurality of product vendors and are forwarded in real-time to the Distribution Server, represented by flow diagram box numbered 420. In this processing, the Distribution Server responds with all the status information that has been recorded for the order.
The system illustrated in Figure 1 also carries out inventory availability update processing, to receive and respond to status requests and ensure that accurate, updated product availability information is provided to vendors. Such processing is illustrated in Figure 5. It should be understood that the operations illustrated in Figure 5 comprise order replenishment processing (for shipped inventory) and order adjustment processing (for accommodating returned product or to account for loss or breakage). It should also be understood that such replenishment processing and adjustment processing are carried out in parallel, but the flow diagram represents such operations serially for convenience of description.
In the first replenishment operation, represented by the flow diagram box numbered 522, product replenishments are received into a plurality of Fulfillment Centers for a plurality of product vendors and recorded in the Fulfillment Center systems that generate real-time replenishment notifications to the Distribution Server, represented by flow diagram box numbered 524, which records the increment to quantity available for the product for the Fulfillment Center and globally, thereby reflecting the increase of quantity available the next time there is a request for information about availability for those products. In the next operation, represented by the flow diagram box numbered 526, product inventory adjustments (reflecting the results of cycle counts, physical inventories, breakage, etc.) are made for a plurality of products in a plurality Fulfillment Centers and are recorded in the Fulfillment Center systems that generate product inventory adjustment notifications in real-time to the Distribution Server, as represented by the flow diagram box numbered 528, which records the increment or decrement to quantity available for the products for the Fulfillment Center and globally, thereby reflecting an increase or decrease to the quantity available the next time availability for those products are requested. Figures 6A, 6B, 6C, 6D, 6E, 6F, and 6G illustrate in more detail the method steps for the various fulfillment options in accordance with the present invention. Although the features of the present invention are illustrated with the Distribution Server 108 receiving an order, one skilled in the art will recognize that the logic to employ the features of the present invention, such as receipt of a product availability request, is similar to those illustrated in Figures 6A-6G with some variations. Furthermore, those skilled in the art will recognize that the order as well as the method steps may be varied and still be operative in accordance with the present invention.
Referring to Figure 6A, upon receipt of an order, the Distribution Server 108 retrieves the vendor's preference for using predefined or dynamically created Fulfillment Center lists 6002. When the vendor's preference is to dynamically create the Fulfillment
Centers List, a "yes" outcome at decision box 6004, the system establishes the latitude and longitude of the ship-to location 6006, through the use of an electronic gazette, then retrieves the list of the vendor's Fulfillment Centers and loops through them 6008, calculating the distance between the latitude/longitude of ship-to location and the predefined latitude/longitude of each Fulfillment Center 6010, and storing the Fulfillment
Center and distance in a temporary database table) 6012. Once this calculation has been performed for each Fulfillment Center, a "yes" outcome at decision box 6014, the temporary table is sorted ascending by distance 6016. The system retrieves first Fulfillment Center in the sorted list which is designated as the primary Fulfillment Center (PFC) 6018 with the second and subsequent ones in the temporary list designated as alternate Fulfillment Center's (AFC's) for the purposes of process 6022.
Those skilled in the art will recognize that there are many ways to establish a latitude and longitude for a given location and that such information has been compiled into electronic gazettes (databases) that are searchable by location (e.g. city name within a country). Further, they will recognize that such gazettes can be purchased and the content extracted and loaded into the fulfillment system 100 database which can then be searched by the city and country of the order's ship-to address to determine its latitude and longitude.
Referring back to Figure 6A, when the vendor has predefined primary and alternate Fulfillment Centers (PFC's and AFC's) for locations, a "yes" outcome in decision box 6004, the system retrieves the PFC based on the ship-to location (of the order) sent by the vendor system 6020. The list of AFC's for such PFC 6022, and the list of carrier/service tier combinations utilized by such vendor 6024 from database tables contained in the order fulfillment system 100 (for example, from the Vendor 324, Fulfillment Center 326, and Alternate Fulfillment Center 348 database tables or the temporary table created in process 6034). The Distribution Server 108 then determines whether the order received has only one line item. (An order may consist of one or more line items) If the order has only one line item, a "yes" outcome at the decision box 6026, another determination is then made to check if the line item ordered is available at the PFC, and if so, (a "yes" outcome at decision box 6028), the Distribution Server 108 determines the fastest delivery service available from the PFC, at box 6030, sends a Pick Order for the item to the PFC 6032, and returns such availability and delivery service information (e.g., estimated time of delivery) to the vendor 102, at box 6034.
The system in determining the fastest delivery service takes into account the restrictions on the Delivery Carrier as well as on their respective service tiers (e.g., via the
Fulfillment Center 326 and Fulfillment Center/Service Tier database tables 342 illustrated in Fig. 3A), the capacity of the Fulfillment Center, the lead time required to prepare an item for shipment, and the like.
Those skilled in the art will recognize that various data may be stored in the database tables that would indicate and keep track of the current capacity of a Fulfillment Center. For example, the Fulfillment Center database table 326 may contain the maximum unit of work allowable in a day for such Fulfillment Center. Using the picking/packing lead time fields contained in that Fulfillment Center database table 326, e.g., by translating these fields to units of work, the order fulfillment system 100 would be able to determine if a particular Fulfillment Center has reached its full capacity. Another example is the gift wrap size required field of the Inventory Item database table 332. This field indicates the amount of gift wrapping paper required to wrap a particular item. The order fulfillment system 100 monitors the amount of wrapping paper used and thus is aware when no gift-wrapping paper is available to wrap a gift order item. The order fulfillment system 100 may also send a replenishment request of gift- wrapping paper to the vendor 102.
Referring back to Figure 6A, if the single line item order is not available at the PFC, a "no" outcome at decision box 6028, the system loops through the AFC's in order of the preference (specified by the vendor) 6036 until the item is found in a Fulfillment Center 6038 or all AFC's have been checked. If the item is found, a "yes" outcome at decision box 6038, the system determines the fastest delivery service available from that AFC 6030, sends pick order to the Fulfillment Center 6032, and returns such availability and delivery service information to the vendor 102 at step 6034.
If all the AFC's have been checked and the line item ordered has not been found in any of the AFC's, a "yes" outcome at decision box 6040, the system creates a back order item for the PFC at box 6042 and returns the back order information to the vendor at box 6044. The back order item may be sent to the PFC via an interface, such as an XML message, indicating that such items should be ordered accordingly.
If the order contains more than one line item, a "no" outcome at decision box 6026, the vendor's selected fulfillment method is retrieved at box 6046. The preferred order fulfillment method for each vendor is predefined and contained typically in the Vendor database table 324. Several fulfillment methods are employed in the present invention: (a) no split shipment, with no consumer choice 6050; (b) most items split into maximum of two deliveries with no consumer choice 6052; (c) fastest delivery split into maximum of two deliveries with no consumer choice 6054; (d) most items split into maximum of three deliveries with consumer choice 6056; (e) fastest delivery split into maximum of three deliveries with consumer choice 6058; and (f) split for maximum lines fulfilled in least number of deliveries, with no maximum on the number of deliveries 6060. Depending on the vendor's indicated order fulfillment method, the system branches 6048 into various processing logic as indicated by boxes 6050, 6052, 6054,
6056, 6058, and 6060.
Fig. 6B shows that if vendor has more than one line item and the vendor's indicated fulfillment method is "no split shipment with no consumer choice," the system first checks if all items ordered are available at the PFC at box 6202. If all items are available, a "yes" outcome at decision box 6202, the system determines the fastest delivery service for the PFC at box 6204, sends pick order information to that PFC at box 6206, and then returns the order information to the vendor at box 6208. (Table I is an example of a pick order in a XML format message sent by the order fulfillment system 100 to a Fulfillment Center 112 warehouse management system (Fig 1. 11 IA)). If all items are not available at the primary Fulfillment Center, a "no" outcome at decision box 6202, the system determines and counts which items are available in the PFC at box 6210. Then the system checks, in order of ranking or preference, the corresponding AFC's for the primary Fulfillment Center at box 6212. Once the system determines that an alternate Fulfillment Center contains all the items listed in the order, a "yes" outcome at decision box 6214, the system determines the fastest delivery service for that Fulfillment Center 6204, sends pick order information to that Fulfillment Center 6206, and returns order information to the vendor at box 6208.
One skilled in the art will recognize that other transactions or variations of the transactions may be implemented as part of system design and implementation and still be operative in accordance with the present invention.
If all items are not available in one alternate Fulfillment Center, a "no" outcome at decision box 6214, the system keeps track of the number of items that are available within each AFC at box 6216. Once all the AFC's have been checked by the system, a "yes" outcome at decision box 6218, the system then selects the AFC which has the most item availability count 6220, determines the fastest delivery service from that Fulfillment Center 6222, sends a pick order and back order information to that AFC, at step 6224, and returns order information to vendor at step 6208. In determining the most or greatest item availability count, box 6216, depending on system design and implementation, it may be the number of items available or the number of line items available which control. Referring to Fig. 6C, if the order has more than one line item and the fulfillment method chosen is the "most items split with maximum of two deliveries, with no consumer choice," the system checks if all the items ordered are available in the PFC at box 6302. If all items are available, the system then determines the fastest delivery service for the PFC 6304, sends pick order information to that Fulfillment Center 6306, and returns vendor information to the vendor at step 6308.
If all the items, however, are not available at the primary Fulfillment Center, a "no" outcome at decision box 6302, the system flags each item that is available at the PFC at step 6310. The system then loops through, in order of preference, each of the AFC's, at step 6312. If all items ordered are found in an AFC, a "yes" outcome at decision box 6314, the system does steps 6304, 6306, and 6308, as discussed above, using that AFC.
While the system is checking the AFC by order of preference, the system flags each item available from each AFC at box 6316. Once all the AFC's have been checked, a "yes" outcome at decision box 6318, the system selects the AFC with the greatest number of items flagged 6320, determines the fastest delivery service for that AFC 6322, sends pick order information for those flagged items to the selected AFC 6324, flags the items in the pick order as fulfilled 6326, determines the Fulfillment Center with the greatest number of unfulfilled items flagged 6328, determines the fastest delivery service for that AFC 6330, then sends the pick order and back order information to the selected AFC 6332, and, finally, returns order information to the vendor at step 6308. Referring to Fig. 6D, if the order has more than one line item and the fulfillment method chose is the "fastest delivery split with maximum of two deliveries with no consumer choice," the system first determines if the PFC is capable of same day delivery (i.e., "ShipNow" or "ShipToday"). If the PFC is incapable of same day delivery, a "no" outcome at decision box 6402 (e.g., the order was placed after the cut-off time for "ShipNow" or "ShipToday" or the Fulfillment Center 112 resources have all been allocated to handle orders to be shipped for that day, and the like), the system applies the same method steps illustrated in Fig. 6C ("most items split with maximum of two deliveries, with no consumer choice") as shown in box 6404.
If the PFC is capable of same day delivery, a "yes" outcome at decision box 6402, the system then determines if all ordered items are available at the PFC, at step 6406. If all items are available, a "yes" outcome at decision box 6406, the system is set to the best possible same day service (either "ShipNow" or "ShipToday") 6408, sends pick order information to that Fulfillment Center 6410, and then returns the order information to the vendor at 6412. If all the items ordered are not available at the PFC, a "no" outcome at decision box 6406, the system flags each item available for fulfillment by the PFC at steps 6414 and 6416, sets delivery service to same day (e.g., ShipNow or ShipToday) 6418, sends pick order information to the PFC 6420, and then returns order information to the vendor 6422. The system next selects the items that were not fulfilled by the PFC (because they were unavailable from the PFC), at step 6424, and using such selected items checks each AFC to count the items available at each AFC at steps 6426 and 6428.
If the last AFC have been checked, a "yes" outcome at decision box 6430, the system then selects the AFC with the greatest number of items available 6432, determines the fastest delivery service for that AFC 6434, sends pick order and back order information to that selected AFC 6436, and, finally, returns the order information to the vendor at step 6412. Referring to Fig. 6E, if the order has more than one line item and the fulfillment method chose is the "split for maximum lines fulfilled in least number of shipments with no maximum deliveries," the system first determines if same day delivery is available from the PFC at step 6502. If same day service is available, a "yes" outcome at decision box 6502, the system then determines if all items ordered are available from the PFC at step 6504. If they are, a "yes" outcome at decision box 6504, the systems sets the delivery service to the best same day service 6506, sends pick order information to the PFC 6508, and, finally, returns the order information to the vendor at step 6510.
On the other hand, if same day delivery is not available from the PFC or if all the items are not available from the PFC, a "no" outcome at decision box 6502 or 6504 respectively, the system flags each item available at the PFC for fulfillment by the PFC at steps 6512 and 6514, determines the fastest delivery service from the PFC 6516, sends pick order information to the PFC 6518, and then returns order information to the vendor at step 6520. The system then selects items that are not flagged for fulfillment by the PFC, at step 6522, and uses such selected items to loop and count items available at each AFC at box 6524 and 6526. Once all the AFC's have been checked, a "yes" outcome at decision box 6528, the system then loops through each AFC with items available for fulfillment 6530, selects the AFC with the greatest number of items available 6532, determines the fastest delivery from that AFC 6534, and then sends pick order information to that AFC at step 6536. If there are still items available in any AFC that would satisfy or fulfill the order, a "yes" outcome at decision box 6538, the system repeats steps 6530, 6532, 6534, and 6536 as discussed above. If no more order items are available at any of the AFC, a "no" outcome at box 6538, the systems then sets the unfulfilled items as back order items 6540, determines the fastest delivery service from the PFC 6542, sends back order information to the PFC 6544, and, finally, returns order information to the vendor at step 6510.
Referring to Fig. 6F, if the order has more than one line item and the fulfillment method chose is the "most items split with maximum of three deliveries, with consumer choice," the system goes through the steps illustrated in Fig. 6B at step 6602, in Fig. 6C at step 6604, and in Fig. 6E at step 6606. The system then returns the three options obtained from the steps 6602, 6604, and 6606 to the vendor (e.g., to enable a user to choose one of the three fulfillment options) at step 6608.
Referring to Fig. 6G, if the order has more than one line item and the fulfillment method chose is the "fastest delivery split with maximum of three deliveries with consumer choice," the system goes through the steps illustrated in Fig. 6B at step 6702, in Fig. 6D at step 6704, and in Fig. 6E at step 6706 as separate options. These options are returned to the vendor at step 6708.
Figure 7 is a block diagram of an exemplary computer 7000 on which the technique of the present invention may be performed. Each computer 7000 operates under control of a central processor unit (CPU) 7002, such as a "Pentium" microprocessor and associated integrated circuit chips, available from Intel Corporation of Santa Clara, California, USA. A computer user can input commands and data from a keyboard 7004 and can view inputs and computer output at a display 7006. The display is typically a video monitor or flat panel display. The computer 7000 also includes a direct access storage device (DASD) 7007, such as a hard disk drive. The memory 7008 typically comprises volatile semiconductor random access memory (RAM). Each computer preferably includes a program product reader 7010 that accepts a program product storage device 7012, from which the program product reader can read data (and to which it can optionally write data). The program product reader can comprise, for example, a disk drive, and the program product storage device can comprise removable storage media such as a magnetic floppy disk, a CD-R disc, or a CD-RW disc. The computer 7000 can communicate with other computers over a network 7013 through a network interface 7014 that enables communication over a connection 7016 between the network and the computer.
The CPU 7002 operates under control of programming steps that are temporarily stored in the memory 7008 of the computer 7000. When the programming steps are executed, the computer performs its functions. Thus, when the CPU executes the programming operations, the CPU implements the operations illustrated, for example, in Figures 6A-6G. The programming steps can be received from the DASD 7007, through the program product storage device 7012, or through the network connection 7016. The storage drive 7010 can receive a program product 7012, read programming steps recorded thereon, and transfer the programming steps into the memory 7008 for execution by the CPU 7002. As noted above, the program product storage device can comprise any one of multiple removable media having recorded computer-readable instructions, including magnetic floppy disks and CD-ROM storage discs. Other suitable program product storage devices can include magnetic tape and semiconductor memory chips. In this way, the processing steps necessary for operation in accordance with the invention can be embodied on a program product.
Alternatively, the program steps can be received into the operating memory 7008 over the network 7013. hi the network method, the computer receives data including program steps into the memory 7008 through the network interface 7014 after network communication has been established over the network connection 7016 by well-known methods that will be understood by those skilled in the art without further explanation. The program steps are then executed by the CPU to implement the processing of the steps of the present invention. It should be understood that the computer 7000 can have an alternative construction from that illustrated and described above, so long as it can support the functionality described herein.
The present invention has been described above in terms of a presently preferred embodiment so that an understanding of the present invention can be conveyed. There are, however, many configurations for providing product order fulfillment processing not specifically described herein but with which the present invention is applicable.
The present invention should therefore not be seen as limited to the particular embodiment described herein, but rather, it should be understood that the present invention has wide applicability with respect to product order fulfillment processing generally. All modifications, variations, or equivalent arrangements and implementations that are within the scope of the attached claims should therefore be considered within the scope of the invention.
While the above embodiment describes a single computer acting as a Distribution Server 108, those skilled in the art will recognize that the functionality, including the database tables described in Figures 3A and 3B, can be distributed over a plurality of computer, as well as be placed in various nodes of a data network such as the Internet.
The figures described above have been illustrated with method steps described in a certain order. Variations in the steps, such as order and what fields are to be checked, may be done and still be in accordance with the present invention.

Claims

CLAIMSWE CLAIM:
1. A method of processing product orders or requests over a computer network, the method comprising: receiving in real time product orders or requests that are generated by a plurality of computer network user nodes and are directed to computer network sites of a plurality of product vendors; and determining one or more product fulfillment center locations from which at least one item of a product order or request may be shipped to a user-specified delivery address and determining a delivery carrier that can provide a level of service by a promise date by which product delivery can be provided.
2. A method as defined in claim 1, further comprising the steps of collecting transaction data at a system processing* center, wherein the transaction data relates to each of the product orders or requests and specifies the respective ordering or requesting network user nodes and the product vendor network sites; and providing in real time product pick order information to the determined fulfillment center locations and delivery carriers for product delivery.
3. A method as defined in claim 1, wherein said method is implemented over the Internet.
4. A method as defined in claim 1, wherein said received product orders or requests include one or more made-to-assemble line order items.
5. A method as defined in claim 1, wherein said received product orders or requests include one or more lot item line order items.
6. A method as defined in claim 1, wherein said received product orders or requests include one or more items that are to be gift-wrapped.
7. A method as defined in claim 1, wherein determining a delivery service comprises analyzing the restrictions on said delivery carrier.
8. A method as defined in claim 1, wherein determining a delivery carrier comprises analyzing the delivery carrier/service tier combination.
9. A method as defined in claim 8, wherein analyzing the delivery carrier/service tier combination further comprises analyzing the restrictions of said service tier and said delivery carrier.
10. A method as defined in claim 1, wherein determining one or more product fulfillment center locations comprises analyzing the resource and capacity of the fulfillment center locations.
11. A method as defined in claim 1, wherein determining one or more product fulfillment center locations starts with determining the primary fulfillment center of ship-to post code of said received product order.
12. A method as defined in claim 1, wherein determining one or more product fulfillment center locations and determining a delivery carrier comprise using a
"no split" fulfillment option.
13. A method as defined in claim 1, wherein determining one or more product fulfillment center locations and determining a delivery carrier comprise using a "split for most" fulfillment option.
14. A method as defined in claim 1, wherein determining one or more product fulfillment center locations and determining a delivery carrier comprise using a "split for fastest delivery" fulfillment option.
15. A method as defined in claim 1, wherein determining one or more product fulfillment center locations and determining a delivery carrier comprise using a "most items split shipment" fulfillment option.
16. A method as defined in claim 1, wherein determining one or more product fulfillment center locations and determining a delivery carrier comprise using a "fastest delivery split" fulfillment option.
17. A method as defined in claim 1, wherein determining one or more product fulfillment center locations and determining a delivery carrier comprise using a
"multi-split" fulfillment option.
18. A method as defined in claim 2, wherein collecting transaction data comprises analyzing product fulfillment centers that correspond to the respective product vendors and from which product shipment may occur.
19. A method as defined in claim 2, wherein collecting transaction data comprises analyzing order status information.
20. A method as defined in claim 2, further comprising the step of sending back order information in real time to a selected fulfillment center.
21. A method as defined in claim 20 where said back order information is contained in an XML message.
22. A method as defined in claim 1, further comprising the step of receiving information in real time from a plurality of fulfillment centers.
23. A method as defined in claim 22, where said information is contained in an XML message.
24. A method as defined in claim 1, further comprising the step of providing information in real time to a plurality of fulfillment centers.
25. A method as defined in claim 24, where said information is contained in an XML message.
26. A method as defined in claim 1, further comprising the step of receiving information in real time from a plurality of delivery carriers.
27. A method as defined in claim 26, where said information is contained in an XML message.
28. A method as defined in claim 1, further comprising the step of providing information in real time to a plurality of delivery carriers.
29. A method as defined in claim 28, where said information is contained in an XML message.
30. A method as defined in claim 1, further comprising the step of receiving information in real time from a plurality of vendors.
31. A method as defined in claim 30, where said information is contained in an XML message.
32. A method as defined in claim 1, further comprising the step of providing information in real time to a plurality of vendors.
33. A method as defined in claim 32, where said information is contained in an XML message.
34. A computer system that processes product orders or requests communicated over a computer network, the system comprising: a system processing center that receives information in real time specifying multiple product orders or requests generated by a plurality of computer network user nodes and directed to computer network sites of a plurality of product vendors, and one or more product fulfillment center locations from which at least one item of a product order may be shipped to a designated delivery address; and one or more delivery carriers by which at least one product of a product order may be shipped from a fulfillment center to a designated ship-to address.
35. A system as defined in claim 34, wherein said system processing center collects transaction data, such that the transaction data relates to each of the product orders or requests and specifies the respective ordering or requesting network user nodes and the product vendor network sites.
36. A system as defined in claim 34, wherein said system is implemented over the Internet.
37. A computer system as defined in claim 34, wherein the system processing center comprises a distribution server that determines product availability and provides availability information to the product vendors in real-time, maintains an indication of inventory availability, collects transaction data relating to user order placement and fulfillment, routes the order to an appropriate fulfillment center and delivery carrier, and maintains a database of global-wide product availability and delivery information.
38. A computer software product for use in a computer system comprising: a recordable media; and a program of computer-readable instructions executable by the computer to perform method steps comprising: receiving in real time product orders or requests that are generated by a plurality of computer network user nodes and are directed to computer network sites of a plurality of product vendors; and determining one or more product fulfillment center locations from which at least one item of a product order or request may be shipped to a user- specified delivery address and determining a delivery carrier that can provide a level of service by a promise date by which product delivery can be provided.
39. A computer software product as defined in claim 38, wherein said method steps further comprise the steps of collecting transaction data at a system processing center, wherein the transaction data relates to each of the product orders or request and specifies the respective ordering or requesting network user nodes and the product vendor network sites; and providing in real time product pick order information to the determined fulfillment center locations and delivery carriers for product delivery.
40. A computer software product as defined in claim 38, wherein said received product orders or requests include one or more made-to-assemble line order items.
41. A computer software product as defined in claim 38, wherein said product orders or requests include one or more lot item line order items.
42. A computer software product as defined in claim 38, wherein said received product orders or requests include one or more items that are to be gift- wrapped.
43. A computer software product as defined in claim 38, wherein determining a delivery service comprises analyzing the restrictions on said delivery carrier.
44. A computer software product as defined in claim 38, wherein determining a delivery service comprises analyzing the delivery carrier/service tier combination..
45. A computer software product as defined in claim 38, wherein analyzing the delivery carrier/service tier combination further comprises analyzing the restrictions of said service tier and said delivery carrier.
46. A computer software product as defined in claim 45, wherein determining one or more product fulfillment center locations comprises analyzing the resource and capacity of the fulfillment center locations.
47. The computer software product as defined in claim 38, wherein determining one or more product fulfillment center locations starts with analyzing the primary fulfillment center of ship-to post code of said received product order.
48. A computer software product as defined in claim 38, wherein determining one or more product fulfillment center locations and determining a delivery carrier comprise using a "no split" fulfillment option.
49. A computer software product as defined in claim 38, wherein determining one or more product fulfillment center locations and determining a delivery carrier comprise using a "split for most" fulfillment option.
50. A computer software product as defined in claim 38, wherein determining one or more product fulfillment center locations and determining a delivery carrier comprise using a "split for fastest delivery" fulfillment option.
51. A computer software product as defined in claim 38, wherein determining one or more product fulfillment center locations and determining a delivery carrier comprise using a "most items split shipment" fulfillment option.
52. A computer software product as defined in claim 38, wherein determining one or more product fulfillment center locations and determining a delivery carrier comprise using a "fastest delivery split" fulfillment option.
53. A computer software product as defined in claim 38, wherein determining one or more product fulfillment center locations and determining a delivery carrier comprise using a "multi-split" fulfillment option.
54. A computer software product as defined in claim 39, wherein collecting transaction data comprises identifying product fulfillment centers that correspond to the respective product vendors and from which product shipment may occur.
55. A computer software product as defined in claim 39, wherein collecting transaction data comprises identifying order status information.
56. A computer software product as defined in claim 38, further comprising the step of sending back order information in real time to a selected fulfillment center.
57. A computer software product as defined in claim 56, where said back order information is contained in XML message.
58. A computer software product as defined in claim 38, further comprising the step of receiving information in real time from a plurality of fulfillment centers.
59. A computer software product as defined in claim 58, where said information is contained in an XML message.
5 60. A computer software product as defined in claim 38, further comprising the step of providing information in real time to a plurality of fulfillment centers.
61. A computer software product as defined in claim 60, where said information is contained in an XML message.
62. A computer software product as defined in claim 38, further comprising 10 the step of receiving information in real time from a plurality of delivery carriers.
63. A computer software product as defined in claim 62, where said information is contained in an XML message.
64. A computer software product as defined in claim 38, further comprising the step of providing information in real time to a plurality of delivery carriers.
15 65. A computer software product as defined in claim 64, where said information is contained in an XML message.
66. A computer software product as defined in claim 38, further comprising the step of receiving information in real time from a plurality of vendors.
67. A computer software product as defined in claim 66, where said •20 information is contained in an XML message.
68. A computer software product as defined in claim 38, further comprising the step of providing information in real time to a plurality of vendors.
69. A computer software product as defined in claim 68, where said information is contained in an XML message.
25
PCT/US2001/011099 2000-04-04 2001-04-04 Order fulfillment system and method WO2001075746A2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
AU51343/01A AU5134301A (en) 2000-04-04 2001-04-04 Order fulfillment system and method

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US19457500P 2000-04-04 2000-04-04
US60/194,575 2000-04-04
US65180300A 2000-08-30 2000-08-30
US09/651,803 2000-08-30

Publications (1)

Publication Number Publication Date
WO2001075746A2 true WO2001075746A2 (en) 2001-10-11

Family

ID=26890174

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/US2001/011099 WO2001075746A2 (en) 2000-04-04 2001-04-04 Order fulfillment system and method

Country Status (2)

Country Link
AU (1) AU5134301A (en)
WO (1) WO2001075746A2 (en)

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20160148155A1 (en) * 2014-11-21 2016-05-26 International Business Machines Corporation Optimizing network yield during freight booking
US20170091683A1 (en) * 2015-09-30 2017-03-30 Wal-Mart Stores, Inc. Database system for distribution center fulfillment capacity availability tracking and method therefor
US20200160269A1 (en) * 2018-11-16 2020-05-21 Target Brands, Inc. Integration of third party delivery service interface into online retail platform
US10908788B2 (en) 2019-05-16 2021-02-02 Oracle International Corporation Automated process discovery and facilitation within a cloud business application
US20220172154A1 (en) * 2020-12-02 2022-06-02 Coupang Corp. Electronic apparatus for managing carrying out on fulfillment center and controlling method thereof
US11605044B2 (en) 2016-12-27 2023-03-14 Walmart Apollo, Llc Crowdsourced delivery based on a set of requirements
US11710088B1 (en) * 2021-02-16 2023-07-25 Target Brands, Inc. Scalable order management monitoring
US11836658B2 (en) 2016-12-16 2023-12-05 Walmart Apollo, Llc Systems and methods for assessing delivery vehicles

Cited By (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20160148155A1 (en) * 2014-11-21 2016-05-26 International Business Machines Corporation Optimizing network yield during freight booking
US20170091683A1 (en) * 2015-09-30 2017-03-30 Wal-Mart Stores, Inc. Database system for distribution center fulfillment capacity availability tracking and method therefor
US11836658B2 (en) 2016-12-16 2023-12-05 Walmart Apollo, Llc Systems and methods for assessing delivery vehicles
US11605044B2 (en) 2016-12-27 2023-03-14 Walmart Apollo, Llc Crowdsourced delivery based on a set of requirements
US20200160269A1 (en) * 2018-11-16 2020-05-21 Target Brands, Inc. Integration of third party delivery service interface into online retail platform
US10908788B2 (en) 2019-05-16 2021-02-02 Oracle International Corporation Automated process discovery and facilitation within a cloud business application
US11294546B2 (en) 2019-05-16 2022-04-05 Oracle International Corporation Automated process discovery and facilitation within a cloud business application
US20220172154A1 (en) * 2020-12-02 2022-06-02 Coupang Corp. Electronic apparatus for managing carrying out on fulfillment center and controlling method thereof
US11676100B2 (en) * 2020-12-02 2023-06-13 Coupang Corp. Electronic apparatus for managing carrying-out on fulfillment center and controlling method thereof
US11710088B1 (en) * 2021-02-16 2023-07-25 Target Brands, Inc. Scalable order management monitoring

Also Published As

Publication number Publication date
AU5134301A (en) 2001-10-15

Similar Documents

Publication Publication Date Title
AU779868B2 (en) Integrated system for ordering, fulfillment, and delivery of consumer products using a data network
US7124098B2 (en) Online shopping system
US7792712B2 (en) Techniques for processing customer service transactions at customer site using mobile computing device
US20020032613A1 (en) Methods and systems for the physical delivery of goods ordered through an electronic network
US20030046173A1 (en) Store delivery of products ordered over a computer network
US20140149269A1 (en) Techniques for processing customer service transactions at customer site using mobile computing device
US20040111286A1 (en) System for the provision of goods and services over a distributed communication network
WO2002052378A2 (en) System for the provision of goods and services over a distributed communication network
US8046262B1 (en) Coordinating the delivery of two or more packages shipped from different source locations
WO2006099497A2 (en) System and method for integrated order and channel management
WO2001075746A2 (en) Order fulfillment system and method
JP2005272064A (en) Door-to-door delivery system
JP2002230340A (en) System and method for dealer management
US20210056504A1 (en) Systems and methods for consolidating tracking and delivery of shipped parcels
JP2002265058A (en) Physical distribution support system, physical distribution support apparatus, physical distribution support method, program for executing the above and record medium
US20240086829A1 (en) System and methods for dynamic identification of order fulfillment options using an application programming interface
WO2003017163A1 (en) System for facilitating transactions between freight customers and service providers
KR20060070286A (en) Delivery reservation system and its method
WO2000057313A1 (en) System and method for implementing web-based direct manufacturer marketing and transactions

Legal Events

Date Code Title Description
AK Designated states

Kind code of ref document: A2

Designated state(s): AE AG AM AT AU AZ BA BB BG BR BY BZ CA CH CN CO CR CU CZ DE DK DM DZ EE ES FI GB GD GE GH GM HR HU ID IL IN IS JP KE KG KP KR KZ LC LK LR LS LT LU LV MA MD MG MK MN MW MX MZ NO NZ PL PT RO RU SD SE SG SI SK SL TJ TM TR TT TZ UA UG US US UZ VN YU ZA ZW

AL Designated countries for regional patents

Kind code of ref document: A2

Designated state(s): GH GM KE LS MW MZ SD SL SZ TZ UG ZW AM AZ BY KG KZ MD RU TJ TM AT BE CH CY DE DK ES FI FR GB GR IE IT LU MC NL PT SE TR BF BJ CF CG CI CM GA GN GW ML MR NE SN TD TG

121 Ep: the epo has been informed by wipo that ep was designated in this application
WA Withdrawal of international application
REG Reference to national code

Ref country code: DE

Ref legal event code: 8642