Shopify / active_shipping

ActiveShipping is a simple shipping abstraction library extracted from Shopify
http://shopify.github.io/active_shipping
MIT License
812 stars 547 forks source link

FedEx Address Validation #39

Open kstevens715 opened 12 years ago

kstevens715 commented 12 years ago

active_shipping doesn't appear to currently do FedEx address validation. We are currently using active_shipping in our project and have a need to identify the residential status of addresses before shipping. I'm planning on implementing this functionality myself. So if anyone has any comments on this it would be appreciated. Thanks.

jduff commented 12 years ago

Our main concern was that adding another API call on every request for rates would slow down the overall request too much.

That being said, I think this would be a great addition as long as we can make it optional.

Feel free to send a pull request at any time, even if it's incomplete and just looking for feedback.

Thanks for taking this on!

Sent from my iPhone

On 2012-02-02, at 9:39 AM, Kyle Stevensreply@reply.github.com wrote:

active_shipping doesn't appear to currently do FedEx address validation. We are currently using active_shipping in our project and have a need to identify the residential status of addresses before shipping. I'm planning on implementing this functionality myself. So if anyone has any comments on this it would be appreciated. Thanks.


Reply to this email directly or view it on GitHub: https://github.com/Shopify/active_shipping/issues/39

kstevens715 commented 12 years ago

Oh, I was planning on making it optional. I was going to set it up as it's own method. Thanks for your help.

We're actually migrating a 250,000 line .NET WMS application to Rails and in the past we've done a lot of integration with FedEx and UPS. So I'm looking forward to hopefully being able to contribute any UPS/FedEx integration code that would be useful to others back to this project.

jduff commented 12 years ago

Awesome, we're already thinking along the same lines :). Looking forward to seeing some pull requests, and good luck with that migration!

kstevens715 commented 12 years ago

I've had this working for myself for a while, but finally getting back into polishing my work so I can issue a pull request. One thing I'm worried about is that it's considered an "Advanced" service. Meaning for a person to use it they'll have to request special permission from FedEx (even for testing). I don't want all the tests to start failing for people that haven't requested this permission from FedEx. Any opinions on how this should be dealt with?

Capncavedan commented 12 years ago

Suggestion: make a FedExAdvanced subclass FedEx and provide the advanced functionality there. Only run tests if a certain config key is present?

kstevens715 commented 12 years ago

That's not a bad idea, but if someone were working on the regular FedEx class they could inadvertently break the FedExAdvanced subclass without knowing about it. I suppose that might not be that bad, as long as before it was merged into the master branch the full tests were run.

Capncavedan commented 12 years ago

If you had fixtures & unit tests for FedExAdvanced that always ran, that would guard against the situation you describe. The remote tests would only be able to run if the person had permission and credentials from FedEx to access those features.

My mental model of the unit vs remote tests in the project is that the unit tests ensure we aren't breaking things due to changes within the project, while the remote tests ensure the carriers aren't breaking things due to changes outside the project. Or at least alert us when such a breakage occurs, so we can update our unit tests and code accordingly.

kstevens715 commented 12 years ago

Yes, you're right! That makes perfect sense. Thank you for your help.

ghost commented 10 years ago

@kstevens715 did anything ever come of this?

kstevens715 commented 10 years ago

@tesserakt I no longer work for the same company so never finished the PR. But I did do enough to get it working and the fork is still being used by my previous company. Below is the link to the fork. There are two fedex validation branches on that fork, one of which is being used in production... I'm just not sure which one anymore.

https://github.com/nepco/active_shipping

megetron commented 8 years ago

Sorry for waking a post made three years ago but I still couldn't figure out if the project has address validation option for fedex/usps/ups?

I think that this is a very important validation before we create a shipping in production. can you please send me a usage for this?