Hi Pete,
I like the use case you are presenting.
There exist two distinct use cases when selling GoodsProducts.
In the first use case the actual ResourceCandidate behind a ProductOffering is important for the customer. The customer in this case wants a "Pink Samsumg Galaxy S22 with 256GB memory", not just any smartphone. To model this use case a ProductOffering is linked to a specific resourceCandidate.
In the the second use case the customer doesn't care about the actual model as in the case of the ONT in your use case. In that case the ProductOffering is not linked to a specific ResourceCandidate. It is only linked to a ResourceSpecification "ONT" via the ProductSpecification. This actually means that the decision about which ResourceCandidate is deferred. At some later point in the fulfilment process, not later than the start of installation, the actual ResourceCandidate will be chosen. The decision can be based on criteria that come from the service (Hyperfibre requires model C or D) and stock availability. (the technician has a refurbished ONT model D in his truck)
For this use case I suggest indeed to remove the ResourceCandidate from the ProductOffering.
If you technician has an installation app, he will probably see on hit workorder that he needs to pick a model C or a model D. When he scans a a Model A the app will tell him that this device is not compatible with the service. When he scans the refurbished model D, the app will trigger the registration of the serial number of the ONT on the OLT.
I hope this is helpful to you.
Regards
------------------------------
Koen Peeters
OryxGateway
------------------------------