US20180039937A1 - Managing information about inventory - Google Patents
Managing information about inventory Download PDFInfo
- Publication number
- US20180039937A1 US20180039937A1 US15/784,753 US201715784753A US2018039937A1 US 20180039937 A1 US20180039937 A1 US 20180039937A1 US 201715784753 A US201715784753 A US 201715784753A US 2018039937 A1 US2018039937 A1 US 2018039937A1
- Authority
- US
- United States
- Prior art keywords
- inventory
- lease
- management server
- product
- specific product
- 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.)
- Abandoned
Links
- 238000000034 method Methods 0.000 claims abstract description 40
- 230000008569 process Effects 0.000 claims description 27
- 238000012545 processing Methods 0.000 claims description 4
- 239000000047 product Substances 0.000 description 208
- 238000007726 management method Methods 0.000 description 115
- 230000004044 response Effects 0.000 description 17
- 230000006870 function Effects 0.000 description 13
- 238000004590 computer program Methods 0.000 description 6
- 238000004364 calculation method Methods 0.000 description 4
- 238000004458 analytical method Methods 0.000 description 3
- 230000003466 anti-cipated effect Effects 0.000 description 2
- 230000008901 benefit Effects 0.000 description 2
- 238000004422 calculation algorithm Methods 0.000 description 2
- 230000001413 cellular effect Effects 0.000 description 2
- 238000004891 communication Methods 0.000 description 2
- 230000008867 communication pathway Effects 0.000 description 2
- 238000007405 data analysis Methods 0.000 description 2
- 230000001934 delay Effects 0.000 description 2
- 238000010586 diagram Methods 0.000 description 2
- 239000000835 fiber Substances 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 230000009897 systematic effect Effects 0.000 description 2
- 230000004931 aggregating effect Effects 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 239000006227 byproduct Substances 0.000 description 1
- 230000015556 catabolic process Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 239000012141 concentrate Substances 0.000 description 1
- 238000012790 confirmation Methods 0.000 description 1
- 238000006731 degradation reaction Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000009429 electrical wiring Methods 0.000 description 1
- 230000005670 electromagnetic radiation Effects 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 238000012423 maintenance Methods 0.000 description 1
- 239000012092 media component Substances 0.000 description 1
- 231100000957 no side effect Toxicity 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 230000001737 promoting effect Effects 0.000 description 1
- 230000009467 reduction Effects 0.000 description 1
- 238000011160 research Methods 0.000 description 1
- 238000012552 review Methods 0.000 description 1
- 230000011218 segmentation Effects 0.000 description 1
- 238000012795 verification Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION 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/00—Administration; Management
- G06Q10/08—Logistics, e.g. warehousing, loading or distribution; Inventory or stock management
- G06Q10/087—Inventory or stock management, e.g. order filling, procurement or balancing against orders
Definitions
- a method may include segmenting a quantity of a specific product in inventory into a plurality of inventory leases having a smaller quantity of the specific product.
- Each inventory lease for the specific product may have an expiration time unique to the respective inventory lease and may include a maximum number of specific products covered by the inventory lease.
- At least one of the plurality of inventory leases for the specific products may be distributed.
- At least one of the specific products may be selected by an inventory management server from at least one of the plurality of distributed inventory leases to the inventory management server.
- the quantity of specific product in the at least one of the plurality of inventory leases may be decremented by the number of selected specific products.
- a rate of selection of the specific products from each of the respective inventory leases may be determined.
- the determined rate of selection may be analyzed to determine when the quantity in the respective inventory lease may reach a minimum quantity in the respective inventory lease.
- a rate of selection of the specific products or a velocity of sales, from each of the respective inventory leases may be determined.
- the determined rate of selection may be analyzed to determine when the quantity in the respective inventory lease may reach a minimum quantity in the respective inventory lease.
- An indication of when a request for a new inventory lease is to be sent may be generated.
- a method may include receiving, by a processor, an inventory lease for a specific product available for distribution.
- the inventory lease may include a leased quantity of the specific product and an expiration of the inventory lease.
- the ordered quantity of the specific product may be reserved according to the order indication as being unavailable for distribution from the leased quantity of the specific product in the inventory lease.
- the remaining quantity of the specific product in the inventory lease that is available for distribution may be determined.
- a request for a new inventory lease having an additional leased quantity of the specific product may be transmitted.
- a method may include identifying a total quantity of an inventory of a specific product for distribution.
- Data related to sales of the specific product may be obtained from external systems handling sales of the specific product and analytical data related to the specific product.
- a first sub-quantity of the total quantity may be allocated to an inventory lease based on the obtained data.
- an expiration of the inventory lease may be calculated.
- the inventory lease may be assigned to an external source.
- Updated data related to sales of the specific product, any external systems handling sales of the specific product, and analytical data related to the specific product may be analyzed in response to a subsequent request for an additional inventory lease from the external source.
- a second sub-quantity may be allocated to the additional inventory lease and a new expiration of the additional inventory lease may be calculated.
- the additional inventory lease may be assigned to the external source.
- FIG. 1 shows a block diagram of an online product procurement system configuration according to an implementation of the disclosed subject matter.
- FIG. 2 shows additional details of the online store system according to an implementation of the disclosed subject matter.
- FIG. 3 shows a systematic process according to an implementation of the disclosed subject matter.
- FIG. 4 shows another process according to an implementation of the disclosed subject matter.
- FIG. 5 shows another process according to an implementation of the disclosed subject matter.
- FIG. 6 shows an example of a purchase process and data flow according to an implementation of the disclosed subject matter.
- FIG. 7 shows a computer according to an implementation of the disclosed subject matter.
- FIG. 1 shows a block diagram of an online product procurement system configuration according to an implementation of the disclosed subject matter.
- the online product procurement system 100 may provide an online store inventory management system that may efficiently present products for purchase to a large number of customers with minimal network downtime and few processing bottlenecks. Users may interact with the system 100 to purchase products online.
- the system 100 may provide all of the functions needed to allow the input of user information including user identification, payment information, shipping information, product information and other information.
- the system 100 may include logistical information for distributing purchases products, such as shipping information, shipper information and other information.
- the system 100 may also measure the status and progress of sales (such as volume of sales, velocity of sales (which is the rate of sales in a given time period), pending purchases (e.g., the product is in an online shopping cart or the user has indicated an intent to purchase the product but an approval for the user's credit is pending), completed purchases, and the like.
- the system may provide product location and purchase assistance and information, such as product search functions, product recommendations and reviews, and the like.
- the system 100 may accommodate failures at different nodes through the application of efficient failover techniques.
- a number of data centers 110 A- 110 D may provide the interface of the system 100 with the users (i.e. customers).
- Each data center 110 A-D may include, for example, a front end interface, a middleware layer, such as a store infrastructure, an inventory management server (IMS), which may include a number of servers, processors and other devices.
- the data centers 110 A-D may be the point-of-contact for a user that is looking to procure a product from the online store.
- a user in Southeast Asia may access the internet and interact with the online store network through the front end in data center 110 B.
- a user in South America may also interact with the front end in data center 110 B as well, but would more than likely access the store through data center 110 C.
- the data centers 110 A-D may be coupled to one or more of product distribution centers 120 A-C.
- Each product distribution center 120 A-C may include, for example, an order management server (OMS), a lease management server (LMS) and a data store.
- OMS order management server
- LMS lease management server
- the product distribution centers 120 A-C may interact with one another to exchange data, services and resources.
- the configuration of the online product procurement network 100 may be modified and is not limited to the configuration shown in FIG. 1 .
- the functionality of IMS in data center 110 A may be provided by the product distribution centers 120 B or by a separate entity.
- FIG. 2 shows additional details of the online store network according to an implementation of the disclosed subject matter.
- the online store network 200 may include a plurality of inventory datastore, such as data stores 203 A and 203 B, a plurality of lease management servers (LMS) 205 A and 205 B, a plurality of individual datacenters 210 A- 210 N, a plurality of order management servers 230 A and a plurality of order datastores 235 A and 235 B.
- LMS lease management servers
- Each of the individual datacenters 210 A- 210 N may include a plurality of inventory management servers, such as servers 215 A-C, and a plurality of servers or components that implement a store infrastructure or similar middleware 220 A.
- a user may, for example, access an individual datacenter 210 A via the middleware infrastructure 2220 A.
- the store component 220 A may be communicatively coupled to one or more of the web front ends shown in FIG. 1 .
- Specific products may be identified by a product identifier code, such as an SKU code.
- SKUs of individual products A-E are represented by their respective letters A-E.
- Individual inventory management servers 215 A-C may handle all data for specific SKUs.
- inventory management server 215 A may be assigned to handle all data for product A that has an SKU of A
- inventory management server 215 B may be assigned to handle all data for products C and E that have SKUs of C and E, respectively.
- each of the lease management servers 205 A and 205 B may handle all data for individual products, such as products A and C.
- lease management server 205 A may handle data related to products A and C that are identified by SKUs A and C, respectively
- lease management server 205 B may handle data related to products B, D and E that are identified by SKUs B, D and E, respectively.
- Order management servers 230 A may track and maintain the status of any pending and completed orders for the respective specific products.
- the data related to the particular orders may be stored in a respective order datastore. For example, data related to orders 1 , 3 , 5 and 7 may be stored in order datastore 235 A, while data related to orders 2 , 4 , 6 and 8 may be stored in order datastore 235 B.
- FIG. 3 shows a process according to an implementation of the disclosed subject matter.
- the lease management server 205 A may perform the following process to provide an optimal supply of a specific product for presentation to a customer.
- a benefit of the disclosed process 300 is that it provides a well-managed and efficient distribution of inventory of a specific product for presentation to a user regardless of how quickly products may be selected for purchase by customers.
- a lease management server may identify a total quantity of an inventory of a specific product for distribution ( 310 ).
- a new highly-anticipated electronic device or other product such as a child's toy, may be scheduled for availability for purchase on a particular date through an online store.
- the number of products available for that particular day may number several hundred-thousand units such as, for example, 500,000 units.
- Embodiments of the disclosed subject matter may be suitable for volumes of several tens of thousands, hundreds of thousands, millions, tens of millions, or more units per hour.
- the specific quantities described herein are provided as illustrative examples only, and are not limiting of the capacity of the disclosed systems and techniques.
- the lease management server may determine that the total quantity of inventory of the specific product for distribution to be the number of products available for that particular day, which can be, for example, the original 500,000 units.
- the lease management server may obtain various types of other data related to the product.
- the lease management server may obtain data related to sales of similar products, or, after the product is available for selection, sales of the specific product; external systems handling sales of the specific product; and/or analytical data related to the specific product.
- a sale may be an actual purchase, an indication of intent-to-purchase, a “give-away” event such as a promotional item, or the like.
- Information such as the number of sales of the specific products, the velocity of the sales, which may be measured in the number of sales per minute or seconds, the general locations of the sales of the specific products, and similar information.
- the lease management server may also receive information related to advanced sales, forecasted sales, forecasted velocity of sales and other similar data based on surveys or other market research.
- the data may be obtained, for example, from one or more of an order management server, the store infrastructure, an inventory management server, other lease management servers or a datastore, such as datastores 203 A, 203 B, 235 A, 235 B as shown in FIG. 2 .
- a first sub-quantity of the total quantity may be allocated to an inventory lease based on the obtained data.
- the first sub-quantity may be the total quantity divided by a number of the total inventory leases available, such as 5,000.
- the first sub-quantity and subsequent sub-quantities for other inventory leases may be determined to be allocated to an inventory lease based on, for example, a velocity, or anticipated velocity, of sales of the specific product.
- Each inventory lease may expire within a determined time from when the inventory lease is assigned.
- the lease management server may calculate an expiration of the inventory lease based on the obtained data ( 340 ).
- the expiration date may be set to be a short amount of time in anticipation that the respective inventory lease may be assigned to a system servicing a slow selling region, and that system servicing a faster selling region may need additional quantities of the specific products.
- the expiration may be set to be longer.
- the expiration may be based on a timer measuring seconds, minutes, hours, days, date or a combination thereof, a counter that measures number of transactions, a number of click-throughs with regard to links related to the specific products, a number of looks, and the like, or some other parameter, such as a specific time of day, for expiring the inventory lease.
- the inventory lease may be assigned to an external source ( 350 ).
- the assignment of the inventory lease to an external source may be in response to a request from the external source, such as an inventory management server.
- a lease management server may also analyze updated data related to sales of the specific product, external systems handling sales of the specific product and analytical data related to the specific product. For example, the total quantity of the specific product may be reduced based on the reservation of product for purchase, completed sales and the like.
- the remaining quantity of the specific product for example, 400,000 units, may be segmented into, or divided (either evenly or unevenly) among subsequent inventory leases for assignment to external sources, whose inventory leases have, for example, expired or sold out.
- the analysis may be in response to a subsequent request from the external source for an additional inventory lease ( 360 ).
- a second sub-quantity of the remaining quantity products to the additional inventory lease may be determined as an optimal quantity for the inventory lease, and a new expiration of the additional inventory lease may be calculated.
- the second sub-quantity may be, for example, based on at least one of: location of a data center that is directly contacted by a customer, a product country, a remaining inventory of the specific product, a global consumption rate of the specific product, a locale specific consumption rate, an inventory management server consumption rate, peak load time for an inventory management server, a current time of day, historical sales trend for a product similar to the specific product, or an estimated sell out date.
- Both the optimal quantity and the new expiration may be calculated based on the results of the data analysis ( 370 ).
- the expiration time for each inventory lease may be determined using a velocity of sales of the specific product covered by the inventory lease.
- an inventory lease with a larger quantity and shorter expiration time may be assigned to a second external source that has a greater sales velocity.
- the system may dynamically allocate more quantities of products to areas that are selling products at higher velocity thereby eliminating delays or failures due to a lack of available inventory.
- the additional inventory lease may be assigned to the external source ( 380 ).
- the additional inventory lease may be assigned by the lease management server.
- the lease management server also may perform analytics. For example, the lease management server may aggregate the inventory information from all inventory management server instances on a per product basis. The lease management server may use the inventory information, for example, to calculate optimal lease sizes for each data center that requests a lease.
- the quantity of a specific product in a lease may be based on one or more of the following: data center location, product country, remaining product inventory (i.e. total quantity of a specific product), a global consumption rate of the specific product, a locale specific consumption rate of the specific product, an inventory management server instance consumption rate, peak load times/current time of the day, historical trends of similar products, and an estimated sellout date for the specific product.
- the lease management server may determine the appropriate quantity to assign in the lease and what the appropriate expiration date should be.
- the quantity of each lease may follow a particular allocation strategy. For example, if sellout of the product may not happen for greater than one day, then there may be no reduction from the previous lease.
- the lease management server will assign leases with maximum size leases, such as, for example, a maximum of 1000 units or 1% of units in stock.
- the lease quantity may be reduced linearly by a consumption rate of the specific product.
- all inventory lease assignments may concentrate all remaining stock to inventory management servers in a top few datacenters.
- FIG. 4 shows another process according to an implementation of the disclosed subject matter.
- An inventory management server such as server 215 A in FIG. 2 , may be configured to manage inventory and execute the process 400 illustrated in FIG. 4 .
- the inventory management server may identify an available lease management server for providing inventory leases for a specific product ( 410 ).
- the inventory management server may identify available lease management servers by performing a hash function to obtain a set of lease management servers that are a set of active lease management servers.
- the active lease management servers are the servers that are available to the inventory management servers. From the set of active, available lease management servers, a master lease management server may be selected from the set of active servers may be selected by known master-slave selection processes.
- An inventory lease for a specific product available for distribution may be received by a processor of the inventory management server ( 420 ).
- the inventory lease may include a leased quantity (i.e. one of the sub-quantities of the specific product total quantity described above with respect to FIG. 3 ) of the specific product and an expiration of the inventory lease.
- the expiration of the inventory lease is similar to the expiration explained above.
- the ordered quantity of the specific product may be reserved according to the order indication as being unavailable for distribution from the leased quantity of the specific product in the inventory lease ( 430 ).
- the order indication may be a signal indicating a number of the specific product that has been ordered by customers.
- Ordered products may be those products that are selected for purchase by a user or by an order management system, such as 230 A of FIG. 2 .
- Ordered products may be considered products that a user has placed in a shopping cart in the on-line store, those products for which a purchase transaction has been completed, or product sales that are pending such as waiting for verification of user funds or credit approval.
- the inventory management server may also collect telemetry information on inventory checks and inventory consumption for individual products. This telemetry information may be returned to a lease management server when it fetches additional leases.
- the remaining quantity of the specific product in the inventory lease that is available for distribution may be determined.
- the order indication may be used by the inventory management server to perform a calculation of the remaining quantity or adjust a counter based on the initial quantity of a specific product allocated to the respective inventory lease.
- transmitting a request for a new inventory lease having an additional leased quantity of the specific product In response to a determination that the remaining quantity available for distribution has reached a threshold amount or a generation of an inventory lease expiration warning signal, transmitting a request for a new inventory lease having an additional leased quantity of the specific product.
- a request for a new inventory lease having an additional leased quantity of the specific product may be generated and transmitted by the inventory lease management system ( 450 ).
- additional inventory leases may be requested either prior to the expiration of a current lease or when the remaining quantity of the specific product is below a certain threshold.
- the certain threshold may be determined, for example, based on analytics of the sales and order data related to the specific product.
- the frequency of the lease request may change based on analysis of the sales and order data related to the specific product.
- the inventory management server and the lease management server may be located in different geographical areas that may cause latency in communication between the servers.
- the inventory management server may prefetch an inventory lease from a lease management server when an expiration of a current lease is approaching or the remaining inventory is below the certain threshold.
- the prefetch may be based on the number of requests that the inventory management server may have received for a particular item. If the item is popular and has many requests then prefetching may occur sooner. For example, the certain threshold for remaining quantities may be set at a higher quantity or a time before the expiration may be longer. Conversely, if the item is unpopular and sales are slow, and there are fewer requests for additional leases, the inventory management server may prefetch later than when sales are at a forecasted pace or fast, or not at all.
- the inventory management server may also perform other functions, such as identifying a lease management server that may be available for providing inventory leases for the specific product.
- the identification of the lease management server may be performed using a hash function to obtain a set of lease management servers that are a set of active servers.
- FIG. 5 shows a systematic process according to an implementation of the disclosed subject matter.
- the process 500 may include segmenting a quantity of a specific product in inventory into a plurality of inventory leases having a smaller quantity of the specific product ( 510 ).
- the segmentation of the quantity of the specific product in inventory may be performed by aggregating data from all inventory management servers related to the specific product. Based on an analysis of the aggregated data, an optimal quantity for an inventory lease for distribution may be calculated.
- the optimal quantity may, for example, be based on at least one of location of a data center that is directly contacted by a customer, a product country, a remaining inventory of the specific product, a global consumption rate of the specific product, a locale specific consumption rate, an inventory management server consumption rate, peak load time for an inventory management server, a current time of day, historical sales trend for a product similar to the specific product, or an estimated sell out date.
- a processor in the lease management server may have access to the total quantity of the specific product and may perform the segmenting of the quantity into small quantities that may be assigned to a plurality of leases.
- the quantities may be assigned prior to the creation of the inventory leases or may be dynamically assigned as requests for an inventory lease are received.
- the maximum number of specific products to be covered by the inventory lease may be determined based on a velocity of sales (i.e., number of products are being sold in time period) of the specific product.
- Each inventory lease for the specific product may have an expiration time unique to the respective inventory lease and may include a maximum number of specific products covered by the inventory lease. Different sales scenarios may influence how quantities of the specific product are allocated to an inventory lease.
- a maximum quantity of the specific product may be allocated to the inventory lease based on a calculation that the specific product will sell out in more than one day, a reduced quantity of the specific product may be allocated to the inventory lease based on a calculation that the specific product will sell out in less than one day, or a quantity of the specific product may be allocated to a reduced number of inventory leases that may be distributed to selected top selling data centers based on a calculation that the specific product will sell out in less than one hour or some other short time frame.
- other sales scenarios may be possible and be accommodated by the system.
- the lease management server may distribute at least one of the plurality of inventory leases for the specific products to an inventory management server ( 520 ). At least one of the specific products may be selected by the inventory management server from at least one of the plurality of distributed inventory leases to the inventory management server ( 530 ). The selection may be, for example, in response to a sale reservation of the selected specific product(s). Based on the selection, the selected specific product may be identified for delivery, for example, to a vendor for shipping the product to a customer or directly sending the product to a customer. In an implementation, the selection may be in response to a sale reservation of the selected specific product(s) by a customer, a server or other device.
- the quantity of specific product in the at least one of the plurality of inventory leases may be decremented by the number of selected specific products ( 540 ).
- other methods may be used for tracking selection of the at least one of the specific products. For example, a counter may be incremented as products are selected.
- a rate of selection of the specific products or a velocity of sales, from each of the respective inventory leases may be determined ( 550 ).
- the determined rate of selection may be analyzed to determine when the quantity in the respective inventory lease may reach a minimum quantity in the respective inventory lease ( 560 ).
- An indication of when a request for a new inventory lease is to be sent to the lease manager server may be provided, for example, to a lease management server ( 570 ).
- An expiration time for each inventory lease may be determined using a velocity of sales of the specific product covered by the inventory lease.
- the system may also perform status checks of the different servers.
- the middleware infrastructure or another component may perform a status check that may determine that the identified inventory management server is operating properly and within parameters related to selections of the related products.
- a hash function may be performed to identify a properly operating inventory management server.
- inputs to the hash function may include a product SKU identifier and a country related to distribution of the specific product.
- a hashing algorithm such as one based on Consistent hashing, may be used to determine an active inventory management server. For example, systems as disclosed herein may attempt to locate an active inventory management server using the following process:
- system may determine that a user connection to an inventory management server is unavailable, and in response may identify a different inventory management server using a hash function to take over the functions of the unavailable inventory management server.
- a consumer may select a product for purchase and indicate that the product should be placed in the consumer's shopping cart. These may be considered product orders. However, the consumer may not complete the sale or the sale may fail due to payment issues, and while the order is pending, it has effectively been abandoned. For example, an abandoned order may be the result of canceled, expired shopping carts or orders that are not completed in time, for example, because of an incorrect credit card number or the like.
- the system may periodically or after some event reclaim this reserved inventory from the order management system.
- the order management system or the lease management system may perform the reclamation process.
- the system may read orders that have been abandoned in an order management server, and may sum a quantity of the specific product from each of the read orders. The sum of the specific products may be allocated back to the lease management server for allocation into an inventory lease.
- the reclamation process may be performed offline or when network traffic is at a minimum by a backend processor.
- an IMS may fail or become unreachable.
- the link pertaining to SKU A products between inventory management server 215 A and lease management server 205 A may be broken, or the SKU A product link between the inventory management server 215 A and the infrastructure 220 A may be broken.
- an alternate means of servicing customers wishing to purchase SKU A products may be found.
- another inventory management server such as inventory management server 215 B, may be called within the same individual data center, such as individual data center 210 A.
- inventory management server 215 B may be the backup server for SKU A products. As shown in FIG. 2 , inventory management server 215 B processes SKU C and E products, and in order to process SKU A products an inventory lease for SKU A products may be requested from lease management server 205 A. Once the inventory lease for the SKU A products is received by the inventory management server 215 B, it may begin processing SKU A product requests from the store infrastructure 220 A. The infrastructure also may need to determine which of the plurality of inventory management servers 215 B or 215 C is handling the SKU A product requests. The identification of the responsible inventory management server may be determined using the hash functions described above. If inventory leases are available for the SKU A products then no delays will be evident at a customer device.
- an LMS may fail or become unreachable.
- An LMS may be sharded, for example by product and country combination. In the case of a full failure on a single shard, only a subset of products may be affected.
- Each LMS may maintain an in-memory copy all the inventory available for a specific product. Additionally, it may store a list of prefetched leases that it maintains and provides in response to service requests. Thus, in the case of a storage layer or database failure, datastore operations may be limited to reduce latency. In addition, if the datastore is down when a request for a new lease is received, the LMS may service the request with a prefetched lease.
- the amount prefetched may be a function of, for example, a remaining inventory level and/or how rapidly the product is selling. This may allow for product sales to continue through temporary datastore outages. If there is a longer outage and the store of prefetched leases is exhausted, then only the subset of products stored on the individual shard may be unavailable until datastore operations are restored.
- an individual data center may include 3 replicas. Of these, one may be elected as the “master” service, and will service all requests. Slave services may fail or be downed for maintenance with few or no side effects, since they are not serving active traffic. If the master instance fails, one of the replicas may become the new master and continue serving request traffic.
- an IMS may request leases before existing leases expire or run out. This may prevent latency from becoming noticeable for users. It also may reduce the apparent and/or actual effect of any LMS failover and failures, because any temporary disruption in service may be hidden by the prefetch time.
- FIG. 6 shows an example of a purchase process and data flow according to an implementation of the disclosed subject matter.
- the purchase process 600 may include a number of systems that interact with one another.
- a purchase process may involve a customer device 610 , a web front end (FE) 620 , a store infrastructure or similar middleware layer 630 , an inventory management server 650 , a lease management server 660 , and an order management server 670 .
- a customer device 610 may access an online store provided through the front end 620 .
- the customer device 610 may wish to purchase a product through the online store.
- the front end 620 may send a request, such as a check purchase permission request, to the store infrastructure 630 to confirm if the purchase may be started.
- the store may perform a check to see if the selected product is available to the inventory management server 650 . If the inventory management server 650 has an inventory lease for the selected specific product in memory, it may return a signal with minimal delay, to the front end 620 that the product is available.
- the delay typically may be user imperceptible, for example, on the order of 10 ms-400 ms according to embodiments of the presently disclosed subject matter.
- the inventory management server 650 may request an inventory lease from the lease management server 660 .
- the inventory lease for the specific product may be created, for example, as described above. There may be minimal system latency with this process.
- the front end 620 may indicate to the customer device 610 that the product has been added to the customer device 610 shopping cart.
- the customer device 610 may indicate an attempt to purchase the product.
- the customer device 610 indication may be forwarded to the front end 620 that processes data in preparation for the purchase of the product.
- the processed data may be forwarded to a store infrastructure or similar middleware layer 630 , which may create a cart that may include information related to the customer device 610 cart and measuring the progress of the purchase of the products in the cart.
- the store 630 may receive the cart information and may attempt to reserve the product for the customer by sending a request to the inventory management server 650 . If an inventory lease for the specific product is not maintained in cache, another lease may be obtained. Once the product has been reserved, the customer device 610 may provide additional information to complete the purchase.
- the FE 620 may process the additional information received from the customer device 620 , and may forward an indication to complete the purchase to the store infrastructure 630 .
- the store 630 may send a purchase notification request, which may include a status of the purchase, to the order management server 670 .
- the order management server 670 may process the purchase notification request and may store data related to the purchase in an order data store. Upon completion of the processing of the purchase notification request, the order management server 670 may return a confirmation to the customer device 610 .
- FIG. 7 shows an example computer according to an implementation of the disclosed subject matter. Implementations of the presently disclosed subject matter may be implemented in and used with a variety of component and network architectures. FIG. 7 is an example server or computer 20 suitable for implementing implementations of the presently disclosed subject matter.
- the computer 20 includes a bus 21 which interconnects major components of the computer 20 , such as a central processor 24 , a memory 27 (typically RAM, but which may also include ROM, flash RAM, or the like), an input/output controller 28 , a user display 22 , such as a display screen via a display adapter, a user input interface 26 , which may include one or more controllers and associated user input devices such as a keyboard, mouse, and the like, and may be closely coupled to the I/O controller 28 , fixed storage 23 , such as a hard drive, flash storage, Fibre Channel network, SAN device, SCSI device, and the like, and a removable media component 25 operative to control and receive an optical disk, flash drive, and the like.
- a bus 21 which interconnects major components of the computer 20 , such as a central processor 24 , a memory 27 (typically RAM, but which may also include ROM, flash RAM, or the like), an input/output controller 28 , a user display 22 , such as
- the bus 21 allows data communication between the central processor 24 and the memory 27 , which may include read-only memory (ROM) or flash memory (neither shown), and random access memory (RAM) (not shown), as previously noted.
- the RAM is generally the main memory into which the operating system and application programs are loaded.
- the ROM or flash memory can contain, among other code, the Basic Input-Output system (BIOS) which controls basic hardware operation such as the interaction with peripheral components.
- BIOS Basic Input-Output system
- Applications resident with the computer 20 are generally stored on and accessed via a computer readable medium, such as a hard disk drive (e.g., fixed storage 23 ), an optical drive, floppy disk, or other storage medium 25 .
- the fixed storage 23 may be integral with the computer 20 or may be separate and accessed through other interfaces.
- a network interface 29 may provide a direct connection to a remote server via a telephone link, to the Internet via an internet service provider (ISP), or a direct connection to a remote server via a direct network link to the Internet via a POP (point of presence) or other technique.
- the network interface 29 may provide such connection using wireless techniques, including digital cellular telephone connection, Cellular Digital Packet Data (CDPD) connection, digital satellite data connection or the like.
- CDPD Cellular Digital Packet Data
- the network interface 29 may allow the computer 20 to communicate with other computers or servers via one or more local, wide-area, or other networks, as shown in FIG. 1 .
- FIG. 7 Many other devices or components (not shown) may be connected in a similar manner (e.g., document scanners, digital cameras and so on). Conversely, all of the components shown in FIG. 7 need not be present to practice the present disclosure. The components can be interconnected in different ways from that shown. The operation of a computer such as that shown in FIG. 7 is readily known in the art and is not discussed in detail in this application. Code to implement the present disclosure can be stored in computer-readable storage media such as one or more of the memory 27 , fixed storage 23 , removable media 25 , or on a remote storage location.
- various implementations of the presently disclosed subject matter may include or be embodied in the form of computer-implemented processes and apparatuses for practicing those processes.
- Embodiments also may be embodied in the form of a computer program product having computer program code containing instructions embodied in non-transitory and/or tangible media, such as floppy diskettes, CD-ROMs, hard drives, USB (universal serial bus) drives, or any other machine readable storage medium, wherein, when the computer program code is loaded into and executed by a computer, the computer becomes an apparatus for practicing implementations of the disclosed subject matter.
- Embodiments also may be embodied in the form of computer program code, for example, whether stored in a storage medium, loaded into and/or executed by a computer, or transmitted over some transmission medium, such as over electrical wiring or cabling, through fiber optics, or via electromagnetic radiation, wherein when the computer program code is loaded into and executed by a computer, the computer becomes an apparatus for practicing implementations of the disclosed subject matter.
- the computer program code segments configure the microprocessor to create specific logic circuits.
- a set of computer-readable instructions stored on a computer-readable storage medium may be implemented by a general-purpose processor, which may transform the general-purpose processor or a device containing the general-purpose processor into a special-purpose device configured to implement or carry out the instructions.
- Embodiments may be implemented using hardware that may include a processor, such as a general purpose microprocessor and/or an Application Specific Integrated Circuit (ASIC) that embodies all or part of the techniques according to implementations of the disclosed subject matter in hardware and/or firmware.
- the processor may be coupled to memory, such as RAM, ROM, flash memory, a hard disk or any other device capable of storing electronic information.
- the memory may store instructions adapted to be executed by the processor to perform the techniques according to implementations of the disclosed subject matter.
Landscapes
- Business, Economics & Management (AREA)
- Economics (AREA)
- Engineering & Computer Science (AREA)
- Marketing (AREA)
- Quality & Reliability (AREA)
- Finance (AREA)
- Entrepreneurship & Innovation (AREA)
- Human Resources & Organizations (AREA)
- Accounting & Taxation (AREA)
- Operations Research (AREA)
- Development Economics (AREA)
- Strategic Management (AREA)
- Tourism & Hospitality (AREA)
- Physics & Mathematics (AREA)
- General Business, Economics & Management (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
Disclosed are methods for managing inventory in e-commerce. A method may be provided that may include segmenting a quantity of a specific product in inventory into a plurality of inventory leases having a smaller quantity of the specific product. A lease management server may distribute at least one inventory lease. At least one of the specific products may be selected by the inventory management server for reservation. A rate of selection of the specific products from each of the respective inventory leases may be determined. The determined rate of selection may be analyzed to determine when the quantity in the respective inventory lease will reach a minimum quantity in the respective inventory lease. An indication of when a request for a new inventory lease is to be sent to the lease manager server may be provided.
Description
- Online store inventory management systems control the allocation and distribution of millions of products annually. When a particularly popular product is sold, especially high rates of sales may occur. In these situations, traditional commerce sites built on a small number of database machines may be affected by resulting high latency, interrupted availability, and/or excessive operation cost.
- As a result, conventional management systems may allocate inventory of the product in a manner to address changing sales numbers in different regions, in which an online store is selling the product at a higher rate than other locations. As a result, the system may be unable to satisfy the volume of product sales because the system cannot accurately track the inventory of the product due to system latency and configuration.
- According to an implementation of the disclosed subject matter, a method may be provided that may include segmenting a quantity of a specific product in inventory into a plurality of inventory leases having a smaller quantity of the specific product. Each inventory lease for the specific product may have an expiration time unique to the respective inventory lease and may include a maximum number of specific products covered by the inventory lease. At least one of the plurality of inventory leases for the specific products may be distributed. At least one of the specific products may be selected by an inventory management server from at least one of the plurality of distributed inventory leases to the inventory management server. In response to the selection of the at least one of the specific products, the quantity of specific product in the at least one of the plurality of inventory leases may be decremented by the number of selected specific products. A rate of selection of the specific products from each of the respective inventory leases may be determined. The determined rate of selection may be analyzed to determine when the quantity in the respective inventory lease may reach a minimum quantity in the respective inventory lease. A rate of selection of the specific products or a velocity of sales, from each of the respective inventory leases may be determined. The determined rate of selection may be analyzed to determine when the quantity in the respective inventory lease may reach a minimum quantity in the respective inventory lease. An indication of when a request for a new inventory lease is to be sent may be generated.
- According to an implementation of the disclosed subject matter, a method may be provided that may include receiving, by a processor, an inventory lease for a specific product available for distribution. The inventory lease may include a leased quantity of the specific product and an expiration of the inventory lease. In response to an order indication for an ordered quantity of the specific product received over a communication pathway with a plurality of network front end systems, the ordered quantity of the specific product may be reserved according to the order indication as being unavailable for distribution from the leased quantity of the specific product in the inventory lease. The remaining quantity of the specific product in the inventory lease that is available for distribution may be determined. In response to a determination that the remaining quantity available for distribution has reached a threshold amount or generation of an inventory lease expiration warning signal, a request for a new inventory lease having an additional leased quantity of the specific product may be transmitted.
- According to an implementation of the disclosed subject matter, a method may be provided that may include identifying a total quantity of an inventory of a specific product for distribution. Data related to sales of the specific product may be obtained from external systems handling sales of the specific product and analytical data related to the specific product. A first sub-quantity of the total quantity may be allocated to an inventory lease based on the obtained data. Based on the obtained data, an expiration of the inventory lease may be calculated. In response to a request, the inventory lease may be assigned to an external source. Updated data related to sales of the specific product, any external systems handling sales of the specific product, and analytical data related to the specific product may be analyzed in response to a subsequent request for an additional inventory lease from the external source. Based on the results of the updated data analysis, a second sub-quantity may be allocated to the additional inventory lease and a new expiration of the additional inventory lease may be calculated. The additional inventory lease may be assigned to the external source.
- Additional features, advantages, and implementations of the disclosed subject matter may be set forth or apparent from consideration of the following detailed description, drawings, and claims. Moreover, it is to be understood that both the foregoing summary and the following detailed description may include examples and are intended to provide further explanation without limiting the scope of the claims.
- The accompanying drawings, which are included to provide a further understanding of the disclosed subject matter, are incorporated in and constitute a part of this specification. The drawings also illustrate implementations of the disclosed subject matter and together with the detailed description serve to explain the principles of implementations of the disclosed subject matter. No attempt is made to show structural details in more detail than may be necessary for a fundamental understanding of the disclosed subject matter and various ways in which it may be practiced.
-
FIG. 1 shows a block diagram of an online product procurement system configuration according to an implementation of the disclosed subject matter. -
FIG. 2 shows additional details of the online store system according to an implementation of the disclosed subject matter. -
FIG. 3 shows a systematic process according to an implementation of the disclosed subject matter. -
FIG. 4 shows another process according to an implementation of the disclosed subject matter. -
FIG. 5 shows another process according to an implementation of the disclosed subject matter. -
FIG. 6 shows an example of a purchase process and data flow according to an implementation of the disclosed subject matter. -
FIG. 7 shows a computer according to an implementation of the disclosed subject matter. -
FIG. 1 shows a block diagram of an online product procurement system configuration according to an implementation of the disclosed subject matter. The onlineproduct procurement system 100 may provide an online store inventory management system that may efficiently present products for purchase to a large number of customers with minimal network downtime and few processing bottlenecks. Users may interact with thesystem 100 to purchase products online. Thesystem 100 may provide all of the functions needed to allow the input of user information including user identification, payment information, shipping information, product information and other information. In addition, thesystem 100 may include logistical information for distributing purchases products, such as shipping information, shipper information and other information. Thesystem 100 may also measure the status and progress of sales (such as volume of sales, velocity of sales (which is the rate of sales in a given time period), pending purchases (e.g., the product is in an online shopping cart or the user has indicated an intent to purchase the product but an approval for the user's credit is pending), completed purchases, and the like. In some configurations, the system may provide product location and purchase assistance and information, such as product search functions, product recommendations and reviews, and the like. In addition, thesystem 100 may accommodate failures at different nodes through the application of efficient failover techniques. - In an implementation, a number of
data centers 110A-110D may provide the interface of thesystem 100 with the users (i.e. customers). Eachdata center 110A-D may include, for example, a front end interface, a middleware layer, such as a store infrastructure, an inventory management server (IMS), which may include a number of servers, processors and other devices. Thedata centers 110A-D may be the point-of-contact for a user that is looking to procure a product from the online store. For example, a user in Southeast Asia may access the internet and interact with the online store network through the front end indata center 110B. Of course, a user in South America may also interact with the front end indata center 110B as well, but would more than likely access the store throughdata center 110C. Thedata centers 110A-D may be coupled to one or more ofproduct distribution centers 120A-C. Eachproduct distribution center 120A-C may include, for example, an order management server (OMS), a lease management server (LMS) and a data store. The product distribution centers 120A-C may interact with one another to exchange data, services and resources. The configuration of the onlineproduct procurement network 100 may be modified and is not limited to the configuration shown inFIG. 1 . For example, the functionality of IMS indata center 110A may be provided by theproduct distribution centers 120B or by a separate entity. -
FIG. 2 shows additional details of the online store network according to an implementation of the disclosed subject matter. Theonline store network 200 may include a plurality of inventory datastore, such asdata stores individual datacenters 210A-210N, a plurality oforder management servers 230A and a plurality oforder datastores - Each of the
individual datacenters 210A-210N may include a plurality of inventory management servers, such asservers 215A-C, and a plurality of servers or components that implement a store infrastructure orsimilar middleware 220A. A user may, for example, access anindividual datacenter 210A via the middleware infrastructure 2220A. For example, thestore component 220A may be communicatively coupled to one or more of the web front ends shown inFIG. 1 . Specific products may be identified by a product identifier code, such as an SKU code. For purposes of illustration, SKUs of individual products A-E are represented by their respective letters A-E. Individualinventory management servers 215A-C may handle all data for specific SKUs. For example,inventory management server 215A may be assigned to handle all data for product A that has an SKU of A, while inventory management server 215B may be assigned to handle all data for products C and E that have SKUs of C and E, respectively. Similarly, each of thelease management servers FIG. 2 ,lease management server 205A may handle data related to products A and C that are identified by SKUs A and C, respectively, andlease management server 205B may handle data related to products B, D and E that are identified by SKUs B, D and E, respectively. -
Order management servers 230A may track and maintain the status of any pending and completed orders for the respective specific products. The data related to the particular orders may be stored in a respective order datastore. For example, data related to orders 1, 3, 5 and 7 may be stored inorder datastore 235A, while data related to orders 2, 4, 6 and 8 may be stored inorder datastore 235B. -
FIG. 3 shows a process according to an implementation of the disclosed subject matter. Thelease management server 205A may perform the following process to provide an optimal supply of a specific product for presentation to a customer. A benefit of the disclosedprocess 300 is that it provides a well-managed and efficient distribution of inventory of a specific product for presentation to a user regardless of how quickly products may be selected for purchase by customers. For example, a lease management server may identify a total quantity of an inventory of a specific product for distribution (310). For example, a new highly-anticipated electronic device or other product, such as a child's toy, may be scheduled for availability for purchase on a particular date through an online store. The number of products available for that particular day may number several hundred-thousand units such as, for example, 500,000 units. Embodiments of the disclosed subject matter may be suitable for volumes of several tens of thousands, hundreds of thousands, millions, tens of millions, or more units per hour. The specific quantities described herein are provided as illustrative examples only, and are not limiting of the capacity of the disclosed systems and techniques. The lease management server may determine that the total quantity of inventory of the specific product for distribution to be the number of products available for that particular day, which can be, for example, the original 500,000 units. At 320 the lease management server may obtain various types of other data related to the product. For example, the lease management server may obtain data related to sales of similar products, or, after the product is available for selection, sales of the specific product; external systems handling sales of the specific product; and/or analytical data related to the specific product. A sale may be an actual purchase, an indication of intent-to-purchase, a “give-away” event such as a promotional item, or the like. Information such as the number of sales of the specific products, the velocity of the sales, which may be measured in the number of sales per minute or seconds, the general locations of the sales of the specific products, and similar information. The lease management server may also receive information related to advanced sales, forecasted sales, forecasted velocity of sales and other similar data based on surveys or other market research. The data may be obtained, for example, from one or more of an order management server, the store infrastructure, an inventory management server, other lease management servers or a datastore, such as datastores 203A, 203B, 235A, 235B as shown inFIG. 2 . - At
step 330, a first sub-quantity of the total quantity may be allocated to an inventory lease based on the obtained data. For example, the first sub-quantity may be the total quantity divided by a number of the total inventory leases available, such as 5,000. Alternatively, the first sub-quantity and subsequent sub-quantities for other inventory leases may be determined to be allocated to an inventory lease based on, for example, a velocity, or anticipated velocity, of sales of the specific product. Each inventory lease may expire within a determined time from when the inventory lease is assigned. For example, the lease management server may calculate an expiration of the inventory lease based on the obtained data (340). For example, if the velocity of sales is high, the expiration date may be set to be a short amount of time in anticipation that the respective inventory lease may be assigned to a system servicing a slow selling region, and that system servicing a faster selling region may need additional quantities of the specific products. Alternatively, if sales of the specific product are slow system-wide, the expiration may be set to be longer. The expiration may be based on a timer measuring seconds, minutes, hours, days, date or a combination thereof, a counter that measures number of transactions, a number of click-throughs with regard to links related to the specific products, a number of looks, and the like, or some other parameter, such as a specific time of day, for expiring the inventory lease. With a set sub-quantity of a specific product and an expiration date, the inventory lease may be assigned to an external source (350). The assignment of the inventory lease to an external source may be in response to a request from the external source, such as an inventory management server. - A lease management server may also analyze updated data related to sales of the specific product, external systems handling sales of the specific product and analytical data related to the specific product. For example, the total quantity of the specific product may be reduced based on the reservation of product for purchase, completed sales and the like. The remaining quantity of the specific product, for example, 400,000 units, may be segmented into, or divided (either evenly or unevenly) among subsequent inventory leases for assignment to external sources, whose inventory leases have, for example, expired or sold out. The analysis may be in response to a subsequent request from the external source for an additional inventory lease (360). A second sub-quantity of the remaining quantity products to the additional inventory lease may be determined as an optimal quantity for the inventory lease, and a new expiration of the additional inventory lease may be calculated. The second sub-quantity may be, for example, based on at least one of: location of a data center that is directly contacted by a customer, a product country, a remaining inventory of the specific product, a global consumption rate of the specific product, a locale specific consumption rate, an inventory management server consumption rate, peak load time for an inventory management server, a current time of day, historical sales trend for a product similar to the specific product, or an estimated sell out date. Both the optimal quantity and the new expiration may be calculated based on the results of the data analysis (370). The expiration time for each inventory lease may be determined using a velocity of sales of the specific product covered by the inventory lease. For example, if sales are slower than anticipated in a particular geographical region being serviced by a first external source, an inventory lease with a larger quantity and shorter expiration time may be assigned to a second external source that has a greater sales velocity. As a result, the system may dynamically allocate more quantities of products to areas that are selling products at higher velocity thereby eliminating delays or failures due to a lack of available inventory. The additional inventory lease may be assigned to the external source (380). The additional inventory lease may be assigned by the lease management server.
- The lease management server also may perform analytics. For example, the lease management server may aggregate the inventory information from all inventory management server instances on a per product basis. The lease management server may use the inventory information, for example, to calculate optimal lease sizes for each data center that requests a lease. The quantity of a specific product in a lease may be based on one or more of the following: data center location, product country, remaining product inventory (i.e. total quantity of a specific product), a global consumption rate of the specific product, a locale specific consumption rate of the specific product, an inventory management server instance consumption rate, peak load times/current time of the day, historical trends of similar products, and an estimated sellout date for the specific product. Using this date, the lease management server may determine the appropriate quantity to assign in the lease and what the appropriate expiration date should be. The quantity of each lease may follow a particular allocation strategy. For example, if sellout of the product may not happen for greater than one day, then there may be no reduction from the previous lease. The lease management server will assign leases with maximum size leases, such as, for example, a maximum of 1000 units or 1% of units in stock. Alternatively, if sellout of the product may happen within less than one day, the lease quantity may be reduced linearly by a consumption rate of the specific product. Or, if sellout of the specific product may happen within less than one hour, all inventory lease assignments may concentrate all remaining stock to inventory management servers in a top few datacenters.
-
FIG. 4 shows another process according to an implementation of the disclosed subject matter. An inventory management server, such asserver 215A inFIG. 2 , may be configured to manage inventory and execute theprocess 400 illustrated inFIG. 4 . For example, the inventory management server may identify an available lease management server for providing inventory leases for a specific product (410). The inventory management server may identify available lease management servers by performing a hash function to obtain a set of lease management servers that are a set of active lease management servers. The active lease management servers are the servers that are available to the inventory management servers. From the set of active, available lease management servers, a master lease management server may be selected from the set of active servers may be selected by known master-slave selection processes. An inventory lease for a specific product available for distribution may be received by a processor of the inventory management server (420). The inventory lease may include a leased quantity (i.e. one of the sub-quantities of the specific product total quantity described above with respect toFIG. 3 ) of the specific product and an expiration of the inventory lease. The expiration of the inventory lease is similar to the expiration explained above. In response to an order indication for an ordered quantity of the specific product received over a communication pathway with a plurality of network front end systems, the ordered quantity of the specific product may be reserved according to the order indication as being unavailable for distribution from the leased quantity of the specific product in the inventory lease (430). The order indication may be a signal indicating a number of the specific product that has been ordered by customers. Ordered products may be those products that are selected for purchase by a user or by an order management system, such as 230A ofFIG. 2 . “Ordered” products may be considered products that a user has placed in a shopping cart in the on-line store, those products for which a purchase transaction has been completed, or product sales that are pending such as waiting for verification of user funds or credit approval. - The inventory management server may also collect telemetry information on inventory checks and inventory consumption for individual products. This telemetry information may be returned to a lease management server when it fetches additional leases. At
step 440, the remaining quantity of the specific product in the inventory lease that is available for distribution may be determined. For example, the order indication may be used by the inventory management server to perform a calculation of the remaining quantity or adjust a counter based on the initial quantity of a specific product allocated to the respective inventory lease. In response to a determination that the remaining quantity available for distribution has reached a threshold amount or a generation of an inventory lease expiration warning signal, transmitting a request for a new inventory lease having an additional leased quantity of the specific product. In response to a determination that the remaining quantity available for distribution has reached a threshold amount or a generation of an inventory lease expiration warning signal, a request for a new inventory lease having an additional leased quantity of the specific product may be generated and transmitted by the inventory lease management system (450). Alternatively, additional inventory leases may be requested either prior to the expiration of a current lease or when the remaining quantity of the specific product is below a certain threshold. The certain threshold may be determined, for example, based on analytics of the sales and order data related to the specific product. In addition, the frequency of the lease request may change based on analysis of the sales and order data related to the specific product. In an implementation, the inventory management server and the lease management server may be located in different geographical areas that may cause latency in communication between the servers. In an attempt to eliminate the latency, the inventory management server may prefetch an inventory lease from a lease management server when an expiration of a current lease is approaching or the remaining inventory is below the certain threshold. In another implementation, when the prefetch occurs in these situations, the prefetch may be based on the number of requests that the inventory management server may have received for a particular item. If the item is popular and has many requests then prefetching may occur sooner. For example, the certain threshold for remaining quantities may be set at a higher quantity or a time before the expiration may be longer. Conversely, if the item is unpopular and sales are slow, and there are fewer requests for additional leases, the inventory management server may prefetch later than when sales are at a forecasted pace or fast, or not at all. - The inventory management server may also perform other functions, such as identifying a lease management server that may be available for providing inventory leases for the specific product. The identification of the lease management server may be performed using a hash function to obtain a set of lease management servers that are a set of active servers. The hash function may take different forms and may be used to find the identification of the active server set. For example, a hash function may use as an input the SKU of the specific product and the country that is being serviced by the lease management server (e.g., lms_id=hash(sku, country), where lms_id is an identifier of a lease management server).
-
FIG. 5 shows a systematic process according to an implementation of the disclosed subject matter. For example, theprocess 500 may include segmenting a quantity of a specific product in inventory into a plurality of inventory leases having a smaller quantity of the specific product (510). The segmentation of the quantity of the specific product in inventory may be performed by aggregating data from all inventory management servers related to the specific product. Based on an analysis of the aggregated data, an optimal quantity for an inventory lease for distribution may be calculated. The optimal quantity may, for example, be based on at least one of location of a data center that is directly contacted by a customer, a product country, a remaining inventory of the specific product, a global consumption rate of the specific product, a locale specific consumption rate, an inventory management server consumption rate, peak load time for an inventory management server, a current time of day, historical sales trend for a product similar to the specific product, or an estimated sell out date. - A processor in the lease management server may have access to the total quantity of the specific product and may perform the segmenting of the quantity into small quantities that may be assigned to a plurality of leases. The quantities may be assigned prior to the creation of the inventory leases or may be dynamically assigned as requests for an inventory lease are received. For example, the maximum number of specific products to be covered by the inventory lease may be determined based on a velocity of sales (i.e., number of products are being sold in time period) of the specific product. Each inventory lease for the specific product may have an expiration time unique to the respective inventory lease and may include a maximum number of specific products covered by the inventory lease. Different sales scenarios may influence how quantities of the specific product are allocated to an inventory lease. For example, a maximum quantity of the specific product may be allocated to the inventory lease based on a calculation that the specific product will sell out in more than one day, a reduced quantity of the specific product may be allocated to the inventory lease based on a calculation that the specific product will sell out in less than one day, or a quantity of the specific product may be allocated to a reduced number of inventory leases that may be distributed to selected top selling data centers based on a calculation that the specific product will sell out in less than one hour or some other short time frame. Of course, other sales scenarios may be possible and be accommodated by the system.
- The lease management server may distribute at least one of the plurality of inventory leases for the specific products to an inventory management server (520). At least one of the specific products may be selected by the inventory management server from at least one of the plurality of distributed inventory leases to the inventory management server (530). The selection may be, for example, in response to a sale reservation of the selected specific product(s). Based on the selection, the selected specific product may be identified for delivery, for example, to a vendor for shipping the product to a customer or directly sending the product to a customer. In an implementation, the selection may be in response to a sale reservation of the selected specific product(s) by a customer, a server or other device. In response to the selection of the at least one of the specific products, the quantity of specific product in the at least one of the plurality of inventory leases may be decremented by the number of selected specific products (540). Of course, other methods may be used for tracking selection of the at least one of the specific products. For example, a counter may be incremented as products are selected.
- A rate of selection of the specific products or a velocity of sales, from each of the respective inventory leases may be determined (550). The determined rate of selection may be analyzed to determine when the quantity in the respective inventory lease may reach a minimum quantity in the respective inventory lease (560). An indication of when a request for a new inventory lease is to be sent to the lease manager server may be provided, for example, to a lease management server (570). An expiration time for each inventory lease may be determined using a velocity of sales of the specific product covered by the inventory lease.
- The system may also perform status checks of the different servers. For the middleware infrastructure or another component may perform a status check that may determine that the identified inventory management server is operating properly and within parameters related to selections of the related products. Alternatively, in response to a determination that the identified inventory management server is not operating properly, a hash function may be performed to identify a properly operating inventory management server. For example, inputs to the hash function may include a product SKU identifier and a country related to distribution of the specific product. A hashing algorithm, such as one based on Consistent hashing, may be used to determine an active inventory management server. For example, systems as disclosed herein may attempt to locate an active inventory management server using the following process:
-
- 1. Using Consistent hashing or a similar algorithm, calculate a sequence of inventory management servers (IMS_1, IMS_2, . . . IMS_N) for a given ProductID (SKU, country). The initial server IMS_1 and following sequence may differ for each ProductID for uniform load balancing.
- 2. Each client may first attempt to contact the initial IMS_1 for a given ProductID.
- 3. If the primary server IMS_1 is unreachable, the request may be retried on a secondary server IMS_2, followed by a tertiary server IMS_3.
- 4. Each request may be retried up to a specified number of servers IMS_N, such as 3, before failing the request.
- In addition, the system may determine that a user connection to an inventory management server is unavailable, and in response may identify a different inventory management server using a hash function to take over the functions of the unavailable inventory management server.
- From time to time, a consumer may select a product for purchase and indicate that the product should be placed in the consumer's shopping cart. These may be considered product orders. However, the consumer may not complete the sale or the sale may fail due to payment issues, and while the order is pending, it has effectively been abandoned. For example, an abandoned order may be the result of canceled, expired shopping carts or orders that are not completed in time, for example, because of an incorrect credit card number or the like. The system may periodically or after some event reclaim this reserved inventory from the order management system. The order management system or the lease management system may perform the reclamation process. The system may read orders that have been abandoned in an order management server, and may sum a quantity of the specific product from each of the read orders. The sum of the specific products may be allocated back to the lease management server for allocation into an inventory lease. The reclamation process may be performed offline or when network traffic is at a minimum by a backend processor.
- At times, different components of the system illustrated in
FIG. 2 may fail or have degradation in performance. In order to cope with these situations, different failover scenarios may be implemented. For example, with reference toFIG. 2 , an IMS may fail or become unreachable. For example, the link pertaining to SKU A products betweeninventory management server 215A andlease management server 205A may be broken, or the SKU A product link between theinventory management server 215A and theinfrastructure 220A may be broken. In such a situation, an alternate means of servicing customers wishing to purchase SKU A products may be found. In an implementation, another inventory management server, such as inventory management server 215B, may be called within the same individual data center, such asindividual data center 210A. In this example, inventory management server 215B may be the backup server for SKU A products. As shown inFIG. 2 , inventory management server 215B processes SKU C and E products, and in order to process SKU A products an inventory lease for SKU A products may be requested fromlease management server 205A. Once the inventory lease for the SKU A products is received by the inventory management server 215B, it may begin processing SKU A product requests from thestore infrastructure 220A. The infrastructure also may need to determine which of the plurality of inventory management servers 215B or 215C is handling the SKU A product requests. The identification of the responsible inventory management server may be determined using the hash functions described above. If inventory leases are available for the SKU A products then no delays will be evident at a customer device. - As another example, an LMS may fail or become unreachable. An LMS may be sharded, for example by product and country combination. In the case of a full failure on a single shard, only a subset of products may be affected. Each LMS may maintain an in-memory copy all the inventory available for a specific product. Additionally, it may store a list of prefetched leases that it maintains and provides in response to service requests. Thus, in the case of a storage layer or database failure, datastore operations may be limited to reduce latency. In addition, if the datastore is down when a request for a new lease is received, the LMS may service the request with a prefetched lease. The amount prefetched may be a function of, for example, a remaining inventory level and/or how rapidly the product is selling. This may allow for product sales to continue through temporary datastore outages. If there is a longer outage and the store of prefetched leases is exhausted, then only the subset of products stored on the individual shard may be unavailable until datastore operations are restored.
- In another example of addressing LMS failure, an individual data center may include 3 replicas. Of these, one may be elected as the “master” service, and will service all requests. Slave services may fail or be downed for maintenance with few or no side effects, since they are not serving active traffic. If the master instance fails, one of the replicas may become the new master and continue serving request traffic.
- As another example, an IMS may request leases before existing leases expire or run out. This may prevent latency from becoming noticeable for users. It also may reduce the apparent and/or actual effect of any LMS failover and failures, because any temporary disruption in service may be hidden by the prefetch time.
-
FIG. 6 shows an example of a purchase process and data flow according to an implementation of the disclosed subject matter. Thepurchase process 600 may include a number of systems that interact with one another. For example, a purchase process may involve acustomer device 610, a web front end (FE) 620, a store infrastructure orsimilar middleware layer 630, aninventory management server 650, alease management server 660, and anorder management server 670. Acustomer device 610 may access an online store provided through thefront end 620. Thecustomer device 610 may wish to purchase a product through the online store. In response to a selection of a product by thecustomer device 610, thefront end 620 may send a request, such as a check purchase permission request, to thestore infrastructure 630 to confirm if the purchase may be started. The store may perform a check to see if the selected product is available to theinventory management server 650. If theinventory management server 650 has an inventory lease for the selected specific product in memory, it may return a signal with minimal delay, to thefront end 620 that the product is available. The delay typically may be user imperceptible, for example, on the order of 10 ms-400 ms according to embodiments of the presently disclosed subject matter. Alternatively, if an inventory lease for the selected specific product is not stored in memory, theinventory management server 650 may request an inventory lease from thelease management server 660. In such a case, the inventory lease for the specific product may be created, for example, as described above. There may be minimal system latency with this process. When a check for the product is returned with an affirmative indication that the product is available, thefront end 620 may indicate to thecustomer device 610 that the product has been added to thecustomer device 610 shopping cart. - The
customer device 610 may indicate an attempt to purchase the product. Thecustomer device 610 indication may be forwarded to thefront end 620 that processes data in preparation for the purchase of the product. The processed data may be forwarded to a store infrastructure orsimilar middleware layer 630, which may create a cart that may include information related to thecustomer device 610 cart and measuring the progress of the purchase of the products in the cart. Thestore 630 may receive the cart information and may attempt to reserve the product for the customer by sending a request to theinventory management server 650. If an inventory lease for the specific product is not maintained in cache, another lease may be obtained. Once the product has been reserved, thecustomer device 610 may provide additional information to complete the purchase. TheFE 620 may process the additional information received from thecustomer device 620, and may forward an indication to complete the purchase to thestore infrastructure 630. Thestore 630 may send a purchase notification request, which may include a status of the purchase, to theorder management server 670. Theorder management server 670 may process the purchase notification request and may store data related to the purchase in an order data store. Upon completion of the processing of the purchase notification request, theorder management server 670 may return a confirmation to thecustomer device 610. -
FIG. 7 shows an example computer according to an implementation of the disclosed subject matter. Implementations of the presently disclosed subject matter may be implemented in and used with a variety of component and network architectures.FIG. 7 is an example server orcomputer 20 suitable for implementing implementations of the presently disclosed subject matter. Thecomputer 20 includes a bus 21 which interconnects major components of thecomputer 20, such as acentral processor 24, a memory 27 (typically RAM, but which may also include ROM, flash RAM, or the like), an input/output controller 28, auser display 22, such as a display screen via a display adapter, auser input interface 26, which may include one or more controllers and associated user input devices such as a keyboard, mouse, and the like, and may be closely coupled to the I/O controller 28, fixedstorage 23, such as a hard drive, flash storage, Fibre Channel network, SAN device, SCSI device, and the like, and aremovable media component 25 operative to control and receive an optical disk, flash drive, and the like. - The bus 21 allows data communication between the
central processor 24 and thememory 27, which may include read-only memory (ROM) or flash memory (neither shown), and random access memory (RAM) (not shown), as previously noted. The RAM is generally the main memory into which the operating system and application programs are loaded. The ROM or flash memory can contain, among other code, the Basic Input-Output system (BIOS) which controls basic hardware operation such as the interaction with peripheral components. Applications resident with thecomputer 20 are generally stored on and accessed via a computer readable medium, such as a hard disk drive (e.g., fixed storage 23), an optical drive, floppy disk, orother storage medium 25. - The fixed
storage 23 may be integral with thecomputer 20 or may be separate and accessed through other interfaces. Anetwork interface 29 may provide a direct connection to a remote server via a telephone link, to the Internet via an internet service provider (ISP), or a direct connection to a remote server via a direct network link to the Internet via a POP (point of presence) or other technique. Thenetwork interface 29 may provide such connection using wireless techniques, including digital cellular telephone connection, Cellular Digital Packet Data (CDPD) connection, digital satellite data connection or the like. For example, thenetwork interface 29 may allow thecomputer 20 to communicate with other computers or servers via one or more local, wide-area, or other networks, as shown inFIG. 1 . - Many other devices or components (not shown) may be connected in a similar manner (e.g., document scanners, digital cameras and so on). Conversely, all of the components shown in
FIG. 7 need not be present to practice the present disclosure. The components can be interconnected in different ways from that shown. The operation of a computer such as that shown inFIG. 7 is readily known in the art and is not discussed in detail in this application. Code to implement the present disclosure can be stored in computer-readable storage media such as one or more of thememory 27, fixedstorage 23,removable media 25, or on a remote storage location. - More generally, various implementations of the presently disclosed subject matter may include or be embodied in the form of computer-implemented processes and apparatuses for practicing those processes. Embodiments also may be embodied in the form of a computer program product having computer program code containing instructions embodied in non-transitory and/or tangible media, such as floppy diskettes, CD-ROMs, hard drives, USB (universal serial bus) drives, or any other machine readable storage medium, wherein, when the computer program code is loaded into and executed by a computer, the computer becomes an apparatus for practicing implementations of the disclosed subject matter. Embodiments also may be embodied in the form of computer program code, for example, whether stored in a storage medium, loaded into and/or executed by a computer, or transmitted over some transmission medium, such as over electrical wiring or cabling, through fiber optics, or via electromagnetic radiation, wherein when the computer program code is loaded into and executed by a computer, the computer becomes an apparatus for practicing implementations of the disclosed subject matter. When implemented on a general-purpose microprocessor, the computer program code segments configure the microprocessor to create specific logic circuits. In some configurations, a set of computer-readable instructions stored on a computer-readable storage medium may be implemented by a general-purpose processor, which may transform the general-purpose processor or a device containing the general-purpose processor into a special-purpose device configured to implement or carry out the instructions. Embodiments may be implemented using hardware that may include a processor, such as a general purpose microprocessor and/or an Application Specific Integrated Circuit (ASIC) that embodies all or part of the techniques according to implementations of the disclosed subject matter in hardware and/or firmware. The processor may be coupled to memory, such as RAM, ROM, flash memory, a hard disk or any other device capable of storing electronic information. The memory may store instructions adapted to be executed by the processor to perform the techniques according to implementations of the disclosed subject matter.
- The foregoing description, for purpose of explanation, has been described with reference to specific implementations. However, the illustrative discussions above are not intended to be exhaustive or to limit implementations of the disclosed subject matter to the precise forms disclosed. Many modifications and variations are possible in view of the above teachings. The implementations were chosen and described in order to explain the principles of implementations of the disclosed subject matter and their practical applications, to thereby enable others skilled in the art to utilize those implementations as well as various implementations with various modifications as may be suited to the particular use contemplated.
Claims (2)
1-28. (canceled)
29. A method for managing information about inventory, comprising:
preparing, by a first server and for a second server that corresponds to a specific geographic location, a corresponding inventory lease that specifies a sub-quantity and an expiration time, the sub-quantity being of a total quantity of an inventory of a specific product available for distribution within a specific duration of time; and
transmitting, from the first server to the second server via an electronic network, the corresponding inventory lease, the corresponding inventory lease configured to allow the second server to process an order, from a user device proximate to the second server, for the specific product rather than having the order processed by a different second server more distant from the user device than the second server, thereby reducing processing bottlenecks, and configured to limit an amount of the specific product distributed, prior to the expiration time, to the first sub-quantity.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US15/784,753 US20180039937A1 (en) | 2013-10-08 | 2017-10-16 | Managing information about inventory |
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US14/048,938 US9792578B2 (en) | 2013-10-08 | 2013-10-08 | Managing information about inventory |
US15/784,753 US20180039937A1 (en) | 2013-10-08 | 2017-10-16 | Managing information about inventory |
Related Parent Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US14/048,938 Continuation US9792578B2 (en) | 2013-10-08 | 2013-10-08 | Managing information about inventory |
Publications (1)
Publication Number | Publication Date |
---|---|
US20180039937A1 true US20180039937A1 (en) | 2018-02-08 |
Family
ID=51585247
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US14/048,938 Active 2036-03-01 US9792578B2 (en) | 2013-10-08 | 2013-10-08 | Managing information about inventory |
US15/784,753 Abandoned US20180039937A1 (en) | 2013-10-08 | 2017-10-16 | Managing information about inventory |
Family Applications Before (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US14/048,938 Active 2036-03-01 US9792578B2 (en) | 2013-10-08 | 2013-10-08 | Managing information about inventory |
Country Status (4)
Country | Link |
---|---|
US (2) | US9792578B2 (en) |
EP (1) | EP3090392A4 (en) |
CN (1) | CN106537431A (en) |
WO (1) | WO2015053897A2 (en) |
Families Citing this family (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP3143524A1 (en) * | 2014-05-13 | 2017-03-22 | Opera Software AS | Web access performance enhancement |
GB201419498D0 (en) * | 2014-10-31 | 2014-12-17 | Ocado Innovation Ltd | System and method for fulfilling E-commerce orders from a hierarchy of fulfilment centres |
US11416912B2 (en) * | 2016-05-13 | 2022-08-16 | Digital River, Inc. | High volume transaction queueing with machine learning |
US11151604B2 (en) * | 2016-06-10 | 2021-10-19 | International Business Machines Corporation | Revenue management using dynamic customer selection |
US10621599B1 (en) * | 2016-12-02 | 2020-04-14 | Worldpay, Llc | Systems and methods for computer analytics of associations between online and offline purchase events |
US10701163B2 (en) * | 2016-12-16 | 2020-06-30 | Visa International Service Association | Lines prediction model |
CN108122160A (en) * | 2017-12-22 | 2018-06-05 | 株式会社妃颐思 | Commodity sale system |
US10963884B2 (en) * | 2018-05-04 | 2021-03-30 | Walmart Apollo, Llc | Systems and methods for processing reimbursement requests submitted by retail stores to distribution centers |
CN111260272A (en) * | 2019-12-02 | 2020-06-09 | 泰康保险集团股份有限公司 | Method, device, equipment and storage medium for responding to user request based on inventory |
CN112418747A (en) * | 2019-12-19 | 2021-02-26 | 上海哔哩哔哩科技有限公司 | E-commerce hotspot commodity inventory deduction control method and system |
US20220114647A1 (en) * | 2020-10-13 | 2022-04-14 | Trax Technology Solutions Pte Ltd. | Visual product recognition based on shopping list |
Citations (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20020015663A1 (en) * | 1989-09-21 | 2002-02-07 | Andrew S. Goldstein | Oral collection device and kit |
US20020091991A1 (en) * | 2000-05-11 | 2002-07-11 | Castro Juan Carlos | Unified real-time microprocessor computer |
US20020156663A1 (en) * | 2000-07-13 | 2002-10-24 | Manugistics, Inc. | Shipping and transportation optimization system and method |
US20060015416A1 (en) * | 2001-03-23 | 2006-01-19 | Restaurant Services, Inc. | System, method and computer program product for utilizing market demand information for generating revenue |
US7039606B2 (en) * | 2001-03-23 | 2006-05-02 | Restaurant Services, Inc. | System, method and computer program product for contract consistency in a supply chain management framework |
US7072843B2 (en) * | 2001-03-23 | 2006-07-04 | Restaurant Services, Inc. | System, method and computer program product for error checking in a supply chain management framework |
US7120596B2 (en) * | 2001-03-23 | 2006-10-10 | Restaurant Services, Inc. | System, method and computer program product for landed cost reporting in a supply chain management framework |
US7171379B2 (en) * | 2001-03-23 | 2007-01-30 | Restaurant Services, Inc. | System, method and computer program product for normalizing data in a supply chain management framework |
US20080120129A1 (en) * | 2006-05-13 | 2008-05-22 | Michael Seubert | Consistent set of interfaces derived from a business object model |
US20100306249A1 (en) * | 2009-05-27 | 2010-12-02 | James Hill | Social network systems and methods |
US7937294B1 (en) * | 2002-01-12 | 2011-05-03 | Telegrow, Llc | System, and associated method, for configuring a buying club and a coop order |
US20120084119A1 (en) * | 2010-10-04 | 2012-04-05 | Intuit Inc. | Method and system for excess inventory management |
US20140006347A1 (en) * | 2011-10-11 | 2014-01-02 | Zenprise, Inc. | Secure container for protecting enterprise data on a mobile device |
US20160012465A1 (en) * | 2014-02-08 | 2016-01-14 | Jeffrey A. Sharp | System and method for distributing, receiving, and using funds or credits and apparatus thereof |
US20180032997A1 (en) * | 2012-10-09 | 2018-02-01 | George A. Gordon | System, method, and computer program product for determining whether to prompt an action by a platform in connection with a mobile device |
Family Cites Families (35)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6148291A (en) * | 1998-01-26 | 2000-11-14 | K & T Of Lorain, Ltd. | Container and inventory monitoring methods and systems |
US6879962B1 (en) * | 1998-05-24 | 2005-04-12 | Joseph D. Smith | Logistics system and method |
US7177825B1 (en) * | 1999-05-11 | 2007-02-13 | Borders Louis H | Integrated system for ordering, fulfillment, and delivery of consumer products using a data network |
US20070124216A1 (en) * | 2000-03-07 | 2007-05-31 | Michael Lucas | Systems and methods for locating and purchasing proximal inventory items |
US7092929B1 (en) * | 2000-11-08 | 2006-08-15 | Bluefire Systems, Inc. | Method and apparatus for planning analysis |
JP2002203133A (en) * | 2000-12-28 | 2002-07-19 | Komatsu Ltd | Product transaction system and method, and computer readable recording medium recording program for carrying out the method |
US20020198761A1 (en) * | 2001-06-11 | 2002-12-26 | First Look Networks, L.L.C. | System and method for identifying a market by projecting demand and identifying supply |
JP2003076879A (en) * | 2001-08-31 | 2003-03-14 | Kts:Kk | Trade transaction support apparatus and method, and program for trade transaction support |
US20030069739A1 (en) * | 2001-10-05 | 2003-04-10 | International Business Machines Corporation | Method for facilitating supply chain functions relating to inventory items utilizing a leased asset inventory model |
US20030101107A1 (en) | 2001-11-29 | 2003-05-29 | Rishi Agarwal | Inventory management system and method |
JP4445265B2 (en) * | 2002-01-23 | 2010-04-07 | ヴュー・テクノロジー・インコーポレーテッド | Inventory management system |
US20030171996A1 (en) * | 2002-03-07 | 2003-09-11 | Andy Chen | Method for delivery of products purchased online |
US20030187758A1 (en) * | 2002-03-27 | 2003-10-02 | International Business Machines Corporation | Capital asset inventory system and method |
US7464067B2 (en) * | 2002-04-10 | 2008-12-09 | Hotbutton Solutions Inc. | Object monitoring and management system |
US20050114220A1 (en) * | 2003-11-20 | 2005-05-26 | Venkataram Srinivasan | System and method of marketing products and services through third party agent |
US7801776B2 (en) * | 2004-07-30 | 2010-09-21 | Cabi, Llc | Method of controlling product inventory |
US20060195370A1 (en) * | 2005-02-11 | 2006-08-31 | Sp Holdings Plc. | Inventory management method, system, and computer program |
EP1806691A1 (en) * | 2006-01-10 | 2007-07-11 | Tesco Stores Ltd. | System and Method of Inventory Management |
US20070282694A1 (en) * | 2006-05-25 | 2007-12-06 | Alan Gould | Method and system for balancing stock |
US20080140492A1 (en) | 2006-09-29 | 2008-06-12 | Armand Rousso | Systems, methods and apparatuses for importation and exportation transaction facilitation |
CN101206729A (en) * | 2006-12-22 | 2008-06-25 | 深圳富泰宏精密工业有限公司 | Inventory management system |
US20090070237A1 (en) * | 2007-09-11 | 2009-03-12 | Goldman Sachs& Co. | Data reconciliation |
JP2009154986A (en) * | 2007-12-25 | 2009-07-16 | Hitachi Ltd | Transportation planning system and method |
US20090276669A1 (en) * | 2008-04-30 | 2009-11-05 | Caterpillar Inc. | Method for processing and redirecting misdirected advanced shipping notices (ASNs) |
US8768894B2 (en) * | 2008-12-08 | 2014-07-01 | Bank Of America Corporation | Information management inventory |
US20100262512A1 (en) * | 2009-04-13 | 2010-10-14 | Ip Street, Inc. | Processing and Presenting Intellectual Property and Other Information |
JP5174748B2 (en) * | 2009-06-25 | 2013-04-03 | 三浦印刷株式会社 | Tenant store sales promotion management system |
US9275407B2 (en) * | 2009-11-06 | 2016-03-01 | Livingsocial, Inc. | Systems and methods to implement point of sale (POS) terminals, process orders and manage order fulfillment |
CN102387169B (en) * | 2010-08-26 | 2014-07-23 | 阿里巴巴集团控股有限公司 | Delete method, system and delete server for distributed cache objects |
US8515835B2 (en) | 2010-08-30 | 2013-08-20 | Sas Institute Inc. | Systems and methods for multi-echelon inventory planning with lateral transshipment |
US8612464B2 (en) * | 2010-09-02 | 2013-12-17 | Red Hat, Inc. | Portable hash-based key location mechanism |
JP5623832B2 (en) * | 2010-09-03 | 2014-11-12 | 日本たばこ産業株式会社 | Product delivery device, product delivery system, product delivery method and program |
US8582986B2 (en) * | 2010-12-10 | 2013-11-12 | Konica Minolta Business Technologies, Inc. | Inventory management device and inventory management method |
US9659317B2 (en) | 2011-02-24 | 2017-05-23 | International Business Machines Corporation | Individual online price adjustments in real time |
KR20120110871A (en) * | 2011-03-30 | 2012-10-10 | 주식회사 케이티 | Method for determining and searching storage server in distributed file system |
-
2013
- 2013-10-08 US US14/048,938 patent/US9792578B2/en active Active
-
2014
- 2014-09-10 WO PCT/US2014/054996 patent/WO2015053897A2/en active Application Filing
- 2014-09-10 CN CN201480055576.6A patent/CN106537431A/en active Pending
- 2014-09-10 EP EP14771732.6A patent/EP3090392A4/en not_active Withdrawn
-
2017
- 2017-10-16 US US15/784,753 patent/US20180039937A1/en not_active Abandoned
Patent Citations (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20020015663A1 (en) * | 1989-09-21 | 2002-02-07 | Andrew S. Goldstein | Oral collection device and kit |
US20020091991A1 (en) * | 2000-05-11 | 2002-07-11 | Castro Juan Carlos | Unified real-time microprocessor computer |
US20020156663A1 (en) * | 2000-07-13 | 2002-10-24 | Manugistics, Inc. | Shipping and transportation optimization system and method |
US7120596B2 (en) * | 2001-03-23 | 2006-10-10 | Restaurant Services, Inc. | System, method and computer program product for landed cost reporting in a supply chain management framework |
US7039606B2 (en) * | 2001-03-23 | 2006-05-02 | Restaurant Services, Inc. | System, method and computer program product for contract consistency in a supply chain management framework |
US7072843B2 (en) * | 2001-03-23 | 2006-07-04 | Restaurant Services, Inc. | System, method and computer program product for error checking in a supply chain management framework |
US20060015416A1 (en) * | 2001-03-23 | 2006-01-19 | Restaurant Services, Inc. | System, method and computer program product for utilizing market demand information for generating revenue |
US7171379B2 (en) * | 2001-03-23 | 2007-01-30 | Restaurant Services, Inc. | System, method and computer program product for normalizing data in a supply chain management framework |
US7937294B1 (en) * | 2002-01-12 | 2011-05-03 | Telegrow, Llc | System, and associated method, for configuring a buying club and a coop order |
US20080120129A1 (en) * | 2006-05-13 | 2008-05-22 | Michael Seubert | Consistent set of interfaces derived from a business object model |
US20100306249A1 (en) * | 2009-05-27 | 2010-12-02 | James Hill | Social network systems and methods |
US20120084119A1 (en) * | 2010-10-04 | 2012-04-05 | Intuit Inc. | Method and system for excess inventory management |
US20140006347A1 (en) * | 2011-10-11 | 2014-01-02 | Zenprise, Inc. | Secure container for protecting enterprise data on a mobile device |
US20180032997A1 (en) * | 2012-10-09 | 2018-02-01 | George A. Gordon | System, method, and computer program product for determining whether to prompt an action by a platform in connection with a mobile device |
US20160012465A1 (en) * | 2014-02-08 | 2016-01-14 | Jeffrey A. Sharp | System and method for distributing, receiving, and using funds or credits and apparatus thereof |
Also Published As
Publication number | Publication date |
---|---|
US20150100465A1 (en) | 2015-04-09 |
WO2015053897A2 (en) | 2015-04-16 |
EP3090392A4 (en) | 2018-02-28 |
WO2015053897A3 (en) | 2017-03-30 |
EP3090392A2 (en) | 2016-11-09 |
US9792578B2 (en) | 2017-10-17 |
CN106537431A (en) | 2017-03-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9792578B2 (en) | Managing information about inventory | |
KR102244568B1 (en) | Method, device and system for managing logistics through forecast of demand and supply | |
US7269652B2 (en) | Algorithm for minimizing rebate value due to SLA breach in a utility computing environment | |
US10055927B2 (en) | Analytics based climate control in vending machines | |
CN110909978A (en) | Resource processing method, device, server and computer readable storage medium | |
US20140279353A1 (en) | C2EX Compute Commodities Exchange | |
US11960465B2 (en) | Database inventory isolation | |
US11341474B2 (en) | Systems, devices, and methods for network management at a point of sale (POS) device | |
CN114140252A (en) | Resource allocation method and related device for a target object | |
CN111831964B (en) | Data report information processing method and device and computer system | |
WO2019008619A1 (en) | Product ordering system | |
WO2014153978A1 (en) | Methods and systems for managing suppliers and flow of goods on an ecommerce platform | |
US9734523B2 (en) | Virtual stand-in computing service for production computing service | |
CN113780650A (en) | Transport capacity locking method, device, equipment and storage medium | |
JP7541164B1 (en) | Information processing device, information processing method, and program | |
KR101709594B1 (en) | Method for managing online shopping mall through server | |
CN111260444A (en) | Order issuing method, device and computer system for goods-free commodities | |
CN112015745B (en) | Data management method and device | |
US20240135281A1 (en) | Information technology automation based on job return on investment | |
US20230325892A1 (en) | System and method for managing license of software | |
US20240419683A1 (en) | Synchronizing state in large-scale distribution systems | |
US10733020B2 (en) | Resource allocation state management | |
JP4297118B2 (en) | Trading system | |
JP2025036128A (en) | Information processing device, information processing method, and program | |
US10628788B1 (en) | Dynamic encumbrance of inventory |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
AS | Assignment |
Owner name: GOOGLE INC., CALIFORNIA Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNORS:DORNBUSH, SANDOR;GADH, TAJINDER;VAN DER STAAY, MATT;AND OTHERS;SIGNING DATES FROM 20131003 TO 20131008;REEL/FRAME:043873/0673 |
|
STPP | Information on status: patent application and granting procedure in general |
Free format text: DOCKETED NEW CASE - READY FOR EXAMINATION |
|
STPP | Information on status: patent application and granting procedure in general |
Free format text: NON FINAL ACTION MAILED |
|
STCB | Information on status: application discontinuation |
Free format text: ABANDONED -- FAILURE TO RESPOND TO AN OFFICE ACTION |