Methods and apparatus for grouping items

This application relates to apparatus and methods for automatically grouping the same or similar items provided by various suppliers that may use various supplier identification systems to identify the items to a retailer. In some examples, a computing device receives a supplier identifier from a supplier. The supplier identifier identifies an item that the supplier provides to the retailer for sale. The computing device may determine a group identifier for the item, where the group identifier identifies the item within a group of the retailer. The computing device may update the supplier identifier's association to the retailer identifier based on whether the group identifier is also associated with the retailer identifier. In some examples, the computing device executes a machine learning model to determine anomalies within a current database of supplier identifiers and associated retailer identifiers. In some examples, the computing device indicates changes to associations and any detected anomalies.

TECHNICAL FIELD

The disclosure relates generally to retail systems and, more specifically, to automatically grouping items within retail systems.

BACKGROUND

Retailers, in at least some examples, sell items, such as products or services, in stores. Some retailers may also sell items online, such as on websites (e.g., online marketplaces). For example, a retailer may advertise an item on a retailer's website. A customer may user a browser to view the item, and proceed to purchase the item, on the website. Retailers in at least some examples receive items they sell from suppliers. The supplier may associate each item with an identifier, such as a global trade item number (GTIN), media catalog number (MCN), or universal product code (UPC). For example, the supplier may provide items to the retailer to sell, where each item is identified by an identifier.

In at least some examples, the retailer may receive differing identifiers, such as differing types of identifiers (e.g., GTIN vs. UPC), or differing numbers with a same type of identifier, for a same or similar item provided by various suppliers. For example, a retailer may receive a first type of identifier (e.g., GTIN) for an item for a first supplier of the item, and may receive a second type of identifier (e.g., UPC) for the same item from a second supplier of the item. As another example, the retailer may receive a first number of a type of identifier for an item from the first supplier of the item, and may receive a second number of the same type of identifier for the item from the second supplier of the item, where the first number and the second number differ. This differing identification of items from various suppliers may cause various problems for the retailer, such as keeping track of the purchase order, inventory, or sales of the same or similar items.

SUMMARY

The embodiments described herein are directed to automatically grouping the same or similar items provided by various suppliers. For example, a retailer may sell an item that is supplied by both a first supplier, and a second supplier. The item may be a grocery item (e.g., bread, banana, apple, etc.), for example. The first supplier may identify the item with a particular value based on the first supplier's numbering system (e.g., GTIN), and the second supplier may identify the item with another particular value based on the second supplier's numbering system (e.g., UPC). In some examples, the first supplier may identify the item with a particular GTIN, and the second supplier may identify the item with a different GTIN. The embodiments may automatically determine that the item from each of the suppliers is the same, or a similar, item, and may group the items under a same identifier.

In some examples, various groups of a same retailer may assign an identifier (e.g., an internal identifier) to the same or similar items provided by various suppliers. For example, a very large retailer (e.g., a retailer with many stores and/or various sales outlets such as stores and websites) may have different groups (e.g., departments) that handle various aspects of the business. For example, one group may handle purchasing (e.g., from suppliers), and another group may handle sales (e.g., across a plurality of stores and/or websites). Each group may use a different system (e.g., identification system) to identify and group items. For example, a first group may assign an item a first identifier (e.g., a first item group identifier) in a first system. The first identifier may be a first item group identifier, where all items of a same group are assigned the same first item group identifier. The grouping of items may be based on the type of item (e.g., eggs, bread, apples, etc.), for example. Similarly, a second group may assign the item a second identifier (e.g., a second item group identifier) in a second system. The embodiments may automatically determine same or similar items as identified by each of the group's systems, and may group the items under a same identifier (e.g., a third identifier in a third system).

Further, the embodiments may allow for the removal of an item from an existing grouping, and for the merging of the removed item into another grouping. In some examples, the embodiments may allow for the removal of an item from an existing grouping, and for the creation of a new grouping for the item.

As such, the embodiments may allow a retailer, such as a very large retailer, to accurately track items from various suppliers. The embodiments may reduce the amount of time and cost associated with keeping track of items from procurement to sale of the items, for example. The embodiments may further simplify the identification of items among various groups of the retailer, allowing for more efficient communication about and identification of the items. In addition to or instead of these example advantages, persons of ordinary skill in the art would recognize and appreciate other advantages as well.

In accordance with various embodiments, exemplary systems may be implemented in any suitable hardware or hardware and software, such as in any suitable computing device. In some embodiments, a computing device receives a supplier identifier from a supplier. The supplier identifier identifies an item that the supplier provides to the retailer for sale. The computing device may determine a group identifier for the item, where the group identifier identifies the item within a group of the retailer. The computing device may update the supplier identifier's association to the retailer identifier based on whether the group identifier is also associated with the retailer identifier.

In some examples, the computing device executes a machine learning model to determine anomalies within a current database of supplier identifiers and associated retailer identifiers. In some examples, the computing device indicates changes to associations and any detected anomalies.

In some embodiments, a computing device is configured to receive a first supplier identifier that identifies a first item in a first supplier's numbering system. The computing device is also configured to determine a first retailer identifier associated with the first supplier identifier, where the first retailer identifier identifies the first item in a retailer's first numbering system. Further, the computing device is configured to determine a first group identifier associated with the first supplier identifier, where the first group identifier identifies the first item in a retailer's second numbering system. The computing device is also configured to determine a second retailer identifier associated with the first group identifier. The computing device is further configured to determine whether to associate the first supplier identifier with the second retailer identifier in the retailer's first numbering system based on whether the second retailer identifier matches the first retailer identifier.

In some embodiments, a method is provided that includes receiving a first supplier identifier that identifies a first item in a first supplier's numbering system. The method also includes determining a first retailer identifier associated with the first supplier identifier, where the first retailer identifier identifies the first item in a retailer's first numbering system. Further, the method includes determining a first group identifier associated with the first supplier identifier, where the first group identifier identifies the first item in a retailer's second numbering system. The method also includes determining a second retailer identifier associated with the first group identifier. The method further includes determining whether to associate the first supplier identifier with the second retailer identifier in the retailer's first numbering system based on whether the second retailer identifier matches the first retailer identifier.

In yet other embodiments, a non-transitory computer readable medium has instructions stored thereon, where the instructions, when executed by at least one processor, cause a computing device to perform operations that include receiving a first supplier identifier that identifies a first item in a first supplier's numbering system. The operations also include determining a first retailer identifier associated with the first supplier identifier, where the first retailer identifier identifies the first item in a retailer's first numbering system. Further, the operations include determining a first group identifier associated with the first supplier identifier, where the first group identifier identifies the first item in a retailer's second numbering system. The operations also include determining a second retailer identifier associated with the first group identifier. The operations further include determining whether to associate the first supplier identifier with the second retailer identifier in the retailer's first numbering system based on whether the second retailer identifier matches the first retailer identifier.

DETAILED DESCRIPTION

The description of the preferred embodiments is intended to be read in connection with the accompanying drawings, which are to be considered part of the entire written description of these disclosures. While the present disclosure is susceptible to various modifications and alternative forms, specific embodiments are shown by way of example in the drawings and will be described in detail herein. The objectives and advantages of the claimed subject matter will become more apparent from the following detailed description of these exemplary embodiments in connection with the accompanying drawings.

It should be understood, however, that the present disclosure is not intended to be limited to the particular forms disclosed. Rather, the present disclosure covers all modifications, equivalents, and alternatives that fall within the spirit and scope of these exemplary embodiments. The terms “couple,” “coupled,” “operatively coupled,” “operatively connected,” and the like should be broadly understood to refer to connecting devices or components together either mechanically, electrically, wired, wirelessly, or otherwise, such that the connection allows the pertinent devices or components to operate (e.g., communicate) with each other as intended by virtue of that relationship.

Turning to the drawings,FIG.1illustrates a block diagram of an item grouping system100that includes an item grouping computing device102(e.g., a server, such as an application server), a web server104, database116, at least one supplier server105, and multiple customer computing devices110,112,114operatively coupled over network118. Item grouping computing device102, web server104, supplier server105, and multiple customer computing devices110,112,114can each be any suitable computing device that includes any hardware or hardware and software combination for processing and handling information. For example, each can include one or more processors, one or more field-programmable gate arrays (FPGAs), one or more application-specific integrated circuits (ASICs), one or more state machines, digital circuitry, or any other suitable circuitry. In addition, each can transmit data to, and receive data from, communication network118.

In some examples, each of item grouping computing device102, web server104, and supplier server105can be a computer, a workstation, a laptop, a server such as a cloud-based server, or any other suitable device. In some examples, each of multiple customer computing devices110,112,114can be a cellular phone, a smart phone, a tablet, a personal assistant device, a voice assistant device, a digital assistant, a laptop, a computer, or any other suitable device. In some examples, item grouping computing device102is operated by a retailer, and multiple customer computing devices112,114are operated by customers of the retailer. In some examples, each supplier server105is operated by a supplier to the retailer. Each supplier may supply one or more items to the retailer that the retailer, in turn, provides for sale, for example.

AlthoughFIG.1illustrates three customer computing devices110,112,114, item grouping system100can include any number of customer computing devices110,112,114. Similarly, item grouping system100can include any number of item grouping computing devices102, web servers104, supplier servers105, and databases116.

In some examples, web server104hosts one or more web pages, such as a retailer's website. For example, web server104may host an online marketplace where customers may view and purchase items. The online marketplace may provide for sale a variety of items, such as grocery items. The items may be provided to the retailer by one or more suppliers (e.g., that operate one or more supplier servers105). Customers may, via customer computing devices110,112,114communicating with web server104over communication network118, visit the online marketplace and view the items (e.g., item listings). Customers may also purchase the listed items via the online marketplace. For example, the online marketplace may provide an “add-to-cart” that, when engaged (e.g., clicked on) by the customer, facilitates the placement of items into an online shopping cart. The online marketplace may further provide a “checkout” icon that facilitates the purchase of the items in the online shopping cart.

Item grouping computing device102is operable to communicate with database116over communication network118. For example, item grouping computing device102can store data to, and read data from, database116. Database116can be a remote storage device, such as a cloud-based server, a disk (e.g., a hard disk), a memory device on another application server, a networked computer, or any other suitable remote storage. Although shown remote to item grouping computing device102, in some examples, database116can be a local storage device, such as a hard drive, a non-volatile memory, or a USB stick.

In some examples, supplier servers105provide supplier item data to item grouping computing device102. The supplier item data may identify one or more items the supplier is providing to a retailer. The supplier item data may identify each item by a supplier identifier, such as a GTIN or UPC. Each supplier may identify the same item, or a similar item, with different supplier identifiers. Item grouping computing device102may store the supplier item data to database116. Item grouping computing device102may also store retailer group data in database116. The retailer group data may identify a grouping of items, such as the items from the suppliers, as well as a retailer identification (ID) for each grouping of items. As described herein, item grouping computing device102may determine the retailer IDs based on one or more models (e.g., algorithms), such as a rule-based model or a machine learning based model.

Communication network118can be a WiFi® network, a cellular network such as a 3GPP® network, a Bluetooth® network, a satellite network, a wireless local area network (LAN), a network utilizing radio-frequency (RF) communication protocols, a Near Field Communication (NFC) network, a wireless Metropolitan Area Network (MAN) connecting multiple wireless LANs, a wide area network (WAN), or any other suitable network. Communication network118can provide access to, for example, the Internet.

In some examples, item grouping computing device102receives supplier item data from supplier server105, and stores the supplier item data in database116. The supplier item data may include a supplier identifier, such as a GTIN, MCN, or UPC, for each item. Item grouping computing device102may determine whether the item is associated with any group IDs. A group ID identifies a grouping of items based on their supplier identifier. For example, each of a plurality of supplier identifiers (e.g., from the same or different suppliers) may be associated with a same group ID. In some examples, one or more groups of a retailer determines (or has previously determined) group IDs for items provided by each supplier. For example, one group may associate an item with a first group ID, and another group may associate the same item with a second group ID. In some examples, each group determines (or has determined) the group IDs based on the type, or description, of the item. In some examples, the item is not associated with any group ID.

Item grouping computing device102may determine a retailer ID for an item based on the supplier identifier and/or any group IDs associated with the item. For example, item grouping computing device102may determine the retailer ID based on one or more models (e.g., rules, algorithms) as described herein.

For example,FIGS.7A and7Billustrate graphical charts700,750, respectively, associating supplier IDs702,704,706,708to group IDs710,712and retailer IDs714,716. In some examples, the charts700,750are stored in database116. Graphical chart700represents associations before changes, and graphical chart750represents associations after changes. For these figures, assume that first supplier ID702and second supplier ID704are GTINs from a first supplier and a second supplier, respectively, and each identify a same first item, such as bananas. Further, assume that third supplier ID706and fourth supplier ID708are GTINs from the first supplier and the second supplier, respectively, and each identify a same second item, such as apples.

Referring toFIG.7A, first supplier ID702and second supplier ID704are each associated with a first group ID710, and third supplier ID706and fourth supplier ID708are each associate with a second group ID712. The supplier ID associations to the group IDs may have been determined by a group of a retailer, for example. Further, first supplier ID702and fourth supplier ID708are each also associated with a first retailer ID714, and second supplier ID704and third supplier ID706are each also associated with a second retailer ID716.

The retail IDs714,716may be used by the retailer to identify (e.g., classify) item types of items sold at a website, such as a website hosted by web server104, or sold at a store. In some examples, the retailer may use the retail IDs714,716to track inventory of a type of item (e.g., bananas and apples).

In this example, first supplier ID702and second supplier ID704each identify the first item (e.g., bananas), and they are each associated with group ID710. Assuming first group ID710identifies a group of items that includes the first item, the association between each of first supplier ID702and second supplier ID704to first group ID710is proper. In addition, although first supplier ID702and second supplier ID704each identify the first item, they are each currently associated with different retailer IDs714,716. This may present issues for the retailer. For example, if a retailer attempts to determine how many of the first item they have in inventory, and do not realize that the same item appears under two different retail IDs714,716, an inventory count may not be accurate. Moreover, even if the retailer does realize that two different retail IDs714,716represent the same item, nonetheless an inventory count may still be inaccurate if any of the two different retail IDs714,716are used to identify other types of items.

Similarly, third supplier ID706and fourth supplier ID708each identify the second item (e.g., apples), and they are each associated with second group ID712. Assuming second group ID712identifies a group of items that includes the second item, the associations between each of third supplier ID706and fourth supplier ID708to second group ID712is proper. However, although third supplier ID706and fourth supplier ID708each identify the second item, they are each currently associated with different retailer IDs714,716. This may present issues for the retailer, for at least similar reasons as noted above.

Item grouping computing device102may occasionally (e.g., periodically) perform an accuracy check of chart700to determine whether supplier IDs are properly (e.g., accurately) associated with one or more group IDs710,712and/or a retailer ID714,716. For example, item grouping computing device102may perform an accuracy check of the group ID and retailer ID associations of first supplier ID702. Item grouping computing device102may determine from chart700that the current group ID and retail ID associations to first supplier ID702are first group ID710and first retailer ID714, respectively. Item grouping computing device102may further determine from chart700the retailer ID for any determined group IDs. As such, in this example, item grouping computing device102determines that first group ID710is associated with first retailer ID714.

Item grouping computing device102may then determine if the retailer IDs associated with the supplier ID and with any group IDs are the same. Here, for example, item grouping computing device102may compare first retailer ID714associated with first supplier ID702with first retailer ID714associated with first group ID710. Item grouping computing device102determines that the retail IDs associated with first supplier ID702and with first group ID710are the same, namely, first retailer ID714. In response, item grouping computing device102leaves the first retailer ID714and first group ID710associations to first supplier ID702unchanged, as illustrated inFIG.7B.

Continuing the accuracy check of chart700, item grouping computing device102may determine from chart700the current group ID and retail ID associations to second supplier ID704that, in this example, are first group ID710and second retailer ID716, respectively. Item grouping computing device102may further determine from chart700that first group ID710is associated with first retailer ID714.

Item grouping computing device102may then compare first retailer ID714(to which second supplier ID704is associated with) to second retailer ID716(to which first group ID710is associated with) to determine whether they are the same retailer ID. Item grouping computing device102may replace the current retailer ID based on a rule that retailer ID associations to group IDs associated with a supplier ID prevails over a retailer ID associations to the supplier ID. In this example, item grouping computing device102determines that they are not the same retailer ID. In response to determining that they are not the same retailer ID, item grouping computing device102may replace the current retailer ID association with second supplier ID704with the retailer ID associated with first group ID710, namely, first retailer ID714, as illustrated inFIG.7B. As a result, each of first supplier ID702and second supplier ID704, which identify the first item (e.g., bananas), are now associated with the same first retailer ID714.

Further, item grouping computing device102may determine from chart700the current group ID and retail ID associations to third supplier ID706that, in this example, are second group ID712and second retailer ID716, respectively. Item grouping computing device102may further determine from chart700that second group ID712is associated with second retailer ID716.

Item grouping computing device102may then compare second retailer ID716(to which third supplier ID706is associated with) to second retailer ID716(to which second group ID710is associated with) to determine whether they are the same retailer ID. In this example, item grouping computing device102determines that they are the same retailer ID and, in response, leaves the second retailer ID716and second group ID712associations to third supplier ID706unchanged, as illustrated inFIG.7B.

Continuing the accuracy check of chart700, item grouping computing device102may determine from chart700the current group ID and retail ID associations to fourth supplier ID708that, in this example, are second group ID712and first retailer ID714, respectively. Item grouping computing device102may further determine from chart700that second group ID712is associated with second retailer ID716.

Item grouping computing device102may then compare first retailer ID714(to which fourth supplier ID708is associated with) to second retailer ID716(to which second group ID712is associated with) to determine whether they are the same retailer ID. Item grouping computing device102may replace the current retailer ID based on a rule that retailer ID associations to group IDs associated with a supplier ID prevails over a retailer ID associations to the supplier ID. In this example, item grouping computing device102determines that they are not the same retailer ID. In response to determining that they are not the same retailer ID, item grouping computing device102may replace the current retailer ID association with fourth supplier ID708with the retailer ID associated with the second group ID712, namely, second retailer ID716, as illustrated inFIG.7B. As a result, each of third supplier ID706and fourth supplier ID708, which identify the second item (e.g., apples), are now associated with the same second retailer ID716.

In some examples, item grouping computing device102receives a supplier ID (e.g., from supplier server105), and determines whether the supplier ID is represented by graphical chart750. For example, item grouping computing device102may determine whether the received supplier ID matches any of first supplier ID702, second supplier ID704, third supplier ID706, or fourth supplier ID708. If the received supplier ID does not match any of the supplier IDs represented by graphical chart750, item grouping computing device102generates a new retail ID, and associates the received supplier ID to the new retail ID.

In some examples, item grouping computing device102may execute a model, such as a machine learning model, to detect anomalies within graphical chart700inFIG.7A. The anomalies may be, for example, inaccurate supplier ID associations to group IDs or retailer IDs. The machine learning model may be trained with supervised data based on attributes (e.g., properties) of a plurality of items. The attributes may include, for example, one or more of a price, brand, description, options, weight, quantity, or any other attribute of each item.

For example, item grouping computing device102may generate features based on one or more properties of the item associated with each supplier ID702,704,706,708. Item grouping computing device102may execute the machine learning model based on the generated features for each item to determine anomalies. For example, item grouping computing device102may detect that second supplier ID705is inaccurately associated to second retailer ID716, or that fourth supplier ID708is inaccurately associated to first retailer ID714. In some examples, item grouping computing device102provides an indication of each anomaly (e.g., displays the anomalies, and/or transmits a communication (email, text, etc.) identifying the anomaly).

In some examples, item computing device102generates word embeddings of item descriptions for each item associated with each supplier ID, and provides the generated word embeddings as inputs to the machine learning model for execution. In some examples, each group ID is associated with a corresponding group ID description. Item computing device102may generate word embeddings of the group ID descriptions, and may provide the generated group ID word embeddings as inputs to the machine learning model for execution. Similarly, in some examples, each retailer ID is associated with a corresponding retailer ID description. Item computing device102may generate word embeddings of the retailer ID descriptions, and may provide the generated retailer ID word embeddings as inputs to the machine learning model for execution.

Referring back toFIG.1, once item grouping computing device102determines (e.g., assigns or updates) a retailer ID for an item, item grouping computing device102may group items associated with the same supplier identifier (e.g., the same GTIN or the same UPC), including items from other suppliers, with the same retailer ID.

In some examples, item grouping computing device102receives supplier item data from supplier server105identifying at least one supplier identifier for an item. Item grouping computing device102may determine whether the supplier identifier is currently associated with a group ID (e.g., such as first group ID710or second group ID712), and a retailer ID (e.g., such as first retailer ID714or second retailer ID716).

If the supplier identifier is not associated with a group ID and is not associated with a retailer ID, item grouping computing device102may generate a new retailer ID and assign the supplier identifier to the new retailer ID. Item grouping computing device102may further provide an indication of the assignment. For example, item grouping computing device102may display the assignment, and transmit a communication, such as an email or text message, identifying the assignment. As such, an associate of the retailer may then determine whether the new assignment is appropriate.

In some examples, if the supplier identifier is associated with a group ID but not with a retailer ID, item grouping computing device102may determine whether the group ID is assigned to a retailer ID. If the group ID is assigned to a retailer ID, the supplier identifier is assigned to the same retailer ID.

If the group ID is not assigned to a retailer ID, item grouping computing device102may perform any of the processes described herein to assign the supplier identifier to a retailer ID. For example, item grouping computing device102may perform any of the processes described herein to check the accuracy of a current graphical chart (e.g., as with respect toFIGS.7A,7B), where the current graphical chart includes (e.g., identifies) the association of the supplier identifier to the group ID. Item grouping computing device102may update the graphical chart based on the accuracy check.

If the supplier identifier is associated with a retailer ID but not with a group ID, item grouping computing device102may also perform any of the processes described to check the accuracy of the current graphical chart. Item grouping computing device102may update the graphical chart based on the accuracy check.

FIG.2illustrates the item grouping computing device102ofFIG.1. Item grouping computing device102can include one or more processors201, working memory202, one or more input/output devices203, instruction memory207, a transceiver204, one or more communication ports209, and a display206, all operatively coupled to one or more data buses208. Data buses208allow for communication among the various devices. Data buses208can include wired, or wireless, communication channels.

Instruction memory207can store instructions that can be accessed (e.g., read) and executed by processors201. For example, instruction memory207can be a non-transitory, computer-readable storage medium such as a read-only memory (ROM), an electrically erasable programmable read-only memory (EEPROM), flash memory, a removable disk, CD-ROM, any non-volatile memory, or any other suitable memory. Processors201can be configured to perform a certain function or operation by executing code, stored on instruction memory207, embodying the function or operation. For example, processors201can be configured to execute code stored in instruction memory207to perform one or more of any function, method, or operation disclosed herein.

Additionally processors201can store data to, and read data from, working memory202. For example, processors201can store a working set of instructions to working memory202, such as instructions loaded from instruction memory207. Processors201can also use working memory202to store dynamic data created during the operation of item grouping computing device102. Working memory202can be a random access memory (RAM) such as a static random access memory (SRAM) or dynamic random access memory (DRAM), or any other suitable memory.

Input-output devices203can include any suitable device that allows for data input or output. For example, input-output devices203can include one or more of a keyboard, a touchpad, a mouse, a stylus, a touchscreen, a physical button, a speaker, a microphone, or any other suitable input or output device.

Communication port(s)209can include, for example, a serial port such as a universal asynchronous receiver/transmitter (UART) connection, a Universal Serial Bus (USB) connection, or any other suitable communication port or connection. In some examples, communication port(s)209allows for the programming of executable instructions in instruction memory207. In some examples, communication port(s)209allow for the transfer (e.g., uploading or downloading) of data, such as supplier item data.

Display206can display user interface205. User interfaces205can enable user interaction with item grouping computing device102. For example, user interface205can be a user interface for an application of a retailer that allows a customer to view and interact with a retailer's website. In some examples, a user can interact with user interface205by engaging input-output devices203. In some examples, display206can be a touchscreen, where user interface205is displayed on the touchscreen.

Transceiver204allows for communication with a network, such as the communication network118ofFIG.1. For example, if communication network118ofFIG.1is a cellular network, transceiver204is configured to allow communications with the cellular network. In some examples, transceiver204is selected based on the type of communication network118item grouping computing device102will be operating in. Processor(s)201is operable to receive data from, or send data to, a network, such as communication network118ofFIG.1, via transceiver204.

FIG.3is a block diagram illustrating examples of various portions of the item grouping system100ofFIG.1. As indicated in the figure, item grouping computing device102may receive first supplier item data303from a first supplier server105A. First supplier item data303may identify one or more items, such as items that the first supplier supplies to a retailer. First supplier item data303may identify, for each item, a supplier identifier (e.g., GTIN, MCN, UPC). Similarly, item grouping computing device102may receive second supplier item data305from a second supplier server105B. Second supplier item data305may identify one or more items, such as items that the second supplier supplies to the retailer. Second supplier item data305may identify, for each item, a supplier identifier.

In some examples, first supplier item data303and second supplier item data305may identify differing supplier identifiers for a same item (or item type). In some examples, first supplier item data303and second supplier item data305may identify the same supplier identifier, but for different items (or item types). In some examples, first supplier item data303and second supplier item data305may identify the same supplier identifier for the same item (or item type). Further, in some examples, first supplier item data303and second supplier item data305may identify differing supplier identifiers for differing items (or item types). In some examples, first supplier item data303or second supplier item data305identify a plurality (e.g., two) of supplier identifiers (e.g., a UPC, and a GTIN) for the same item.

Item computing grouping computing device102may parse first supplier item data303and second supplier item data305, extract the supplier identifiers, and store the supplier identifiers as supplier item data350in database116. Supplier item data350may identify supplier identifiers for each of a plurality of suppliers. For example, supplier item data350may include supplier data, such as first supplier data352, for each supplier that supplies items to a retailer. First supplier data352includes one or more first supplier identifiers354for a first item, one or more second supplier identifiers356for a second item, and up to one or more Nthsupplier identifiers358for each of any number of additional items received in first supplier item data303from first supplier server105A.

Database116stores catalog data360, which identifies item data362for each item corresponding to supplier identifiers received from supplier servers, such as first supplier server105A and second supplier server105B. Catalog data360may be received from supplier servers105A,105B (e.g., in first supplier item data303or second supplier item data305), or may be configured by a retailer, for example. Catalog data360includes item data362for each item, where item data362identifies supplier identifiers378for the item, and one or more properties of the item. Supplier IDs378may correspond to supplier IDs received in first supplier item data303and second supplier item data305, which may be stored as supplier item data350. The properties of each item may include one or more of an item brand366, an item price368, an item description370(e.g., a description of the item such as item features), item options372(e.g., item colors, sizes, flavors, etc.), an item weight374, and an item quantity376(e.g., how many of the item in a given container, such as “4” for four apples).

Database116may further store group identification association data382, which identifies group identifiers and associated retailer identifiers. For example, first group data383includes group identifier384and one or more associated retailer identifiers386. As an example, group identifier384may be first group identifier710, and associated retailer identifiers386may be first retailer identifier714and second retailer identifier716. In some examples, a group of a retailer may (e.g., via input/output devices203or user interface205) configure group identification association data382into database116by a group of a retailer, for example. In some examples, group identification association data382is part of a legacy item classification system of a retailer's item management system.

Database116also stores supplier identification association data392, which identifies supplier identifiers and associated group identifiers and retailer identifiers. Supplier identification association data392may identify the associations as described above with respect to graphical chart750, for example. Supplier identification association data392may include supplier identification data for each supplier, such as for a first supplier that provides first supplier item data303and for a second supplier that provides second supplier item data305. Supplier identification data may identify a supplier identifier, an associated group identifier, and an associated retailer identifier. For example, first supplier identification data393includes supplier identifier394, associated group identifier396, and associated retailer identifier398.

Item computing grouping computing device102may determine, for each supplier identifier (e.g., as received in first supplier item data303or second supplier item data305), whether to update supplier identifier association data392. For example, item computing grouping device102may determine that the supplier identifier is to be removed (e.g., split) from an association to a current retailer identifier and merged (e.g., assigned) to a another retailer identifier, whether a new retailer identifier is to be generated to be assigned to the supplier identifier, whether the supplier identifier is to be assigned to an existing retailer identifier, or whether no changes to supplier identifier association data392are needed.

For example, item computing grouping computing device102may determine whether first supplier identifier354is currently assigned to a retailer identifier by obtaining supplier identifier association data392, and determining whether first supplier identifier354matches (e.g., is the same as) any supplier identifier394. In some examples, supplier identification association data392indexes a plurality of supplier identification data (e.g., first supplier identification data393) based on the value of the corresponding supplier identification (e.g., supplier identification394). In these examples, item computing grouping computing device102may search supplier identification association data392based on the value of first supplier identifier354. Other methods of (e.g., efficiently) indexing and looking up a matching supplier identifier394may also be employed.

If item computing grouping computing device102determines that first supplier identifier354does not match any supplier identifier394, item computing grouping computing device102may generate new supplier identifier data, such as first supplier identifier data393, where supplier identifier394is the first supplier identifier354, and associated retailer identifier398is a value not currently used as an associated retailer identifier in supplier identifier association data392(e.g., the next available value in a list of available retailer identifier values). In some examples, an associated group identifier396is also generated (which may be a next available value in a list of available group identifier values). Item computing grouping computing device102may generate create new supplier identifier data309identifying these updates to supplier identifier association data392.

In some examples, if item computing grouping computing device102determines that first supplier identifier354does not match any supplier identifier394, item computing grouping computing device102may execute a machine learning model based on properties of the item corresponding to first supplier identifier354(e.g., item data362corresponding to first supplier identifier354) to determine whether first supplier identifier354may assigned to an existing associated group identifier396and associated retailer identifier398. For example, based on execution of the machine learning model, item computing grouping computing device102may determine a closest matching item with corresponding supplier identifier data within supplier identifier association data392. Item computing grouping computing device102may assign first supplier identifier354by including first supplier identifier354within supplier identifiers394of the supplier identifier data corresponding to the closest matching item. Item computing grouping computing device102may generate assign to existing supplier identifier data311identifying these updates to supplier identifier association data392.

If item computing grouping computing device102determines that first supplier identifier354matches any supplier identifier394, item computing grouping computing device102further determines whether any corresponding associated group identifiers396match any group identifier384of group identification association data382.

If there are no matching group identifiers, item grouping computing device102generates an indication that the associated group identifier396has no associated retailer identifier386in group identifier association data382, and may display the indication, or transmit the indication, such as to an associate of a group of the retailer. In some examples, item grouping computing device102may generate first group data383for the associated group identifier396within group identifier association data382, whereby the group identifier384is the associated group identifier396, and the associated retailer identifier386is the associated retailer identifier398. In addition, the supplier identifier394remains associated to associated retailer identifier398.

If there is a matching group identifier, item computing grouping computing device102further determines whether associated retailer identifier386(corresponding to group identifier384) matches the associated retailer identifier398(corresponding to associated group identifier396).

If item computing grouping computing device102determines that associated retailer identifier386matches associated retailer identifier398, item computing grouping computing device102does not update supplier identifier association data392. As such, first supplier identifier354, which matches supplier identifier394, remains associated to associated group identifier396and associated retailer identifier398.

If item computing grouping computing device102determines that associated retailer identifier386does not match associated retailer identifier398, item computing grouping computing device102reassigns supplier identifier394(which matches first supplier identifier354) to associated retailer identifier386. For example, item computing grouping computing device102updates associated retailer identifier398with the value of associated retailer identifier386. As a result, first supplier identifier354, which matches supplier identifier394, remains associated to associated group identifier396, and is now associated to the retailer identifier provided by associated retailer identifier386and now stored in associated retailer identifier398. Item computing grouping computing device102may generate merge to supplier identifier data307identifying these updates to supplier identifier association data392.

FIG.4illustrates exemplary portions of item computing grouping computing device102. As indicated in the figure, item computing grouping computing device102includes retailer identifier determination engine402, anomaly detection engine404, and retailer identifier assignment engine406. In some examples, one or more of retailer identifier determination engine402, anomaly detection engine404, and retailer identifier assignment engine may be implemented in hardware. In some examples, one or more of retailer identifier determination engine402, anomaly detection engine404, and retailer identifier assignment engine may be implemented as an executable program maintained in a tangible, non-transitory memory, such as instruction memory207ofFIG.2, that may be executed by one or processors, such as processor201ofFIG.2.

Retailer identifier determination engine402receives supplier item data, such as first supplier item data303, identifying one or more supplier identifiers. Each supplier identifier identifies an item by a value, such as a GTIN or UPC. Retailer identifier determination engine402may determine a retailer identifier, such as first retailer identifier714or second retailer identifier716, for each supplier identifier based on supplier identifier association data, such as supplier identifier association data392stored in database116.

For example, and as described above with respect toFIG.3, for each supplier identifier, retailer identifier determination engine402may remove (e.g., split) the supplier identifier from an association to a current retailer identifier and merge (e.g., assign) the supplier identifier to another retailer identifier. As another example, retailer identifier determination engine402may determine that a new retailer identifier is to be generated and be assigned to the supplier identifier. In some examples, retailer identifier determination engine402determines that the supplier identifier is not currently assigned to a retailer identifier, and is to be assigned to an existing retailer identifier. In some examples, retailer identifier determination engine402determines that no changes to the supplier identifier association data is needed.

Based on the above determinations, retailer identifier determination engine402generates retailer identifier data403identifying, for each supplier identifier, a retailer identifier. For example, retailer identifier data403may identify a retailer identifier for the supplier identifier different from a retailer identifier currently assigned to the supplier identifier (e.g., as in the case of split and assign). As another example, retailer identifier data403may generate a new retailer identifier, and identify the new retailer identifier for the supplier identifier (e.g., as in the case of generating a new retailer identifier within supplier identifier association data). As yet another example, retailer identifier data403may identify an already assigned (e.g., currently assigned) retailer identifier for the supplier identifier (e.g., as in the case of no changes).

Anomaly detection engine404also receives first supplier item data303as well as retailer identifier data403. Anomaly detection engine404may detect one or more anomalies associated with any retailer identifier identified in retailer identifier data403. An anomaly may indicate an improper association of a retailer identifier to the supplier identifier. In some examples, anomaly detection engine404implements (e.g., execute) a machine learning model to detect anomalies with a retailer identifier received in retailer identifier data403being associated with the corresponding supplier identifier received in first supplier item data303.

For example, anomaly detection engine404may determine items associated with the retailer identifier (e.g., based on supplier identifier association data392stored in database116), as well as properties of the item corresponding to first supplier item data303. Anomaly detection engine404may then execute the machine learning model based on the obtained properties (e.g., the properties of the item as well as the properties of the items associated with the retailer identifier) to detect the anomalies. Anomaly detection engine404generates anomaly data405identifying any anomalies.

Retailer identifier assignment engine406receives retailer identifier data403and anomaly data405, and may adjust supplier identifier association data392in database116based on retailer identifier data403and anomaly data405. For example, if anomaly data405indicates no anomaly, retailer identifier assignment engine406may generate one or more of merge to supplier identifier data307, create new identifier data309, assign to existing identifier data311(e.g., as discussed with respect toFIG.3) to update supplier identifier association data392. If, however, anomaly data405indicates an anomaly with respect to a retailer identifier identified by retailer identifier data403(being associated to a supplier identifier identified by first supplier item data303), retailer identifier assignment engine406may determine whether to permit the changes.

For example, anomaly data405may identify a score associated with each anomaly. In some examples, if the score is beyond (e.g., at or above) a threshold, retailer identifier assignment engine406may not allow the changes. Retailer identifier assignment engine406may log indications of the anomaly, the supplier identifier, and the retailer identifier in, for example, database116. In some examples, retailer identifier assignment engine406provides an indication of the anomaly, for example, on a display (e.g., display206), or generates and transmits a communication (e.g., via transceiver204). In some examples, if the score is not beyond the threshold (e.g., below the threshold), retailer identifier assignment engine406may allow the changes. Retailer identifier assignment engine406may generate one or more of merge to supplier identifier data307, create new identifier data309, assign to existing identifier data311to update supplier identifier association data392.

FIG.5is a flowchart of an example method500that can be carried out by a computing device, such as the item grouping computing device102ofFIG.1. Beginning at step502, the computing device receives a supplier identifier and a group identifier for an item. For example, item grouping computing device102may obtain a first supplier identifier702and a first group identifier710from supplier identifier association data392stored in database116. At step504, the computing device determines a first retailer identifier based on the supplier identifier. For example, item grouping computing device102may determine first retailer identifier714based on an association to first supplier identifier702. The computing device also determines a second retailer identifier based on the group identifier. For example, item grouping computing device102may determine first retailer identifier715based on an association to first group identifier710.

Proceeding to step506, the computing device determines whether the first retailer identifier matches (e.g., is the same as) the second retailer identifier. If the first retailer identifier matches the second retailer identifier, the method ends. Otherwise, if the computing device determines that first retailer identifier does not match the second retailer identifier, the method proceeds to step508.

At step508, the computing device determines any first anomalies based on attributes of the item and attributes of items associated with the first retailer identifier. For example, item grouping computing device102may obtain attributes of the item from catalog data360stored in database116. In addition, item grouping computing device102may also determine items corresponding to the first retailer identifier (e.g., items with supplier identifiers associated to the first retailer identifier), and may obtain attributes of those items from catalog data360stored in database116. Item grouping computing device102may then execute a machine learning model based on the obtained attributes of all items to detect any anomalies. Similarly, at step510, the computing device determines any second anomalies based on the attributes of the item and attributes of items associated with the second retailer identifier.

Proceeding to step512, the computing device selects between the first retailer identifier and the second retailer identifier based on the first anomalies and the second anomalies. For example, if there are no first anomalies but there are second anomalies, the computing device selects the first retailer identifier. Otherwise, if there are first anomalies but no second anomalies, the computing device selects the second retailer identifier. In some examples, execution of the machine learning model at steps508and510generates a first score, and a second score, respectively. The computing device may compare the first score to the second score to determine whether to select the first retailer identifier or the second retailer identifier. For example, the computing device selects the retail identifier associated with the score indicating lesser anomalies (e.g., lower of the first score and the second score).

Proceeding to step514, if the second retailer identifier is selected, the method proceeds to step516, where the supplier identifier is disassociated with the first retailer identifier and associated with the second retailer identifier. For example, item grouping computing device102may “split” the association of the supplier identifier to the first retailer identifier, and assign the supplier identifier to the second retailer identifier. The method then ends. If at step514the second retailer is not selected (i.e., the first retailer is selected), the method then ends. As such, the supplier identifier remains associated to the first retailer identifier.

FIG.6is a flowchart of an example method600that can be carried out by a computing device, such as the item grouping computing device102ofFIG.1. Beginning at step602, the computing device receives a supplier identifier and a group identifier. The group identifier may be one that is included in group identifier association data382, but not in in supplier identifier association data392. At step604, the computing device determines a first retailer identifier based on the supplier identifier. The computing device further determines a second retailer identifier based on the group identifier. For example, the second retailer identifier may be an associated retailer identifier386that corresponds to the group identifier, as identified in group identifier association data382.

Proceeding to step606, the computing device determines whether the first retailer identifier and the second retailer identifier match. If the first retailer identifier and the second retailer identifier match, the method proceeds to step608, where the item is assigned to the group identifier. For example, item grouping computing device102may update supplier identifier association data392to associate the supplier identifier to the grouping identifier. The method then ends.

If, however, the first retailer identifier and the second retailer identifier do not match, the method proceeds to step610, where the computing device determines whether the group identifier already exist in an association database (e.g., within supplier identifier association data392). For example, item grouping computing device102may determine whether the group identifier matches a group identifier in supplier identifier association data392. If the group identifier exists in the association database, the method proceeds to step612. At step612, the supplier identifier is disassociated with the first retailer identifier and is associated with the second retailer identifier. The method then proceeds to step620.

If at step610, however, the group identifier does not already exist in the association database, the method proceeds to step614, where the group identifier is generated in the association database. The method then proceeds to step616, where a third retailer identifier is generated. The third retailer identifier may be the next retailer identifier in a list of unused identifiers. Proceeding to step618, the supplier identifier is disassociated with the first retail identifier, and is associated with the third retailer identifier. The method then proceeds to step620.

At step620, other suppliers associated with the supplier identifier are determined. For example, item grouping computing device102may determine any other supplier that uses the same supplier identifier (e.g., by searching a list of supplier identifiers for each supplier stored in database116). Proceeding to step622, each of the supplier identifiers are associated with the same retailer identifier. For example, if proceeding from step612, each of the supplier identifiers are associated with the second retailer identifier. If proceeding from step618, each of the supplier identifiers are associated with the third retailer identifier. The method then ends.

FIG.8is a flowchart of an example method800that can be carried out by a computing device, such as the item grouping computing device102ofFIG.1. Beginning at step802, the computing device receives a first supplier identifier that identifies a first item in a first supplier's numbering system. At step804, the computing device determines a first retailer identifier associated with the first supplier identifier, wherein the first retailer identifier identifies the first item in a retailer's first numbering system.

Proceeding to step806, the computing device determines a first group identifier associated with the first supplier identifier, wherein the first group identifier identifies the first item in a retailer's second numbering system. At step808, the computing device determines a second retailer identifier associated with the first group identifier. At step810, the computing device determines whether to associate the first supplier identifier with the second retailer identifier in the retailer's first numbering system based on whether the second retailer identifier matches the first retailer identifier. The method then ends.