Jump to content
Latest News: (loading..)


  • Content count

  • Joined

  • Last visited

Posts posted by torinwalker

  1. Gisele,


    That's interesting. I wonder if it has anything to do with PHP trying to treat the value as an integer. 03 would of course be reduced to '3'. Do you have your old upsxml.log file (from before/during the error occurance)? I would like to see exactly what value, if any, was being sent to UPS.





    for the invalid customer classification.. it didn't matter what type of pickup option I chose, UPS returned an invalid code..<snip>..I had to hard code the classification code to 03 and everything is peachy keen now.



  2. Stephan,


    I see what you're talking about now. It is acting very peculiar. I went over all the displayed shipping options, and it also appears to work on both Worldwide Express options.


    I believe the problem may be with encircled R (registered symbol). Can you please try removing the special character from the service description and try it again?





    Hey Torin,

    When i checkout the rates appear as they should, but i can't select and continue with checkout when i choose a rate different from "ups ground" ("ups standard").

    instead of getting to the payment page, i get the checkout shipping page again (the rates values are different now, compared to the first display of checkout shipping).



    Stephan Gebbers

  3. You're going to have to debug your net connection.


    - Do you know for certain whether your ISP permits client connections?

    - Is your account key/login/password correct?

    - Is the correct (latest) version of curl installed?

    - Is the server timing out while returning the response?

    - Is traffic back to your ISP really slow?

    - Is the outgoing XML message complete and valid? (Turn debugging on - see readme.txt that came with UPSXML)


    You're receiving that response because the UPS gateway returned null. The trouble is, there are many, many reasons why your module could fail to receive a response.




    still getting the same error - have you had any insights as to the cause?






  4. Guys and/or Gals,


    We've had the same question posed here before. An unreferenced curl_init method on your end is not something I can solve from my end. Although rpm -q returns an installed curl option, is it possible the server itself was not started with the --with-curl flag? Perhaps instead, the server was started before the rpm package was added?




    I got the same problem, but don't know if my host has it installed or not. Did you check that directly with your host?


    If you find a solution please post it here, hopefully the author can jump-in with a soultion.






  5. Mr. TF,


    I am still getting to your report. I'll make up a few tires and try them out. I've been very busy, but I haven't forgotten about you.



    Hello Torin,

    Thanks so much for updating the contribution. I liked the added feautures in the admin panel. :D


    Did you do anything with the size algorithm?




  6. J,


    Thanks for the update. I'm not sure why you're getting the error. I sometimes get the same error for no particular reason. I usually just retry it a few times, or wait a few minutes.


    Er, well, let me just clarify that a little further. I know why the error appears; The curl message being sent fails to retrieve a response (anything at all) from the UPS server. This is usally due to a timeout (busy), server down or being maintained, or a communications problem of some sort on the ISP or UPS end. What I don't know is why the communications errors occur. That's anyone's guess.


    Perhaps the unknown comm error message could be better written,


    "No response was received from the UPS Rates and Services gateway for your request. The service is most likely busy, or could be experiencing a communications problem. Please try again. If the problem persists, try again in a few minutes."




  7. J,


    Thanks for the update. I'm not sure why you're getting the error. I sometimes get the same error for no particular reason. I usually just retry it a few times, or wait a few minutes.


    However, I will keep an open mind on this and will help you work it out if it continues to be a code problem.


    I'm suprised I didn't notice this myself, but the error you're getting is due to a mistyped constant in the shipping module. If you look carefully at the message, you'll see a declared variable in all upper case. Look at the end, and you'll notice the UNKNOWN is actually mispelled UNKNWON. Sorry...too many late nights.



    thank you for finally re-writing this beast


    the install seemed to go fairly smoothly, but now i am testing and when i get to the shipping page i am receiving the following error:




    Edit catalog/inclues/modules/shipping/upsxml.php, grep for UNKNWON and replace it with the properly spelled text. That should clean up the messy message.




  8. Stephan,


    How very nice! Thank you very much for the offer, Stephan, but it was really nothing. Perhaps instead you could visit my still-not-completed-because-I'm-spending-so-much-time-on-other-things website and give me your opinion of the products I hope to offer this fall. Perhaps too you have a son around 10 - 12yrs who would enjoy one of my rather unique and very educational toys for Christmas. The website is:




    Visit the products section and have a look around.


    Please excuse the mess. I'm between graphic designs, so some of the layouts and fonts are, ehm, discombobulated.




  9. The updated UPS XML 1.02 module is available in the

    <a href="http://www.oscommerce.com/community/contributions,1323">contributions</a> section.


    This update fixes:


    - Missing column in packages table

    - Missing column in tep_query in admin/categories.php

    - A bunch of updates to catalog/includes/modules/shipping/upsxml.php including Customer Classification and Res/Com quote types.

    - Wrong service codes for the European Union


    I added a new file, changes.txt, that will help with the differences between versions (makes it easier to update, rather than reinstall.)


    As always, don't be shy... send me a message if you're encountering problems.




  10. Everyone,


    First of all, I'd like to express my appreciation for all the interest you've shown in the UPS XML module, and your willingness to explore the additional features I added to the regular shipping functions. I honestly didn't expect many of you to even bother with the dimensional support. Secondly, I'd like to thank those of you who have helped identify bugs and report them to me.


    I will look at all the issues presented so far in the forum and attempt to address them all this weekend. At the moment, I'm in the middle of a design for my full-time job and it's eating into all my free time.


    To answer some of your questions:


    "I get a curl_init error..."


    Sounds like curl needs to be enabled on your system. Go into admin->tools->server info page and take a look at the "Configure Command"

    line. Look for the flag '--with-curl'. If you aren't the administrator of your own website, ask the hosting ISP whether they can enable CURL by either installing the necessary libraries, or adding the appropriate flag.



    "Will it work in Germany"

    "Does it handle the 'outside areas'"

    "Does it handle dimensional weight (volume weight)?"


    4. Does it handle additional services (e.g. insurance...)?


    5. Is it implemented with the zones module or is it an entire separate modul?



    Yes, it should work in Germany. Fill out the origin, and as much of the city, state, postal code and quotes should work fine. I haven't tested it with my location set to Germany, so if you encounter errors, finding them shouldn't be difficult.


    It should handle any area that the UPS Rates and Services Gateway handles. I pass it as much information as is possible with the API, and it is up to UPS to declare whether it can handle the area or not.


    I've never understood 'dimensional weight'. I am both a pilot, and a physics enthusiast, and I still don't get how L x W x H = m. The values passed to UPS correspond to the physical package dimensions and weight, and they are passed in the package dims/weight fields, not in the dimensional weight field.


    Additional services are not implemented...yet. One of the additional services I would like to provide is Saturday delivery and Commercial/Residential quotes. This has been a sore point because it's not up to me (the storeowner) to determine whether it's a residential or commercial quote. To provide that option, I have to modify more of the osCommerce core functions, and I've already done enough damage. Additional services is one option that might be a ways down the road.


    Finally, no, I'm sorry but the Zones feature, if it is another module, is not considered in this shipping module.


    "Will it work with version 2.2 xxxxx"


    I have not tested it on any other version except 2.2 MS1, but that does not mean it won't work. I've only been using osCommerce for a few weeks and have not seen it evolve to what it is today. By all means give it a try, but back up your site and try it with dimensions disabled first


    Thomas, thanks for all that energy! I will definitely look into your dimensions bug and get back to you. The dimensions algorithm should work for such a simple set of parameters. Once we've cleared that up, I'll look into the HTML code problems.



    Re: checkout_shipping.php reloading error.


    I haven't made any changes that involve the checkout_shipping.php component, so I'm not sure if this is a related issue. I will keep an eye on it however while I'm doing my testing and see if I can't identify the problem.



    Thanks everyone for all your help.




  11. The UPS XML module is ready, and the few bugs that were in it have been corrected. I just haven't had the time to give it a thorough test. I would be more comfortable if someone else were to give it a try and report back to me. The UPS XML module has two modes: With, and without DIMENSIONAL SUPPORt. Withouth dimensional support, this module acts just like the old UPS module, except it uses the XML gateway. With Dimensional support, it has a whole new administrative tool to create packaging, plus a smart algorithm for packing products into boxes (it's not a great algorithm, but does better than osCommerce's default packing routine).


    My main concern is in the XML support I wrote. My ISP doesn't support XML DOC extensions in their PHP setup, so I had to write my own XML Path routines using xmlparser directly. PHP passes by value rather than pass by reference, and a few have complained about deprecated pass-by-reference exceptions. Unfortunately, I don't have the means to reproduce the error to analyze this.


    Perhaps you would like to try it out. I have given my UPSXML 1.01 zipfile to a few others, and am waiting for feedback. If you would like, I will send it directly to you.




  12. Chris,


    I have decided to leave in the option to choose.


    Just my opinion. I think you should do it both ways. Dimension and no dimension. Some of my products are very big and require oversized boxes so the dimension would not help me at all.


    Now if you could have this option product specific that would be a plus. One product uses the dimension options and other products do not.


    Though I haven't yet configured oversizing, I believe the UPS gateway will return an oversize rate because the dimensions are provided. I'll test this sometime today.




  13. Millie,


    I've been playing with the settings and can not get the rates to return close to actual costs.


    I looked over the code, which I'm not proud to say was a hasty release, and found the source of the problem. I was in the process of creating a more complex packaging system with dimensions such that an algorithm could "pack" product into boxes and submit the dimensions and weights of each package separately to UPS (for a more accurate quote). In the process, I left out the package empty weight from the non-dimension-supported code. The handling fee was simply a variable I forgot to rename.


    I'm very close to publishing a new release that addresses many of the issues brought up by folks in this forum. I should have it ready by the weekend.


    Your help on solving problems in this module is highly regarded, Millie. Thank you.




  14. Stuart,


    I can see a few possible simple solutions, but we're treading into Enterprise grade shipping solutions here. Unfortunately, I don't have the time to develop such an elaborate system unless a) My business needs it; and B) My business earns enough to cover what I would lose by not working full time at a real job ;-), or, c) The osCommerce community all gather together and chip in to have me develop it for them.


    Perhaps one day, when my business requires it, I will spend more time on developing a more elaborate system. Right now, I'm trying to contend with the existing issues of supposedly drop-in shipping modules! Not one is!


    The Canada Post 3.1 module I had installed adds an extra 3 kg to the shipping cost for no apparent reason. Just the way the guy laid out his variables. I've fixed it in mine (since I derived code from his), but now I've got to go and fix his module as well. Good lord...


    Anyway, I can see one quick fix that would require little more than a week's worth of evening-in-front-of-the-tv programming effort:


    here are a few examples that come to mind:


    1) Cart contents

    Engine short block - 50 pounds

    Repair manual and extra air filters


    This can all go UPS Ground, but the short block is being drop-shipped from the distributor*


    This could be done easily with multiple shipping locations. Since I am now proficient with developing admin interfaces for osCommerce, I could see a shipping origin configuration utility and product modification whereby one can choose from which location the product ships. I wouldn't want to keep it that simple however... I would want this module customizable, and intelligent. I would want to be able to configure a product such that it ships from the nearest location, and it would necessarily have to update the stock at that location. Every time you consider an option, another option pops up. Feature Creep will get ya.



    2) Cart contents

    String trimmer - 12 pounds, dimensions 60 x 10 x 10

    Leaf blower - 18 pounds, dimensions 24 x 24 x 20


    Again, all can go UPS Ground, but the first item falls into the Oversize 1 category (billable shipping weight 30 lbs.), while the second doesn't.


    I wouldn't want to package these together. I just set the flag READY_TO_SHIP so the shipping module will treat the item as a box ready for shipping rather than a product that needs to be packed. I then send out the list of boxes to UPS for quotation.


    As far as the oversize option goes, I can support it one of two ways: Program in every location on earth along with the corresponding maximum dimensions (UPS has a table for this), or allow the customer to specify what oversize means. The latter seems far simpler.


    If the package exceeds the admin-defined dimensions and/or weight, an oversize=1 (or 2, or 3...) is added to the XML request for that package.


    I'll take a look and see if I can quickly implement oversize.


    Then there are the considerations for shipments that need to be Oversize rated if going UPS Ground or UPS Standard to Canada, but need to be Dimensional rated if going Second day air or Next day air.


    See, this is where I let the UPS do most of the work. Their XML gateway is smart enough, provided I've submitted dimensions and specific locations, to adjust the cost according to any oversize requirements. That is, if I ship a package of 60x30x30 from the US to Canada, the XML gateway should adjust the rate according to the oversize requirement you just mentioned, and quote it accordingly.


    I seem to get more accurate quotes when I provide extended details. Earlier modules (UPS Choices 1.7) only used zip and weight. I use City, Province/State, Country, and Postalcode/Zip, plus Length, Width, Height and Weight.


    What has been your experience with the existing shipping modules? I haven't really tested any others because I've got my head buried in code. From the looks of it though, both the Canada Post 3.1 and the UPS Choices 1.7 module seem to treat quotations weirdly:


    UPS Choices 1.7 uses the weight provided by osCommerce (which is correct) and multiplies the rate by the number of boxes (shipping tare weight / product weight - which is wrong)


    The Canada Post module is just as bad. This one submits all the products and their quantities to Canada Post and lets them figure out how many boxes to use, but then returns a rate multiplied by the number of boxes provided initially by osCommerce, not Canada post.


    I'm not sure why they work the way they do, or how they might be working for their authors...




  15. Frank,


    torin, Great module, thanks. I have it installed on a recent snapshot. All install went well.  We set it up as follows:


    A handling fee of $10.00 does not seem to show up at all.

    When selecting some shipping methods from UPS, rather than accepting the rate and moving on with the checkout, the rates all double and the screen to select a ship method is shown again. This appears to happen with 2 day, 3day and overnight, but ground seem to work fine.


    Let me look into the handling fee. As far as the rate doubling and shipping screen showing up again, enable logging and take a look at the XML response from UPS. It might be throwing an error that I failed to catch.




  16. Mugitty,


    Thank you for your input. I'm hoping to address as many issues as possible with this UPS module, not so much with the module itself, but with surrounding support (perhaps in the form of other modules upon which the UPS module depends) in order to improve the overall osCommerce payment and shipping systems. So far, I can see it breaking down into at least three separate modules:


    A dimensional support module (adds LWH and Ready To Ship to products, plus a global dimensions switch - more on this in a moment)

    The UPS XML module with Intellipak®

    A packaging admin module - Packaging administration and library support - if this module is installed, other shipping modules can avail themselves of its packing algorithms.


    The trick is convincing everyone that shipping matters this much!


    Pertaining to your suggestions, the items I have successfully addressed so far are:


    2) Provisions for entering dimensions (length, width, height) of a product package on a per item basis, as above.


    3) Switch to indicate whether an item should be treated as a separate package when added to a cart.


    Item (3) is treated with a "Ready To Ship" switch indicating the product is already boxed and ready to ship. It is simply added to the total number of boxes.


    As for the remaining items (1, 4, 5, and 6), my module only optimizes to reduce the total number of packages but could be modified to quote against all the available shipping methods and return the lowest combination of shipping methods that both satisfy a lowest cost criteron and any shipping constraints set by the admin or inherent in the products purchased (such as permitting packages to ship separately, or oversize).


    Perhaps you could provide me with an example of a customer purchasing two items and having each sent by a different courier. I personally would prefer to have everything arrive at the same time, and by the same service.




  17. Guys and Gals,


    Upon closer inspection, I realized I copied some minor bugs from another module. Naturally, there were a few of my own. Incorrect rates and inflexible units of measurements are two of the symptoms. I will publish a corrected release very shortly.


    I have been trying very hard to produce a packaging feature whereby one can configure a number of boxes (length, width, height, max weight) for use by the shipping module. The shipping module will use a simple algorithm to pack products into as few boxes as possible, and return rates on the boxes, rather than the number of products.


    For example, if one sells CDs which have a nominal dimension of 5x5x0.5 inches, one would configure a few boxes: A single CD mailer of 5x5x0.5 inches, a five-CD mailer of 5x5x2.5 inches, and a ten-CD mailer with dimensions of 5x5x5 inches.


    The algoritm will attempt to ship the CDs in as few packages as possible and quote on the rates for those packages. The hope is that this algoritm will be smarter than just quoting on the total number of products and save you, the storeowner, some money.


    This featureset requires a few easy modifications and has no impact on other services. The only work I have left is to make dimension conversion work (we Canadians face the dillemma of working with and developing for both Metric and Imperial Systems) and clean up the pop-up text on buttons.


    It would be extremely helpful if you could tell me whether a feature like this is desirable. It will change the way I release this in the future. Right now, I'm practically splitting the module in half. One set of instructions for those who want to simply plug in the module, and another set for those who opt for the dimension support. If I learn that most people will want the dimension support, I will remove the dividers.




  18. Guys,


    I've found a few problems in the UPS XML module that I am addressing. I will release a fix very soon.


    Are any of you guys using the DIMENSIONS support? This upcoming release will provide an admin interface and package configuration screen (allows you to configure shipping boxes, dimensions, weights) and the shipping module will use a simple box packing algorithm to fit your products into the least number of boxes. The quote is then based on the number of boxes, rather than the number of products you're selling.


    Is there any interest in this kind of featureset, or should I publish the UPS XML Module with the option to turn it on/off? Making this an option will take considerably longer.




  19. You're right, I had a bit of difficulty with the LB vs KG when using a Canadian Origin. It didn't accept KG, and figured it had something to do with the Origin. I'll work on it a bit more and publish a patch for both the code, if necessary, and the documentation.


    Give me a day or so. It's the weekend, and I'm installing new countertops in the kitchen.