Product Reference Field Specification
So, as I've been implementing the product reference field based on the prior specification, I'm realizing it wasn't specified enough. At the very least, having a guiding document that tracks the way this differs from a node reference is necessary. To that end, I've boiled down the basics of the field itself (not necessarily all its display formatters):
The Product Reference Field functions similar to the core Term Reference field and contributed User and Node Reference fields. It stores any number of product_ids associated with the object the field is attached to. The available products for reference should be limitable either by product type or by the results of a View. The field should have selection widget options including a select list, checkboxes, and an autocomplete field. The autocomplete field would allow the user to start typing either a product SKU or title and see an autocomplete listing in the format of "SKU: Title" that when selected reduces to the SKU (which it uses to validate the entry, reducing it to the product_id for storage). The field will have several different display formatters, including plaintext and link lists of SKUs and Titles, an Add to Cart form, and an Add to Cart link that may itself be either a text link or an image.