[Catalog] Enhance the Listing SKU field by adding the option to select from one or more automatic "SKU code conventions"

Problem statement:

Listing SKUs are currently a free-for-all and there is no ability to manage consistency or uniqueness across the Catalog instance. Also, top-Catalog Admins are left having to check daily to see whether the Listing managers forgot to define a Listing SKU for those Listings that should have one. These Listing SKUs often appear within a Payment Gateway's transaction information as line items within the order. The inability to consistently manage Listing SKUs can create several different problems shortly down the road. One problem I have encountered is not having a direct way to match up a payment gateway (PG) transaction to the Catalog Order without parsing the PG Transaction Number (where luckily, the Catalog Order ID is embedded). Our PG will include SKUs as Line Items in its records, so it can be useful - if consistent.

Proposed solution:

The Listing SKU is currently an optional free-form single line text field. I am proposing to allow the user to use this default mode, or present one or more automatically generated SKU code conventions types, which can be autogenerated from data already in the Listing. This setting could be a Sub-catalog-level setting - allow free-form (current free-form SKU) or allow selection of a convention-style to use for this sub-catalog's listings. A couple of convention style options could be pre-set. For example, one convention that could be selected might be "Sub-catalog ID with Listing ID". This would auto-build the Listing SKU for the listing from the Primary Catalog's ID (the numerical ID for the Catalog account/sub-catalog), followed by a delimiter/character of choice, for example, "-", followed by the listing numerical ID. This feature could provide consistency, ensure uniqueness of the Listing SKU (I believe), and would require minimal admin management.

User role(s):

admin