UPS Shipping not accurate compared to UPS site

This topic was automatically closed 365 days after the last reply. New replies are no longer allowed.
7 years ago
Hi Any update on this? Using 3.70
7 years ago
This is still broken in 3.8.  The UPS plugin still does not natively support negotiated rates or adding your UPS Account #.  This should be a super easy fix for the developers... just a few extra lines of optional XML code.  To make every single customer go in and manually edit the CS files for something so simple is just plain dumb.  NOT impressed.
7 years ago
It looks like it is proposed for 3.90  https://github.com/nopSolutions/nopCommerce/issues/68
7 years ago
New York wrote:
It looks like it is proposed for 3.90  https://github.com/nopSolutions/nopCommerce/issues/68

We've even implemented it. But we don't have an opportunity to test it as we don't have a valid UPS account now (with negotiated rates). It would be great if somebody can help us to test it. Please see this branch
7 years ago
The following grabs the correct NegotiatedRates/monetary value node but only from the LAST RatedShipment node. I need help in figuring out the correct breaks. I've commented out the "TotalCharges" portion as well.

EDIT. This worked. I forgot the RatedShipment node change...


                            if (((tr.Name == "RatedShipment") && (tr.NodeType == XmlNodeType.EndElement)))
                            {
                                break;
                            }
                            //parse negotiated rates  
                            if ((tr.Name == "NegotiatedRates") && (tr.NodeType == XmlNodeType.Element))
                            {
                                while (tr.Read())
                                {
                                                    if ((tr.Name == "MonetaryValue") && (tr.NodeType == XmlNodeType.Element))
                                                    {
                                                        monetaryValue = tr.ReadString();
                                                        tr.ReadEndElement();
                                                    }
                                                    if ((tr.Name == "NegotiatedRates") && (tr.NodeType == XmlNodeType.EndElement))
                                                        break;
                                }
                            }
6 years ago
According to the UPS API Rating Package XML & Web Service Developer Guides, it would seem that if you were to add the 00 code (Shipper negotiated rates) to here and the enum definition, it should return the correct rates for a given ups shipper number.  You may also need to add the '<Shipment><RateInformation><NegotiatedRatesIndicator/></RateInformation>' into the XML (see final code addendum).

        private string GetCustomerClassificationCode(UPSCustomerClassification customerClassification)
        {
            switch (customerClassification)
            {
                case UPSCustomerClassification.Shipper:
                    return "00";
                case UPSCustomerClassification.Wholesale:
                    return "01";
                case UPSCustomerClassification.Occasional:
                    return "03";
                case UPSCustomerClassification.Retail:
                    return "04";
                default:
                    throw new NopException("Unknown UPS customer classification code");
            }


[hr]

    public enum UPSCustomerClassification
    {
        /// <summary>
        /// Negotiated Shipper
        /// </summary>
        Shipper,
        /// <summary>
        /// Retail
        /// </summary>
        Retail,
        /// <summary>
        /// Wholesale
        /// </summary>
        Wholesale,
        /// <summary>
        /// Occasional
        /// </summary>
        Occasional
    }


[hr]

Directly below this line:

            sb.Append("<Shipment>");
            sb.Append("<RateInformation><NegotiatedRatesIndicator/></RateInformation>");
6 years ago
This is one of the most frustrating details on a NOP implementation.  The changes to NOP addressed above DO work and that is a good thing.  What UPS doesn't tell you on their website, API documentation or from most of their "tech support' is that even when the customer has negotiated rates AND has obtained an API key, returning the published rates must be approved by UPS admin.  NOT their "Account Manager' who typically provides on prem support but has very little technical knowledge.  Good luck getting this done.  I have spent days with UPS for this very small thing.
6 years ago
I've downloaded and installed the UPS shipping plugin from the last branch and I'm having issues.

You're not kidding the UPS tech is not very helpful.

I've got my shipping configured, but when I test it says "failed to retrieve estimate shipping"

Other than entering URL, access key, username, password, etc, is there anything else I need to configure?
6 years ago
RE: "failed to retrieve estimate shipping"
Do an Estimate, and then check the System Log for a detailed error message.
6 years ago
[email protected] wrote:
I've downloaded and installed the UPS shipping plugin from the last branch and I'm having issues.

You're not kidding the UPS tech is not very helpful.

I've got my shipping configured, but when I test it says "failed to retrieve estimate shipping"

Other than entering URL, access key, username, password, etc, is there anything else I need to configure?


Turn on tracing to see detailed message and find out why it is failing.
This topic was automatically closed 365 days after the last reply. New replies are no longer allowed.