concretecms-community-store / community_store_easypost

Adds EasyPost.com integration to Community Store for Concrete CMS
1 stars 0 forks source link

1.x | No shipping options from Canada to USA #5

Open FortyNinjaFISH opened 5 years ago

FortyNinjaFISH commented 5 years ago

Thanks for the previous help with the shipping options/service restrictions!

I'm now running into an issue where shipping within Canada returns shipping tier options but when shipping to a USA address the message "There are no shipping options to process your order." appears. The site is configured to use Canada Post (which does offer USA and international shipping) and to ship from a Canadian address (set in the shipping from section).

I don't see any errors or entries in the site log on this issue. Am i missing something?

Mesuva commented 5 years ago

According to the docs, calculating rates for Canada Post is very simple, it's only weight based, so I think that would rule out issues of parcel sizes: https://www.easypost.com/canada-post-guide

Other details like the destination address would need to be correct, such as having the correct zip code.

At this point in testing have you got any service restrictions in place, or have you cleared those fields?

I'm wondering if there is something that needs to be enabled on your actual Canada Post account

FortyNinjaFISH commented 5 years ago

Ya i read that same doc about the weights only- so that's taken care of. And i have test with both service and carrier fields filled and blank (currently blank) with no issue.

I have logged into the client's canadapost dashboard but can't find anything regarding location settings. The client also attempted to contact their rep about it and seem confused as well. It's seems like CanadaPost just handles it all behind the scenes.

FortyNinjaFISH commented 5 years ago

Got a response from easypost:

I came across this error:

_{"error":{"code":"SHIPMENT.CUSTOMS_INFO.REQUIRED","message":"Unable` to proceed, 'customsinfo' is required for international shipments, shipments bound for US military bases, or US territories. Please see https://www.easypost.com/docs/api#customs for more information.","errors":[]}}

International shipping does require customs information. See the customs_info and customs_items section of our docs. I would also suggest taking a look at our customs guide for more information.

They also links the follow docs:

Are the objects for "$customs_info", "$customs_item" being submitted via the easypost addon?

As always, thanks for your help Mesuva!

Mesuva commented 5 years ago

I did have this thought at one point, but I thought I would have been mentioned specifically in the doco as a requirement for Canada Post.

I was aware of Easypost's customs data handling, but it hasn't been implemented at this stage. It's not a trivial bit of extra work and testing, and when I first put this package together I simply had no need to implement it - it was pretty complex without it. So customs_info and customs_items are not being populated at the moment, and that would explain your error message completely.

To add this in, I think we may need some extra fields in community store itself, to store details such as hs_tariff_number, which would have to be entered for items (or maybe there could be a default code used if a shop ships all of the same type of thing). And then in the Easypost side of things, we'd need to add quite a number of fields to the method configuration screen, stuff like the customs_signer.

I can't say at this point when I'll have a chance to implement these things, as it's a non-trivial bit of work. You're welcome to email or slack PM me if you are in a bind project wise and we might be able to work something out. Or, if you're game, you're welcome to tackle this yourself with a PR, and I'll do my best to help with any questions or challenges.

FortyNinjaFISH commented 5 years ago

Definetly in a bit of a bind as the client does require the ability to ship to the USA. I don't mind this being a one-off modded community store / easypost addon. Just need the functionality.