General Notes
Why is this thing built the way it is?
While UPS provides their shipping rate data in a handy comma-delimited format, field names and field layout are inconsistent from one rate table to another. Rate calculation methods vary from one plan to another, and sometimes change within the plan itself.
WorldWide Express to Canada vs. WorldWide Express to anywhere else is a great example of this.
If you manually juke the data to conform to a standardized model of some kind you’ll simplify your code, but lose the ability to directly import new rates when UPS updates them.
You’ll also make a lot of extra work for yourself. Since this code and its myriad db’s execute in 100-350ms on a 256mb Celeron Win2k dev server... using Access as the db, we’re doing pretty good here (especially considering the length of time CFHTTP calls to ups.com take... 2-7+ times what running rates locally does).
|