The following disclosure relates generally to ordering and delivering items, and more particularly to techniques for automatically classifying items to be delivered internationally, such as dynamically at the time the items are ordered and in an automatic manner based on attributes of the items.
The Internet comprises a vast number of computers and computer networks that are interconnected through communication links, with information being exchanged using various services such as electronic mail, FTP, Gopher, and the World Wide Web (also referred to as the “Web”). In addition to merely providing access to information, the Web has increasingly become a medium that is used to search for, shop for and order items (such as products and/or services) that are for purchase, rent, lease, license, trade, evaluation, sampling, etc. In many circumstances, a user can visit the Web site of a Web merchant (or a “Web store”) or other electronic marketplace that sells one or more items. Once there, the user can view information about the items, give an instruction to place an order for one or more items, and provide information needed to complete the purchase (e.g., payment and shipping information).
After receiving an order for one or more items, a Web merchant then fulfills the order by first determining how and when to provide the ordered items to the indicated recipient and then providing the items in the determined manner. Some product items may be available to be delivered electronically to a recipient (e.g., providing email service), while others may be provided physically (e.g., performing cleaning services at the purchaser's house). The order fulfillment process typically used by Web merchants for product items that are to be physically provided shares similarities with other item ordering services that ship ordered items (e.g., catalog-based shopping, such as from mail-order companies).
Before purchasing an item, it is typical for a user to view information about a product on an “item detail page.” The information provided on an item detail page may include such information as the item's name and source, a picture of the item, a description of the item, reviews or ratings of the item, a price at which the item is offered for sale, and one or more controls (e.g., a button) that may be activated by the user to order the item from the Web merchant.
Although such electronic shopping can provide many benefits, difficulties can still arise, such as in situations involving international delivery of an order with the recipient in a different country than the Web merchant or other supplier of one or more items in the order. For example, many countries charge one or more of various types of import taxes (e.g., custom duty tariffs, port handling fees, etc.) on at least some items imported into the country, and some countries may similarly charge one or more of various types of export taxes on at least some items exported from the country. Unfortunately, determining the amount of any such import and/or export taxes and providing for payment of such taxes presents various difficulties, as discussed in greater detail below.
In particular, each country may have hundreds or thousands of distinct classifications of types of items that can be imported, with each classification corresponding to a different tax rate or tax amount. Each such import classification is typically assigned a distinct import tax code (e.g., a harmonized tax code based on the Harmonized Commodity Description and Coding System of the Customs Cooperation Council and World Customs Organization, such as the Harmonized Tariff System of the United States; a code based on the SITC system of the United Nations; a code based on the North American Industry Classification System; etc.), and many countries also maintain a separate set of export tax or other classification codes (e.g., the Schedule B commodity codes of the United States, the Export Control Classification Numbers of the United States and Export Control Numbers of other countries, etc.) for classifying types of items that can be exported. Moreover, a country's import and export codes for an item may be different.
Moreover, many countries' tax codes are organized hierarchically such that a top-level code may correspond to a general type or category of items, and such that children codes of a parent code in the hierarchy each correspond to a subset of the parent code's corresponding items. For example, some paper-based items such as printed books, newspapers and pictures may generally be classified under the Harmonized Tariff System as belonging to chapter “49”, with a subset of those items that includes printed books, brochures and leaflets being classified under heading “01” of chapter 49 (i.e., “4901”), and with a further subset of heading “01” including items having single sheets being classified under sub-heading “10” (i.e., “4901.10”), and with a further subset of single sheet items that are reproduction proofs being classified at the statistical suffix level of “4901.10.0020” and with other single sheet items being classified at the statistical suffix level of “4901.10.0040”. Additional details related to the Harmonized Tariff System are available at ftp://ftp.usitc.gov/pub/reports/studies/0400htsa.pdf, which is hereby incorporated by reference in its entirety.
Due to the high level of detail involved in such tax code systems, as well as the similarity or overlap of many distinct classifications (often corresponding to tax codes in significantly different branches of a tax code hierarchy), it can be extremely difficult to manually classify even a small number of items for a single destination country. These difficulties are greatly exacerbated when a large number of items need to be classified and/or there are a large number of potential destination countries into which the items may be delivered. Moreover, manual assignment of an appropriate tax code for each destination country to each item cannot address a variety of common situations, such as when the group of items to be classified can change (e.g., by having new items being added), when individual items can change (e.g., having attributes of an item change sufficiently to change the tax code for the item), and when classification rules or procedures change.
Thus, until officials for origination and/or destination countries make an actual manual classification determination during the delivery process for items, the complexity of the item classification process often prevents the accurate identification of appropriate tax codes for those items. As a result, the total cost of having those items delivered often cannot be determined at the time that an order is being placed, preventing a merchant from obtaining that total cost from a customer prior to item delivery. Such difficulties cause many merchants to decline to offer items for international delivery, or at best to offer only a very limited number of items for delivery to a very limited number of destination countries. Alternatively, some merchants may attempt to perform international delivery without knowing the cost of import and/or export taxes at the time an order is placed and shipped, such as by attempting to assign responsibility for such costs to the customer (e.g., by shipping items Delivered Duty Unpaid, Ex Works, Free On Board, etc.). However, such policies deter many customers from ordering the items, at least in part due to the unknown costs of import and/or export taxes, and a merchant may still be liable for various costs if a customer declines to accept the items after they have been shipped.
Thus, in view of these disadvantages of conventional techniques for delivering items internationally, it would be beneficial to provide functionality to allow automatic and dynamic classifications of items to appropriate tax codes of item origination and/or destination countries, as well as other techniques discussed in greater detail below.
A software facility is described below that assists in automatically classifying items with respect to one or more predefined classification systems, such as classification systems of countries when items are being delivered internationally to or from those countries. In some embodiments, the items are classified so as to select an appropriate import tax code for a destination country and/or to select an appropriate export tax code for an origination country, such as to allow calculation of delivery-related tax costs for the items before the items are delivered. Moreover, in some such embodiments the automatic classifying is performed dynamically at the time an item order is being placed or considered by a customer.
Various information about items can be used in various embodiments to assist in automatically classifying the items. For example, in some embodiments each of the items has an associated description that includes various attributes for the item. A particular book item, for example, may have various attributes indicating physical aspects of the item (e.g., weight, binding type, number of pages, etc.) and aspects related to the book's contents (e.g., genre, language, etc.), while a particular toy item may have other types of attributes (e.g., to indicate whether the item is educational, is battery powered, and is appropriate for particular ages, as well as to indicate the toy's weight). The attributes for an item can be defined in various ways, such as by each including an attribute type (e.g., “weight” or “genre”) and a corresponding value for the item for that attribute type (e.g., weight=2 lbs and genre=“fiction”). In addition, in some embodiments each item will be associated with one or more item categories (e.g., “book” or “toy”), with each item category having various associated attribute types that can be specified for items of that category (e.g., book items having attributes that include weight, genre and binding type, and toy items having attributes that include weight, educational, and appropriate ages). Such item attributes and categories may be specified in various ways (e.g., by the item manufacturer, supplier and/or merchant), and may be used for various purposes, such as to allow customers to search for or browse for items with specific attributes.
In addition to their other uses, the specified attributes of items are further used in some embodiments to assist in the automatic classification of the items. In particular, in some embodiments predefined mappings are obtained that associate sets of attributes to corresponding country tax codes, and one of the predefined mappings that matches the attributes of an item can then be selected as part of the classification process. For example, books with “hardback” binding types that are of the “fiction” genre and in the “Spanish” language may be associated with a first tax code of a particular country, and books with “paperback” binding types and more than 200 pages may be associated with a second distinct tax code of that country. Using this example, a particular hardback fiction book in Spanish can then be automatically classified as corresponding to the first tax code of that country.
More generally, in some embodiments one or more of a variety of types of predefined classification systems may be used that include not only various import and/or export tax code classification systems, but also classification systems not related to taxes, such as for import and/or export compliance (e.g., Export Control Numbers for use in restricting exports, Schedule B commodity codes for tracking exports, etc.). Thus, the predefined mappings in those embodiments associate sets of attributes to corresponding codes or other classification indications for the classification systems in use. Since each classification system may have hundreds or thousands of distinct codes, and since in some embodiments each classification code in each classification system of interest has one or more predefined mappings that each associate a unique set of item attributes with that classification code, thousands of predefined mappings may be created and used for each classification system. Moreover, since at least some classification systems differ for different countries, each country may have their own distinct set of predefined mappings for use with a classification system. As discussed in greater detail below, the predefined mappings of attribute sets to classification system codes can be obtained in various ways, including by automatically learning appropriate sets of attributes for tax codes based on items that have previously been actually classified to tax codes of a country by an appropriate government official of that country.
Thus, after the predefined mappings of attribute sets to tax codes of countries or other classification codes are available, the attributes of an item can be automatically matched to one of the sets of attributes in the predefined mappings, and the corresponding classification code for that matching predefined mapping can then be selected for use in classifying the items for that country.
The matching of an item to an appropriate attribute set of a predefined mapping may be performed in various ways in various embodiments. For example, multiple attribute sets may each match the attributes of the item, and if so, the attribute set with the largest number of matching attributes may be selected in some embodiments. In other embodiments, additional matching techniques could be used, such as by having a hierarchy of attribute sets, and by traversing the hierarchy to locate successively more detailed attribute sets that match the item attributes until a lowest level attribute set that matches the item attributes is identified. Alternatively, certain attribute types can be more influential in the matching process than other attribute types, such as by using rankings or weightings for attribute types and selecting the attribute set with the highest weighted or ranked degree of match.
In addition, since there can be thousands of predefined mappings for each of many countries of interest, additional information may be used in some embodiments to assist in quickly identifying predefined mappings that are potentially relevant to a particular item. For example, in some embodiments each predefined mapping is associated with one or more countries to which the mapping's tax code or other item classification code corresponds, and is further associated with one or more appropriate categories of items (e.g., based on the item categories used by a merchant selling the items). By associating the mappings with information such as countries and/or item categories, the potentially much smaller number of mappings for a particular target country and item category can be quickly identified. Moreover, in some embodiments subsets of particularly relevant attribute types (e.g., a minimum set of required attribute types) may be defined and used, such that only those attribute sets that match an item's attributes for each of the attribute types in the subset will be selected for more detailed match consideration. Additional details regarding techniques for matching items to attribute sets are discussed in greater detail below.
Moreover, as previously noted, in some embodiments items are automatically classified both with respect to an origination country from which the item is being exported and a destination country into which the item is being imported. While these two classifications may occur independently in some embodiments, in other embodiments an initial classification is used to facilitate additional classifications, such as by first classifying the item to an export tax code of the origination country, and by then using that export tax code of the origination country to assist in the classification of the item to an import tax code of the destination country (e.g., by limiting the number of possible corresponding import tax codes of the destination country, such as based on predefined mappings between such tax codes or instead by using commonalities in the two tax codes, such as when they are both based on a harmonized tax code). In other embodiments, items may be automatically classified with respect to one or more predefined classification systems that are independent of any country and/or of actions such as import/export of the items.
The ability to automatically and dynamically classify items based on item attributes provides a variety of benefits. For example, when new items are added or items are changed, an appropriate classification for the new or changed item can still occur without having to manually designate any information specific to the classification. In addition, since taxes can be dynamically estimated based on a selected tax code, changes in tax rates or tax amounts for a tax code can be easily incorporated without having to manually modify specific tax amounts associated with specific items or groups of items. The calculation or estimation of one or more taxes for an item based on a selected tax code can be performed in a variety of ways in various embodiments, including by using one of various third-party engines that perform such tax calculations.
In addition, by being able to dynamically calculate estimated import and/or export taxes before or during the ordering process for an item in at least some embodiments of the facility, a merchant can calculate the estimated total cost of delivering the item to the recipient (i.e., the total landed cost) if other costs related to the item acquisition and delivery (e.g., shipping, item purchase, etc.) can be determined. Such estimated delivery tax and/or total delivery cost information can also be displayed to a customer before or during the item ordering process, such as to assist the customer in determining whether to purchase an item, and the estimated import and/or export delivery taxes can further be collected on behalf of the customer for forwarding to the appropriate governmental taxing authorities before the items are shipped (e.g., at the time the order is placed), thus reducing the risk to the merchant of uncompensated costs.
In some embodiments, after an item is dynamically classified to one or more import and/or export tax codes and corresponding estimated import and/or export taxes are calculated, additional information is later gathered and tracked about the actual classification that is later manually made for the items during the delivery process, as well as any corresponding import and/or export taxes that are actually charged for the items. This information can be used in a variety of ways. For example, when estimated import and/or export taxes were collected prior to shipment and the actual import and/or export taxes are less than the collected amount, refunds may be provided to the customers. In addition, information about differences between the automatic classifications and the actual manual classifications to import and/or export tax codes can be used to improve the automatic classification process, such as by automatically revising the attribute sets corresponding to the various tax codes to better reflect the actual classification process that occurred, by adjusting weighting weightings or rankings of particular attributes for use with specific items or categories of items, and/or by adjusting attributes that are identified as being in any minimum set for specific items or categories of items.
After items are dynamically classified to appropriate attribute sets and/or corresponding classification codes, that information can also be used in a variety of ways other than estimating delivery taxes. For example, in some embodiments automatically classified import and/or export codes for items may also be used to perform import and/or export compliance with respect to those items, such as by determining that items corresponding to specific import and/or export codes may have additional restrictions. In addition, as new items are being added and corresponding description information for those items is received or specified, an initial automatic classification of the items can be performed to verify that the provided information is correct and that sufficient information about the item has been provided to allow accurate classification. Moreover, in some embodiments additional information related to the import and/or export of the items can be automatically generated, such as electronic and/or hardcopy documentation used for the import and/or export process.
In some embodiments, additional functionality related to importing and/or exporting items may also be provided. For example, when a user in a destination country distinct from a merchant's origination country is ordering an item for delivery, information about the item and about corresponding taxes and other costs may in some embodiments be presented to the user in a language and/or currency corresponding to the destination country, such as in an automatic manner or instead based on user selection of a corresponding option that is automatically provided to the user.
For illustrative purposes, some embodiments of the software facility are discussed below that include particular techniques for describing items and for dynamically classifying items with respect to import and/or export tax codes of particular countries. However, those skilled in the art will appreciate that the invention is not limited to details of these example embodiments, and the techniques described can be used in a wide variety of other situations, including with orders that are placed in ways other than via an electronic marketplace (e.g., telephone orders, in-person orders, etc.) and to classify items into classification systems other than tax codes and for purposes other than estimated tax calculation.
Mapping 136 also illustrates that an attribute set does not have to match all of the attributes of an item in this example embodiment, since the item may have some attributes that are useful to a merchant but that are unrelated to the classification process (e.g., the attribute type of “puzzle” for toys such as item 114). However, while the single attribute in the attribute set for mapping 136 provides the best match for item 114 in this example, the mapping might not be selected as the best match for the item if another predefined mapping (not shown) for a tax code of Germany included an attribute set with multiple attributes that all matched attributes of item 114 (e.g., “coloring-book=true” and “educational=true”). In this example embodiment, attribute sets for different predefined mappings for a single country should have distinct attribute sets to allow a best match to be determined, although predefined mappings for different countries can have duplicate attribute sets, but in other embodiments duplicate attribute sets for a single country may be allowed and handled in other ways (e.g., by needing the attribute sets for predefined mappings for a country to be distinct only within certain subsets, such as distinct item categories). Alternatively, different attribute types may be relevant for classification with respect to different countries, such as item 113 matching the predefined mapping 134 based on the item attributes “coloring-book=false” and “educational=true”, and matching the predefined mapping 135 for France based on the item attributes “educational=true” and “battery-powered=true”. Mapping 136 also demonstrates that, while the coloring book item 114 may be categorized as a toy by the Web merchant (as shown in column 124 for mapping 136), for the purposes of Germany's import tax code it is instead classified as a book (as indicated by the corresponding tax code in column 122 for mapping 136 beginning with the harmonized tax code identifier “49” for books and other printed materials).
The use of the illustrated attribute sets allows items to be added or changed and to still be automatically and dynamically classified. For example, if a new toy item is added that is educational and not a coloring book, mapping 134 can be selected when Germany is the target country into which the toy will be imported or from which the toy will be exported. Similarly, if item 114 were altered such that it remains an educational toy but is no longer classified as a coloring book (e.g., by now including colored stickers that children can use to decorate the book's pages), it can similarly be automatically and dynamically re-classified as matching predefined mapping 134.
In this example, some attributes are present under different portions of the hierarchy (e.g., the wine colors for “red” and “white”), but the best match is selected based not on matching a highest number of attributes but on the lowest level of the hierarchy whose associated attributes all match attributes of the item. Thus, for example, a sparkling red wine with high alcohol content and a price of a certain specified amount per liter might match more attributes under the high alcohol content subcategory of the “red” icewine node if that node further included a corresponding subcategory (not shown) based on price, since the color, alcohol content and price-related attributes all would be matched. Nonetheless, the best match for the item would be the “red” subcategory under “other” under “sparkling wine”, which includes only two matching attributes (i.e., “red=true” and “sparkling-wine=true”), since in this example the higher-level sparkling wine categorization is more relevant for the classification than the lower level sub-categories related to alcohol content or cost.
While in some embodiments items may be matched to attribute sets of predefined mappings based solely on the types of information illustrated in
An embodiment of the Dynamic Item Classifier system 240 is executing in memory 230, and it includes an Attribute Set Identifier component 242, a Tax Code Identifier component 244, and optionally a Cost Calculator component 248. The system 240 receives indications of items to be classified with respect to a target country, and automatically identifies an appropriate tax code classification for the item for that country. In some embodiments, the system 240 may further estimate a tax cost corresponding to importing the item into that target country and/or exporting that item from that target country.
When the system receives an indication of an item to be classified for a target country, the information is provided to the Attribute Set Identifier component 242. The component 242 retrieves information from database 221 on storage 220 regarding predefined mappings of attribute sets to corresponding tax codes for the target country. In the illustrated embodiment, the component 242 also has access to a matching attribute database 223 on storage that includes additional information about how to perform the matching of the item to a particular attribute set, such as a ranking of or subset of attribute types for the matching. The component 242 then selects the best matching attribute set from the predefined mappings and provides the information to the Tax Code Identifier component 244. The component 244 then identifies an appropriate tax code corresponding to the attribute set, such as a tax code associated with the predefined mapping containing the selected attribute set. In embodiments in which the system 240 further includes the Cost Calculator component 248, that component then receives information about the identified tax code and obtains information about corresponding tax amounts or rates from a tax code database 227 on storage. The component 248 then uses the obtained tax amount or rate information as well as information about the item to estimate a tax amount corresponding to the item and the target country.
In some embodiments, the system 240 operates independently of any particular merchant or other item ordering service, such as by providing its item classification capabilities to multiple users—if so, the system 240 will typically receive sufficient information about the items from those other systems to perform the selection of the appropriate attribute set (e.g., attributes and categories of the items to be classified). In other embodiments, the system 240 may instead operate in conjunction with one or more specific item ordering services, such as an optional item ordering service 234 executing in memory 230. That item ordering service may make items available to customers for purchase, such as users of client computer systems 250, and may further store various information about the available items in an item database 229 on storage. The system 240 may further in some embodiments interact with one or more other systems 236 executing in memory, such as to perform additional functionality such as import/export compliance for items based on dynamic classification of the items, language and/or currency conversion based on origination and/or destination countries that are different from the a country of the merchant, etc.
When the optional item ordering service 234 is present, it may also operate in conjunction with one or more Web server computers 270, such as to provide information about the items to users of the client computers 250. Alternatively, the system 240 may instead directly interact with one or more remote computing systems to provide its capabilities, such as one or more of the Web server computers 270 (e.g., computers in use by Web merchants). Such Web servers may provide various Web content 273 to customers or other users of client computer systems via browsers 259 executing in memory 257 of those client computer systems, such as via a Web server 279 executing in memory 277 of the Web server computer.
Those skilled in the art will appreciate that computing systems 200, 250 and 270 are merely illustrative and are not intended to limit the scope of the present invention. Computing system 200 may be connected to other devices that are not illustrated, including through one or more networks such as the Internet or via the World Wide Web (“Web”). More generally, a “client” or “server” system or device may comprise any combination of hardware or software that can interact and provide the indicated functionality, including computers, network devices, internet appliances, PDAs, wireless phones, cellphones, pagers, electronic organizers, television-based systems and various other consumer products that include inter-communication capabilities. In addition, the functionality provided by the illustrated system components may in some embodiments be combined in fewer components or distributed in additional components. Similarly, in some embodiments the functionality of some of the illustrated components may not be provided and/or other additional functionality may be available.
Those skilled in the art will also appreciate that, while various items are illustrated as being stored in memory or on storage while being used, these items or portions of them can be transferred between memory and other storage devices for purposes of memory management and data integrity. Alternatively, in other embodiments some or all of the software modules and/or components may execute in memory on another device and communicate with the illustrated computing device via inter-computer communication. Some or all of the system components or data structures may also be stored (e.g., as instructions or structured data) on a computer-readable medium, such as a hard disk, a memory, a network, or a portable article to be read by an appropriate drive. The system components and data structures can also be transmitted as generated data signals (e.g., as part of a carrier wave) on a variety of computer-readable transmission mediums, including wireless-based and wired/cable-based mediums. Accordingly, the present invention may be practiced with other computer system configurations.
The routine begins at step 305, where an indication is received of an item and of a target country for which item classification is desired. The routine continues to execute subroutine 310 to identify a predefined attribute set for the target country that best matches the item, as discussed in greater detail with respect to
After step 315, the routine continues in this embodiment at step 320 to determine whether to calculate tax costs for the one or more identified tax codes, although in other embodiments such tax calculation may not be performed. If not, the routine continues to step 325 to return an indication of the identified tax code(s). If it was instead determined in step 320 to calculate tax costs, the routine continues instead to step 330 to estimate the tax cost for the item in the target country based on the identified tax codes. For example, in some situations the target country may be a destination country into which the item is being imported, and if so the tax codes and corresponding tax costs may reflect import duty tariffs and other import taxes. Similarly, in some situations and embodiments the target country may be an origination country from which the item is being exported, with the identified tax codes and corresponding estimated tax costs corresponding to various types of export costs. The determining of the tax cost based on an identified tax code can be performed in various ways, such as based on a tax schedule provided by the target country that specifies a particular tax amount or tax rate for the tax code. In some embodiments, the calculation or estimation of such taxes can be performed by using various third-party calculation engines.
After step 330, the routine continues to step 335 to determine whether to further calculate a total cost with respect to the item and target country, such as when the target country is a destination country into which the item is being imported, with the total cost indicating the full total of delivering the item to a recipient in that destination country. If not, the routine continues to step 340 to return an indication of the tax cost determined in step 330, optionally along with an indication of the identified tax code(s). If it is instead determined in step 335 to calculate the total cost, the routine continues to step 345 to calculate other estimated costs associated with sending an item to or from the target country, such as shipping costs, insurance costs, costs of acquiring the item, etc. In some situations in which the target country is a destination country into which the item is being imported, the calculation of other estimated costs can further include calculation of an export-related cost for the item, such as by executing the routine 300 with an origination country for the item shipment identified as the target country. After step 345, the routine continues to step 350 to return an indication of the estimated total cost based on the estimated tax cost from step 330 and the other estimated costs from step 345. After steps 325, 340, or 350, the routine continues to step 395 to determine whether to continue. If so, the routine returns to step 305, and if not the routine continues to step 399 and ends.
While not illustrated here, in other embodiments this or a related routine could provide further functionality related to item classification. For example, in some embodiments one or more of the identified tax codes, the estimated tax cost from step 330, and the calculated total cost could be displayed to a user, such as a customer for the item (whether before, during or after an ordering process for the item is performed). In addition, the identified attribute set and/or tax code for an item can further be used for purposes other than estimating of taxes, such as to perform import and/or export compliance for an item with respect to the target country. In addition, while in the illustrated embodiment the routine can be used for either import or export cost, in other embodiments the routine may support only one such functionality. Alternatively, in embodiments in which the routine can perform both types of functionality, additional information could be provided with respect to step 305, such as an indication of whether the target country is an origination or a destination country. Furthermore, in some embodiments the identification of an appropriate tax code for the destination country could be performed in multiple stages, such as by first identifying an attribute set and corresponding tax code for the origination country and then using that origination country tax code to assist in identifying an appropriate corresponding tax code of a destination country.
The subroutine begins in step 405, where indications are retrieved of multiple predefined mappings of attribute sets to corresponding tax codes of specified countries. In the illustrated embodiment, each of the predefined mappings are further associated with a category of items, although in other embodiments the mappings may be independent of any such item categories. The predefined mappings could be created before being retrieved in a variety of ways, such as based on manual mappings of attribute sets to tax codes (e.g., based on sets of attributes for items that were previously associated with tax codes of a specified country by officials of that country during an import and/or export process for that country, or instead based on attempts to identify appropriate attribute sets for such tax codes in advance of the actual import and/or export process) or instead based on using various automated techniques (e.g., automated learning of appropriate attribute sets for tax codes based on the previous manual classifications done by officials of the appropriate import and/or export countries).
After step 405 is initially performed, the subroutine continues to steps 410-450 to identify attribute sets for one or more items based on the predefined mappings, although in other embodiments step 405 could be performed after a particular item and target country are identified (e.g., to retrieve only predefined mappings for that country and for the one or more item categories to which the item belongs). In particular, in step 410 an indication is received of an item and of a target country, such as a destination country into which the item is to be imported. In step 415, information about the item is then retrieved for use in the matching process, including attributes of the item and in the illustrated embodiment an item category for the item. In other embodiments, other types of information about items could be received and used (e.g., ranking or weighting of some or all attributes that the item may have, indications of other items that are part of a single order with the current item, a number of copies of the indicated item in a current order and/or in past orders, etc.), and any such information could instead be supplied in step 410 rather than being retrieved in step 415 (e.g., by receiving an indication of item attributes and an item category in step 410, whether instead of or in addition to an indication of the item).
After step 415, the subroutine continues to execute subroutine 420 to attempt to match the attributes of the item to the attribute set for one of the predefined mappings, with one example of such a subroutine described in greater detail with respect to
The subroutine begins at step 505, where an indication is received of item attributes and an item category for an item, a target country, and predefined mappings of attribute sets to tax codes (although in other embodiments the predefined mappings could instead be retrieved by the subroutine as needed). In step 510, the subroutine then retrieves indications of subsets of attribute types for item category and target country combinations, which will be used for initial matching for items of those categories in those target countries. After step 510, the subroutine continues to step 515 to select one of the subsets of attribute types based on the item category and the target country received in step 505.
In step 520, the subroutine next identifies values from the item's attributes for the types of attributes in the selected subset, and then identifies attribute sets for the item category and target country that have attributes of those types with those values. The subroutine then continues to step 525 to determine whether there were any matches, and if so continues to step 530 to select the identified attribute set from step 520 that best matches the item, such as by matching the largest number of the item's attributes. If it was instead determined in step 525 that there were no matches, the subroutine continues instead to step 535 to search all of the attribute sets for the item category and the target country to select a best match, such as the attribute set that matches a largest number of the attributes (or a largest number of the attributes for the attribute types in the selected subset). While not illustrated here, in some embodiments a threshold may further be defined in order to determine whether a degree of match in step 535 is sufficiently high for any of the attribute sets being searched, while in other embodiments a determination will instead be made that there is no matching attribute set if no matches are found in step 520. In the illustrated embodiment, after step 535 the subroutine continues to step 540 to determine whether any additional match was identified, and if not continues to step 550 to return an indication that no match was found. If it was instead determined in step 540 that a match was found, or instead after step 530, the subroutine continues to step 545 to return an indication of the selected attribute set. After steps 545 or 550, the subroutine continues to step 599 and returns.
Those skilled in the art will also appreciate that in some embodiments the functionality provided by the routines and subroutines discussed above may be provided in alternative ways, such as being split among more routines or consolidated into less routines. Similarly, in some embodiments illustrated routines and subroutines may provide more or less functionality than is described, such as when other illustrated routines or subroutines instead lack or include such functionality respectively, or when the amount of functionality that is provided is altered. In addition, while various operations may be illustrated as being performed in a particular manner (e.g., in serial or in parallel, or synchronously or asynchronously) and/or in a particular order, those skilled in the art will appreciate that in other embodiments the operations may be performed in other orders and in other manners. Those skilled in the art will also appreciate that the data structures discussed above may be structured in different manners, such as by having a single data structure split into multiple data structures or by having multiple data structures consolidated into a single data structure. Similarly, in some embodiments illustrated data structures may store more or less information than is described, such as when other illustrated data structures instead lack or include such information respectively, or when the amount or types of information that is stored is altered.
From the foregoing it will be appreciated that, although specific embodiments have been described herein for purposes of illustration, various modifications may be made without deviating from the spirit and scope of the invention. Accordingly, the invention is not limited except as by the appended claims and the elements recited therein. In addition, while certain aspects of the invention are presented below in certain claim forms, the inventors contemplate the various aspects of the invention in any available claim form. For example, while only some aspects of the invention may currently be recited as being embodied in a computer-readable medium, other aspects may likewise be so embodied.