[go: up one dir, main page]

WO2020145935A1 - Systems and methods for selecting physical stores to fulfill orders - Google Patents

Systems and methods for selecting physical stores to fulfill orders Download PDF

Info

Publication number
WO2020145935A1
WO2020145935A1 PCT/US2019/012499 US2019012499W WO2020145935A1 WO 2020145935 A1 WO2020145935 A1 WO 2020145935A1 US 2019012499 W US2019012499 W US 2019012499W WO 2020145935 A1 WO2020145935 A1 WO 2020145935A1
Authority
WO
WIPO (PCT)
Prior art keywords
physical
store
shipping
physical stores
stores
Prior art date
Legal status (The legal status 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 status listed.)
Ceased
Application number
PCT/US2019/012499
Other languages
French (fr)
Inventor
Hamid KASSAEI
Kunal Deepak SHAH
Michael Moffitt
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Google LLC
Original Assignee
Google LLC
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 Google LLC filed Critical Google LLC
Priority to PCT/US2019/012499 priority Critical patent/WO2020145935A1/en
Publication of WO2020145935A1 publication Critical patent/WO2020145935A1/en
Anticipated expiration legal-status Critical
Ceased legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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/083Shipping

Definitions

  • B&M brick and mortar
  • aspects of the present disclosure relate generally to a fulfillment of an online order, and more particularly, to optimally selecting one of a number of physical stores of a merchant to fulfill an online order.
  • One implementation disclosed herein is a method for optimally selecting a physical store for filling online customer orders using a virtual fulfillment center.
  • the method includes receiving, by one or more data processors, a list of a number of physical stores associated with a merchant, the list including respective locations of the number physical stores.
  • the method includes transmitting, by the one or more data processors, a request to each of the physical stores for store status information.
  • the request can cause each of the physical stores to generate inventory information by detecting, via one or more cameras, a presence of one or more product items on one or more shelves, and transmit store status information to the one or more data processors.
  • the store status information including the inventory information.
  • the method includes receiving, by the one or more data processors, an identification to an online customer order of one or more product items for delivery to a shipping address.
  • the method includes determining, by the one or more data processors, respective shipping costs and shipping delays to ship the one or more product items from the number of physical stores to the shipping address.
  • the method include selecting, by the one or more data processors, a first physical store from the number of physical stores by comparing the respective shipping costs and shipping delays associated with the number of physical stores.
  • the method includes causing, by the one or more data processors, the one or more product items of the online customer order to be shipped from the first physical store.
  • selecting a first physical store from the plurality of physical stores further includes determining a least shipping cost and a shortest shipping delay, associated with the first physical store, from the respective shipping costs and shipping delays of the plurality of physical stores.
  • the store status information includes at least one of staffing information, calendar information, and operation information of each of the plurality of physical stores.
  • the method further includes in response to receiving the inventory information of the plurality of physical stores, calculating respective fill rates of the one or more product items for the plurality of physical stores.
  • the calculation of the fill rates is based on one or more previous online customer orders including ordering more than 1 of the product item.
  • the fill rate information indicates a percentage of time that each of the plurality of physical stores can fulfill each of the one or more previous online customer orders.
  • selecting a first physical store from the plurality of physical stores further includes determining whether respective fill rates of the one or more product items for the plurality of physical stores are greater than a predefined threshold.
  • the selection step further includes disregarding one or more of the plurality of physical stores that are associated with fill rates not greater than the predefined threshold.
  • the selection step further includes determining a highest fill rate to select the first physical store.
  • a first distance between the shipping address and the location corresponding to the first physical store is greater than a second distance between the shipping address and the location corresponding to a second physical store of the plurality of physical stores.
  • the method further includes periodically receiving the inventory information from each of the plurality of physical stores.
  • the present disclosure is directed to a system for optimally selecting a physical store for filling online customer orders.
  • the system includes a virtual fulfillment center.
  • the virtual fulfillment center can receive, from a merchant, a list of a plurality of physical stores associated with the merchant, the list including respective locations of the plurality of physical stores.
  • the virtual fulfillment center can transmit a request to each of the plurality of physical stores for store status information.
  • the request can cause each of plurality of physical stores to generate inventory information by detecting, via one or more cameras, a presence of one or more product items on one or more shelves; and transmit store status information to the one or more data processors, the store status information including the inventory information.
  • the virtual fulfillment center can receive, from an e-commerce application, an identification to an online customer order of one or more product items for delivery to a shipping address.
  • the virtual fulfillment center can determine respective shipping costs and shipping delays to ship the one or more product items from the plurality of physical stores to the shipping address.
  • the virtual fulfillment center can select a first physical store from the plurality of physical stores by comparing the respective shipping costs and shipping delays associated with the plurality of physical stores.
  • the virtual fulfillment center can cause the one or more product items of the online customer order to be shipped from the first physical store.
  • the virtual fulfillment center can further determine a least shipping cost and a shortest shipping delay, associated with the first physical store, from the respective shipping costs and shipping delays of the plurality of physical stores.
  • the store status information includes at least one of staffing information, calendar information, and operation information of each of the plurality of physical stores.
  • the virtual fulfillment center can calculate respective fill rates of the one or more product items for the plurality of physical stores based on one or more previous online customer orders including ordering more than 1 of the product item, responsive to receiving the inventory information of the plurality of physical stores.
  • the fill rate information indicates a percentage of time that each of the plurality of physical stores can fulfill each of the one or more previous online customer orders.
  • the virtual fulfillment center can further determine whether respective fill rates of the one or more product items for the plurality of physical stores are greater than a predefined threshold.
  • the virtual fulfillment center can further disregard one or more of the plurality of physical stores that are associated with fill rates not greater than the predefined threshold.
  • the virtual fulfillment center can further determine a highest fill rate to select the first physical store.
  • a first distance between the shipping address and the location corresponding to the first physical store is greater than a second distance between the shipping address and the location corresponding to a second physical store of the plurality of physical stores.
  • the virtual fulfillment center can further periodically receive the inventory information from each of the plurality of physical stores.
  • the present disclosure is directed to a method for optimally selecting a physical store for filling online customer orders.
  • the method includes maintaining, by one or more data processors, a physical store repository.
  • the physical store repository includes respective locations of a plurality of physical stores associated with one or more merchants and respective store status information of the plurality of physical stores.
  • the method includes receiving, by the one or more data processors, an identification to an online customer order of a plurality of product items for delivery to a shipping address.
  • the method includes determining, by the one or more data processors, respective shipping costs and shipping delays to ship the plurality of product items from the plurality of physical stores to the shipping address.
  • the method include comparing, by the one or more data processors, the respective shipping costs and shipping delays associated with the plurality of physical stores.
  • the method includes causing, by the one or more data processors, the one or more product items of the online customer order to be shipped from a first physical store of the plurality of physical stores, responsive to determining that the first physical store is in association with a least shipping cost and a shortest shipping delay among the respective shipping costs and shipping delays of the plurality of physical stores.
  • maintaining a physical store repository further includes transmitting, by the one or more data processors, a request to each of the plurality of physical stores for store status information.
  • the request can cause each of plurality of physical stores to generate inventory information by detecting, via one or more cameras, a presence of one or more product items on one or more shelves; and transmit store status information to the one or more data processors.
  • the store status information includes the inventory information.
  • the store status information includes at least one of staffing information, calendar information, and operation information of each of the plurality of physical stores.
  • the method further includes responsive to receiving the store status information of the plurality of physical stores, calculating respective fill rates of the one or more product items for the plurality of physical stores based on one or more previous online customer orders including ordering more than 1 of the product item.
  • the fill rate information indicates a percentage of time that each of the plurality of physical stores can fulfill each of the one or more previous online customer orders.
  • causing the one or more product items of the online customer order to be shipped from a first physical store of the plurality of physical stores further includes determining whether respective fill rates of the one or more product items for the plurality of physical stores are greater than a predefined threshold. Such a step further includes disregarding one or more of the plurality of physical stores that are associated with fill rates not greater than the predefined threshold, and determining a highest fill rate to select the first physical store.
  • a first distance between the shipping address and the location corresponding to the first physical store is greater than a second distance between the shipping address and the location corresponding to a second physical store of the plurality of physical stores.
  • FIG. 1 is a block diagram of a shopping system, according to one implementation.
  • FIG. 2A is a block diagram of a client device of the shopping system of FIG. 1, according to one implementation;
  • FIG. 2B is a block diagram of a virtual fulfillment center of the shopping system of FIG. 1, according to one implementation;
  • FIG. 2C is a block diagram of an inventory management system deployed in a physical store of the shopping system of FIG. 1, according to one implementation
  • FIG. 3 is a flow chart of an exemplary method used by the virtual fulfillment center of FIG. 2B to optimally select a physical store to fulfill an online order, according to one implementation.
  • FIG. 4 is a flow diagram of an exemplary method used by the inventory management system of FIG. 2C to manage the inventory of a physical store, according to one implementation.
  • a customer places an order through an e-commerce website of a merchant (e.g., Target, Walmart, Amazon)
  • the order gets routed to an e-commerce fulfillment center, which is a physical warehouse dedicated to receiving e-commerce orders.
  • a merchant e.g., Target, Walmart, Amazon
  • the order gets routed to an e-commerce fulfillment center, which is a physical warehouse dedicated to receiving e-commerce orders.
  • e-commerce fulfillment center which is a physical warehouse dedicated to receiving e-commerce orders.
  • a retailer or merchant may deploy many physical stores, sometimes referred to as brick and mortar (“B&M”) stores, throughout a geographic area (e.g., across the United States), but only have a few physical fulfillment centers to fill the e-commerce orders. Therefore, when a customer places an order on an e- commerce website, the order is rarely routed to the nearest B&M store in his/her
  • the order is often routed to one of the merchant’s few physical fulfillment centers distant from the customer, which results in long shipping delays to the customer and/or high shipping cost to the merchant (or passed to the customer).
  • the fulfillment selection process is not optimized to select the best (e.g., geographically closest, most suited/equipped to fulfill the order, etc.) fulfillment center for a particular customer. Rather, a system, used by the merchant, just randomly sends the order to any of the physical fulfillment centers without taking in consideration that there may exists a B&M store owned by the merchant that is closer to the customer, which explains why it may take 5 days to get an item to a customer even though there may be a B&M store just a couple miles down the street from the customer.
  • the present disclosure provides various embodiments of a shopping system that includes a virtual fulfillment center (VFC) for one or more merchant members.
  • VFC virtual fulfillment center
  • the VFC can allow a best store from a number of physical stores (e.g.,
  • B&M stores physical fulfillment centers of each of the one or more merchant members to be selected to receive the customer’s order, which can result in the least shipping delay and lowest shipping cost when distributing product items to customers.
  • a merchant provides the disclosed VFC with a list of 50 (or any subset size of stores) of their B&M stores dispersed around the country (this is a small number because Walmart and Target each have -1500 stores).
  • the VFC can make these 50 stores look like one giant fulfillment center that is located optimally to almost everybody in the country, so that a customer can get their items with the least shipping delay (in many instance, the customer receives their items overnight) and the merchant incurs the least shipping cost, without trading-off one or the other.
  • the VFC can be optimized to achieve the least shipping delay to the customer and lowest shipping cost to the merchant by adjusting and accounting for a variety of parameters.
  • the VFC may take into account: a physical store’s inventory; a physical store’s average“fill rate” over a certain period of time; a geographic distance between the customer and one of the physical stores; whether a physical store has optimal man-power/staffmg (e.g., labor capacity to fill the order); whether a physical store operations are running smoothly; whether a physical store has a calendar event/holiday that may interrupt normal store hours, etc. It is understood that the listing of parameters are not limiting, and can include any of various other store status information while remaining within the scope of the present disclosure.
  • the fill rate can be the percentage of time that a store was able to fill a customer’s entire order. For example, a customer orders 3 bottles of shampoo. If the physical store that receives the order has enough inventory to ship all 3 bottles to the customer at the same time, i.e., without breaking up the order into multiple shipments, the VFC may score such a fulfillment with a relatively high fill rate. On the other hand, if the physical store cannot ship all 3 bottles to the customer at the same time, the VFC may score the fulfillment with a relatively low fill rate.
  • the inventory of the physical store may be required to be up-to-date.
  • a merchant of a physical store may have difficulty in accurately tracking the inventory in real-time or keeping the inventory up-to-date.
  • a merchant may have a general idea of their inventory, but tracking/updating their inventory in real-time is difficult because customers are entering in a front door of the physical store to purchase product items and vendors (e.g., Coke, Johnson & Johnson) are delivering product items in a back door of the physical store. Therefore, the product items are constantly moving in and out of the physical store, but merchants only consolidate their inventory 1-2 times per day - generally after store hours.
  • the disclosed shopping system include one or more inventory manager systems deployed in each of the physical stores of the one or more merchants.
  • the inventory manager system can include one or more cameras placed in front of the shelf at a merchant’s physical store. The camera can first read the barcode of a product item on a shelf to determine what product items are reserved for that particular shelf - this can be done by reading the barcode of a product item at a time when the shelf has the product item. After identifying the product item, for example, the camera can then determine if at least one product item is on the shelf by determining the physical dimensions of the empty shelf (maybe the camera scans the shelf and calculates the dimensions when the shelf is empty, and/or receives dimension information from the merchant ahead of time).
  • the camera can then determine if at least one product item is on the shelf by determining that the physical dimensions have changed by the presence of at least one product item on the shelf. In some implementations, the camera does not count the inventory. Instead, the camera may determine if the merchant has the product item or does not have the product item.
  • a shopping system 100 to optimally select a physical store for filling online customer orders is shown, in accordance with some implementations.
  • the shopping system 100 can be associated with (e.g., used by) a merchant.
  • the shopping system 100 can be associated with any number of merchants while remaining within the scope of the present disclosure.
  • the merchant(s) may sell product items through brick and mortar (B&M) stores, through telephone or catalog sales, and may also sell product items online via a presence on the Internet or other network, which shall be described below.
  • B&M brick and mortar
  • the shopping system 100 includes one or more servers 102 upon which various applications can be executed such as, for example, one or more e- commerce applications 104, one or more web server applications 106, and a database 108.
  • One or more client devices 110 can access, communicate with, or otherwise interact with the server 102 via one or more networks 111.
  • the network 111 may include, for example, the Internet, intranets, wide area networks (WANs), local area networks, wireless networks, or other suitable networks, etc., or any combination of two or more such networks.
  • the e-commerce application 104 can be executed in order to facilitate an online purchase of product items over various networks such as, for example, the Internet or other network as can be appreciated.
  • the e-commerce application 104 can also perform various back-end functions associated with the online presence of a merchant in order to facilitate the online purchase of items.
  • the e-commerce application 104 may generate network pages such as web pages or other types of network content that is provided to a client device 110.
  • the Web server application 106 can include various applications that facilitate access to the e-commerce application 104 on behalf of the client device 110.
  • Web server application 106 may facilitate browser access to the e-commerce application 104.
  • other applications may be employed beyond a web application.
  • the e-commerce application 104 can provide the client device 110 with network content in response to requests received from the client device 110 in the server 102 when interaction occurs between the e-commerce application 104 and the client device 110, for example, when the client device 110 navigates through the various pages of a network site associated with the online presence of a merchant.
  • the e-commerce application 104 may dynamically generate such network pages using information in the database 108 or information obtained from other locations as can be appreciated.
  • the Web server application 106 can be an example of a server application that acts as a portal through which the client device 110 sends requests that are processed by the e-commerce application 104.
  • the responses to the client requests generated by the e-commerce application 104 can be received by the client device 110 from the e-commerce application 104 through the Web server application 106.
  • the database 108 may store various data such as, for example, information relating to product items offered for sale to those who would manipulate the client device 110 such as, for example, product item information, product item pricing, the availability of the product item (in terms of quantities available), the lead times within which such items can be shipped or otherwise made available to the purchaser, and other information. Further, the database 108 may include various store status information stored in the store repository of a virtual fulfillment center, which shall be discussed in further detail below.
  • the shopping system 100 further include a virtual fulfillment center 120, and one or more physical stores or centers, for example, a physical fulfillment center 130, and physical stores 134, 138, and 142.
  • the virtual fulfillment center 120 can communicate with the server 102 (e.g., the e-commerce application 104) to receive the identification of an online order from the client device 110, provide various store status information to the e-commerce application 104 for presenting to the client device 110, etc., via a network 121.
  • the network 121 may include, for example, the Internet, intranets, wide area networks (WANs), local area networks, wireless networks, or other suitable networks, etc., or any combination of two or more such networks.
  • the physical stores 130-142 may be managed (e.g., owned) by one or more merchants that manage or use the server 102.
  • each of the physical stores 130-142 may have a capability to deliver one or more product items to a physical address designated by an online order from the client device 110 (e.g., physical address 150) upon interacting with the virtual fulfillment center 120, which shall be discussed in further detail below.
  • the physical fulfillment center 130 and the physical stores 134- 142 may each have facilities to pack and ship items to a destination address via a public carrier.
  • the physical fulfillment center 130 may be one of a number of warehouses, which are distributed over a certain geographic area relatively sparsely; and the physical stores 134-142 may be B&M stores, which are distributed over the geographic area relatively densely.
  • the shopping system 100 includes a number of inventory management systems 144 deployed in respective physical stores 130- 142, in accordance with some implementations.
  • an inventory management system 144 can communicate with the virtual fulfillment center 120 to update the store status information of respective physical store via a respective network (not shown).
  • a network may include, for example, the Internet, intranets, wide area networks (WANs), local area networks, wireless networks, or other suitable networks, etc., or any combination of two or more such networks.
  • Client device 110 may be any number of different types of user electronic devices configured to communicate via a network, including without limitation, a laptop computer, a desktop computer, a tablet computer, a smartphone, a digital video recorder, a set-top box for a television, a video game console, or any other type and form of computing device or combinations of devices.
  • the type of client device 110 may be categorized as a mobile device, a desktop device or a device intended to remain stationary or configured to primarily access a network via a local area network, or another category of electronic devices such as a media consumption device.
  • client device 110 includes a processor 202 and a memory 204.
  • Memory 204 may store machine instructions that, when executed by processor 202 cause processor 202 to perform one or more of the operations described herein.
  • Processor 202 may include a microprocessor, ASIC, FPGA, etc., or combinations thereof. In many implementations, processor 202 may be a multi-core processor or an array of processors. Memory 202 may include, but is not limited to, electronic, optical, magnetic, or any other storage devices capable of providing processor 202 with program instructions. Memory 202 may include a floppy disk, CD-ROM, DVD, magnetic disk, memory chip, ROM, RAM, EEPROM, EPROM, flash memory, optical media, or any other suitable memory from which processor 202 can read instructions. The instructions may include code from any suitable computer programming language such as, but not limited to, C, C++, C#, Java, JavaScript, Perl, HTML, XML, Python and Visual Basic.
  • Client device 110 may include one or more network interfaces 206.
  • a network interface 206 may include any type and form of interface, including Ethernet including 10 Base T, 100 Base T, or 1000 Base T (“Gigabit”); any of the varieties of 802.11 wireless, such as 802.11a, 802.11b, 802. l lg, 802.11h, or 802.11ac; cellular, including CDMA, LTE, 3G, or 4G cellular; Bluetooth or other short range wireless connections; or any combination of these or other interfaces for communicating with a network or other computing devices.
  • client device 110 may include a plurality of network interfaces 206 of different types, allowing for connections to a variety of networks, such as local area networks or wide area networks including the Internet, via different sub-networks.
  • Client device 110 may include one or more user interface or input/output devices 208.
  • a user interface device 208 may be any electronic device that conveys data to a user by generating sensory information (e.g., a visualization on a display 102, 102’, one or more sounds, tactile feedback, etc.) and/or converts received sensory information from a user into electronic signals (e.g., a keyboard, a mouse, a pointing device, a touch screen display, a microphone, etc.).
  • the one or more user interface devices may be internal to the housing of client device 110, such as a built-in display, touch screen, microphone, etc., or external to the housing of client device 110, such as a monitor connected to client device 110, a speaker connected to client device 110, etc., according to various implementations.
  • Client device 110 may include in memory 204 an application 210 or may execute an application 210 with a processor 202.
  • Application 210 may be an application, applet, script, service, daemon, routine, or other executable logic for receiving content and for transmitting responses, commands, or other data.
  • application 210 may be a web browser, while in another implementation, application 210 may be media presentation application.
  • Application 210 may include functionality for displaying content received via network interface 206 and/or generated locally by processor 202, and for transmitting interactions received via a user interface device 208, such as requests for websites, selections of survey response options, input text strings, etc.
  • application 210 may include a client agent 212.
  • Client agent 212 may include an application plug-in, application extension, subroutine, browser toolbar, daemon, or other executable logic for collecting data processed by application 210 and/or monitoring interactions of a user with an interface 208.
  • client agent 212 may be a separate application, service, daemon, routine, or other executable logic separate from application 210 but configured for intercepting and/or collecting data processed by application 210, such as a screen scraper, packet interceptor, API hooking process, or other such application.
  • Client agent 212 may be configured for intercepting or receiving data input via user interface device 208, including mouse clicks, scroll wheel movements, gestures such as swipes, pinches, or touches, or any other such interactions; as well as data received and processed by application 210 including content displayed or media played, duration of playback, as well as interactions with playback controls including pausing, resetting or restarting, fast forwarding, muting, or any other such interactions.
  • Client agent 212 may identify streamed multimedia content received by a client device, such as a television show, movie, song, music video, or other such content. Content may be identified based on identifier tags including ID3 tags or other such metadata, uniform resource locators (URLs) or uniform resource identifiers (URIs), filenames, captions, titles, or any other type and form of data accompanying the content. Client agent 212 may identify or track playback or view time durations or cumulative playback times of content items 110. Client agent 212 may compare the durations or playback times to predetermined thresholds and determine what content item 110 to insert at a next position 107 based on the comparison.
  • a client device such as a television show, movie, song, music video, or other such content.
  • Content may be identified based on identifier tags including ID3 tags or other such metadata, uniform resource locators (URLs) or uniform resource identifiers (URIs), filenames, captions, titles, or any other type and form of data accompanying the content.
  • Client 110 may include or be identified with a device identifier 214.
  • Device identifier 214 may include any type and form of identification, including without limitation a MAC address, text and/or numerical data string, a username, a cryptographic public key, cookies, device serial numbers, user profile data, network addresses, or any other such identifier that may be used to distinguish the client 110 from other clients 110.
  • a device identifier 214 may be associated with one or more other device identifiers 214 (e.g., a device identifier for a mobile device, a device identifier for a home computer, etc.).
  • the device identifier 214 may be cryptographically generated, encrypted, or otherwise obfuscated. In some
  • client 110 may include a session identifier 216, which may be similar to a device identifier 214 but generated more frequently, such as hourly, daily, upon activation of application 210, or any other such period.
  • Session identifiers 216 may be generated by a client device 110 or received from a server, content provider, or other device. Session identifiers 216 may be used in place of device identifiers 214 to increase anonymity, or may be used in connection with device identifiers 214 to distinguish interactions of one session from those of another session.
  • the virtual fulfillment center 120 may include one or more processors 202, memories 204, network interfaces 206, and user interfaces 208.
  • the virtual fulfillment center 120 may not include a user interface 208, but may communicate with another device with user interfaces 208 via a network.
  • the virtual fulfillment center 120 may include a store management engine 210, an e-commerce management engine 212, a shipping management engine 214, and a store repository 216 in memory 204.
  • the store management engine 210, e-commerce management engine 212, and shipping management engine 214 may each include an application, service, routine, server, daemon, or other executable logic for optimally selecting a physical store for filling online customer orders by executing method 300 shown in FIG. 3.
  • the inventory management system 144 includes one or more activity capture devices 220 and an inventory manager 222 communicatively coupled with the one or more activity capture devices 220.
  • the inventory management system 144 may be deployed in a physical store for monitoring the inventory of the physical store.
  • each of the one or more activity capture devices 220 may be deployed substantially adjacent to equipment storing the product items and configured to communicate with the inventory manager 222 to update the inventory in response to detecting a presence or absence of the product item, which shall be discussed in further detail below.
  • the inventory manager 222 may include one or more processors 202, memories 204, network interfaces 206, and user interfaces 208. In some implementations referred to as headless servers, the inventory manager 222 may not include a user interface 208, but may communicate with another device with user interfaces 208 via a network.
  • the inventory manager 222 may include a product activity monitor 224, an activity analysis engine 226, and an inventory repository 228 in memory 204.
  • the product activity monitor 224 and activity analysis engine 226 may each include an application, service, routine, server, daemon, or other executable logic for optimally selecting a physical store for filling online customer orders by executing method 400 shown in FIG. 4.
  • the activity capture device 220 which may comprise a still image or video camera that can be rotated, panned, etc., may be mounted at one or more locations within the physical store such as, for example, a shelf within the store that can store one or more product items.
  • the activity capture device may comprise a relatively mobile still image or video camera (e.g., a wireless camera) mounted on any of a number of movable objects including, but not limited to, fixed tracks that guide movement of the activity capture device, shopping or stocking carts, or even persons moving around the physical store.
  • a relatively mobile still image or video camera e.g., a wireless camera
  • FIG. 3 depicted is a flow diagram of one embodiment of a method 300 for optimally selecting a physical store to fulfill an online order, in accordance with some implementations.
  • the functionalities of the method 300 can be implemented using, or performed by, the components detailed herein in connection with FIGs. 1-2C.
  • the store management engine of a virtual fulfillment center can maintain a list of a number of physical stores associated with a merchant at 302. The list can include respective locations of the number of physical stores.
  • the store management engine can receive the respective store status information, which can include the respective inventory information, from the number of physical stores.
  • an e-commerce management engine of the virtual fulfillment center can receive the identification of an online order.
  • a shipping management engine of the virtual fulfillment center can calculate the respective fill rates of the number of physical stores.
  • the shipping management engine can determine whether any store present a fill rate that is lower than a threshold.
  • the shipping management engine can disregard the store(s) that present a fill rate lower than the threshold at 312, and proceed to 314 to compare the respective shopping costs, shipping delays, and/or fill rates of the remaining stores.
  • the shipping management engine can select a physical store to fulfill the online order.
  • the store management engine of the virtual fulfillment center can maintain, monitor, or store a list of a respective number of physical stores associated with one or more merchants at 302.
  • the physical stores can include any of a variety of stores that are capable of delivering the product items specified in an online order, which can include a warehouse (e.g., 130) and a B&M store (e.g., 134-142).
  • the merchant may periodically provide (e.g., update) such a list to the store management engine, e.g., every month, every quarter, every year, etc. Or the merchant may update the list in response to an event that the merchant has newly opened or closed a physical store. Additionally or alternatively, the store management engine may periodically send a request to the merchant to update the list.
  • the list can include various information regarding each of the physical stores such as, for example, the location (e.g., addresses) of each of the physical stores, the nearby traffic information of each of the physical stores, the number of carriers available to each of the physical stores, the respective distances between the available carrier facilities and each of the physical stores, etc.
  • the store management engine 210 can store the list in the store repository 216, and/or communicate with the server 102 to store the list in the database 108.
  • the store management engine can receive, maintain, or retrieve the respective store status information from the number of physical stores.
  • the store status information can include the respective inventory information of the physical stores.
  • the physical stores may periodically provide (e.g., update) such inventory information to the store management engine, e.g., every hour, every day, every week, etc. Additionally or alternatively, the store management engine may periodically send a request to each of the physical stores to retrieve the inventory information, e.g., every hour, every day, every week, etc.
  • each of the physical stores may use at least one inventory management system (e.g., 144) to provide the respective inventory information, which shall be discussed in further detail below with respect to FIG. 4.
  • the e-commerce management engine (e.g., 212) can receive the identification of an online order.
  • the e-commerce management engine may receive the identification of the online order from the client device 110 and through the server 102 that specifies one or more product items, the respective number of the one or more product items, one or more destination addresses (e.g., 150) to which the one or more product items are to be delivered, etc.
  • the shipping management engine (e.g., 214) can calculate the respective fill rates of the number of physical stores.
  • the e-commerce management engine may communicate with the shipping management engine to calculate the respective fill rates of the number of physical stores based on the online order.
  • the shipping management engine can communicate with the store repository (e.g., 216) to retrieve the respective inventory information to calculate each store’s fill rate.
  • the fill rate may be defined as the percentage of time that a store has been able to fill or fulfill a customer’s entire order, in accordance with some implementations.
  • the shipping management engine can calculate a respective fill rate of the one or more product items for each of the stores based on one or more previous online orders that include ordering of more than one of the similar product item, or calculate a respective fill rate based on whether each of the stores is capable of fulfilling the one or more product items in one shipment (e.g., has a enough number of the product items in the inventory).
  • an online order specifies 3 bottles of shampoo.
  • the shipping management engine can retrieve respective inventory information of the physical stores from the store repository to determine whether each of the physical stores has enough inventory to ship all 3 bottles of shampoo to the customer at the same time, i.e., without breaking up the order into multiple shipments. If a first store can do so, the shipping management engine may score the first store with a relatively high fill rate. On the other hand, if a second store cannot ship all 3 bottles to the customer at the same time, the shipping management engine may score the second store with a relatively low fill rate.
  • the shipping management engine may use multiple previous orders that have ordering of multiple similar or identical product items to periodically update each store’s fill rate for that particular product item.
  • the shipping management engine may update such a fill rate by averaging the respective fill rates of the multiple previous orders.
  • each store’s respective fill rate for the particular product item can be readily available.
  • the shipping management engine may rank the physical stores, in accordance with some implementations. If the shipping management engine determines that one or more stores that each presents a fill rate lower than a predefined threshold (310), the shipping management engine may disregard such store(s) at 312; if the shipping management engine determines that one or more stores that each presents a fill rate equal to or higher than the predefined threshold (310), the shipping management engine may keep such store(s) for further comparison at 314. In some implementations, the shipping management engine may recycle to use the disregarded store(s) after the comparison at 314, which shall be discussed in further detail below.
  • the shipping management engine can calculate, estimate, or predict the respective shipping costs and shipping delays of the remaining stores and further compare the shopping costs, shipping delays, and/or fill rates of the remaining stores.
  • the shipping management engine can communicate with the store repository to calculate the shipping costs and delays of the remaining stores based on the destination address and various information that the store management engine 210 stores in the store repository.
  • the shipping management engine can communicate with the store repository to calculate the shipping costs and delays of all the stores and disregard those stores presenting fill rates lower than the threshold.
  • the shipping management engine can retrieve from the store repository various information such as, for example, information regarding the location of each of the physical stores, information regarding the traffic near each of the physical stores, information regarding the weather near each of the physical stores, information regarding one or more upcoming and/or happening events (e.g., a festival, a construction event, a closed road, etc.) near each of the physical stores, information regarding the number of carriers available to each of the physical stores, and information regarding the respective distances between the available carrier facilities and each of the physical stores.
  • the shipping management engine can estimate the shipping cost and shipping delay to deliver the product items specified in the online order from each of the stores to the destination address.
  • the shipping management engine may compare the stores’ shipping costs and delays to select one store to fulfill the online order.
  • the shipping management engine may select the store that presents the least shopping cost and shortest shipping delay.
  • the shipping management store may select a physical store that can present the least shipping cost and shortest shipping delay among the physical stores but is not necessarily closet to the destination address.
  • the shipping management engine may of the virtual fulfillment center 120 can select the physical store 134 to fulfill an online order specifying the destination address 150 because the physical store 134 presents the least shipping cost and shortest shipping delay even though the physical store 142 is closer to the physical address 150.
  • the shipping management engine may select the store by prioritizing the shopping cost over shipping delay, or the shipping delay over the shopping cost. Such a preference may be specified in the online order prior to the shipping
  • the shipping management engine calculating the shipping delays and costs, or may presented to the client device (e.g., 110) through the e-commerce application subsequently to the shipping management engine calculating the shipping delays and costs. In some cases, the shipping management engine may also reuse the disregarded stores to calculate respective shipping costs and delays for making a selection.
  • the shipping management engine may filter out store A because the fill rate even is less than a threshold (e.g., 50%) even though store A presents the lowest shopping cost and shortest shipping delay. As such, the shipping management engine may select store B, which presents the lowest shopping cost and shortest shipping delay among the remaining stores, to fulfill the order. In another example, even though the shipping management engine filters out store A, the shipping management engine may reuse and select store A to fulfill the order because store A presents the lowest shopping cost and shortest shipping delay across all the stores. In some implementations, the shipping management engine may use these three parameters (the shipping cost, the shipping delay, and the fill rate) to calculate a normalized score for all the stores using a predefined algorithm. Specifically, such an algorithm can have a weight for each of the parameters.
  • a threshold e.g. 50%
  • the shipping management engine may select store B, which presents the lowest shopping cost and shortest shipping delay among the remaining stores, to fulfill the order.
  • the shipping management engine may reuse and select store A to fulfill the order because store A presents the lowest shopping cost and
  • the shipping management engine may use various other parameters that can dynamically change over time to select a store to fulfill the order.
  • the store management engine may monitor, detect, or otherwise manage such dynamically changing parameters of each communicatively coupled stores.
  • the dynamically changing parameter of a store can include at least one of the following: whether an order assigned to the store for fulfilling needs to be reassigned to another store, a frequency by which such a reassignment occurs to the store, and real-time changing capacities (e.g., a shipping capacity, a human resource capacity, etc.) of the store.
  • the shipping management engine can additionally or alternatively use the parameters to select a store to fulfill the order.
  • the shipping management engine may concurrently receive a number of orders.
  • the shipping management engine may use one or more of the above-described parameters to optimally select a respective store to fulfill each of the orders. For example, when the shipping management engine receives two orders (e.g., order 1 and order 2) to be fulfilled, the shipping management engine may first determine stores (e.g., store A and store B) from a number of candidate stores to fulfill order 1 and order 2, respectively, based on the respective parameters of shipping costs, shipping delays, and fill rate of the candidate stores. Further, the shipping management engine may take into account the dynamically changing parameters, as mentioned above, of store A and store B to replace store A with store B to fulfill order 1, and replace store B with store A to fulfill order 2.
  • stores e.g., store A and store B
  • the activity capture device of an inventory management system can identify a shelf at 402.
  • the activity capture device can identify an item to be placed on the shelf.
  • the activity capture device can capture an image of the item and/or shelf.
  • an activity analysis engine of the inventory management system can compare the dimensions of the captured image and pre-calibrated dimensions of the shelf. If dimensions have been changed at 410, the activity analysis engine can update inventory information of the physical store; and if dimensions have not been changed at 410, the activity analysis engine may maintain the current inventory information.
  • the activity capture device (e.g., 220) can identify a shelf within a physical store at 402.
  • the activity capture device may be mounted at one or more locations within the physical store such as, for example, a shelf within the store that can store one or more inventory items.
  • the activity capture device can capture one or more images of the shelf and communicate the one or more captured images with the activity analysis engine (e.g.,
  • the activity analysis engine can determine the dimensions of the shelf when the shelf is empty (e.g., when no product items are placed on the shell).
  • the activity capture device can identify a product item to be placed on the shelf.
  • the activity capture device may cause the activity analysis engine to identify the product item based on an identification associated with the product item such as, for example, a one- or two-dimensional bar code attached to the product item.
  • the activity capture device can capture (e.g., scan) one or more images of the bar code and communicate the one or more images with the activity analysis engine to identify the product item.
  • the activity analysis engine can determine the dimensions of the product item according to the one or more captured images of the product item, in accordance with some implementations.
  • the activity capture device can capture one or more images of the product item and/or shelf.
  • the activity analysis engine can cause the activity capture device to capture one or more images of the shelf, which may or may not have the product item placed thereon.
  • the activity analysis engine can again determine the dimensions of the shelf to detect, compare, or otherwise monitor whether such later determined dimensions of the shelf are different from the dimensions of the shelf that was previously determined, for example, at 402.
  • the activity analysis engine may update the inventory information in the inventory repository (410); and if the activity analysis engine determines that the dimensions of the shelf has not changed, the activity analysis engine may maintain the current inventory information in the inventory repository (412).
  • the activity analysis engine may determine an absence of one or more of the product items that were placed on the shelf by detecting a change in the dimensions of the captured image(s) of the shelf. Upon determining such an absence, the activity analysis engine can update the inventory repository accordingly.
  • the activity analysis engine may periodically cause the activity capture device to capture the images of the shelf. As such, the activity analysis engine can periodically (e.g., every 5 minutes, every hour, etc.) determine whether the inventory information needs to be updated or maintained.
  • the inventory management system 144 may iteratively perform operations 406, 408, and 410 or 412. The current inventory can be provided manually by employee(s) of the physical store or automatically or semi-automatically by utilizing the inventory management system 144.
  • Implementations of the subject matter and the operations described in this specification can be implemented in digital electronic circuitry, or in computer software, firmware, or hardware, including the structures disclosed in this specification and their structural equivalents, or in combinations of one or more of them.
  • Implementations of the subject matter described in this specification can be implemented as one or more computer programs, i.e., one or more modules of computer program instructions, encoded on one or more computer storage medium for execution by, or to control the operation of, data processing apparatus.
  • the program instructions can be encoded on an artificially-generated propagated signal, e.g., a machine-generated electrical, optical, or electromagnetic signal, that is generated to encode information for transmission to suitable receiver apparatus for execution by a data processing apparatus.
  • a computer storage medium can be, or be included in, a computer-readable storage device, a computer-readable storage substrate, a random or serial access memory array or device, or a combination of one or more of them.
  • a computer storage medium is not a propagated signal, a computer storage medium can be a source or destination of computer program instructions encoded in an artificially generated propagated signal.
  • the computer storage medium can also be, or be included in, one or more separate components or media (e.g., multiple CDs, disks, or other storage devices). Accordingly, the computer storage medium may be tangible.
  • the term“client or“server” include all kinds of apparatus, devices, and machines for processing data, including a programmable processor, a computer, a system on a chip, or multiple ones or combinations, of the foregoing.
  • the apparatus can include special purpose logic circuitry, e.g., an FPGA (field programmable gate array) or an ASIC (application specific integrated circuit).
  • the apparatus can also include, in addition to hardware, code that creates an execution environment for the computer program in question, e.g., code that constitutes processor firmware, a protocol stack, a database management system, an operating system, a cross-platform runtime environment, a virtual machine, or a combination of one or more of them.
  • the apparatus and execution environment can realize various different computing model infrastructures, such as web services, distributed computing and grid computing infrastructures.
  • a computer program (also known as a program, software, software application, script, or code) can be written in any form of programming language, including compiled or interpreted languages, declarative or procedural languages, and it can be deployed in any form, including as a stand-alone program or as a module, component, subroutine, object, or other unit suitable for use in a computing environment.
  • a computer program may, but need not, correspond to a file in a file system.
  • a program can be stored in a portion of a file that holds other programs or data (e.g., one or more scripts stored in a markup language document), in a single file dedicated to the program in question, or in multiple coordinated files (e.g., files that store one or more modules, sub programs, or portions of code).
  • a computer program can be deployed to be executed on one computer or on multiple computers that are located at one site or distributed across multiple sites and interconnected by a communication network.
  • the processes and logic flows described in this specification can be performed by one or more programmable processors executing one or more computer programs to perform actions by operating on input data and generating output.
  • the processes and logic flows can also be performed by, and apparatus can also be implemented as, special purpose logic circuitry, e.g., a System on a Chip (SOC), a field programmable gate array (FPGA), or an application specific integrated circuit (ASIC).
  • SOC System on a Chip
  • FPGA field programmable gate array
  • ASIC application specific integrated circuit
  • processors suitable for the execution of a computer program include both general and special purpose microprocessors, and any one or more processors of any kind of digital computer.
  • a processor will receive instructions and data from a read only memory or a random access memory or both.
  • the essential elements of a computer are a processor for performing actions in accordance with instructions and one or more memory devices for storing instructions and data.
  • a computer will also include, or be operatively coupled to receive data from or transfer data to, or both, one or more mass storage devices for storing data, e.g., magnetic, magneto optical disks, or optical disks.
  • mass storage devices for storing data, e.g., magnetic, magneto optical disks, or optical disks.
  • a computer need not have such devices.
  • a computer can be embedded in another device, e.g., a mobile telephone, a personal digital assistant (PDA), a mobile audio or video player, a game console, a Global Positioning System (GPS) receiver, or a portable storage device (e.g., a universal serial bus (USB) flash drive), to name just a few.
  • Devices suitable for storing computer program instructions and data include all forms of non-volatile memory, media and memory devices, including semiconductor memory devices, e.g., EPROM, EEPROM, and flash memory devices; magnetic disks, e.g., internal hard disks or removable disks; magneto optical disks; and CD ROM and DVD-ROM disks.
  • the processor and the memory can be supplemented by, or incorporated in, special purpose logic circuitry.
  • implementations of the subject matter described in this specification can be implemented on a computer having a display device, e.g., a cathode ray tube (CRT), liquid crystal display (LCD), organic light emitting diode (OLED), thin-film transistor (TFT), plasma, other flexible configuration, or any other monitor for displaying information to the user and a keyboard, a pointing device, e.g., a mouse, trackball, etc., or a touch screen, touch pad, etc., by which the user can provide input to the computer.
  • a display device e.g., a cathode ray tube (CRT), liquid crystal display (LCD), organic light emitting diode (OLED), thin-film transistor (TFT), plasma, other flexible configuration, or any other monitor for displaying information to the user and a keyboard, a pointing device, e.g., a mouse, trackball, etc., or a touch screen, touch pad, etc., by which the user can provide input to the computer.
  • a computer can interact with a user by sending documents to and receiving documents from a device that is used by the user; e.g., by sending webpages to a web browser on a user’s client device in response to requests received from the web browser.
  • Implementations of the subject mater described in this specification can be implemented in a computing system that includes a back end component, e.g., as a data server, or that includes a middleware component, e.g., an application server, or that includes a front end component, e.g., a client computer having a graphical user interface or a Web browser through which a user can interact with an implementation of the subject mater described in this specification, or any combination of one or more such back end, middleware, or front end components.
  • the components of the system can be interconnected by any form or medium of digital data communication, e.g., a communication network.
  • Communication networks can include various combinations of a local area network (“LAN”), a wide area network (“WAN”), an inter-network (e.g., the Internet), and peer-to-peer networks (e.g., ad hoc peer-to-peer networks).
  • LAN local area network
  • WAN wide area network
  • inter-network e.g., the Internet
  • peer-to-peer networks e.g., ad hoc peer-to-peer networks.
  • combination may be directed to a subcombination or variation of a subcombination.

Landscapes

  • Business, Economics & Management (AREA)
  • Engineering & Computer Science (AREA)
  • Economics (AREA)
  • Quality & Reliability (AREA)
  • Tourism & Hospitality (AREA)
  • Human Resources & Organizations (AREA)
  • Marketing (AREA)
  • Operations Research (AREA)
  • Development Economics (AREA)
  • Strategic Management (AREA)
  • Entrepreneurship & Innovation (AREA)
  • Physics & Mathematics (AREA)
  • General Business, Economics & Management (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Accounting & Taxation (AREA)
  • Finance (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Abstract

A method for optimally selecting a physical store to fulfill an online order is disclosed. The method includes maintaining a physical store repository that includes respective locations of multiple physical stores associated with one or more merchants and respective store status information of the physical stores. The method includes receiving an identification to an online customer order of items for delivery to a shipping address. The method includes determining respective shipping costs and shipping delays to ship the product items from the physical stores to the shipping address. The method includes comparing the respective shipping costs and shipping delays associated with the physical stores. The method includes causing the product items of the online customer order to be shipped from a first physical store, responsive to determining that the first physical presents a least shipping cost and a shortest shipping delay among physical stores.

Description

SYSTEMS AND METHODS FOR SELECTING PHYSICAL STORES TO
FULFILL ORDERS
BACKGROUND
[0001] For a merchant who sells products in a number of physical stores (e.g., brick and mortar (B&M) stores), the merchant may find difficulty to leverage the inventories of respective physical stores for fulfilling an order that occurs in a networked environment (e.g., through an e-commerce website).
SUMMARY
[0002] Aspects of the present disclosure relate generally to a fulfillment of an online order, and more particularly, to optimally selecting one of a number of physical stores of a merchant to fulfill an online order.
[0003] One implementation disclosed herein is a method for optimally selecting a physical store for filling online customer orders using a virtual fulfillment center. The method includes receiving, by one or more data processors, a list of a number of physical stores associated with a merchant, the list including respective locations of the number physical stores. The method includes transmitting, by the one or more data processors, a request to each of the physical stores for store status information. The request can cause each of the physical stores to generate inventory information by detecting, via one or more cameras, a presence of one or more product items on one or more shelves, and transmit store status information to the one or more data processors. The store status information including the inventory information. The method includes receiving, by the one or more data processors, an identification to an online customer order of one or more product items for delivery to a shipping address. The method includes determining, by the one or more data processors, respective shipping costs and shipping delays to ship the one or more product items from the number of physical stores to the shipping address. The method include selecting, by the one or more data processors, a first physical store from the number of physical stores by comparing the respective shipping costs and shipping delays associated with the number of physical stores. The method includes causing, by the one or more data processors, the one or more product items of the online customer order to be shipped from the first physical store.
[0004] In some implementations, selecting a first physical store from the plurality of physical stores further includes determining a least shipping cost and a shortest shipping delay, associated with the first physical store, from the respective shipping costs and shipping delays of the plurality of physical stores.
[0005] In some implementations, the store status information includes at least one of staffing information, calendar information, and operation information of each of the plurality of physical stores.
[0006] In some implementations, the method further includes in response to receiving the inventory information of the plurality of physical stores, calculating respective fill rates of the one or more product items for the plurality of physical stores. The calculation of the fill rates is based on one or more previous online customer orders including ordering more than 1 of the product item. The fill rate information indicates a percentage of time that each of the plurality of physical stores can fulfill each of the one or more previous online customer orders.
[0007] In some implementations, selecting a first physical store from the plurality of physical stores further includes determining whether respective fill rates of the one or more product items for the plurality of physical stores are greater than a predefined threshold. The selection step further includes disregarding one or more of the plurality of physical stores that are associated with fill rates not greater than the predefined threshold. The selection step further includes determining a highest fill rate to select the first physical store.
[0008] In some implementations, a first distance between the shipping address and the location corresponding to the first physical store is greater than a second distance between the shipping address and the location corresponding to a second physical store of the plurality of physical stores.
[0009] In some implementations, the method further includes periodically receiving the inventory information from each of the plurality of physical stores.
[0010] In another aspect, the present disclosure is directed to a system for optimally selecting a physical store for filling online customer orders. The system includes a virtual fulfillment center. The virtual fulfillment center can receive, from a merchant, a list of a plurality of physical stores associated with the merchant, the list including respective locations of the plurality of physical stores. The virtual fulfillment center can transmit a request to each of the plurality of physical stores for store status information. The request can cause each of plurality of physical stores to generate inventory information by detecting, via one or more cameras, a presence of one or more product items on one or more shelves; and transmit store status information to the one or more data processors, the store status information including the inventory information. The virtual fulfillment center can receive, from an e-commerce application, an identification to an online customer order of one or more product items for delivery to a shipping address. The virtual fulfillment center can determine respective shipping costs and shipping delays to ship the one or more product items from the plurality of physical stores to the shipping address. The virtual fulfillment center can select a first physical store from the plurality of physical stores by comparing the respective shipping costs and shipping delays associated with the plurality of physical stores. The virtual fulfillment center can cause the one or more product items of the online customer order to be shipped from the first physical store.
[0011] In some implementations, the virtual fulfillment center can further determine a least shipping cost and a shortest shipping delay, associated with the first physical store, from the respective shipping costs and shipping delays of the plurality of physical stores.
[0012] In some implementations, the store status information includes at least one of staffing information, calendar information, and operation information of each of the plurality of physical stores.
[0013] In some implementations, the virtual fulfillment center can calculate respective fill rates of the one or more product items for the plurality of physical stores based on one or more previous online customer orders including ordering more than 1 of the product item, responsive to receiving the inventory information of the plurality of physical stores. The fill rate information indicates a percentage of time that each of the plurality of physical stores can fulfill each of the one or more previous online customer orders.
[0014] In some implementations, the virtual fulfillment center can further determine whether respective fill rates of the one or more product items for the plurality of physical stores are greater than a predefined threshold. The virtual fulfillment center can further disregard one or more of the plurality of physical stores that are associated with fill rates not greater than the predefined threshold. The virtual fulfillment center can further determine a highest fill rate to select the first physical store.
[0015] In some implementations, a first distance between the shipping address and the location corresponding to the first physical store is greater than a second distance between the shipping address and the location corresponding to a second physical store of the plurality of physical stores.
[0016] In some implementations, the virtual fulfillment center can further periodically receive the inventory information from each of the plurality of physical stores.
[0017] In yet another aspect, the present disclosure is directed to a method for optimally selecting a physical store for filling online customer orders. The method includes maintaining, by one or more data processors, a physical store repository. The physical store repository includes respective locations of a plurality of physical stores associated with one or more merchants and respective store status information of the plurality of physical stores. The method includes receiving, by the one or more data processors, an identification to an online customer order of a plurality of product items for delivery to a shipping address. The method includes determining, by the one or more data processors, respective shipping costs and shipping delays to ship the plurality of product items from the plurality of physical stores to the shipping address. The method include comparing, by the one or more data processors, the respective shipping costs and shipping delays associated with the plurality of physical stores. The method includes causing, by the one or more data processors, the one or more product items of the online customer order to be shipped from a first physical store of the plurality of physical stores, responsive to determining that the first physical store is in association with a least shipping cost and a shortest shipping delay among the respective shipping costs and shipping delays of the plurality of physical stores.
[0018] In some implementations, maintaining a physical store repository further includes transmitting, by the one or more data processors, a request to each of the plurality of physical stores for store status information. The request can cause each of plurality of physical stores to generate inventory information by detecting, via one or more cameras, a presence of one or more product items on one or more shelves; and transmit store status information to the one or more data processors. In some implementations, the store status information includes the inventory information.
[0019] In some implementations, the store status information includes at least one of staffing information, calendar information, and operation information of each of the plurality of physical stores.
[0020] In some implementations, the method further includes responsive to receiving the store status information of the plurality of physical stores, calculating respective fill rates of the one or more product items for the plurality of physical stores based on one or more previous online customer orders including ordering more than 1 of the product item. The fill rate information indicates a percentage of time that each of the plurality of physical stores can fulfill each of the one or more previous online customer orders.
[0021] In some implementations, causing the one or more product items of the online customer order to be shipped from a first physical store of the plurality of physical stores further includes determining whether respective fill rates of the one or more product items for the plurality of physical stores are greater than a predefined threshold. Such a step further includes disregarding one or more of the plurality of physical stores that are associated with fill rates not greater than the predefined threshold, and determining a highest fill rate to select the first physical store.
[0022] In some implementations, a first distance between the shipping address and the location corresponding to the first physical store is greater than a second distance between the shipping address and the location corresponding to a second physical store of the plurality of physical stores.
BRIEF DESCRIPTION OF THE DRAWINGS
[0023] The details of one or more implementations are set forth in the accompanying drawings and the description below. Other features, aspects, and advantages of the disclosure will become apparent from the description, the drawings, and the claims, in which:
[0024] FIG. 1 is a block diagram of a shopping system, according to one implementation.
[0025] FIG. 2A is a block diagram of a client device of the shopping system of FIG. 1, according to one implementation; [0026] FIG. 2B is a block diagram of a virtual fulfillment center of the shopping system of FIG. 1, according to one implementation;
[0027] FIG. 2C is a block diagram of an inventory management system deployed in a physical store of the shopping system of FIG. 1, according to one implementation;
[0028] FIG. 3 is a flow chart of an exemplary method used by the virtual fulfillment center of FIG. 2B to optimally select a physical store to fulfill an online order, according to one implementation; and
[0029] FIG. 4 is a flow diagram of an exemplary method used by the inventory management system of FIG. 2C to manage the inventory of a physical store, according to one implementation.
[0030] Like reference numbers and designations in the various drawings indicate like elements.
DETAILED DESCRIPTION
[0031] When a customer places an order through an e-commerce website of a merchant (e.g., Target, Walmart, Amazon), the order gets routed to an e-commerce fulfillment center, which is a physical warehouse dedicated to receiving e-commerce orders. For example, Walmart, Target, and Amazon have about 10-12, 7-8, and 70 of such physical fulfillment centers, respectively, around the country. These fulfillment centers require significant time and money to design and build. For at least this reason, a retailer or merchant may deploy many physical stores, sometimes referred to as brick and mortar (“B&M”) stores, throughout a geographic area (e.g., across the United States), but only have a few physical fulfillment centers to fill the e-commerce orders. Therefore, when a customer places an order on an e- commerce website, the order is rarely routed to the nearest B&M store in his/her
neighborhood that could possibly deliver an item of the order to the customer with little delay (e.g., overnight). Instead, the order is often routed to one of the merchant’s few physical fulfillment centers distant from the customer, which results in long shipping delays to the customer and/or high shipping cost to the merchant (or passed to the customer).
[0032] Furthermore, the fulfillment selection process is not optimized to select the best (e.g., geographically closest, most suited/equipped to fulfill the order, etc.) fulfillment center for a particular customer. Rather, a system, used by the merchant, just randomly sends the order to any of the physical fulfillment centers without taking in consideration that there may exists a B&M store owned by the merchant that is closer to the customer, which explains why it may take 5 days to get an item to a customer even though there may be a B&M store just a couple miles down the street from the customer.
[0033] The present disclosure provides various embodiments of a shopping system that includes a virtual fulfillment center (VFC) for one or more merchant members. In some implementations, the VFC can allow a best store from a number of physical stores (e.g.,
B&M stores, physical fulfillment centers) of each of the one or more merchant members to be selected to receive the customer’s order, which can result in the least shipping delay and lowest shipping cost when distributing product items to customers. For example, a merchant provides the disclosed VFC with a list of 50 (or any subset size of stores) of their B&M stores dispersed around the country (this is a small number because Walmart and Target each have -1500 stores). The VFC can make these 50 stores look like one giant fulfillment center that is located optimally to almost everybody in the country, so that a customer can get their items with the least shipping delay (in many instance, the customer receives their items overnight) and the merchant incurs the least shipping cost, without trading-off one or the other.
[0034] In some implementations, the VFC can be optimized to achieve the least shipping delay to the customer and lowest shipping cost to the merchant by adjusting and accounting for a variety of parameters. For example, the VFC may take into account: a physical store’s inventory; a physical store’s average“fill rate” over a certain period of time; a geographic distance between the customer and one of the physical stores; whether a physical store has optimal man-power/staffmg (e.g., labor capacity to fill the order); whether a physical store operations are running smoothly; whether a physical store has a calendar event/holiday that may interrupt normal store hours, etc. It is understood that the listing of parameters are not limiting, and can include any of various other store status information while remaining within the scope of the present disclosure.
[0035] In some implementations, the fill rate can be the percentage of time that a store was able to fill a customer’s entire order. For example, a customer orders 3 bottles of shampoo. If the physical store that receives the order has enough inventory to ship all 3 bottles to the customer at the same time, i.e., without breaking up the order into multiple shipments, the VFC may score such a fulfillment with a relatively high fill rate. On the other hand, if the physical store cannot ship all 3 bottles to the customer at the same time, the VFC may score the fulfillment with a relatively low fill rate.
[0036] To provide an accurate inventory and/or determine such a fill rate for a physical store, the inventory of the physical store may be required to be up-to-date. A merchant of a physical store, however, may have difficulty in accurately tracking the inventory in real-time or keeping the inventory up-to-date. For example, a merchant may have a general idea of their inventory, but tracking/updating their inventory in real-time is difficult because customers are entering in a front door of the physical store to purchase product items and vendors (e.g., Coke, Johnson & Johnson) are delivering product items in a back door of the physical store. Therefore, the product items are constantly moving in and out of the physical store, but merchants only consolidate their inventory 1-2 times per day - generally after store hours.
[0037] In this regard, the disclosed shopping system include one or more inventory manager systems deployed in each of the physical stores of the one or more merchants. In some implementations, the inventory manager system can include one or more cameras placed in front of the shelf at a merchant’s physical store. The camera can first read the barcode of a product item on a shelf to determine what product items are reserved for that particular shelf - this can be done by reading the barcode of a product item at a time when the shelf has the product item. After identifying the product item, for example, the camera can then determine if at least one product item is on the shelf by determining the physical dimensions of the empty shelf (maybe the camera scans the shelf and calculates the dimensions when the shelf is empty, and/or receives dimension information from the merchant ahead of time). In another example, the camera can then determine if at least one product item is on the shelf by determining that the physical dimensions have changed by the presence of at least one product item on the shelf. In some implementations, the camera does not count the inventory. Instead, the camera may determine if the merchant has the product item or does not have the product item.
[0038] Referring to FIG. 1, a shopping system 100 to optimally select a physical store for filling online customer orders is shown, in accordance with some implementations. In the illustrated example of FIG. 1, the shopping system 100 can be associated with (e.g., used by) a merchant. However, the shopping system 100 can be associated with any number of merchants while remaining within the scope of the present disclosure. The merchant(s) may sell product items through brick and mortar (B&M) stores, through telephone or catalog sales, and may also sell product items online via a presence on the Internet or other network, which shall be described below.
[0039] As shown in FIG. 1, the shopping system 100 includes one or more servers 102 upon which various applications can be executed such as, for example, one or more e- commerce applications 104, one or more web server applications 106, and a database 108. One or more client devices 110 can access, communicate with, or otherwise interact with the server 102 via one or more networks 111. The network 111 may include, for example, the Internet, intranets, wide area networks (WANs), local area networks, wireless networks, or other suitable networks, etc., or any combination of two or more such networks.
[0040] In some implementations, the e-commerce application 104 can be executed in order to facilitate an online purchase of product items over various networks such as, for example, the Internet or other network as can be appreciated. The e-commerce application 104 can also perform various back-end functions associated with the online presence of a merchant in order to facilitate the online purchase of items. For example, the e-commerce application 104 may generate network pages such as web pages or other types of network content that is provided to a client device 110.
[0041] In some implementations, the Web server application 106 can include various applications that facilitate access to the e-commerce application 104 on behalf of the client device 110. Web server application 106 may facilitate browser access to the e-commerce application 104. Alternatively, other applications may be employed beyond a web application.
[0042] The e-commerce application 104 can provide the client device 110 with network content in response to requests received from the client device 110 in the server 102 when interaction occurs between the e-commerce application 104 and the client device 110, for example, when the client device 110 navigates through the various pages of a network site associated with the online presence of a merchant. The e-commerce application 104 may dynamically generate such network pages using information in the database 108 or information obtained from other locations as can be appreciated. In some implementations, the Web server application 106 can be an example of a server application that acts as a portal through which the client device 110 sends requests that are processed by the e-commerce application 104. The responses to the client requests generated by the e-commerce application 104 can be received by the client device 110 from the e-commerce application 104 through the Web server application 106.
[0043] The database 108 may store various data such as, for example, information relating to product items offered for sale to those who would manipulate the client device 110 such as, for example, product item information, product item pricing, the availability of the product item (in terms of quantities available), the lead times within which such items can be shipped or otherwise made available to the purchaser, and other information. Further, the database 108 may include various store status information stored in the store repository of a virtual fulfillment center, which shall be discussed in further detail below.
[0044] In some implementations, the shopping system 100 further include a virtual fulfillment center 120, and one or more physical stores or centers, for example, a physical fulfillment center 130, and physical stores 134, 138, and 142. The virtual fulfillment center 120 can communicate with the server 102 (e.g., the e-commerce application 104) to receive the identification of an online order from the client device 110, provide various store status information to the e-commerce application 104 for presenting to the client device 110, etc., via a network 121. The network 121 may include, for example, the Internet, intranets, wide area networks (WANs), local area networks, wireless networks, or other suitable networks, etc., or any combination of two or more such networks.
[0045] The physical stores 130-142 may be managed (e.g., owned) by one or more merchants that manage or use the server 102. In some implementations, each of the physical stores 130-142 may have a capability to deliver one or more product items to a physical address designated by an online order from the client device 110 (e.g., physical address 150) upon interacting with the virtual fulfillment center 120, which shall be discussed in further detail below. For example, the physical fulfillment center 130 and the physical stores 134- 142 may each have facilities to pack and ship items to a destination address via a public carrier. In some implementations, the physical fulfillment center 130 may be one of a number of warehouses, which are distributed over a certain geographic area relatively sparsely; and the physical stores 134-142 may be B&M stores, which are distributed over the geographic area relatively densely. [0046] Referring still to FIG. 1, and in greater detail, the shopping system 100 includes a number of inventory management systems 144 deployed in respective physical stores 130- 142, in accordance with some implementations. As shall be discussed in further detail below, such an inventory management system 144 can communicate with the virtual fulfillment center 120 to update the store status information of respective physical store via a respective network (not shown). Similarly, such a network may include, for example, the Internet, intranets, wide area networks (WANs), local area networks, wireless networks, or other suitable networks, etc., or any combination of two or more such networks.
[0047] Referring to FIG. 2A, depicted is a block diagram of one implementation of the client device 110. Client device 110 may be any number of different types of user electronic devices configured to communicate via a network, including without limitation, a laptop computer, a desktop computer, a tablet computer, a smartphone, a digital video recorder, a set-top box for a television, a video game console, or any other type and form of computing device or combinations of devices. In some implementations, the type of client device 110 may be categorized as a mobile device, a desktop device or a device intended to remain stationary or configured to primarily access a network via a local area network, or another category of electronic devices such as a media consumption device.
[0048] In many implementations, client device 110 includes a processor 202 and a memory 204. Memory 204 may store machine instructions that, when executed by processor 202 cause processor 202 to perform one or more of the operations described herein.
Processor 202 may include a microprocessor, ASIC, FPGA, etc., or combinations thereof. In many implementations, processor 202 may be a multi-core processor or an array of processors. Memory 202 may include, but is not limited to, electronic, optical, magnetic, or any other storage devices capable of providing processor 202 with program instructions. Memory 202 may include a floppy disk, CD-ROM, DVD, magnetic disk, memory chip, ROM, RAM, EEPROM, EPROM, flash memory, optical media, or any other suitable memory from which processor 202 can read instructions. The instructions may include code from any suitable computer programming language such as, but not limited to, C, C++, C#, Java, JavaScript, Perl, HTML, XML, Python and Visual Basic.
[0049] Client device 110 may include one or more network interfaces 206. A network interface 206 may include any type and form of interface, including Ethernet including 10 Base T, 100 Base T, or 1000 Base T (“Gigabit”); any of the varieties of 802.11 wireless, such as 802.11a, 802.11b, 802. l lg, 802.11h, or 802.11ac; cellular, including CDMA, LTE, 3G, or 4G cellular; Bluetooth or other short range wireless connections; or any combination of these or other interfaces for communicating with a network or other computing devices. In many implementations, client device 110 may include a plurality of network interfaces 206 of different types, allowing for connections to a variety of networks, such as local area networks or wide area networks including the Internet, via different sub-networks.
[0050] Client device 110 may include one or more user interface or input/output devices 208. A user interface device 208 may be any electronic device that conveys data to a user by generating sensory information (e.g., a visualization on a display 102, 102’, one or more sounds, tactile feedback, etc.) and/or converts received sensory information from a user into electronic signals (e.g., a keyboard, a mouse, a pointing device, a touch screen display, a microphone, etc.). The one or more user interface devices may be internal to the housing of client device 110, such as a built-in display, touch screen, microphone, etc., or external to the housing of client device 110, such as a monitor connected to client device 110, a speaker connected to client device 110, etc., according to various implementations.
[0051] Client device 110 may include in memory 204 an application 210 or may execute an application 210 with a processor 202. Application 210 may be an application, applet, script, service, daemon, routine, or other executable logic for receiving content and for transmitting responses, commands, or other data. In one implementation, application 210 may be a web browser, while in another implementation, application 210 may be media presentation application. Application 210 may include functionality for displaying content received via network interface 206 and/or generated locally by processor 202, and for transmitting interactions received via a user interface device 208, such as requests for websites, selections of survey response options, input text strings, etc.
[0052] In some implementations, application 210 may include a client agent 212. Client agent 212 may include an application plug-in, application extension, subroutine, browser toolbar, daemon, or other executable logic for collecting data processed by application 210 and/or monitoring interactions of a user with an interface 208. In other implementations, client agent 212 may be a separate application, service, daemon, routine, or other executable logic separate from application 210 but configured for intercepting and/or collecting data processed by application 210, such as a screen scraper, packet interceptor, API hooking process, or other such application. Client agent 212 may be configured for intercepting or receiving data input via user interface device 208, including mouse clicks, scroll wheel movements, gestures such as swipes, pinches, or touches, or any other such interactions; as well as data received and processed by application 210 including content displayed or media played, duration of playback, as well as interactions with playback controls including pausing, resetting or restarting, fast forwarding, muting, or any other such interactions..
Client agent 212 may identify streamed multimedia content received by a client device, such as a television show, movie, song, music video, or other such content. Content may be identified based on identifier tags including ID3 tags or other such metadata, uniform resource locators (URLs) or uniform resource identifiers (URIs), filenames, captions, titles, or any other type and form of data accompanying the content. Client agent 212 may identify or track playback or view time durations or cumulative playback times of content items 110. Client agent 212 may compare the durations or playback times to predetermined thresholds and determine what content item 110 to insert at a next position 107 based on the comparison.
[0053] Client 110 may include or be identified with a device identifier 214. Device identifier 214 may include any type and form of identification, including without limitation a MAC address, text and/or numerical data string, a username, a cryptographic public key, cookies, device serial numbers, user profile data, network addresses, or any other such identifier that may be used to distinguish the client 110 from other clients 110. In some implementations, a device identifier 214 may be associated with one or more other device identifiers 214 (e.g., a device identifier for a mobile device, a device identifier for a home computer, etc.). In many implementations, to preserve privacy, the device identifier 214 may be cryptographically generated, encrypted, or otherwise obfuscated. In some
implementations, client 110 may include a session identifier 216, which may be similar to a device identifier 214 but generated more frequently, such as hourly, daily, upon activation of application 210, or any other such period. Session identifiers 216 may be generated by a client device 110 or received from a server, content provider, or other device. Session identifiers 216 may be used in place of device identifiers 214 to increase anonymity, or may be used in connection with device identifiers 214 to distinguish interactions of one session from those of another session.
[0054] Referring to FIG. 2B, depicted is a block diagram of one implementation of the virtual fulfillment center 120. As with client device 110, the virtual fulfillment center 120 may include one or more processors 202, memories 204, network interfaces 206, and user interfaces 208. In some implementations referred to as headless servers, the virtual fulfillment center 120 may not include a user interface 208, but may communicate with another device with user interfaces 208 via a network.
[0055] The virtual fulfillment center 120 may include a store management engine 210, an e-commerce management engine 212, a shipping management engine 214, and a store repository 216 in memory 204. In some implementations, the store management engine 210, e-commerce management engine 212, and shipping management engine 214 may each include an application, service, routine, server, daemon, or other executable logic for optimally selecting a physical store for filling online customer orders by executing method 300 shown in FIG. 3.
[0056] Referring to FIG. 2C, depicted is a block diagram of one implementation of the inventory management system 144. As shown in FIG. 2C, the inventory management system 144 includes one or more activity capture devices 220 and an inventory manager 222 communicatively coupled with the one or more activity capture devices 220. In some implementations, the inventory management system 144 may be deployed in a physical store for monitoring the inventory of the physical store. For example, each of the one or more activity capture devices 220 may be deployed substantially adjacent to equipment storing the product items and configured to communicate with the inventory manager 222 to update the inventory in response to detecting a presence or absence of the product item, which shall be discussed in further detail below. As with client device 110, the inventory manager 222 may include one or more processors 202, memories 204, network interfaces 206, and user interfaces 208. In some implementations referred to as headless servers, the inventory manager 222 may not include a user interface 208, but may communicate with another device with user interfaces 208 via a network.
[0057] The inventory manager 222 may include a product activity monitor 224, an activity analysis engine 226, and an inventory repository 228 in memory 204. In some implementations, the product activity monitor 224 and activity analysis engine 226 may each include an application, service, routine, server, daemon, or other executable logic for optimally selecting a physical store for filling online customer orders by executing method 400 shown in FIG. 4. [0058] In some implementations, the activity capture device 220, which may comprise a still image or video camera that can be rotated, panned, etc., may be mounted at one or more locations within the physical store such as, for example, a shelf within the store that can store one or more product items. Alternatively or additionally, the activity capture device may comprise a relatively mobile still image or video camera (e.g., a wireless camera) mounted on any of a number of movable objects including, but not limited to, fixed tracks that guide movement of the activity capture device, shopping or stocking carts, or even persons moving around the physical store.
[0059] Referring to FIG. 3, depicted is a flow diagram of one embodiment of a method 300 for optimally selecting a physical store to fulfill an online order, in accordance with some implementations. The functionalities of the method 300 can be implemented using, or performed by, the components detailed herein in connection with FIGs. 1-2C.
[0060] In brief overview, the store management engine of a virtual fulfillment center can maintain a list of a number of physical stores associated with a merchant at 302. The list can include respective locations of the number of physical stores. At 304, the store management engine can receive the respective store status information, which can include the respective inventory information, from the number of physical stores. At 306, an e-commerce management engine of the virtual fulfillment center can receive the identification of an online order. At 308, a shipping management engine of the virtual fulfillment center can calculate the respective fill rates of the number of physical stores. At 310, the shipping management engine can determine whether any store present a fill rate that is lower than a threshold. In response, the shipping management engine can disregard the store(s) that present a fill rate lower than the threshold at 312, and proceed to 314 to compare the respective shopping costs, shipping delays, and/or fill rates of the remaining stores. At 316, the shipping management engine can select a physical store to fulfill the online order.
[0061] Still referring to FIG. 3, an in further detail, the store management engine of the virtual fulfillment center, e.g., 210, can maintain, monitor, or store a list of a respective number of physical stores associated with one or more merchants at 302. As mentioned above, the physical stores can include any of a variety of stores that are capable of delivering the product items specified in an online order, which can include a warehouse (e.g., 130) and a B&M store (e.g., 134-142). In some implementations, the merchant may periodically provide (e.g., update) such a list to the store management engine, e.g., every month, every quarter, every year, etc. Or the merchant may update the list in response to an event that the merchant has newly opened or closed a physical store. Additionally or alternatively, the store management engine may periodically send a request to the merchant to update the list.
[0062] In some implementations, the list can include various information regarding each of the physical stores such as, for example, the location (e.g., addresses) of each of the physical stores, the nearby traffic information of each of the physical stores, the number of carriers available to each of the physical stores, the respective distances between the available carrier facilities and each of the physical stores, etc. In response to receiving the list, the store management engine 210 can store the list in the store repository 216, and/or communicate with the server 102 to store the list in the database 108.
[0063] At 304, the store management engine can receive, maintain, or retrieve the respective store status information from the number of physical stores. The store status information can include the respective inventory information of the physical stores. In some implementations, the physical stores may periodically provide (e.g., update) such inventory information to the store management engine, e.g., every hour, every day, every week, etc. Additionally or alternatively, the store management engine may periodically send a request to each of the physical stores to retrieve the inventory information, e.g., every hour, every day, every week, etc. According to some implementations, each of the physical stores may use at least one inventory management system (e.g., 144) to provide the respective inventory information, which shall be discussed in further detail below with respect to FIG. 4.
[0064] At 306, the e-commerce management engine (e.g., 212) can receive the identification of an online order. The e-commerce management engine may receive the identification of the online order from the client device 110 and through the server 102 that specifies one or more product items, the respective number of the one or more product items, one or more destination addresses (e.g., 150) to which the one or more product items are to be delivered, etc.
[0065] At 308, the shipping management engine (e.g., 214) can calculate the respective fill rates of the number of physical stores. In response to the e-commerce management engine receiving the identification of the online order, the e-commerce management engine may communicate with the shipping management engine to calculate the respective fill rates of the number of physical stores based on the online order. In some implementations, prior to, simultaneously with or subsequently to receiving an online order that specifies one or more product items to be delivered to a single physical address, the shipping management engine can communicate with the store repository (e.g., 216) to retrieve the respective inventory information to calculate each store’s fill rate. As discussed above, the fill rate may be defined as the percentage of time that a store has been able to fill or fulfill a customer’s entire order, in accordance with some implementations. Based on the retrieved or received inventory information, the shipping management engine can calculate a respective fill rate of the one or more product items for each of the stores based on one or more previous online orders that include ordering of more than one of the similar product item, or calculate a respective fill rate based on whether each of the stores is capable of fulfilling the one or more product items in one shipment (e.g., has a enough number of the product items in the inventory).
[0066] For example, an online order specifies 3 bottles of shampoo. In response to receiving the order, the shipping management engine can retrieve respective inventory information of the physical stores from the store repository to determine whether each of the physical stores has enough inventory to ship all 3 bottles of shampoo to the customer at the same time, i.e., without breaking up the order into multiple shipments. If a first store can do so, the shipping management engine may score the first store with a relatively high fill rate. On the other hand, if a second store cannot ship all 3 bottles to the customer at the same time, the shipping management engine may score the second store with a relatively low fill rate.
[0067] In another example, the shipping management engine may use multiple previous orders that have ordering of multiple similar or identical product items to periodically update each store’s fill rate for that particular product item. The shipping management engine may update such a fill rate by averaging the respective fill rates of the multiple previous orders.
As such, prior to the shipping management engine receiving the order from e-commerce management engine, each store’s respective fill rate for the particular product item can be readily available.
[0068] In response to calculating the respective fill rates of the physical stores, the shipping management engine may rank the physical stores, in accordance with some implementations. If the shipping management engine determines that one or more stores that each presents a fill rate lower than a predefined threshold (310), the shipping management engine may disregard such store(s) at 312; if the shipping management engine determines that one or more stores that each presents a fill rate equal to or higher than the predefined threshold (310), the shipping management engine may keep such store(s) for further comparison at 314. In some implementations, the shipping management engine may recycle to use the disregarded store(s) after the comparison at 314, which shall be discussed in further detail below.
[0069] At 314, the shipping management engine can calculate, estimate, or predict the respective shipping costs and shipping delays of the remaining stores and further compare the shopping costs, shipping delays, and/or fill rates of the remaining stores. In some implementations, simultaneously with or subsequently to the shipping management engine filtering the stores by the respective fill rates, the shipping management engine can communicate with the store repository to calculate the shipping costs and delays of the remaining stores based on the destination address and various information that the store management engine 210 stores in the store repository. Alternatively, prior to the shipping management engine filtering the stores by the respective fill rates, the shipping management engine can communicate with the store repository to calculate the shipping costs and delays of all the stores and disregard those stores presenting fill rates lower than the threshold.
[0070] In some implementations, the shipping management engine can retrieve from the store repository various information such as, for example, information regarding the location of each of the physical stores, information regarding the traffic near each of the physical stores, information regarding the weather near each of the physical stores, information regarding one or more upcoming and/or happening events (e.g., a festival, a construction event, a closed road, etc.) near each of the physical stores, information regarding the number of carriers available to each of the physical stores, and information regarding the respective distances between the available carrier facilities and each of the physical stores. Based on the above-listed information, the shipping management engine can estimate the shipping cost and shipping delay to deliver the product items specified in the online order from each of the stores to the destination address. Upon estimating the shipping costs and delays of the stores, the shipping management engine may compare the stores’ shipping costs and delays to select one store to fulfill the online order.
[0071] At 316, in some implementations, the shipping management engine may select the store that presents the least shopping cost and shortest shipping delay. As the shipping management engine can take into account various information to calculate the shipping costs and shipping delays of the associated physical stores, the shipping management store may select a physical store that can present the least shipping cost and shortest shipping delay among the physical stores but is not necessarily closet to the destination address. Referring again to FIG. 1, for example, the shipping management engine may of the virtual fulfillment center 120 can select the physical store 134 to fulfill an online order specifying the destination address 150 because the physical store 134 presents the least shipping cost and shortest shipping delay even though the physical store 142 is closer to the physical address 150. In some implementations, the shipping management engine may select the store by prioritizing the shopping cost over shipping delay, or the shipping delay over the shopping cost. Such a preference may be specified in the online order prior to the shipping
management engine calculating the shipping delays and costs, or may presented to the client device (e.g., 110) through the e-commerce application subsequently to the shipping management engine calculating the shipping delays and costs. In some cases, the shipping management engine may also reuse the disregarded stores to calculate respective shipping costs and delays for making a selection.
Figure imgf000021_0001
[0072] Above is an exemplary table listing respective shipping costs, shipping delays, and fill rates of five physical stores A, B, C, D, and E that the shipping management engine calculates. In one example, the shipping management engine may filter out store A because the fill rate even is less than a threshold (e.g., 50%) even though store A presents the lowest shopping cost and shortest shipping delay. As such, the shipping management engine may select store B, which presents the lowest shopping cost and shortest shipping delay among the remaining stores, to fulfill the order. In another example, even though the shipping management engine filters out store A, the shipping management engine may reuse and select store A to fulfill the order because store A presents the lowest shopping cost and shortest shipping delay across all the stores. In some implementations, the shipping management engine may use these three parameters (the shipping cost, the shipping delay, and the fill rate) to calculate a normalized score for all the stores using a predefined algorithm. Specifically, such an algorithm can have a weight for each of the parameters.
[0073] In some implementations, the shipping management engine may use various other parameters that can dynamically change over time to select a store to fulfill the order. The store management engine may monitor, detect, or otherwise manage such dynamically changing parameters of each communicatively coupled stores. The dynamically changing parameter of a store can include at least one of the following: whether an order assigned to the store for fulfilling needs to be reassigned to another store, a frequency by which such a reassignment occurs to the store, and real-time changing capacities (e.g., a shipping capacity, a human resource capacity, etc.) of the store. As the shipping management engine dynamically communicates with the store management engine to update such dynamically changing parameters, the shipping management engine can additionally or alternatively use the parameters to select a store to fulfill the order.
[0074] In some implementations, the shipping management engine may concurrently receive a number of orders. As such, the shipping management engine may use one or more of the above-described parameters to optimally select a respective store to fulfill each of the orders. For example, when the shipping management engine receives two orders (e.g., order 1 and order 2) to be fulfilled, the shipping management engine may first determine stores (e.g., store A and store B) from a number of candidate stores to fulfill order 1 and order 2, respectively, based on the respective parameters of shipping costs, shipping delays, and fill rate of the candidate stores. Further, the shipping management engine may take into account the dynamically changing parameters, as mentioned above, of store A and store B to replace store A with store B to fulfill order 1, and replace store B with store A to fulfill order 2.
[0075] Referring to FIG. 4, depicted is a flow diagram of one embodiment of a method 400 for updating the inventory of a physical store, in accordance with some implementations. The functionalities of the method 400 can be implemented using, or performed by, the components detailed herein in connection with FIGs. 1-2C. [0076] In brief overview, the activity capture device of an inventory management system can identify a shelf at 402. At 404, the activity capture device can identify an item to be placed on the shelf. At 406, the activity capture device can capture an image of the item and/or shelf. At 408, an activity analysis engine of the inventory management system can compare the dimensions of the captured image and pre-calibrated dimensions of the shelf. If dimensions have been changed at 410, the activity analysis engine can update inventory information of the physical store; and if dimensions have not been changed at 410, the activity analysis engine may maintain the current inventory information.
[0077] Still referring to FIG. 4, an in further detail, the activity capture device (e.g., 220) can identify a shelf within a physical store at 402. In some implementations, the activity capture device may be mounted at one or more locations within the physical store such as, for example, a shelf within the store that can store one or more inventory items. Upon being mounted on the shelf, the activity capture device can capture one or more images of the shelf and communicate the one or more captured images with the activity analysis engine (e.g.,
226) to identify the shelf and further determine the dimensions of the shelf. As such, the activity analysis engine can determine the dimensions of the shelf when the shelf is empty (e.g., when no product items are placed on the shell).
[0078] At 404, the activity capture device can identify a product item to be placed on the shelf. In some implementations, prior to, simultaneously with, or subsequently to placing the product item on the shelf, the activity capture device may cause the activity analysis engine to identify the product item based on an identification associated with the product item such as, for example, a one- or two-dimensional bar code attached to the product item. For example, the activity capture device can capture (e.g., scan) one or more images of the bar code and communicate the one or more images with the activity analysis engine to identify the product item. Upon identifying the product item, the activity analysis engine can determine the dimensions of the product item according to the one or more captured images of the product item, in accordance with some implementations.
[0079] At 406, the activity capture device can capture one or more images of the product item and/or shelf. In some implementations, upon identifying the product item and determining the dimensions of the product item, the activity analysis engine can cause the activity capture device to capture one or more images of the shelf, which may or may not have the product item placed thereon. In response to the activity capture device taking the image(s) of the shelf and/or product item, the activity analysis engine can again determine the dimensions of the shelf to detect, compare, or otherwise monitor whether such later determined dimensions of the shelf are different from the dimensions of the shelf that was previously determined, for example, at 402.
[0080] At 408, if the activity analysis engine determines that the dimensions of the shelf has changed, the activity analysis engine may update the inventory information in the inventory repository (410); and if the activity analysis engine determines that the dimensions of the shelf has not changed, the activity analysis engine may maintain the current inventory information in the inventory repository (412). In some implementations, the activity analysis engine may determine an absence of one or more of the product items that were placed on the shelf by detecting a change in the dimensions of the captured image(s) of the shelf. Upon determining such an absence, the activity analysis engine can update the inventory repository accordingly.
[0081] In some implementations, the activity analysis engine may periodically cause the activity capture device to capture the images of the shelf. As such, the activity analysis engine can periodically (e.g., every 5 minutes, every hour, etc.) determine whether the inventory information needs to be updated or maintained. In other words, the inventory management system 144 may iteratively perform operations 406, 408, and 410 or 412. The current inventory can be provided manually by employee(s) of the physical store or automatically or semi-automatically by utilizing the inventory management system 144.
[0082] Implementations of the subject matter and the operations described in this specification can be implemented in digital electronic circuitry, or in computer software, firmware, or hardware, including the structures disclosed in this specification and their structural equivalents, or in combinations of one or more of them. Implementations of the subject matter described in this specification can be implemented as one or more computer programs, i.e., one or more modules of computer program instructions, encoded on one or more computer storage medium for execution by, or to control the operation of, data processing apparatus. Alternatively or in addition, the program instructions can be encoded on an artificially-generated propagated signal, e.g., a machine-generated electrical, optical, or electromagnetic signal, that is generated to encode information for transmission to suitable receiver apparatus for execution by a data processing apparatus. A computer storage medium can be, or be included in, a computer-readable storage device, a computer-readable storage substrate, a random or serial access memory array or device, or a combination of one or more of them. Moreover, while a computer storage medium is not a propagated signal, a computer storage medium can be a source or destination of computer program instructions encoded in an artificially generated propagated signal. The computer storage medium can also be, or be included in, one or more separate components or media (e.g., multiple CDs, disks, or other storage devices). Accordingly, the computer storage medium may be tangible.
[0083] The operations described in this specification can be implemented as operations performed by a data processing apparatus on data stored on one or more computer-readable storage devices or received from other sources.
[0084] The term“client or“server” include all kinds of apparatus, devices, and machines for processing data, including a programmable processor, a computer, a system on a chip, or multiple ones or combinations, of the foregoing. The apparatus can include special purpose logic circuitry, e.g., an FPGA (field programmable gate array) or an ASIC (application specific integrated circuit). The apparatus can also include, in addition to hardware, code that creates an execution environment for the computer program in question, e.g., code that constitutes processor firmware, a protocol stack, a database management system, an operating system, a cross-platform runtime environment, a virtual machine, or a combination of one or more of them. The apparatus and execution environment can realize various different computing model infrastructures, such as web services, distributed computing and grid computing infrastructures.
[0085] A computer program (also known as a program, software, software application, script, or code) can be written in any form of programming language, including compiled or interpreted languages, declarative or procedural languages, and it can be deployed in any form, including as a stand-alone program or as a module, component, subroutine, object, or other unit suitable for use in a computing environment. A computer program may, but need not, correspond to a file in a file system. A program can be stored in a portion of a file that holds other programs or data (e.g., one or more scripts stored in a markup language document), in a single file dedicated to the program in question, or in multiple coordinated files (e.g., files that store one or more modules, sub programs, or portions of code). A computer program can be deployed to be executed on one computer or on multiple computers that are located at one site or distributed across multiple sites and interconnected by a communication network. [0086] The processes and logic flows described in this specification can be performed by one or more programmable processors executing one or more computer programs to perform actions by operating on input data and generating output. The processes and logic flows can also be performed by, and apparatus can also be implemented as, special purpose logic circuitry, e.g., a System on a Chip (SOC), a field programmable gate array (FPGA), or an application specific integrated circuit (ASIC).
[0087] Processors suitable for the execution of a computer program include both general and special purpose microprocessors, and any one or more processors of any kind of digital computer. Generally, a processor will receive instructions and data from a read only memory or a random access memory or both. The essential elements of a computer are a processor for performing actions in accordance with instructions and one or more memory devices for storing instructions and data. Generally, a computer will also include, or be operatively coupled to receive data from or transfer data to, or both, one or more mass storage devices for storing data, e.g., magnetic, magneto optical disks, or optical disks. However, a computer need not have such devices. Moreover, a computer can be embedded in another device, e.g., a mobile telephone, a personal digital assistant (PDA), a mobile audio or video player, a game console, a Global Positioning System (GPS) receiver, or a portable storage device (e.g., a universal serial bus (USB) flash drive), to name just a few. Devices suitable for storing computer program instructions and data include all forms of non-volatile memory, media and memory devices, including semiconductor memory devices, e.g., EPROM, EEPROM, and flash memory devices; magnetic disks, e.g., internal hard disks or removable disks; magneto optical disks; and CD ROM and DVD-ROM disks. The processor and the memory can be supplemented by, or incorporated in, special purpose logic circuitry.
[0088] To provide for interaction with a user, implementations of the subject matter described in this specification can be implemented on a computer having a display device, e.g., a cathode ray tube (CRT), liquid crystal display (LCD), organic light emitting diode (OLED), thin-film transistor (TFT), plasma, other flexible configuration, or any other monitor for displaying information to the user and a keyboard, a pointing device, e.g., a mouse, trackball, etc., or a touch screen, touch pad, etc., by which the user can provide input to the computer. Other kinds of devices can be used to provide for interaction with a user as well; feedback provided to the user can be any form of sensory feedback, e.g., visual feedback, auditory feedback, or tactile feedback; and input from the user can be received in any form, including acoustic, speech, or tactile input. In addition, a computer can interact with a user by sending documents to and receiving documents from a device that is used by the user; e.g., by sending webpages to a web browser on a user’s client device in response to requests received from the web browser.
[0089] Implementations of the subject mater described in this specification can be implemented in a computing system that includes a back end component, e.g., as a data server, or that includes a middleware component, e.g., an application server, or that includes a front end component, e.g., a client computer having a graphical user interface or a Web browser through which a user can interact with an implementation of the subject mater described in this specification, or any combination of one or more such back end, middleware, or front end components. The components of the system can be interconnected by any form or medium of digital data communication, e.g., a communication network.
Communication networks can include various combinations of a local area network (“LAN”), a wide area network (“WAN”), an inter-network (e.g., the Internet), and peer-to-peer networks (e.g., ad hoc peer-to-peer networks).
[0090] While this specification contains many specific implementation details, these should not be construed as limitations on the scope of any inventions or of what may be claimed, but rather as descriptions of features specific to particular implementations of particular inventions. Certain features that are described in this specification in the context of separate implementations can also be implemented in combination in a single
implementation. Conversely, various features that are described in the context of a single implementation can also be implemented in multiple implementations separately or in any suitable subcombination. Moreover, although features may be described above as acting in certain combinations and even initially claimed as such, one or more features from a claimed combination can in some cases be excised from the combination, and the claimed
combination may be directed to a subcombination or variation of a subcombination.
[0091] Similarly, while operations are depicted in the drawings in a particular order, this should not be understood as requiring that such operations be performed in the particular order shown or in sequential order, or that all illustrated operations be performed, to achieve desirable results. In certain circumstances, multitasking and parallel processing may be advantageous. Moreover, the separation of various system components in the
implementations described above should not be understood as requiring such separation in all implementations, and it should be understood that the described program components and systems can generally be integrated together in a single software product or packaged into multiple software products.
[0092] Thus, particular implementations of the subject matter have been described. Other implementations are within the scope of the following claims. In some cases, the actions recited in the claims can be performed in a different order and still achieve desirable results.
In addition, the processes depicted in the accompanying figures do not necessarily require the particular order shown, or sequential order, to achieve desirable results. In certain implementations, multitasking or parallel processing may be utilized.

Claims

WHAT IS CLAIMED IS:
1. A method for optimally selecting a physical store for filling online customer orders using a virtual fulfillment center, the method comprising:
receiving, by one or more data processors, a list of a plurality of physical stores associated with a merchant, the list including respective locations of the plurality of physical stores; transmitting, by the one or more data processors, a request to each of the plurality of physical stores for store status information, the request causing each of plurality of physical stores to i) generate inventory information by detecting, via one or more cameras, a presence of one or more product items on one or more shelves, and ii) transmit store status information to the one or more data processors, the store status information including the inventory information;
receiving, by the one or more data processors, an identification to an online customer order of one or more product items for delivery to a shipping address;
determining, by the one or more data processors, respective shipping costs and shipping delays to ship the one or more product items from the plurality of physical stores to the shipping address;
selecting, by the one or more data processors, a first physical store from the plurality of physical stores by comparing the respective shipping costs and shipping delays associated with the plurality of physical stores; and
causing, by the one or more data processors, the one or more product items of the online customer order to be shipped from the first physical store.
2. The method of claim 1, wherein selecting a first physical store from the plurality of physical stores further comprises determining a least shipping cost and a shortest shipping delay, associated with the first physical store, from the respective shipping costs and shipping delays of the plurality of physical stores.
3. The method of claim 1, wherein the store status information comprises at least one of staffing information, calendar information, and operation information of each of the plurality of physical stores.
4. The method of claim 1, further comprising:
responsive to receiving the inventory information of the plurality of physical stores, calculating respective fill rates of the one or more product items for the plurality of physical stores based on one or more previous online customer orders including ordering more than 1 of the product item, the fill rate information indicating a percentage of time that each of the plurality of physical stores can fulfill each of the one or more previous online customer orders.
5. The method of claim 4, wherein selecting a first physical store from the plurality of physical stores further comprises:
determining whether respective fill rates of the one or more product items for the plurality of physical stores are greater than a predefined threshold;
disregarding one or more of the plurality of physical stores that are associated with fill rates not greater than the predefined threshold; and
determining a highest fill rate to select the first physical store.
6. The method of claim 1, wherein a first distance between the shipping address and the location corresponding to the first physical store is greater than a second distance between the shipping address and the location corresponding to a second physical store of the plurality of physical stores.
7. The method of claim 1, further comprising periodically receiving the inventory information from each of the plurality of physical stores.
8. A system for optimally selecting a physical store for filling online customer orders, the system comprising a virtual fulfillment center configured to:
receive, from a merchant, a list of a plurality of physical stores associated with the merchant, the list including respective locations of the plurality of physical stores;
transmit a request to each of the plurality of physical stores for store status information, the request causing each of plurality of physical stores to i) generate inventory information by detecting, via one or more cameras, a presence of one or more product items on one or more shelves, and ii) transmit store status information to the one or more data processors, the store status information including the inventory information; receive, from an e-commerce application, an identification to an online customer order of one or more product items for delivery to a shipping address;
determine respective shipping costs and shipping delays to ship the one or more product items from the plurality of physical stores to the shipping address;
select a first physical store from the plurality of physical stores by comparing the respective shipping costs and shipping delays associated with the plurality of physical stores; and
cause the one or more product items of the online customer order to be shipped from the first physical store.
9. The system of claim 8, the virtual fulfillment center is further configured to determine a least shipping cost and a shortest shipping delay, associated with the first physical store, from the respective shipping costs and shipping delays of the plurality of physical stores.
10. The system of claim 8, wherein the store status information comprises at least one of staffing information, calendar information, and operation information of each of the plurality of physical stores.
11. The system of claim 8, the virtual fulfillment center further configured to:
calculate respective fill rates of the one or more product items for the plurality of physical stores based on one or more previous online customer orders including ordering more than 1 of the product item, responsive to receiving the inventory information of the plurality of physical stores,
wherein the fill rate information indicates a percentage of time that each of the plurality of physical stores can fulfill each of the one or more previous online customer orders.
12. The system of claim 11, the virtual fulfillment center further configured to:
determine whether respective fill rates of the one or more product items for the plurality of physical stores are greater than a predefined threshold;
disregard one or more of the plurality of physical stores that are associated with fill rates not greater than the predefined threshold; and
determine a highest fill rate to select the first physical store.
13. The system of claim 8, wherein a first distance between the shipping address and the location corresponding to the first physical store is greater than a second distance between the shipping address and the location corresponding to a second physical store of the plurality of physical stores.
14. The system of claim 8, the virtual fulfillment center further configured to:
periodically receive the inventory information from each of the plurality of physical stores.
15. A method for optimally selecting a physical store for filling online customer orders, the method comprising:
maintaining, by one or more data processors, a physical store repository, the physical store repository comprising respective locations of a plurality of physical stores associated with one or more merchants and respective store status information of the plurality of physical stores;
receiving, by the one or more data processors, an identification to an online customer order of a plurality of product items for delivery to a shipping address;
determining, by the one or more data processors, respective shipping costs and shipping delays to ship the plurality of product items from the plurality of physical stores to the shipping address;
comparing, by the one or more data processors, the respective shipping costs and shipping delays associated with the plurality of physical stores;
causing, by the one or more data processors, the one or more product items of the online customer order to be shipped from a first physical store of the plurality of physical stores, responsive to determining that the first physical store is in association with a least shipping cost and a shortest shipping delay among the respective shipping costs and shipping delays of the plurality of physical stores.
16. The method of claim 15, wherein maintaining a physical store repository further comprises:
transmitting, by the one or more data processors, a request to each of the plurality of physical stores for store status information, the request causing each of plurality of physical stores to i) generate inventory information by detecting, via one or more cameras, a presence of one or more product items on one or more shelves, and ii) transmit store status information to the one or more data processors, the store status information including the inventory information.
17. The method of claim 15, wherein the store status information comprises at least one of staffing information, calendar information, and operation information of each of the plurality of physical stores.
18. The method of claim 15, further comprising:
responsive to receiving the store status information of the plurality of physical stores, calculating respective fill rates of the one or more product items for the plurality of physical stores based on one or more previous online customer orders including ordering more than 1 of the product item, the fill rate information indicating a percentage of time that each of the plurality of physical stores can fulfill each of the one or more previous online customer orders.
19. The method of claim 18, wherein causing the one or more product items of the online customer order to be shipped from a first physical store of the plurality of physical stores further comprises:
determining whether respective fill rates of the one or more product items for the plurality of physical stores are greater than a predefined threshold;
disregarding one or more of the plurality of physical stores that are associated with fill rates not greater than the predefined threshold; and
determining a highest fill rate to select the first physical store.
20. The method of claim 15, wherein a first distance between the shipping address and the location corresponding to the first physical store is greater than a second distance between the shipping address and the location corresponding to a second physical store of the plurality of physical stores.
PCT/US2019/012499 2019-01-07 2019-01-07 Systems and methods for selecting physical stores to fulfill orders Ceased WO2020145935A1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
PCT/US2019/012499 WO2020145935A1 (en) 2019-01-07 2019-01-07 Systems and methods for selecting physical stores to fulfill orders

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/US2019/012499 WO2020145935A1 (en) 2019-01-07 2019-01-07 Systems and methods for selecting physical stores to fulfill orders

Publications (1)

Publication Number Publication Date
WO2020145935A1 true WO2020145935A1 (en) 2020-07-16

Family

ID=65237183

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/US2019/012499 Ceased WO2020145935A1 (en) 2019-01-07 2019-01-07 Systems and methods for selecting physical stores to fulfill orders

Country Status (1)

Country Link
WO (1) WO2020145935A1 (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2022063084A1 (en) * 2020-09-22 2022-03-31 International Business Machines Corporation Optimization of order fulfillment conditions

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9466045B1 (en) * 2013-12-11 2016-10-11 Amazon Technologies, Inc. Shipment optimization
US20180314999A1 (en) * 2017-04-27 2018-11-01 Walmart Apollo, Llc Methods and systems for managing fullfillment of one or more online orders

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9466045B1 (en) * 2013-12-11 2016-10-11 Amazon Technologies, Inc. Shipment optimization
US20180314999A1 (en) * 2017-04-27 2018-11-01 Walmart Apollo, Llc Methods and systems for managing fullfillment of one or more online orders

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2022063084A1 (en) * 2020-09-22 2022-03-31 International Business Machines Corporation Optimization of order fulfillment conditions

Similar Documents

Publication Publication Date Title
US11748777B1 (en) Content selection associated with webview browsers
US12488379B2 (en) Method, medium, and system for facilitating purchase of objects
US9984357B2 (en) Contextual searching via a mobile computing device
US9129317B2 (en) Method, medium, and system for providing location aware classified content
US8868689B1 (en) Device configuration based content selection
US10902459B2 (en) Facilitating smart advertising on curated content-based networking websites in an on-demand services environment
JP5955286B2 (en) Evaluation calculation device, evaluation calculation method, and evaluation calculation program
US10430895B2 (en) Social media and revenue generation system and method
US20230237537A1 (en) Third party customized content based on first party
CN107832409B (en) Accessing location-based content
US20150310388A1 (en) Local couriers network in the context of an on-line trading platform
JP5883149B2 (en) Electronic market for hosted service image
US9607313B2 (en) Targeted content streaming banners
US10967258B1 (en) Using game data for providing content items
CN111699487B (en) System for fast and secure content delivery
US20120066055A1 (en) Generating a user interface based on predicted revenue yield
US20130262494A1 (en) System and method of providing selected content via a computer network
EP2699031A1 (en) Targeted content streaming banners
KR20230117723A (en) Automated generation of video-based electronic solicitations
WO2017002952A1 (en) Information management device and information management method
US9043333B1 (en) Systems and methods for directing access to products and services
US20120306894A1 (en) Displaying listings based on listing activity
US20160239873A1 (en) Mediation recommendation systems for multiple video advertisement demand sources
WO2020145935A1 (en) Systems and methods for selecting physical stores to fulfill orders
KR101404187B1 (en) Method for processing order information and device thereof

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 19702154

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 19702154

Country of ref document: EP

Kind code of ref document: A1