Jump to content
  • Checkout
  • Login
  • Get in touch

osCommerce

The e-commerce.

mugitty

Pioneers
  • Posts

    1,193
  • Joined

  • Last visited

Everything posted by mugitty

  1. Scott; Did you make the configuration key change per step 5 of the installation instructions? I think that's what causes that particular error.
  2. Just uploaded version 1.1.1 which corrects the following errors: Changes from 1.1 to 1.1.1 ------------------------------ 1. Corrected misspelling in catalog/includes/modules/shipping/upsxml.php line 647: $sheduledTime = $ratedShipments[$i]->getValueByPath("/ScheduledDeliveryTime"); corrected to read $scheduledTime = $ratedShipments[$i]->getValueByPath("/ScheduledDeliveryTime"); 2. In catalog/admin/packaging.php, there were 2 instances where a "$error" had somehow crept into the code: Line 196 function showNewPackageForm($error) { corrected to read function showNewPackageForm() { and line 225 function showUpdatePackageForm($error) { corrected to read function showUpdatePackageForm() { Complete package in contributions: UPSXML v1.1.1
  3. Excellent!!! I'm keeping my fingers crossed as you continue your testing
  4. Marvin; This should do it for you, using the same syntax as shown in your original piece of code. This is one continuous line with no breaks: tep_db_query("insert into " . TABLE_PRODUCTS . " (products_quantity, products_model, products_image, products_price, products_date_added, products_date_available, products_weight, products_length, products_width, products_height, products_ready_to_ship, products_status, products_tax_class_id, manufacturers_id) values ('" . tep_db_input($product['products_quantity']) . "', '" . tep_db_input($product['products_model']) . "', '" . tep_db_input($product['products_image']) . "', '" . tep_db_input($product['products_price']) . "', now(), '" . tep_db_input($product['products_date_available']) . "', '" . tep_db_input($product['products_weight']) . "', '" . tep_db_input($product['products_length']) . "', '" . tep_db_input($product['products_width']) . "', '" . tep_db_input($product['products_height']) . "', '" . tep_db_input($product['products_ready_to_ship']) . "', '0', '" . (int)$product['products_tax_class_id'] . "', '" . (int)$product['manufacturers_id'] . "')");
  5. Marvin (and everyone else) I apologize... I don't know where the "$error" in the packaging.php came from, but it seems to appear in 2 places. At line 196, change function showNewPackageForm($error) { to read function showNewPackageForm() { and at line 225, change function showUpdatePackageForm($error) { to read function showUpdatePackageForm() { Let us know if that corrects the problem.
  6. Marvin; Glad to hear things appear to be moving in the right direction now. The Time In Transit as far as I have been able to tell only gives Ground Business Days in transit from US origins to US destinations. I think the UPS server which provides this info is also somewhat unreliable (just a guess on my part). In UPSXML version 1.1, I made the default installation with the code that calls the Time In Transit functions commented out. If you are shipping froom Canada, I would just leave it commented out. As to the packaging error, give me a while to search back through and see if I can find what the resolution to that was - I'm pretty sure I can find it waayyy back in the older posts.
  7. Ekko; Also comment out the 2 entire functions towards the bottom of upsxml.php that start with: function _upsGetTime() { and function _transitparseResult($xmlTransitResult) { In version 1.04.1, this should mean that you would comment out lines 698 through 805. Be certain to leave the last } at the end of this section, before the function exclude_choices($type) { begins, as it is not part of those 2 functions. Doing this and the section that Jan said to comment out will completely eliminate the Time In Transit portion of the file, which I believe only works for US to US shipments (at least in its present form)
  8. Marvin; The last version that the original author (Torin Walker) submitted for this contribution was 22 Jul 2003 - UPS XML Update 1.02 The v1.04 already has the selectable method modification in it. I don't know why this would prevent all available methods from Canada to appear, but if you want to see if it does, try loading the v1.02 which didn't have selectable options. BACKUP first! PS - Does anyone who's shipping FROM Canada have the more recent versions working successfully and showing all available options so we can help Marvin sort this out?
  9. Just posted a new updated module to contributions which addresses the ready-to-ship package count errors as well as providing a quick means of enabling/disabling the Ground Time In Transit API (should you encounter problems with as pointed out in some of the previous posts) UPSXML Rates & Services 1.1 Marvin; I've never tried setting this up from a Canadian origin, but it appears that if you have all shipping options enabled, you should see UPS Express, UPS Expedited, UPS Worldwide Express, UPS Worldwide Expedited, UPS Standard, UPS 3 Day Select, UPS Express Saver, UPS Express Early A.M. and UPS Worldwide Express Plus (depending on shipping destination). I don't know if what I did to enable selectable options would have an adverse effect on what you are able to offer from any origin other than the US. If you are sure that you've tried enabling all options and still get only Standard from Canada, you might try loading version 1.02 which was the last version posted by the original author (who I believe was also shipping from Canada), and did not include the ability to limit the options shown to the customer. ... or someone else reading this thread who is successfully using the current version might have some insight.
  10. :D Jan to the rescue again :thumbsup: With initial testing, it appears that Jan has again proven to be the CODEMASTER! I've just run a couple of tests, but they appear to produce the correct results - I'll test more and hopefully upload a new version tomorrow (I think it's time to go to version 2.0 of UPSXML with all of the changes that have been made?) Just for reference, here is the sequence and products I used in one test (if the weights and rates seem weird, keep in mind that these reflect the particular packaging setup and origin/destination that I used in my cart - all of the results were what I expected to see given those criteria. The rate shown is for UPS Ground only) Katrina and anyone else who might want to play yet tonight - here are the changes that were made: In catalog/includes/modules/shipping/upsxml.php (about line 197), find $productsArray = $cart->get_products(); and add immediately below it: // sort $productsArray according to ready-to-ship (first) and not-ready-to-ship (last) usort($productsArray, ready_to_shipCmp); Then, at the very bottom of the file, just BEFORE the final ?>, add //****************************** function ready_to_shipCmp( $a, $b) { if ( $a['ready_to_ship'] == $b['ready_to_ship'] ) return 0; if ( $a['ready_to_ship'] > $b['ready_to_ship'] ) return -1; return 1; } If anyone tests this and finds that any combination of ready-to-ship and non-ready-to-ship items added to a cart in any sequence does not produce the expected number of packages, total weight and UPS rate, please post here with the specific sequence used in adding items to the cart so we can troubleshoot further. Thank you, Jan! ;)
  11. I'm still no closer to solving the problem with the "ready-to-ship" packages not being properly identified in some instances, but I thought I'd isolate some of the packaging code and post it here in case someone might see why the situation that Katrina mentioned above occurs... As Jan observed, the function get_products is created in catalog/includes/classes/shopping_cart.php and, when amended for this contribution, appears as: function get_products() { global $languages_id; if (!is_array($this->contents)) return false; $products_array = array(); reset($this->contents); while (list($products_id, ) = each($this->contents)) { $products_query = tep_db_query("select p.products_id, pd.products_name, p.products_model, p.products_image, p.products_price, p.products_weight, p.products_length, p.products_width, p.products_height, p.products_ready_to_ship, p.products_tax_class_id from " . TABLE_PRODUCTS . " p, " . TABLE_PRODUCTS_DESCRIPTION . " pd where p.products_id = '" . (int)$products_id . "' and pd.products_id = p.products_id and pd.language_id = '" . (int)$languages_id . "'"); if ($products = tep_db_fetch_array($products_query)) { $prid = $products['products_id']; $products_price = $products['products_price']; $specials_query = tep_db_query("select specials_new_products_price from " . TABLE_SPECIALS . " where products_id = '" . (int)$prid . "' and status = '1'"); if (tep_db_num_rows($specials_query)) { $specials = tep_db_fetch_array($specials_query); $products_price = $specials['specials_new_products_price']; } $products_array[] = array('id' => $products_id, 'name' => $products['products_name'], 'model' => $products['products_model'], 'image' => $products['products_image'], 'price' => $products_price, 'quantity' => $this->contents[$products_id]['qty'], 'weight' => $products['products_weight'], 'length' => $products['products_length'], 'width' => $products['products_width'], 'height' => $products['products_height'], 'ready_to_ship' => $products['products_ready_to_ship'], 'final_price' => ($products_price + $this->attributes_price($products_id)), 'tax_class_id' => $products['products_tax_class_id'], 'attributes' => (isset($this->contents[$products_id]['attributes']) ? $this->contents[$products_id]['attributes'] : '')); } } return $products_array; } Then, in upsxml.php, it is referenced in function quote($method = ''): $productsArray = $cart->get_products(); if (DIMENSIONS_SUPPORTED) { //Use packing algoritm to return the number of boxes we'll ship $boxesToShip = $this->packProducts($productsArray); //quote for the number of boxes for ($i = 0; $i < count($boxesToShip); $i++) { $this->_addItem($boxesToShip[$i]['length'], $boxesToShip[$i]['width'], $boxesToShip[$i]['height'], $boxesToShip[$i]['current_weight']); $totalWeight += $boxesToShip[$i]['current_weight']; } } else { // The old method. Let osCommerce tell us how many boxes, plus the weight of each (or total?? might be sw / num boxes) for ($i = 0; $i < $shipping_num_boxes; $i++) { $this->_addItem (0, 0, 0, $shipping_weight); } } The function packProducts is identified later in the same file function packProducts($productsArray) { $definedPackages = $this->getPackages(); $emptyBoxesArray = array(); for ($i = 0; $i < count($definedPackages); $i++) { $definedBox = $definedPackages[$i]; $definedBox['remaining_volume'] = $definedBox['length'] * $definedBox['width'] * $definedBox['height']; $definedBox['current_weight'] = $definedBox['empty_weight']; $emptyBoxesArray[] = $definedBox; } $packedBoxesArray = array(); $currentBox = NULL; // Get the product array and expand multiple qty items. $productsRemaining = array(); for ($i = 0; $i < count($productsArray); $i++) { $product = $productsArray[$i]; for ($j = 0; $j < $productsArray[$i]['quantity']; $j++) { $productsRemaining[] = $product; } } with the only segment that I can see which references the "ready-to-ship" products occurring here // Worst case, you'll need as many boxes as products ordered. while (count($productsRemaining)) { // Immediately set aside products that are already packed and ready. if ($productsRemaining[0]['ready_to_ship'] == '1') { $packedBoxesArray[] = array ( 'length' => $productsRemaining[0]['length'], 'width' => $productsRemaining[0]['width'], 'height' => $productsRemaining[0]['height'], 'current_weight' => $productsRemaining[0]['weight']); $productsRemaining = array_slice($productsRemaining, 1); continue; } ...followed by the rest of the function //Cylcle through boxes, increasing box size if all doesn't fit. if (count($emptyBoxesArray) == 0) { print_r("ERROR: No boxes to ship unpackaged product<br>"); break; } for ($b = 0; $b < count($emptyBoxesArray); $b++) { $currentBox = $emptyBoxesArray[$b]; //Try to fit each product in box for ($p = 0; $p < count($productsRemaining); $p++) { if ($this->fitsInBox($productsRemaining[$p], $currentBox)) { //It fits. Put it in the box. $currentBox = $this->putProductInBox($productsRemaining[$p], $currentBox); if ($p == count($productsRemaining) - 1) { $packedBoxesArray[] = $currentBox; $productsRemaining = array_slice($productsRemaining, $p + 1); break 2; } } else { if ($b == count($emptyBoxesArray) - 1) { //We're at the largest box already, and it's full. Keep what we've packed so far and get another box. $packedBoxesArray[] = $currentBox; $productsRemaining = array_slice($productsRemaining, $p + 1); break 2; } // Not all of them fit. Stop packing remaining products and try next box. break; } } } } return $packedBoxesArray; } If anyone sees something here that would cause the "ready-to-ship" items not to be always treated as separate packages from all other items in the cart, regardless of the sequence in which items are added to the cart, your input would be very welcome. :'(
  12. If you have not entered valid Access, User and Password on the backend, that very well could be the cause of that error. Have you tried it with those entries being ones that you know to be correct? If not, I would think that must be your first step. Then, if you still get this error, enable logging and take a look at the submission and response to see if you can identify the part of the request that UPS doesn't like. That should narrow it down to whether it's the Rates & Services or Time In Transit API that has a problem - then we can troubleshoot from there.
  13. Thanks, Jan (you come to my rescue once again! :thumbsup: ) I'll take a look in that area and see if I can sort it out with a bit of playing around. Stuart
  14. Katrina; I see the problem now (but not the answer). It seems that if you start with a non-ready-to-ship item, then it just adds the weight to the total when a ready-to-ship item is added. This, of course, is a problem because the rate that is being quoted is only for one package and substantially below what would be charged for 2 separate packages. Not being the author of this contribution (other than some minor modifications) and not being very accomplished in PHP, I'm not sure whether I can isolate and correct this issue, but I will look. Hopefully, someone with a much better knowledge of writing code will come forward with some help.
  15. Katrina; Sorry about the long delay in responding... I just noticed something this morning that "might" be causing the issue you mentioned (this also might be the problem that you are encountering, eTron): In admin/categories.php, around line 637, the install instructions (in dimensions.txt) say to add a line that reads <td class="main"><?php echo tep_draw_separator('pixel_trans.gif', '24', '15') . ' ' . tep_draw_input_field('products_ready_to_ship', $pInfo->products_ready_to_ship); ?></td> I'm not sure where the instructions got changed, but this should be a checkbox, not an input field - it should read <td class="main"><?php echo tep_draw_separator('pixel_trans.gif', '24', '15') . ' ' . tep_draw_checkbox_field('products_ready_to_ship', '1', $pInfo->products_ready_to_ship) . ' ' . TEXT_PRODUCTS_READY_TO_SHIP_SELECTION . ' ' ?></td> I made this change to my test shop and, when adding an 2 of an item that has "Ready to ship" checked, the cart shows 2 packages. If I add another item or 2 more items to that same cart which is(are) not checked as "Ready to ship", the package count for UPS then shows 3 packages, which is what I would expect to see.
  16. I do not find a function "display" in ups.php, upsxml.php or in shipping.php (where it says the call was made to). Additionally, I don't believe that the shipping option should be getting called at checkout_payment.php - it should be called in checkout_shipping.php I think your problem is somewhere else, unrelated to upsxml. Do a file search on your catalog directory for display() and see which file(s) that term appears in.
  17. Matt; Give it a try with the state identified as Armed Forces Pacific instead of AP and see if that works. You may need to look at what USPS accepts for state names and possibly add a contribution that creates a dropdown for states (zones) http://www.oscommerce.com/community/contributions,2028
  18. I don't know how you can have an address without a city. Why don't you just try setting up the store and module with a Singapore origin and see if it works? That's exactly what I will do if you give me a complete valid address in Singapore (for the origin).
  19. Rezdwan; Supposedly, it should... but I can't say for sure, as I've never tried to install it in a store with any other origin other than the US. You can either try it or post a valid address in Singapore (some public street address - say for a post office or something similar with no company name) and I'll try it in my test store this weekend.
  20. Jan; You're correct, there is nothing wrong with that line (which is the "post" for the Rates and Services API). Where I think the problem might be occuring is in the "post" for the Time In Transit API, which reads $xmlTransitResult = $this->_post($this->protocol, $this->host, $this->port, $this->transitpath, $this->transitversion, $this->timeout, $xmlTransitRequest); return $this->_transitparseResult($xmlTransitResult); The variables $this->transitpath, $this->transitversion, $xmlTransitRequest are not identified in the one instance of "function _post" which exists in the upsxml.php file. That instance reads function _post($protocol, $host, $port, $path, $version, $timeout, $xmlRequest) { $url = $protocol."://".$host.":".$port.$path; etc...
  21. Katrina: No, sorry, I haven't had a chance to look at it yet. My honeydoos took up a bit more time than anticipated this weekend. I'll continue to try to find some time to look at it through the week. Robin: Same here... This morning I couldn't get it to fail more than once in about 20 tries, while over the weekend, it was failing about 1 out of 3 times. I was initially looking at xmldocument.php as being the problem, but now I'm convinced that it is in the Time In Transit portion of upsxml.php If you look at "function _post" (line 600), you'll see that it specifies certain variables and then the $url on the next line uses some of those variables function _post($protocol, $host, $port, $path, $version, $timeout, $xmlRequest) { $url = $protocol."://".$host.":".$port.$path; and in "function _upsGetQuote()" (the rates and services API), "$xmlResult" (line 596) says $xmlResult = $this->_post($this->protocol, $this->host, $this->port, $this->path, $this->version, $this->timeout, $xmlRequest); return $this->_parseResult($xmlResult); using the variables that were declared in "function _post". When you look at "function _upsGetTime()" (line 698), you will see there is also a result line ("$xmlTransitResult" - line 752) $xmlTransitResult = $this->_post($this->protocol, $this->host, $this->port, $this->transitpath, $this->transitversion, $this->timeout, $xmlTransitRequest); return $this->_transitparseResult($xmlTransitResult); but the variables in this result do not all match the variables that were declared in "function _post" even though the statement above is using the same "function _post" as did "function _upsGetQuote()". What I am not sure about, and what I need someone's help with, is how to properly add the variables that deal with the Time In Transit API that are missing in the original "function _post". Just looking at it, I would think that these missing variables would cause an error, particularly in light of the comment that someone made where if they commented out the Time In Transit portion of the code, the errors went away. What I still can't understand is why the error would be intermittent rather than constant.
  22. Might it have something to do with this? function _post($protocol, $host, $port, $path, $version, $timeout, $xmlRequest) { $url = $protocol."://".$host.":".$port.$path; if ($this->logfile) { error_log("------------------------------------------\n", 3, $this->logfile); error_log("UPS URL: " . $url . "\n", 3, $this->logfile); } $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, $url); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); curl_setopt($ch, CURLOPT_HEADER, 0); curl_setopt($ch, CURLOPT_POST, 1); curl_setopt($ch, CURLOPT_POSTFIELDS, $xmlRequest); curl_setopt($ch, CURLOPT_TIMEOUT, (int)$timeout); As you see, the variable "$version" is included here (which deals with the Rates and Services), but "$transitversion" (which deals with Time In Transit) is not identified in "function _post", even though it is called at line 752 $xmlTransitResult = $this->_post($this->protocol, $this->host, $this->port, $this->transitpath, $this->transitversion, $this->timeout, $xmlTransitRequest); and the same applies to "$this->transitpath" and "$xmlTransitRequest"
  23. Any insight from someone who is familiar proper calls to objects would be much appreciated... This problem has just started appearing recently in the xmldocument.php file that is part of the UPSXML shipping contribution. I know that it's appearing because an object doesn't appear to be registered, but it happens randomly and I'm not sure what to do to correct it (or why it is random, rather than consistent if the code is poorly written). The error is: I'm posting the entire file below, but breaking it into 3 segments. The segment with the offending line (57) is in the middle and the line reads <?php /* $Id: xmldocument.php,v 1.5 2003/06/27 01:03:03 torinwalker Exp $ Written by Torin Walker [email protected] Generic XML Document support for when there is none. Copyright(c) 2003 by Torin Walker, All rights reserved. Released under the GNU General Public License */ define("ELEMENT", 0); define("TEXTELEMENT", 1); class XMLDocument { var $root; var $children; function XMLDocument() { } function createElement($name) { $node = new Node(); $node->setName($name); $node->setType(ELEMENT); return $node; } function createTextElement($text) { $node = new Node(); $node->setType(TEXTELEMENT); $node->setValue($text); return $node; } function getRoot() { return $this->root; } function setRoot($node) { $this->root = $node; } function toString() { if ($this->root) { return $this->root->toString(); } else { return "DOCUMENT ROOT NOT SET"; } } The problem section... function getValueByPath($path) { $pathArray = split("/", $path); if ($pathArray[0] == $this->root->getName()) { //print_r("Looking for " . $pathArray[0] . "<br>"); array_shift($pathArray); $newPath = implode("/", $pathArray); return $this->root->getValueByPath($newPath); } } ... and the balance of the file } class Node { var $name; var $type; var $text; var $parent; var $children; var $attributes; function Node() { $this->children = array(); $this->attributes = array(); } function getName() { return $this->name; } function setName($name) { $this->name = $name; } function setParent(&$node) { $this->parent =& $node; } function &getParent() { return $this->parent; } function &getChildren() { return $this->children; } function getType() { return $this->type; } function setType($type) { $this->type = $type; } function getElementByName($name) { for ($i = 0; $i < count($this->children); $i++) { if ($this->children[$i]->getType() == ELEMENT) { if ($this->children[$i]->getName() == $name) { return $this->children[$i]; } } } return null; } function getElementsByName($name) { $elements = array(); for ($i = 0; $i < count($this->children); $i++) { if ($this->children[$i]->getType() == ELEMENT) { if ($this->children[$i]->getName() == $name) { $elements[] = $this->children[$i]; } } } return $elements; } function getValueByPath($path) { $pathArray = split('/', $path); $node = $this; for ($i = 0; $i < count($pathArray); $i++) { //print_r("Looking for " . $pathArray[$i] ."<br>"); if ($node->getChildren()) { for ($j = 0; $j < count($node->getChildren()); $j++) { if ($node->children[$j]->getType() == ELEMENT) { if ($node->children[$j]->getName() == $pathArray[$i]) { //print_r("Found " . $pathArray[$i] ."<br>"); $node = $node->children[$j]; } } } } } return $node->getValue(); } function getText() { return $this->text(); } function setValue($text) { $this->text = $text; } function getValue() { $value = NULL; if ($this->getType() == ELEMENT) { for ($i = 0; $i < count($this->children); $i++) { $value .= $this->children[$i]->getValue(); } } elseif ($this->getType() == TEXTELEMENT) { $value .= $this->text; } return $value; } function setAttribute($name, $value) { $attributes[$name] = $value; } function getAttribute($name) { return $attributes[$name]; } function addNode(&$node) { $this->children[] =& $node; $node->parent =& $this; } function parentToString($node) { while($node->parent) { //print_r("Node " . $node->name . " has parent<br>"); $node = $node->parent; } //print_r("Node contents from root: " . $node->toString() . "<br>"); } function toString() { $string = NULL; //print_r("toString child count " . $this->name . " contains " . count($this->children) . "<br>"); if ($this->type == ELEMENT) { $string .= '{' . $this->name . '}'; for ($i = 0; $i < count($this->children); $i++) { $string .= $this->children[$i]->toString(); } $string .= '{/' . $this->name . '}'; } else { $string .= $this->getValue(); } return $string; } } class XMLParser { var $xp; var $document; var $current; var $error; // Constructor function XMLParser() { $this->document = new XMLDocument(); $this->error = array(); } function setDocument($document) { $this->document = $document; } function getDocument() { return $this->document; } // Destructor function destruct(){ xml_parser_free($this->xp); } // return 1 for an error, 0 for no error function hasErrors() { if (sizeof($this->error) > 0) { return 1; } else { return 0; } } // return array of error messages function getError() { return $this->error; } // process xml start tag function startElement($xp, $name, $attrs) { //print_r("Found Start Tag: " . $name . "<br>"); $node =& $this->document->createElement($name); if ($this->document->getRoot()) { $this->current->addNode($node); } else { $this->document->root =& $node; } $this->current =& $node; } // process xml end tag function endElement($xp, $name){ //print_r("Found End Tag: " . $name . "<br>"); if ($this->current->getParent()) { $this->current =& $this->current->getParent(); } } // process data between xml tags function dataHandler($xp, $text) { //print_r("Adding Data: \"" . $text . "\"<br>"); $node =& $this->document->createTextElement($text); $this->current->addNode($node); } // parse xml document from string function parse($xmlString) { if(!($this->xp = @xml_parser_create())) { $this->error['description'] = 'Could not create xml parser'; } if(!$this->hasErrors()) { if(!@xml_set_object($this->xp, $this)) { $this->error['description'] = 'Could not set xml parser for object'; } } if(!$this->hasErrors()) { if(!@xml_set_element_handler($this->xp, 'startElement', 'endElement')) { $this->error['description'] = 'Could not set xml element handler'; } } if(!$this->hasErrors()) { if(!@xml_set_character_data_handler($this->xp, 'dataHandler')) { $this->error['description'] = 'Could not set xml character handler'; } } xml_parser_set_option($this->xp, XML_OPTION_CASE_FOLDING, false); if (!$this->hasErrors()) { if(!@xml_parse($this->xp, $xmlString)) { $this->error['description'] = xml_error_string(xml_get_error_code($this->xp)); $this->error['line'] = xml_get_current_line_number($this->xp); } } } } ?>
  24. I had never had this error occur before I saw your post and one other in the last couple of days. Now it's popping up on my checkout_shipping page as well. It seems to be random, and 1 or 2 refreshes of the page invariably will finally render the page as it should be. I suspect that the error has to be coming from the call to either "root" or "getName", but they are both declared in the xmldocument file, so I don't know if its a matter of something not being presented in the correct order or some other reason. The upsxml.php "requires" the xml document - I don't know if "require once" might be appropriate here??? Or has something changed recently either with PEAR, CURL or the UPS servers themselves? I'm grasping at straws here - hopefully someone with a better knowledge of coding will come forward with a solution.
  25. Well, I had never had this error occur before I saw your post and one other in the last couple of days. Now it's popping up on my checkout_shipping page as well. It seems to be random, and 1 or 2 refreshes of the page invariably will finally render the page as it should be. I suspect that the error has to be coming from the call to either "root" or "getName", but they are both declared in the xmldocument file, so I don't know if its a matter of something not being presented in the correct order or some other reason. The upsxml.php "requires" the xml document - I don't know if "require once" might be appropriate here??? Or has something changed recently either with PEAR, CURL or the UPS servers themselves? I'm grasping at straws here - hopefully someone with a better knowledge of coding will come forward with a solution.
×
×
  • Create New...