Using 1 Object To Represent 2 Models

We are building a core shopping cart that our company will use as a foundation for multiple shopping carts we will build. These are highly specialized, so different product types will require their own tables of data.

For instance, for a cart that sells labels…

product - id | type_id | created

label - id | product_id | x | y | z

We’re struggling with how to structure our objects. We’d like to programmatically only interact with the Label class and have the data be “split” so to speak between the two tables. One idea we tossed around was creating a view to use for querying and then just overwriting the objects save() method to actually interact with each table’s setters/save functionality.

Has anyone accomplished this or at least faced a similar challenge?