We have a project where we have almost 15 different shipping methods. We cannot exclude them by countries, and only 2 don't calculate any fees, all others are poiting to FedEx and UPS (providers), each with different settings.
We only display up to 7 per user, which we need to exclude based on some user settings. That all works, but we have some performance issues:
- We extended the shipping providers to have notifications so we could stop processing based on the project rules - which works fine
- However Dynamicweb still requests all of them and it always takes some valuable ms before hitting the notification
- Dynamicweb is processing all of the shipping providers even when we don't need/want to
- It takes between 800ms to 1 sec for it to go through the 15 shipping methods and either discard or get the WS response
- In our Step 1 of checkout, we don't have the shipping methods loop, but we still take the hit
Any ideas how we can improve this?
I was also surprised to see that the shipping methods were being processed prior to having set addresses on the order. This means we were spending valuable time by even reaching out to providers just to get an expected error by the lack of data. Could we also set minimum requirements to trigger shipping methods within Dynamicweb?
We managed to optimize the "Shopping Cart" template (a different page just showing the contents of a cart) by removing all of the shipping methods from the paragraph app settings like this https://www.screencast.com/t/zySU7ymG but we can't do that in the Checkout page.