I implemented a carrier service endpoint API for my client. For testing purposes I have also added it in my dev store: bogustime.myshopify.com
However, whenever the shipping is supposed to be calculated during checkout, I receive the following error message: "Your cart has been updated and the items you added can’t be shipped to your address. Remove the items to complete your order." I have confirmed that I have the carrier service configured for all shipping zones under the rates settings.
I have tried registering the service with both http and https. I've confirmed my endpoint can be called manually and my logs show that the endpoint is not being called at all whenever the shipping should be calculated.
What should I do to make sure the endpoint gets called?
Double check the store's shipping settings and make sure your app is set to provide rates for whatever country you're using at checkout. EDIT: oops I see you mentioned this has been checked already. Please provide a checkout URL and we can investigate further.
To anyone dealing with this issue in the future here are possible things to try:
1) Make sure your endpoint is accessible via http. Enable logging your endpoint and confirm that requests are properly received and return a 200 response.
2) Verify that the request structure you accept and the response structure is exactly in the same format as the example provided in the API
3) It doesn't hurt to do a GET request to make sure that your endpoint is properly registered and enabled.
4) It is helpful to test with a DEV store rather than a production client.
5) Choosing custom rates in the UI can be annoying. Make sure that multiple locations are enabled and that you press save. After saving you should be able to create a new zone and add your custom rate to the new zone. Existing zones seem to not allow you to add new custom apps for the rate calculation. Make sure to press save whenever you change rates.
Hi There @AlexWilliams ... I would like to get in touch with your regarding Custom Carrier Service ...
I will try to reach you out.