thanks for the question and response - we are currently facing the same questions.
We have the requirement to also add, in addition to product-related key/value information, any other cart-related fields that might be required by systems retrieving transaction/order information once the payment has been completed.
Our goal is to define distinct and clear guidelines for the consumer of our TMF-compliant API TMF663.
Example 1 - contractID via setting:
For a specific product it is required to define a contractID when it is sold. This is reflected via characteristic/configuration of a product.
-> The guideline would be that only fields/keys also reflected in the product master data will result in productCharacteristics.
Example 2 - contractID via business logic:
For products, it is required to define a contractID when it is sold. This is not configured but is implicitly defined by the cart-creating system.
@ Jonathan Goldberg what is your view on the preferred solution?