Hi Vadim,
Your challenge is not uncommon.
The problem is that we tend to think that all these complex customer requests must fit in one order because the customer requests them in one communication.
It is however easy to accomplish the requested scenario using 3 productOrders.
- PO1
- item 1 : action: add, ProductOffering: International roaming
- returns orderDate: {now}, ProductId: A
- PO2 (requestedCompletionDate: 1st May)
- item 1 : action: add, ProductOffering: Discount for roaming, dependsOn ProductId A
- returns orderDate: {now}, expectedCompletionDate: 1st May, ProductId B
- PO3 (requestedCompletionDate: 10th May
- item 1 : action: delete, ProductId: B
- returns orderDate: {now}, expectedCompletionDate: 10th May, ProductId B
Using this model you have one productOrder for each action with an associated completion date required. It also makes sure that order handling stays straight forward and can be purely catalog driven.
This also has an added advantage to agility. It now becomes possible to define an SMS message 'Day Roamer ON' and 'Day Roamer OFF' that generate PO2 and PO3.
Your CRM only needs to create PO1 and PO2 & PO3 can be triggered by the customer using the SMS (or a Portal for that matter) for self service.
Regards
------Original Message------
Dear colleagues,
we are facing with very challenging question - some time ago our company suggested several services that can be switched on/off in future:)
E.g customer decided to ago abroad and he/she added 2 services:
- free service "International roaming" (effective NOW),
- payed service "Discount for international roaming" , but this service should be switched on (for example) 1st May and switched of 10th May 2019.
Customer wants to save money so added a discount only for roaming period (in the future).
I studied TMF_622 "Product Ordering" - and think that this is a clearly ProductOrder with 2 OrderItems (action="add" in both OrderItems). ProductOrder as an entity will have an orderDate={NOW} , but that about date?? Unfortunately OrderItem don't have the date...
I would suggest adding "actionDate" attribute to OrderItem - so this would solve my problem.
Also this would add flexibility - items could have different dates not necessarily equal to ProductOrder.orderDate.
Will be very helpful for comments and suggestions.
------------------------------
Vadim Nechaev
Senior systems architect
MTS Group HQ
------------------------------