Original Message:
Sent: Jul 12, 2024 08:21
From: Bostjan Keber
Subject: Query Product Configuration price calculation in UI
Hey Matthieu,
if I understood well, you extended the product configuration API with functionality that enables configurator GUI to obtain all characteristic value/price combinations with a single API invocation. You call this "prepick pricing". The GUI recalculates the configuration price based on the information obtained with the first API invocation on each characteristic value change.
If you want to avoid product configuration API invocations on char value change for the reasons you mentioned, I don't have any alternative idea. Our product doesn't support only simple "price tables" but complicated price calculations where char values are used as formula variables as well. There was no way to pass price computations to BFF/FE because we drive various configuration FEs.
BR,
Bostjan
------------------------------
Bostjan Keber
Marand, software ltd
Original Message:
Sent: Jul 12, 2024 05:25
From: Matthieu Hattab
Subject: Query Product Configuration price calculation in UI
Hello Bostjan,
Modern architectures like ODA, MACH etc decouple engagement layer from business capabilities layer with an API-first approach.
as a principle, we should not recommend to implement business logic in the frontend at least for the reason you mention earlier: it's a nightware to manage multiple basecodes.
(I don't think frontend can use TMF620 because it's a resource API, not a task API, i.e. TMF620 will never return a productPrice (list price - discount + tax etc) like TMF679 does).
You mentioned that your implementation also involves numerous API calls to get the price each time the user changes the configuration and that "it works just fine".
This mirrors your example in the TMF760 documentation where you need to make 2 API requests to fetch the configuration price of the blue and red variant for a mobile handset.
It's not a sustainable approach (API call charge, overall system performance, carbon footprint...) and it's not a good user experience.
(we can of course do data orchestration behind the frontend to make all API calls and collect all possible configurationPrices but again, extra cost and el.)
we need to get all prices for all displayable product options at once in the PcfgGUI (product Configurator UI) before customer picks any option. We call this "prepick pricing".
Do you have another suggestion?
our current design was to avoid making 6 calls (we have 5 bandwidth charvalues). We extended the API to provide all customer all possible configuration prices in a single call.
To mirror your use case (retrieve the price of the red and blue colour variant) in the TMF670 user guide, our implementation includes an price extension to include the price
(I heavily simplified it to remove all the noise such as @type and all unused entities for clarity)
the configurationPrice would always match the price of the selected colour charvalue (postpick price).
Honestly, at this point, the above computedProductConfiguration payload is what customer sees in the UI, augmented with content and page layout from CMS and design system.
There is an initiative in the community to extend the TMF620 with characteristic-driven prices
That's also supported in 620 v5, using the prodSpecCharValueUse
relationship between a POP and a CharValue. We use it in our product catalogue (but only for a single dimension.)
My 2 cents
------------------------------
Kind regards,
Matthieu Hattab
Lyse Platform
Original Message:
Sent: Jul 10, 2024 02:32
From: Bostjan Keber
Subject: Query Product Configuration price calculation in UI
Hi Myagaa Nm,
The whole idea of the product configurator component is that you may have several front-ends (e.g. quoting app, ordering app, e-commerce for customers, mobile app etc.) and all these FEs use the same configuration logic (i.e. interpretation of product catalog, policies/rules, existing products,... ) in a given context.
If you implement business logic individually per FE, you will have a lot of work with change requests in the production environment. You also run the risk of inconsistent logic execution due to several implementations.
Now, the community is working on the Policy API (TMF723) specification. The idea is that the product catalog would reference policies. When a product spec or product offering references a policy the product configurator invokes the Policy API to execute these rules in the context of a quote, order, or shopping cart. This flow and dependencies are described in the TMF760 user guide:
If you have a look at the class diagram, you will see that the ProductConfiguration entity references PolicyRef. If the configurator uses policies to compute the configuration, they are returned as PolicyRef.
In our implementation, we invoke TMF760 on every client event that may require recomputation of the product configuration (characteristic value set/limit, price recalc etc.). We were concerned the API would be too chatty but it turned out it works just fine and the end-user is not impacted due to API invocations.
Regarding the specific use-case when a set of characteristics drives a price selection (e.g. bandwidth defines monthly fee or smartphone storage option defines purchase price): this can be supported in the product catalog alone (TMF620) and the TMF760 is not even needed. In this case, FE would have to implement the logic that recalculated the item price in case of a characteristic value set/change. There is an initiative in the community to extend the TMF620 with characteristic-driven prices. As of now, it would require an API extension, though.
BR, Bostjan
------------------------------
Bostjan Keber
Marand, software ltd
Original Message:
Sent: Jul 08, 2024 21:46
From: Myagaa Nm
Subject: Query Product Configuration price calculation in UI
Hello,
Query Product Configuration provides configurations user can choose. When customer chooses any option in the configuration, the request is sent to product configurator then calculated in it. It is so costly operation. For us, we see that when customer changes options in the configuration, price is calculated again. So, configuration should include rule/policy to calculate the price so that FE can calculate it. In the configuration, policy ref is included. But I am not sure if FE should use it.
Another option instead of having product offering price ref, we can get product offering price value with product spec char values. In the case, FE can calculated prices based on what option customer chooses. I think it is not good that structure is altered. What alternative options can be used?
------------------------------
Myagaa Nm
Mobicom Corporation
------------------------------