Commodity selection method and apparatus, processing device, computer-readable storage medium and program product

By initializing the set of eliminated products and updating it based on associated orders, the problem of not considering related purchases in existing technologies is solved, and a front-end warehouse product selection algorithm is realized to improve the consumer shopping experience and order fulfillment rate without increasing the number of selected products.

WO2026118486A1PCT designated stage Publication Date: 2026-06-11BEIJING WODONG TIANJUN INFORMATION TECH CO LTD

Patent Information

Authority / Receiving Office
WO · WO
Patent Type
Applications
Current Assignee / Owner
BEIJING WODONG TIANJUN INFORMATION TECH CO LTD
Filing Date
2025-07-28
Publication Date
2026-06-11

AI Technical Summary

Technical Problem

Existing pre-warehouse product selection algorithms fail to effectively consider the related purchases of products, resulting in invalid product selection. Furthermore, exact solution algorithms based on integer programming are difficult to solve in large-scale order scenarios and cannot arrive at the optimal solution within a reasonable time.

Method used

By initializing a set of eliminated products, products are continuously eliminated based on the number of associated orders for each product, and the associated orders are updated until a quantity threshold is reached. This determines the final set of products for the front-end warehouse, ensuring that the selected products have high sales volume and comprehensive coverage of associated purchases.

Benefits of technology

Without increasing the number of products selected, the efficiency of the consumer shopping experience was improved, ensuring that the selected products had high sales volume and that related purchases were covered, thereby increasing the order fulfillment rate of the front-end warehouse.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN2025110919_11062026_PF_FP_ABST
    Figure CN2025110919_11062026_PF_FP_ABST
Patent Text Reader

Abstract

Provided are a commodity selection method and apparatus, a processing device, a computer-readable storage medium and a program product. The commodity selection method comprises: initializing a first commodity set as an empty set, commodities in the first commodity set being eliminated commodities; on the basis of the number of associated orders of each commodity in a second commodity set, selecting commodities from the second commodity set as eliminated commodities, and adding the eliminated commodities into the first commodity set; updating the associated orders of each commodity in the second commodity set on the basis of the eliminated commodities, and, on the basis of the number of updated associated orders of each commodity in the second commodity set, selecting commodities from the second commodity set as eliminated commodities, and adding the eliminated commodities into the first commodity set until the number of commodities in the second commodity set reaches a first number threshold value; and, on the basis of the second commodity set and the first commodity set, determining a third commodity set, commodities in the third commodity set being selected commodities. The timeliness experience of consumers during shopping can be improved.
Need to check novelty before this filing date? Find Prior Art

Description

A product selection method and apparatus, processing equipment, computer-readable storage medium and program product Technical Field

[0001] This application relates to the field of computer technology, and in particular to a product selection method and apparatus, processing equipment, computer-readable storage medium and program product. Background Technology

[0002] In e-commerce retail, sellers often deploy forward warehouses in certain cities to store a small number of best-selling items in order to shorten delivery times for consumers. After a consumer places an order on an e-commerce platform, the seller prioritizes shipping from the forward warehouse; only if the forward warehouse is out of stock will the order be shipped from a full-category warehouse. Because forward warehouse delivery is faster than full-category warehouses, it provides consumers with a quicker and better shopping experience. Therefore, the product selection strategy for forward warehouses directly impacts the consumer experience.

[0003] Existing product selection algorithms employ two main approaches: one is based on a reverse ranking of historical sales, selecting the top N best-selling products as inventory for the forward warehouse. However, this method doesn't consider cross-purchasing relationships between products, leading to ineffective product selection. Another approach is based on an exact integer programming algorithm, but this is computationally difficult and struggles to solve within a reasonable timeframe for large-scale orders involving tens of thousands of products. Therefore, an effective product selection method is urgently needed to address this issue. Summary of the Invention

[0004] To address the aforementioned technical problems, embodiments of this application provide a product selection method and apparatus, a processing device, a computer-readable storage medium, and a program product.

[0005] Firstly, the product selection method provided in the embodiments of this application includes:

[0006] Initialize the first product set to an empty set, and the products in the first product set are obsolete products;

[0007] Based on the number of associated orders for each product in the second product set, select products from the second product set as eliminated products and add the eliminated products to the first product set;

[0008] Based on the eliminated products, update the associated orders of each product in the second product set, and based on the number of associated orders of each product in the updated second product set, select products from the second product set as eliminated products, add the eliminated products to the first product set, until the number of products in the second product set reaches the first quantity threshold;

[0009] The third set of goods is determined based on the second set of goods and the first set of goods, and the goods in the third set of goods are the selected goods.

[0010] Secondly, the product selection device provided in the embodiments of this application is applied to a processing device, and the device includes:

[0011] The processing unit is used to initialize the first product set as an empty set, and the products in the first product set are discarded products; based on the number of associated orders for each product in the second product set, select products from the second product set as discarded products and add the discarded products to the first product set; update the associated orders for each product in the second product set based on the discarded products, and based on the updated number of associated orders for each product in the second product set, select products from the second product set as discarded products and add the discarded products to the first product set, until the number of products in the second product set reaches a first quantity threshold;

[0012] The determining unit is used to determine a third set of goods based on the second set of goods and the first set of goods, wherein the goods in the third set of goods are the selected goods.

[0013] Thirdly, the processing device provided in the embodiments of this application includes: a processor and a memory, the memory being used to store a computer program, and the processor being used to call and run the computer program stored in the memory to execute any of the above-described product selection methods.

[0014] Fourthly, the computer-readable storage medium provided in the embodiments of this application is used to store a computer program that causes a computer to execute any of the above-described product selection methods.

[0015] Fifthly, the computer program product provided in the embodiments of this application includes computer program instructions that cause a computer to execute any of the product selection methods described above.

[0016] In the technical solution of this application embodiment, the first product set is initialized as an empty set, and the products in the first product set are discarded products. Based on the number of associated orders for each product in the second product set, products are selected from the second product set as discarded products and added to the first product set. Based on the discarded products, the associated orders for each product in the second product set are updated, and based on the updated number of associated orders for each product in the second product set, products are selected from the second product set as discarded products and added to the first product set, until the number of products in the second product set reaches a first quantity threshold. Based on the second product set and the first product set, a third product set is determined, and the products in the third product set are the selected products. In this way, a new front-end warehouse product selection algorithm is implemented. Without increasing the number of selected products, the selection of products in the front-end warehouse is achieved by selecting discarded products. During the process of product elimination, the impact of discarded products on associated orders is continuously updated, thereby ensuring that the finally selected products are all high-selling products, and the previous associated purchase situations can be covered by the selected products. Without increasing the number of selected products, the timeliness experience of consumers' shopping is improved. Attached Figure Description

[0017] Figure 1 is a flowchart illustrating a product selection method according to an embodiment of this application;

[0018] Figure 2 is a schematic diagram of a product collection according to an embodiment of this application;

[0019] Figure 3 is a schematic diagram of a product collection according to an embodiment of this application;

[0020] Figure 4 is a flowchart illustrating a product selection method according to an embodiment of this application.

[0021] Figure 5 is a schematic diagram of the structural composition of the product selection device provided in the embodiment of this application;

[0022] Figure 6 is a schematic structural diagram of a processing device provided in an embodiment of this application. Detailed Implementation

[0023] The technical solutions of the embodiments of this application will now be described with reference to the accompanying drawings. Obviously, the described embodiments are only a part of the embodiments of this application, and not all of them. All other embodiments obtained by those skilled in the art based on the embodiments of this application without creative effort are within the scope of protection of this application.

[0024] It should be noted that the terms "first," "second," etc., used herein are for descriptive purposes only and should not be construed as indicating or implying relative importance or implicitly specifying the number of technical features indicated. Therefore, a feature defined as "first" or "second" may explicitly or implicitly include one or more of that feature. In the description of this disclosure, "multiple" means at least two, such as two, three, etc., unless otherwise explicitly specified.

[0025] To facilitate understanding of the technical solutions of the embodiments of this application, the relevant technologies of the embodiments of this application are described below. The following relevant technologies are optional solutions and can be combined with the technical solutions of the embodiments of this application in any way, and they all fall within the protection scope of the embodiments of this application.

[0026] In e-commerce retail, sellers typically deploy several large-scale, full-category warehouses nationwide to store their self-operated products sold on the e-commerce platform. Simultaneously, to shorten delivery times for consumers, sellers also deploy forward warehouses in some cities. These forward warehouses are generally smaller than the full-category warehouses and store only a small number of best-selling items. After a consumer places an order on the e-commerce platform, the seller prioritizes shipping from the forward warehouses. Only when the forward warehouses are out of stock (part of the order or items nationwide are unavailable) will the full-category warehouses be used to ship. Because the delivery time from forward warehouses (half a day to a day) is better than that of full-category warehouses (more than two days), the former provides consumers with a faster and better shopping experience. Therefore, the product selection strategy for forward warehouses directly impacts the consumer experience.

[0027] The existing product selection algorithm mainly relies on a reverse ranking of historical sales, selecting the top N best-selling products as inventory for the pre-positioned warehouse—an approximate rule-based approach. Another approach is based on an exact solution algorithm using integer programming. This algorithm inputs historical order and product information into an integer programming model, and the solver obtains the product selection scheme that maximizes the overall order fulfillment rate for the pre-positioned warehouse.

[0028] However, the aforementioned method, which sorts by sales volume in reverse order, does not consider the related purchases between products. For example, suppose a coffee machine has historically had high sales, and consumers often buy coffee beans along with the machine. However, there are many types of coffee beans to choose from, resulting in dispersed sales of coffee beans, where the sales of any single type of coffee bean are far lower than that of the coffee machine. If a reverse ordering method is used, the coffee machine might be selected instead of the coffee beans. This means that if a consumer buys both the coffee machine and coffee beans, and the front-end warehouse doesn't have coffee beans in stock, the entire order can only be shipped from the slower-delivery full-category warehouse, leading to invalid product selection. Furthermore, exact algorithms based on integer programming are difficult to solve and can only handle scenarios with hundreds of products. For large-scale orders with tens of thousands of products, they cannot be solved within a reasonable timeframe. Therefore, the following technical solution is proposed in this application.

[0029] To facilitate understanding of the technical solutions of the embodiments of this application, the technical solutions of this application are described in detail below through specific embodiments. The above-mentioned related technologies are optional solutions and can be arbitrarily combined with the technical solutions of the embodiments of this application, all of which fall within the protection scope of the embodiments of this application. The embodiments of this application include at least some of the following contents.

[0030] Figure 1 is a flowchart illustrating the product selection method provided in an embodiment of this application. As shown in Figure 1, the product selection method includes:

[0031] Step 101: Initialize the first product set to an empty set, and the products in the first product set are obsolete products.

[0032] In this embodiment, the first product set is a set of eliminated products. This set contains eliminated products and their identification information. Eliminated products selected into the first product set represent products that were not selected during the product selection process, i.e., products that are eliminated. It should be noted that eliminated products are also called "removed items," and the set of eliminated products is also called the "removed item set." From the perspective of algorithm input, the first product set can also be represented as `eliminated_skus`. Here, `SKU` (stock keeping unit) refers to a unit of inventory used to manage and track product inventory. On e-commerce platforms, a product may have multiple attributes such as color, size, and style. Each attribute can be considered an `SKU`, and different `SKUs` may have different prices and inventory levels.

[0033] In this embodiment of the application, before selecting products, it is necessary to initialize the first product set to an empty set. For example, the elimination set is initialized as eliminated_skus = set(). In this way, when performing the product selection step, the elimination products are continuously selected and put into the elimination set until the pre-set conditions are met, so as to realize the product selection through elimination.

[0034] Step 102: Based on the number of associated orders for each product in the second product set, select products from the second product set as eliminated products and add the eliminated products to the first product set.

[0035] In this embodiment of the application, the second product set is a set of all products, which can be represented as all_sku_set from the perspective of algorithm input. This set contains each product and its corresponding identification information.

[0036] In this embodiment of the application, the associated order of a product refers to all orders that include that product. By counting the number of associated orders for each product in the second product set, products with fewer associated orders are selected as eliminated products and added to the elimination set.

[0037] Step 103: Update the associated orders of each product in the second product set based on the eliminated products, and select products from the second product set as eliminated products based on the number of associated orders of each product in the updated second product set. Add the eliminated products to the first product set until the number of products in the second product set reaches the first quantity threshold.

[0038] In this embodiment, a first quantity threshold is set to determine the restriction on product selection. This first quantity threshold represents the limit on the total number of product types to be selected, also known as the whitelist width, which can be represented as top_K from the perspective of algorithm input. For example, after determining to eliminate P products, the associated orders of the remaining NP products in the second product set are updated based on the P eliminated products. Then, based on the number of associated orders for the NP products in the updated second product set, a new round of products is selected from the updated second product set as eliminated products. These new eliminated products are added to the elimination set. This selection process is repeated until the number of products in the updated second product set meets the whitelist width.

[0039] Step 104: Determine the third set of goods based on the second set of goods and the first set of goods. The goods in the third set of goods are the selected goods.

[0040] In this embodiment, the third product set can be a whitelist of products selected by the pre-warehouse, and the products in the whitelist are the products selected by the pre-warehouse. The number of products selected in the third product set can be the difference between the total number of products in the second product set and the number of eliminated products in the first product set. Specifically, referring to Figure 3, which is a schematic diagram of the product set relationship provided in this embodiment, it shows the relationship between the first product set, the second product set, and the third product set provided in this embodiment. Since there is a limit to the number of products selected by the pre-warehouse, the whitelist width is set to a first quantity threshold. When the number of products in the third product set is greater than or equal to the first quantity threshold, the product selection step is repeated, that is, the selection of eliminated products is repeated, and the eliminated products are put into the first product set until the number of products in the second product set meets the whitelist width. At this time, the remaining products in the second product set after meeting the whitelist width are the products selected by the pre-warehouse.

[0041] As can be seen from the above, the product selection method provided in this application initializes the first product set as an empty set, and the products in the first product set are eliminated products; based on the number of associated orders for each product in the second product set, products are selected from the second product set as eliminated products and added to the first product set; based on the eliminated products, the associated orders for each product in the second product set are updated, and based on the updated number of associated orders for each product in the second product set, products are selected from the second product set as eliminated products and added to the first product set, until the number of products in the second product set reaches a first quantity threshold; based on the second product set and the first product set, a third product set is determined, and the products in the third product set are the selected products; thus, a new front-end warehouse product selection algorithm is implemented, which achieves product selection in the front-end warehouse by selecting eliminated products without increasing the number of selected products. During the elimination process, the impact of eliminated products on associated orders is continuously updated, thereby ensuring that the finally selected products are all high-selling products, and the previous associated purchase situations can be covered by the selected products. Without increasing the number of selected products, the timeliness experience of consumers' shopping is improved.

[0042] Figure 2 is a schematic diagram of a second product set provided in an embodiment of this application. The second product set includes N products, where N is a positive integer. For example, all_sku_set = set(product 1, product 2, product 3, ..., product N). Then step 102 can be executed through steps 1021 to 1023, and the specific steps are as follows:

[0043] Step 1021: Obtain the associated orders formed by N products and count the number of associated orders for N products.

[0044] Here, during the product selection step, we can first obtain the associated orders formed by N products. At this point, the N products represent all products in the second product set. Then, we count the number of associated orders for the N products. Specifically, the associated orders formed by the N products can be a set of all orders containing each of the N products. From the perspective of algorithm input, the associated orders of the N products can be represented as `sku_order`. In `sku_order`, the identifier information of each product is used as the key, and the set of all order numbers containing that product is used as the value. Counting the number of associated orders for the N products is equivalent to counting the number of associated orders for each product in `sku_order`. It should be noted that the set `sku_order` formed by obtaining the associated orders of the N products can be a dictionary-type set, containing both keys and their corresponding values.

[0045] For example, obtaining the set of associated orders for N products can be sku_order = {key1 = product 1: value1 = order number A + order number B + order number C}, {key2 = product 2: value2 = order number A + order number C}, ..., {keyN = product N: valueN = order number A}. Wherein, for product 1, the associated orders are orders A, B, and C, meaning the number of associated orders for product 1 is 3; for product 2, the associated orders are orders A and C, meaning the number of associated orders for product 2 is 2, ..., and for product N, the associated order is order A, meaning the number of associated orders for product N is 1.

[0046] In some implementations, counting the number of associated orders for N products includes counting the number of associated orders for products other than those being phased out. Here, when repeatedly performing the product selection step, only the number of associated orders for products other than those being phased out is counted. In this way, product selection is achieved by identifying products to be phased out, and the influence weight of phased-out products on subsequent orders is continuously updated during the phase-out process, thereby ensuring that the final selected products are all high-selling products, and that their previous associated purchase information is covered by the selected products.

[0047] Step 1022: Select P products from N products as eliminated products based on the number of associated orders. The P products are the top P products with the smallest number of associated orders among the N products, and P is a positive integer less than N.

[0048] Step 1023: Add the eliminated products to the first product set.

[0049] Here, after counting the number of associated orders for N products (i.e., counting the number of associated orders for each product in sku_order), the identification information of each product in sku_order is sorted in ascending order of the number of associated orders for each product, resulting in a sorted list set, which can be represented as sorted_sku. Then, the first P products in the sorted_sku list are designated as discarded products and added to the discarded product set.

[0050] For example, in `sku_order`, the associated orders for product 1 are orders A, B, and C, meaning the number of associated orders for product 1 is 3. For product 2, the associated orders are orders A and C, so the number of associated orders for product 2 is 2, and so on. For product N, the associated order is only order A, so the number of associated orders for product N is 1. The N products are sorted in ascending order of the number of associated orders to obtain a list `sorted_sku = set(product N, product 2, product 1, ...)`. The first P products in the list `sorted_sku` are added to a set of discarded items.

[0051] In some implementations, a first value is selected from a first numerical range as the value of P, where the minimum value of the first numerical range is 1, and the maximum value of the first numerical range is determined based on the number of products in the third product set. Here, the number of products in the third product set is determined by the difference between the first product set and the second product set in the product selection step, so the value of P is between 1 and len(all_sku_set) - len(eliminated_skus). Here, len() represents the number of elements in a sequence type container such as a string, list, or tuple, i.e., its length.

[0052] Specifically, selecting a first value from a first numerical range includes: selecting a first value from a first numerical range based on the quantity of goods in the first set of goods; wherein, the smaller the quantity of goods in the first set of goods, the larger the first value; and the larger the quantity of goods in the first set of goods, the smaller the first value. Here, P>1 has an accelerating effect, that is, when the quantity of eliminated goods is far from the target quantity, a larger P can be appropriately selected, and when the quantity of eliminated goods is close to the target quantity, P can be gradually reduced to 1.

[0053] As can be seen from the above, the product selection method provided in this application embodiment obtains associated orders formed by N products and counts the number of associated orders for N products; based on the number of associated orders, P products are selected from the N products as the eliminated products, where P products are the top P products with the smallest number of associated orders among the N products, and P is a positive integer less than N; the eliminated products are added to the first product set; in this way, the product selection of the front warehouse is realized by selecting eliminated products, and the impact of eliminated products on associated orders is continuously updated during the elimination process, thereby ensuring that the finally selected products are all high-selling products and that the previous associated purchase situations can be covered by the selected products, thereby improving the timeliness experience of consumers' shopping without increasing the number of selected products.

[0054] In some implementations, updating the associated orders of each product in the second product set based on the eliminated product includes: determining the associated orders and associated products of the eliminated product, and updating the associated orders of N products based on the associated orders and associated products of the eliminated product. Here, while adding the eliminated product to the elimination set, the set of all associated orders affected by the eliminated product is found through the associated order set sku_order of N products, and for each associated order, other products in that order are found as associated products of the eliminated product. The associated orders of each product in the second product set are then updated based on the associated orders and associated products of the eliminated product. At this time, the second product set includes NP products.

[0055] In some implementations, the associated products of M orders are obtained, where M is a positive integer. The associated products of the M orders and the associated orders of N products are obtained based on the same order data.

[0056] Here, retrieving the associated products of M orders can be a collection of all associated products contained in each of the M orders. This collection of associated products for M orders can be represented as `order_sku`. In `order_sku`, the M order numbers serve as keys, and the collection of all associated products for each order serves as the value. For example: `order_sku = {key1 = Order No. A: value1 = Product 1 + Product 2 + Product N}, {key2 = Order No. B: value2 = Product 1}, {key1 = Order No. C: value1 = Product 1 + Product 2}, ..., {keyN = Order No. N: valueN = ...}`. For order No. A, the associated products are Product 1, Product 2, and Product N; for order No. B, the associated product is Product 1; and for order No. C, the associated products are Product 1 and Product 2.

[0057] It should be noted that the set formed after obtaining the associated orders of N products and the set formed after obtaining the associated products of M orders are both dictionary-type sets, meaning they each contain a key and its corresponding value. Furthermore, the set formed after obtaining the associated orders of N products and the set formed after obtaining the associated products of M orders are related.

[0058] In some implementations, determining the associated orders and associated goods for obsolete products includes:

[0059] Based on the associated orders of N products, the associated order of the obsolete product is determined as the first order; based on the associated products of M orders, the associated product of the first order is determined as the first product; wherein, the first product and the first order are the associated order and associated product of the obsolete product.

[0060] Here, after determining that the first P items in the sorted_sku list are discarded items, the keyword (product identifier) ​​corresponding to these P discarded items is queried in sku_order, and the associated orders corresponding to these P discarded items are determined based on the value of the keyword. These associated orders are then designated as the first order. Next, the keyword (order number) corresponding to this first order is queried in order_sku, and the associated products corresponding to this first order are determined based on the value of the keyword. These associated products are then designated as the first products.

[0061] For example, sku_order = {key1 = product 1: value1 = order number A + order number B + order number C}, {key2 = product 2: value2 = order number A + order number C}, ..., {keyN = product N: valueN = order number A}. order_sku = {key1 = order number A: value1 = product 1 + product 2 + product N}, {key2 = order number B: value2 = product 1}, {key1 = order number C: value1 = product 1 + product 2}, ..., {keyN = order number N: valueN = ...}. sorted_sku = set(product N, product 2, product 1, ...). When P is set to 1, the elimination set is determined: eliminated_skus = set(product N), that is, the eliminated product is product N. Then, in sku_order, the keyword is product N, and the corresponding associated order is order A. Then, in order_sku, the keyword is order number A, and the corresponding associated products are product 1 and product 2. In this way, the associated orders and corresponding associated products of the eliminated products are determined.

[0062] It should be noted that the number of items in the first order can be one or more, and the number of items in the first order can also be one or more. In the case of multiple items, the corresponding associated items need to be determined for each order separately.

[0063] In some implementations, updating the associated orders of N products based on the associated orders of the eliminated products and the associated products includes: deleting the first order of the first product from the associated orders of the N products.

[0064] Here, once the product to be eliminated, its associated orders, and related goods are determined, the first order of the first product is deleted from the associated orders of N products.

[0065] For example, sku_order = {key1 = product 1: value1 = order number A + order number B + order number C}, {key2 = product 2: value2 = order number A + order number C}, ..., {keyN = product N: valueN = order number A}. order_sku = {key1 = order number A: value1 = product 1 + product 2 + product N}, {key2 = order number B: value2 = product 1}, {key1 = order number C: value1 = product 1 + product 2}, ..., {keyN = order number N: valueN = ...}. sorted_sku = set(product N, product 2, product 1, ...).

[0066] Once the eliminated set is determined: `eliminated_skus = set(product N)`, meaning product N is eliminated, the `sku_order` is searched for the key "product N", i.e., `{keyN = product N: valueN = order number A}`. Then, the `order_sku` is searched for the key "order number A", i.e., `{key1 = order number A: value1 = product 1 + product 2 + product N}`, meaning the corresponding associated products are product 1 and product 2. Next, `sku_order` is updated, removing order number A from product 1 and product 2. At this point, `sku_order` = `{key1 = product 1: value1 = order number B + order number C}`, `{key2 = product 2: value2 = order number C}`, ... This completes one update of `sku_order`.

[0067] As can be seen from the above, the product selection method provided in this application embodiment obtains the associated products of M orders, and the associated products of M orders and the associated orders of N products are obtained based on the same order data statistics; based on the associated orders of N products and the associated products of M orders, the associated orders and associated products of the eliminated products are determined; in this way, product selection is achieved through elimination, and the influence weight of the eliminated products on subsequent orders is continuously updated during the elimination process, thereby ensuring that the finally selected products are all high-selling products and that the previous related purchase situations can be covered in the selected products.

[0068] Example 1

[0069] Figure 4 is a flowchart illustrating a product selection method provided in an embodiment of this application. As shown, it represents a reverse approach, considering product selection from the perspective of eliminating unwanted items. That is, if even one item in an order is included in the elimination list, the order is destined to be unable to be fulfilled locally. Specifically, the overall steps include:

[0070] Step 401: Initialize the elimination set.

[0071] Here, the set of eliminated items can be represented as `eliminated_skus`, and initializing the set of eliminated items can be represented as `eliminated_skus = set()`. The items in the set of eliminated items are discarded items, also known as eliminated products.

[0072] Step 402: Determine whether the second set of goods meets the first quantity threshold.

[0073] Here, it is determined whether the number of products in the second product set (i.e., the difference between the total number of products in the all_sku_set set and the number of products in the eliminated product set) is less than or equal to the whitelist width (top_K). If it is satisfied, proceed to step 403; otherwise, proceed to step 404.

[0074] Step 403: If the second set of products meets the first quantity threshold, stop product selection.

[0075] Here, if the number of products in the second product set is less than or equal to the whitelist width, product selection stops, and the process returns to the second product set. The remaining products in the second product set after product selection stops are used as the third product set, i.e., the front warehouse whitelist. In other words, the remaining products in the third product set at this time are the products selected by the front warehouse.

[0076] Step 404: Calculate the number of orders affected by each product.

[0077] Here, the number of elements in the set corresponding to each keyword in sku_order is calculated. Products already in the elimination set are not counted. Products are sorted in ascending order of the number of orders they affect, resulting in a sorted list set, sorted_sku.

[0078] Step 405: Select P items as eliminated items.

[0079] Here, the first P items of sorted_sku are added to the eliminated item set eliminated_skus. P can be an integer between 1 and len(all_sku_set) - len(eliminated_skus), with P > 1 having an acceleration effect. When the number of eliminated items is far from the target number, a larger value can be used; when the number of eliminated items is close to the target number, the value can be gradually decreased to 1.

[0080] Step 406: Find the corresponding related products by searching for the associated orders of the eliminated products.

[0081] While adding the eliminated product to the elimination set, the system uses sku_order to find all related orders affected by the eliminated product, and for each related order, it uses order_sku to find other products in that order as related products.

[0082] Step 407: Update the order set affected by each product.

[0083] Here, based on all the associated order and associated product pairs from step 405, the set of completed updated orders, sku_order, is removed from sku_order. Steps 402-407 are executed iteratively until the product selection is satisfied.

[0084] As can be seen from the above, the product selection method provided in this application starts from the reverse direction, considering related orders and related products from the perspective of eliminating products. If even one product in an order is included in the elimination list, that order is destined to be unable to be fulfilled locally. Compared with the prior art, which cannot guarantee that products included in the whitelist will not be affected by unselected products due to related purchases, thus affecting the order fulfillment rate, this method increases the proportion of orders that can be fulfilled by the front warehouse without increasing the number of selected products, thereby improving the consumer's shopping experience and making modeling easier.

[0085] Figure 5 is a schematic diagram of the structure of the product selection device provided in an embodiment of this application, which is applied to a processing device. As shown in Figure 5, the product selection device includes:

[0086] Processing unit 501 is used to initialize the first product set as an empty set, and the products in the first product set are discarded products; based on the number of associated orders for each product in the second product set, select products from the second product set as discarded products and add the discarded products to the first product set; update the associated orders for each product in the second product set based on the discarded products, and based on the updated number of associated orders for each product in the second product set, select products from the second product set as discarded products and add the discarded products to the first product set, until the number of products in the second product set reaches a first quantity threshold.

[0087] The determining unit 502 is used to determine a third set of goods based on the second set of goods and the first set of goods, wherein the goods in the third set of goods are the selected goods.

[0088] In some implementations, the second product set includes N products, where N is a positive integer; the product selection device 500 also includes an acquisition unit 503, used to acquire associated orders formed by the N products and count the number of associated orders for the N products.

[0089] The processing unit 501 is also used to select P products from N products as eliminated products based on the number of associated orders, where the P products are the top P products with the smallest number of associated orders among the N products, and P is a positive integer less than N; and to add the eliminated products to the first product set.

[0090] In some implementations, the determining unit 502 is further configured to determine the associated orders and associated products of the eliminated products, and update the associated orders of each product in the second product set based on the associated orders and associated products of the eliminated products.

[0091] In some implementations, the acquisition unit 503 is also used to acquire the associated products of M orders, where M is a positive integer, and the associated products of the M orders and the associated orders of N products are obtained based on the same order data statistics.

[0092] In some implementations, the determining unit 502 is further configured to determine, based on the associated orders of N products, the associated order of the obsolete product as the first order; and based on the associated products of M orders, determine the associated product of the first order as the first product; wherein the first product and the first order are the associated order and associated product of the obsolete product.

[0093] In some implementations, the processing unit 501 is also configured to delete the first order of the first product from the associated orders of N products.

[0094] In some implementations, the processing unit 501 is further configured to select a first value from a first numerical range as the value of P, wherein the minimum value of the first numerical range is 1, and the maximum value of the first numerical range is determined based on the number of goods in the third set of goods.

[0095] In some embodiments, the processing unit 501 is further configured to select a first value from a first numerical range based on the quantity of goods in the first set of goods; wherein, the smaller the quantity of goods in the first set of goods, the larger the first value; and the larger the quantity of goods in the first set of goods, the smaller the first value.

[0096] In some implementations, the processing unit 501 is also used to count the number of associated orders for N products, excluding obsolete products.

[0097] Those skilled in the art should understand that the functions of each unit in the product selection device shown in Figure 5 can be understood with reference to the relevant description of the aforementioned method. The functions of each unit in the product selection device shown in Figure 5 can be implemented by a program running on a processor, or by specific logic circuits.

[0098] Figure 6 is a schematic structural diagram of a processing device 600 provided in an embodiment of this application. The processing device 600 shown in Figure 6 includes a processor 610, which can call and run computer programs from memory to implement the methods in the embodiments of this application.

[0099] Optionally, as shown in FIG6, the processing device 600 may further include a memory 620. The processor 610 may retrieve and run computer programs from the memory 620 to implement the methods described in the embodiments of this application.

[0100] The memory 620 can be a separate device independent of the processor 610, or it can be integrated into the processor 610.

[0101] Optionally, as shown in FIG6, the processing device 600 may further include a transceiver 630, which the processor 610 may control to communicate with other devices. Specifically, it may send information or data to other devices or receive information or data sent by other devices.

[0102] The transceiver 630 may include a transmitter and a receiver. The transceiver 630 may further include antennas, and the number of antennas may be one or more.

[0103] In some embodiments, the processing device 600 may be a computer device, which includes a processor and a memory. The memory stores a computer program, and the processor retrieves and runs the computer program from the memory to perform the following method steps:

[0104] Initialize the first product set to an empty set, and the products in the first product set are obsolete products;

[0105] Based on the number of associated orders for each product in the second product set, select products from the second product set as eliminated products and add the eliminated products to the first product set;

[0106] Based on the eliminated products, update the associated orders of each product in the second product set, and based on the number of associated orders of each product in the updated second product set, select products from the second product set as eliminated products, add the eliminated products to the first product set, until the number of products in the second product set reaches the first quantity threshold;

[0107] The third set of goods is determined based on the second set of goods and the first set of goods, and the goods in the third set of goods are the selected goods.

[0108] In some implementations, the second product set includes N products, where N is a positive integer; the processor in the computer device is also used to retrieve and run a computer program from memory to perform the following method steps:

[0109] Retrieve associated orders for N products and count the number of associated orders for N products;

[0110] Based on the number of associated orders, P products are selected as eliminated products from N products. The P products are the top P products with the smallest number of associated orders among the N products, and P is a positive integer less than N.

[0111] Add the eliminated products to the first product set.

[0112] In some implementations, the processor in the computer device is also used to retrieve and run a computer program from memory to perform the following method steps:

[0113] Identify the associated orders and associated products of the eliminated products, and update the associated orders of each product in the second product set based on the associated orders and associated products of the eliminated products.

[0114] In some implementations, the processor in the computer device is also used to retrieve and run a computer program from memory to perform the following method steps:

[0115] Retrieve the associated products of M orders, where M is a positive integer. The associated products of the M orders and the associated orders of N products are obtained from the same order data.

[0116] In some implementations, the processor in the computer device is also used to retrieve and run a computer program from memory to perform the following method steps:

[0117] Based on the associated orders of N products, the associated order of the eliminated product is determined as the first order;

[0118] Based on the associated products of M orders, the associated product of the first order is determined as the first product; among them, the first product and the first order are the associated order and associated product of the eliminated product.

[0119] In some implementations, the processor in the computer device is also used to retrieve and run a computer program from memory to perform the following method steps:

[0120] In a list of N related orders, delete the first order for the first item.

[0121] In some implementations, the processor in the computer device is also used to retrieve and run a computer program from memory to perform the following method steps:

[0122] A first value is selected from the first numerical range as the value of P, where the minimum value of the first numerical range is 1, and the maximum value of the first numerical range is determined based on the number of goods in the second set of goods.

[0123] In some implementations, the processor in the computer device is also used to retrieve and run a computer program from memory to perform the following method steps:

[0124] Based on the quantity of goods in the first set of goods, a first value is selected from a first numerical range; wherein, the smaller the quantity of goods in the first set of goods, the larger the first value; and the larger the quantity of goods in the first set of goods, the smaller the first value.

[0125] In some implementations, the processor in the computer device is also used to retrieve and run a computer program from memory to perform the following method steps:

[0126] Count the number of related orders for N products, excluding obsolete products.

[0127] It should be understood that the processor in the embodiments of this application may be an integrated circuit chip with signal processing capabilities. In implementation, each step of the above method embodiments can be completed by integrated logic circuits in the processor's hardware or by instructions in software form. The processor described above can be a general-purpose processor, a digital signal processor (DSP), an application-specific integrated circuit (ASIC), a field-programmable gate array (FPGA), or other programmable logic devices, discrete gate or transistor logic devices, or discrete hardware components. It can implement or execute the methods, steps, and logic block diagrams disclosed in the embodiments of this application. The general-purpose processor can be a microprocessor or any conventional processor, etc. The steps of the methods disclosed in the embodiments of this application can be directly embodied in the execution of a hardware decoding processor, or executed by a combination of hardware and software modules in the decoding processor. The software modules can be located in random access memory, flash memory, read-only memory, programmable read-only memory, electrically erasable programmable memory, registers, or other mature storage media in the art. The storage medium is located in memory, and the processor reads information from the memory and, in conjunction with its hardware, completes the steps of the above method.

[0128] It is understood that the memory in the embodiments of this application can be volatile memory or non-volatile memory, or may include both volatile and non-volatile memory. The non-volatile memory can be read-only memory (ROM), programmable read-only memory (PROM), erasable programmable read-only memory (EPROM), electrically erasable programmable read-only memory (EEPROM), or flash memory. The volatile memory can be random access memory (RAM), which is used as an external cache. By way of example, but not limitation, many forms of RAM are available, such as Static Random Access Memory (SRAM), Dynamic Random Access Memory (DRAM), Synchronous DRAM (SDRAM), Double Data Rate SDRAM (DDR SDRAM), Enhanced Synchronous DRAM (ESDRAM), Synchlink DRAM (SLDRAM), and Direct Rambus RAM (DR RAM). It should be noted that the memory used in the systems and methods described herein is intended to include, but is not limited to, these and any other suitable types of memory.

[0129] It should be understood that the above-described memory is exemplary and not a limiting description. For example, the memory in the embodiments of this application may also be static random access memory (SRAM), dynamic random access memory (DRAM), synchronous dynamic random access memory (SDRAM), double data rate synchronous dynamic random access memory (DDR SDRAM), enhanced synchronous dynamic random access memory (ESDRAM), synchronous link dynamic random access memory (SLDRAM), and direct memory bus RAM (DR RAM), etc. That is to say, the memory in the embodiments of this application is intended to include, but is not limited to, these and any other suitable types of memory.

[0130] This application also provides a computer-readable storage medium for storing computer programs.

[0131] The computer-readable storage medium can be applied to the processing device in the embodiments of this application, and the computer program causes the computer to execute the corresponding processes implemented by the processing device in the various methods of the embodiments of this application. For the sake of brevity, it will not be described in detail here.

[0132] This application also provides a computer program product, including computer program instructions. This computer program product can be applied to the processing device in the embodiments of this application, and the computer program instructions cause the computer to execute the corresponding processes implemented by the processing device in the various methods of the embodiments of this application; for the sake of brevity, further details are omitted here.

[0133] This application also provides a computer program. This computer program can be applied to the processing device in the embodiments of this application. When the computer program runs on a computer, it causes the computer to execute the corresponding processes implemented by the processing device in the various methods of the embodiments of this application. For the sake of brevity, further details are omitted here.

[0134] Those skilled in the art will recognize that the units and algorithm steps of the various examples described in conjunction with the embodiments disclosed herein can be implemented in electronic hardware, or a combination of computer software and electronic hardware. Whether these functions are implemented in hardware or software depends on the specific application and design constraints of the technical solution. Those skilled in the art can use different methods to implement the described functions for each specific application, but such implementation should not be considered beyond the scope of this application.

[0135] Those skilled in the art will clearly understand that, for the sake of convenience and brevity, the specific working processes of the systems, devices, and units described above can be referred to the corresponding processes in the foregoing method embodiments, and will not be repeated here.

[0136] In the several embodiments provided in this application, it should be understood that the disclosed systems, apparatuses, and methods can be implemented in other ways. For example, the apparatus embodiments described above are merely illustrative; for instance, the division of units is only a logical functional division, and in actual implementation, there may be other division methods. For example, multiple units or components may be combined or integrated into another system, or some features may be ignored or not executed. Furthermore, the coupling or direct coupling or communication connection shown or discussed may be through some interfaces; the indirect coupling or communication connection between apparatuses or units may be electrical, mechanical, or other forms.

[0137] The units described as separate components may or may not be physically separate. The components shown as units may or may not be physical units; that is, they may be located in one place or distributed across multiple network units. Some or all of the units can be selected to achieve the purpose of this embodiment according to actual needs.

[0138] In addition, the functional units in the various embodiments of this application can be integrated into one processing unit, or each unit can exist physically separately, or two or more units can be integrated into one unit.

[0139] If the aforementioned functions are implemented as software functional units and sold or used as independent products, they can be stored in a computer-readable storage medium. Based on this understanding, the technical solution of this application, in essence, or the part that contributes to the prior art, or a portion of the technical solution, can be embodied in the form of a software product. This computer software product is stored in a storage medium and includes several instructions to cause a computer device (which may be a personal computer, server, or network device, etc.) to execute all or part of the steps of the methods described in the various embodiments of this application. The aforementioned storage medium includes various media capable of storing program code, such as USB flash drives, portable hard drives, read-only memory (ROM), random access memory (RAM), magnetic disks, or optical disks.

[0140] The above description is merely a specific embodiment of this application, but the scope of protection of this application is not limited thereto. Any variations or substitutions that can be easily conceived by those skilled in the art within the scope of the technology disclosed in this application should be included within the scope of protection of this application. Therefore, the scope of protection of this application should be determined by the scope of the claims.

Claims

1. A method for selecting products, the method comprising: initializing a first product set as an empty set, products in the first product set being eliminated products; selecting a product from a second product set as an eliminated product based on a number of associated orders of each product in the second product set, and adding the eliminated product to the first product set; updating the associated orders of each product in the second product set based on the eliminated product, and selecting a product from the second product set as an eliminated product based on a number of associated orders of each product in the updated second product set, and adding the eliminated product to the first product set until a number of products in the second product set reaches a first quantity threshold; determining a third product set based on the second product set and the first product set, products in the third product set being selected products.

2. The method of claim 1, wherein, the second product set comprises N products, N being a positive integer; the selecting a product from the second product set as an eliminated product based on a number of associated orders of each product in the second product set, and adding the eliminated product to the first product set, comprises: obtaining associated orders formed by the N products, and counting a number of associated orders of the N products; selecting P products from the N products as the eliminated products based on the number of associated orders, the P products being a first P products with the smallest number of associated orders among the N products, P being a positive integer smaller than N; adding the eliminated products to the first product set.

3. The method of claim 2, wherein, the updating the associated orders of each product in the second product set based on the eliminated product, comprises: determining an associated order and an associated product of the eliminated product, and updating the associated orders of each product in the second product set based on the associated order and the associated product of the eliminated product.

4. The method of claim 3, the method comprising: obtaining M associated products of M orders, M being a positive integer, the M associated products of the M orders being counted based on the same order data as the associated orders of the N products; the determining the associated order and the associated product of the eliminated product, comprises: determining the associated order of the eliminated product as a first order based on the associated orders of the N products; determining the associated product of the first order as a first product based on the M associated products of the M orders; wherein the first product and the first order are the associated order and the associated product of the eliminated product.

5. The method of claim 4, wherein, the updating the associated orders of the N products based on the associated order and the associated product of the eliminated product, comprises: deleting the first order of the first product from the associated orders of the N products.

6. The method of claim 1, the method further comprising: selecting a first value as a value of the P from a first value range, wherein a minimum value of the first value range is 1, and a maximum value of the first value range is determined based on a number of products in the second product set.

7. The method of claim 5, wherein, the selecting the first value from the first value range, comprises: selecting a first value from a first numerical range based on the number of commodities in the first commodity set; wherein the smaller the number of commodities in the first commodity set, the larger the first value; and the larger the number of commodities in the first commodity set, the smaller the first value.

8. The method of any one of claims 2 to 7, wherein, The statistics of the number of associated orders of the N commodities includes: Statistics of the number of associated orders of commodities in the N commodities except the eliminated commodities.

9. A product selection device, wherein, The device is applied to a processing device, and the device includes: a processing unit configured to initialize a first commodity set as an empty set, commodities in the first commodity set being eliminated commodities; select commodities from a second commodity set as eliminated commodities based on the number of associated orders of each commodity in the second commodity set, and add the eliminated commodities to the first commodity set; update the number of associated orders of each commodity in the second commodity set based on the eliminated commodities, and select commodities from the second commodity set as eliminated commodities based on the number of associated orders of each commodity in the updated second commodity set, and add the eliminated commodities to the first commodity set until the number of commodities in the second commodity set reaches a first quantity threshold; a determination unit configured to determine a third commodity set based on the second commodity set and the first commodity set, commodities in the third commodity set being selected commodities.

10. A processing device comprising: a processor and a memory, the memory being configured to store a computer program, and the processor being configured to invoke and run the computer program stored in the memory to execute the method according to any one of claims 1 to 8. 11.A computer readable storage medium configured to store a computer program, the computer program causing a computer to execute the method according to any one of claims 1 to 8. 12.A computer program product comprising computer program instructions configured to cause a computer to execute the method according to any one of claims 1 to 8.