【问题标题】:UPS Rates API - how to get service descriptionUPS Rates API - 如何获取服务描述
【发布时间】:2012-12-07 11:13:11
【问题描述】:

我正在构建一个运费计算器,我需要 API 响应中的服务代码、描述和价格。我注意到我从未收到以下回复: /RatingServiceSelectionResponse/RatedShipment/Service/Description - 但我收到了价格和服务代码的回复。

我就此联系了支持人员,他们说:“很遗憾,服务描述(在响应中)仅在我们的 Time in Transit API 中可用”

有一个不提供服务描述的 Rates API 似乎很奇怪,没有这个信息似乎有点没用。

有谁知道是否有任何方法可以使用从 Rates API 返回的服务代码来查找服务描述?

对此的任何帮助将不胜感激。

【问题讨论】:

    标签: api ups rates


    【解决方案1】:

    代码可在评级包 Web 服务开发人员指南的附录 E 中找到

    我对 UPS API 也有类似的不满。
    你是对的 - ...服务/描述在费率服务的响应中是空白的。因此,您必须使用 ...Service/Code 值并根据这些代码编写自己的代码描述图。

    例如,以下是我在 Perl 脚本中绘制的值:

    %ups_service_code   = (
        '01'    => 'UPS Next Day Air',
        '02'    => 'UPS 2nd Day Air',
        '03'    => 'UPS Ground',
        '07'    => 'UPS Worldwide Express',
        '08'    => 'UPS Worldwide Expedited',
        '11'    => 'UPS Standard',
        '12'    => 'UPS 3 Day Select',
        '13'    => 'UPS Next Day Air Saver',
        '14'    => 'UPS Next Day Air Early A.M.',
        '54'    => 'UPS Worldwide Express Plus',
        '59'    => 'UPS 2nd Day Air A.M.',
        '65'    => 'UPS Saver',
        ## 82-86 are Polish Domestic Shipments
        '82'    => 'UPS Today Standard',
        '83'    => 'UPS Today Dedicated Courier',
        '84'    => 'UPS Today Intercity',
        '85'    => 'UPS Today Express',
        '86'    => 'UPS Today Express Saver'
    );
    

    现在,真正令人沮丧的是,当您实现 TimeInTransit (TNT) 服务时,您发现它返回的是描述但没有代码!
    但我发现 TNT 服务返回的描述与开发人员指南中的费率代码描述相匹配(在上面的示例中)。所以,这就是我最终将 TNT 数据与 Rate 数据匹配的方式。

    希望这会有所帮助!

    更新:
    对于 TransitInTime 请求,您可以在在途时间文档中找到代码,请查看 PDF 部分“服务代码”的末尾。 无论如何,此代码与费率中使用的代码不同,因此您必须为此创建另一个地图。

    这是一个例子

    /* Mapping for destination within the origin country */
            $SCmappings = array(
                '23' => '54',   /* UPS Express Plus                     */
                '24' => '07',   /* UPS Express                          */
                '25' => '11',   /* UPS Standard                         */
                '26' => '65',   /* UPS Express Saver                    */
                '39' => '70'    /* UPS Access Point Economy             */
            );
    
            /* Mapping for destination within the European Union */
            $EUmappings = array(
                '08' => '11',   /* UPS Standard                         */
                '10' => '07',   /* UPS Express                          */
                '18' => '65',   /* UPS Express Saver                    */
                '22' => '54',   /* UPS Express Plus                     */
                '29' => '08',   /* UPS Express Freight - UPS Expedited  */
                '39' => '70'    /* UPS Access Point Economy             */
            );
    
            /* Mapping for destination outside the European Union */
            $nonEUmappings = array(
                '01' => '07',   /* UPS Worldwide Express                */
                '05' => '08',   /* UPS Worldwide Expedited              */
              //  '11' => '???',   /* UPS Express NA 1                     */
                '21' => '54',   /* UPS Worldwide Express Plus           */
                '28' => '65',   /* UPS Worldwide Express Saver          */
                '29' => '11',   /* UPS Express Freight - UPS Standard   */
                '39' => '70'    /* UPS Access Point Economy             */
            );
    

    【讨论】:

    • 是的,我看过附录 E 中的列表,但无法弄清楚,因为它有多个代码 7 的服务。即。 UPS Express、UPS Worldwide ExpressSM(适用于美国)和 UPS Worldwide ExpressSM(适用于波多黎各)。它令人困惑,我不确定如何以编程方式选择正确的。
    • 只需从上面复制/粘贴我的描述,其中 RATE 服务代码映射到适当的描述。然后忽略 Time In Transit 服务 (TNT) 返回的代码,而是选择 TNT 描述以匹配上述描述。
    • 我没有使用 TNT 服务,所以这对我来说不是问题,我仍然不清楚代码 7 的“UPS Worldwide Express”如何在文档中还有另外两个代码 7 的描述.
    • 附录 E(网络服务指南的第 92 页)仅使用代码 07 的 2 个描述:UPS Express 和 UPS Worldwide Express。据我所知,这些是相同的基本服务——当原产地在美国和 PR 之外时,他们称之为“UPS Worldwide Express”。 (我上面的代码用于来自美国的货件)。因此,由您决定您的原产地地址在哪个国家/地区,并应用适当的描述。 UPS 可以通过简单地在 Web 服务响应中提供代码描述来简化此操作。
    • 我需要为来自国家/地区的运输添加另一列,以便选择正确的。感谢您的帮助。
    【解决方案2】:

    这就是 Magento 映射 UPS 代码的方式。

    public function getCode($type, $code='')
        {
            $codes = array(
                'action'=>array(
                    'single'=>'3',
                    'all'=>'4',
                ),
    
                'originShipment'=>array(
                    // United States Domestic Shipments
                    'United States Domestic Shipments' => array(
                        '01' => Mage::helper('usa')->__('UPS Next Day Air'),
                        '02' => Mage::helper('usa')->__('UPS Second Day Air'),
                        '03' => Mage::helper('usa')->__('UPS Ground'),
                        '07' => Mage::helper('usa')->__('UPS Worldwide Express'),
                        '08' => Mage::helper('usa')->__('UPS Worldwide Expedited'),
                        '11' => Mage::helper('usa')->__('UPS Standard'),
                        '12' => Mage::helper('usa')->__('UPS Three-Day Select'),
                        '13' => Mage::helper('usa')->__('UPS Next Day Air Saver'),
                        '14' => Mage::helper('usa')->__('UPS Next Day Air Early A.M.'),
                        '54' => Mage::helper('usa')->__('UPS Worldwide Express Plus'),
                        '59' => Mage::helper('usa')->__('UPS Second Day Air A.M.'),
                        '65' => Mage::helper('usa')->__('UPS Saver'),
                    ),
                    // Shipments Originating in United States
                    'Shipments Originating in United States' => array(
                        '01' => Mage::helper('usa')->__('UPS Next Day Air'),
                        '02' => Mage::helper('usa')->__('UPS Second Day Air'),
                        '03' => Mage::helper('usa')->__('UPS Ground'),
                        '07' => Mage::helper('usa')->__('UPS Worldwide Express'),
                        '08' => Mage::helper('usa')->__('UPS Worldwide Expedited'),
                        '11' => Mage::helper('usa')->__('UPS Standard'),
                        '12' => Mage::helper('usa')->__('UPS Three-Day Select'),
                        '14' => Mage::helper('usa')->__('UPS Next Day Air Early A.M.'),
                        '54' => Mage::helper('usa')->__('UPS Worldwide Express Plus'),
                        '59' => Mage::helper('usa')->__('UPS Second Day Air A.M.'),
                        '65' => Mage::helper('usa')->__('UPS Worldwide Saver'),
                    ),
                    // Shipments Originating in Canada
                    'Shipments Originating in Canada' => array(
                        '01' => Mage::helper('usa')->__('UPS Express'),
                        '02' => Mage::helper('usa')->__('UPS Expedited'),
                        '07' => Mage::helper('usa')->__('UPS Worldwide Express'),
                        '08' => Mage::helper('usa')->__('UPS Worldwide Expedited'),
                        '11' => Mage::helper('usa')->__('UPS Standard'),
                        '12' => Mage::helper('usa')->__('UPS Three-Day Select'),
                        '14' => Mage::helper('usa')->__('UPS Express Early A.M.'),
                        '65' => Mage::helper('usa')->__('UPS Saver'),
                    ),
                    // Shipments Originating in the European Union
                    'Shipments Originating in the European Union' => array(
                        '07' => Mage::helper('usa')->__('UPS Express'),
                        '08' => Mage::helper('usa')->__('UPS Expedited'),
                        '11' => Mage::helper('usa')->__('UPS Standard'),
                        '54' => Mage::helper('usa')->__('UPS Worldwide Express PlusSM'),
                        '65' => Mage::helper('usa')->__('UPS Saver'),
                    ),
                    // Polish Domestic Shipments
                    'Polish Domestic Shipments' => array(
                        '07' => Mage::helper('usa')->__('UPS Express'),
                        '08' => Mage::helper('usa')->__('UPS Expedited'),
                        '11' => Mage::helper('usa')->__('UPS Standard'),
                        '54' => Mage::helper('usa')->__('UPS Worldwide Express Plus'),
                        '65' => Mage::helper('usa')->__('UPS Saver'),
                        '82' => Mage::helper('usa')->__('UPS Today Standard'),
                        '83' => Mage::helper('usa')->__('UPS Today Dedicated Courrier'),
                        '84' => Mage::helper('usa')->__('UPS Today Intercity'),
                        '85' => Mage::helper('usa')->__('UPS Today Express'),
                        '86' => Mage::helper('usa')->__('UPS Today Express Saver'),
                    ),
                    // Puerto Rico Origin
                    'Puerto Rico Origin' => array(
                        '01' => Mage::helper('usa')->__('UPS Next Day Air'),
                        '02' => Mage::helper('usa')->__('UPS Second Day Air'),
                        '03' => Mage::helper('usa')->__('UPS Ground'),
                        '07' => Mage::helper('usa')->__('UPS Worldwide Express'),
                        '08' => Mage::helper('usa')->__('UPS Worldwide Expedited'),
                        '14' => Mage::helper('usa')->__('UPS Next Day Air Early A.M.'),
                        '54' => Mage::helper('usa')->__('UPS Worldwide Express Plus'),
                        '65' => Mage::helper('usa')->__('UPS Saver'),
                    ),
                    // Shipments Originating in Mexico
                    'Shipments Originating in Mexico' => array(
                        '07' => Mage::helper('usa')->__('UPS Express'),
                        '08' => Mage::helper('usa')->__('UPS Expedited'),
                        '54' => Mage::helper('usa')->__('UPS Express Plus'),
                        '65' => Mage::helper('usa')->__('UPS Saver'),
                    ),
                    // Shipments Originating in Other Countries
                    'Shipments Originating in Other Countries' => array(
                        '07' => Mage::helper('usa')->__('UPS Express'),
                        '08' => Mage::helper('usa')->__('UPS Worldwide Expedited'),
                        '11' => Mage::helper('usa')->__('UPS Standard'),
                        '54' => Mage::helper('usa')->__('UPS Worldwide Express Plus'),
                        '65' => Mage::helper('usa')->__('UPS Saver')
                    )
                ),
    
                'method'=>array(
                    '1DM'    => Mage::helper('usa')->__('Next Day Air Early AM'),
                    '1DML'   => Mage::helper('usa')->__('Next Day Air Early AM Letter'),
                    '1DA'    => Mage::helper('usa')->__('Next Day Air'),
                    '1DAL'   => Mage::helper('usa')->__('Next Day Air Letter'),
                    '1DAPI'  => Mage::helper('usa')->__('Next Day Air Intra (Puerto Rico)'),
                    '1DP'    => Mage::helper('usa')->__('Next Day Air Saver'),
                    '1DPL'   => Mage::helper('usa')->__('Next Day Air Saver Letter'),
                    '2DM'    => Mage::helper('usa')->__('2nd Day Air AM'),
                    '2DML'   => Mage::helper('usa')->__('2nd Day Air AM Letter'),
                    '2DA'    => Mage::helper('usa')->__('2nd Day Air'),
                    '2DAL'   => Mage::helper('usa')->__('2nd Day Air Letter'),
                    '3DS'    => Mage::helper('usa')->__('3 Day Select'),
                    'GND'    => Mage::helper('usa')->__('Ground'),
                    'GNDCOM' => Mage::helper('usa')->__('Ground Commercial'),
                    'GNDRES' => Mage::helper('usa')->__('Ground Residential'),
                    'STD'    => Mage::helper('usa')->__('Canada Standard'),
                    'XPR'    => Mage::helper('usa')->__('Worldwide Express'),
                    'WXS'    => Mage::helper('usa')->__('Worldwide Express Saver'),
                    'XPRL'   => Mage::helper('usa')->__('Worldwide Express Letter'),
                    'XDM'    => Mage::helper('usa')->__('Worldwide Express Plus'),
                    'XDML'   => Mage::helper('usa')->__('Worldwide Express Plus Letter'),
                    'XPD'    => Mage::helper('usa')->__('Worldwide Expedited'),
                ),
    
                'pickup'=>array(
                    'RDP'    => array("label"=>'Regular Daily Pickup',"code"=>"01"),
                    'OCA'    => array("label"=>'On Call Air',"code"=>"07"),
                    'OTP'    => array("label"=>'One Time Pickup',"code"=>"06"),
                    'LC'     => array("label"=>'Letter Center',"code"=>"19"),
                    'CC'     => array("label"=>'Customer Counter',"code"=>"03"),
                ),
    
                'container'=>array(
                    'CP'     => '00', // Customer Packaging
                    'ULE'    => '01', // UPS Letter Envelope
                    'CSP'    => '02', // Customer Supplied Package
                    'UT'     => '03', // UPS Tube
                    'PAK'    => '04', // PAK
                    'UEB'    => '21', // UPS Express Box
                    'UW25'   => '24', // UPS Worldwide 25 kilo
                    'UW10'   => '25', // UPS Worldwide 10 kilo
                    'PLT'    => '30', // Pallet
                    'SEB'    => '2a', // Small Express Box
                    'MEB'    => '2b', // Medium Express Box
                    'LEB'    => '2c', // Large Express Box
                ),
    
                'container_description'=>array(
                    'CP'     => Mage::helper('usa')->__('Customer Packaging'),
                    'ULE'    => Mage::helper('usa')->__('UPS Letter Envelope'),
                    'CSP'    => Mage::helper('usa')->__('Customer Supplied Package'),
                    'UT'     => Mage::helper('usa')->__('UPS Tube'),
                    'PAK'    => Mage::helper('usa')->__('PAK'),
                    'UEB'    => Mage::helper('usa')->__('UPS Express Box'),
                    'UW25'   => Mage::helper('usa')->__('UPS Worldwide 25 kilo'),
                    'UW10'   => Mage::helper('usa')->__('UPS Worldwide 10 kilo'),
                    'PLT'    => Mage::helper('usa')->__('Pallet'),
                    'SEB'    => Mage::helper('usa')->__('Small Express Box'),
                    'MEB'    => Mage::helper('usa')->__('Medium Express Box'),
                    'LEB'    => Mage::helper('usa')->__('Large Express Box'),
                ),
    
                'dest_type'=>array(
                    'RES'    => '01', // Residential
                    'COM'    => '02', // Commercial
                ),
    
                'dest_type_description'=>array(
                    'RES'    => Mage::helper('usa')->__('Residential'),
                    'COM'    => Mage::helper('usa')->__('Commercial'),
                ),
    
                'unit_of_measure'=>array(
                    'LBS'   =>  Mage::helper('usa')->__('Pounds'),
                    'KGS'   =>  Mage::helper('usa')->__('Kilograms'),
                ),
                'containers_filter' => array(
                    array(
                        'containers' => array('00'), // Customer Packaging
                        'filters'    => array(
                            'within_us' => array(
                                'method' => array(
                                    '01', // Next Day Air
                                    '13', // Next Day Air Saver
                                    '12', // 3 Day Select
                                    '59', // 2nd Day Air AM
                                    '03', // Ground
                                    '14', // Next Day Air Early AM
                                    '02', // 2nd Day Air
                                )
                            ),
                            'from_us' => array(
                                'method' => array(
                                    '07', // Worldwide Express
                                    '54', // Worldwide Express Plus
                                    '08', // Worldwide Expedited
                                    '65', // Worldwide Saver
                                    '11', // Standard
                                )
                            )
                        )
                    ),
                    array(
                        // Small Express Box, Medium Express Box, Large Express Box, UPS Tube
                        'containers' => array('2a', '2b', '2c', '03'),
                        'filters'    => array(
                            'within_us' => array(
                                'method' => array(
                                    '01', // Next Day Air
                                    '13', // Next Day Air Saver
                                    '14', // Next Day Air Early AM
                                    '02', // 2nd Day Air
                                    '59', // 2nd Day Air AM
                                    '13', // Next Day Air Saver
                                )
                            ),
                            'from_us' => array(
                                'method' => array(
                                    '07', // Worldwide Express
                                    '54', // Worldwide Express Plus
                                    '08', // Worldwide Expedited
                                    '65', // Worldwide Saver
                                )
                            )
                        )
                    ),
                    array(
                        'containers' => array('24', '25'), // UPS Worldwide 25 kilo, UPS Worldwide 10 kilo
                        'filters'    => array(
                            'within_us' => array(
                                'method' => array()
                            ),
                            'from_us' => array(
                                'method' => array(
                                    '07', // Worldwide Express
                                    '54', // Worldwide Express Plus
                                    '65', // Worldwide Saver
                                )
                            )
                        )
                    ),
                    array(
                        'containers' => array('01', '04'), // UPS Letter, UPS PAK
                        'filters'    => array(
                            'within_us' => array(
                                'method' => array(
                                    '01', // Next Day Air
                                    '14', // Next Day Air Early AM
                                    '02', // 2nd Day Air
                                    '59', // 2nd Day Air AM
                                    '13', // Next Day Air Saver
                                )
                            ),
                            'from_us' => array(
                                'method' => array(
                                    '07', // Worldwide Express
                                    '54', // Worldwide Express Plus
                                    '65', // Worldwide Saver
                                )
                            )
                        )
                    ),
                    array(
                        'containers' => array('04'), // UPS PAK
                        'filters'    => array(
                            'within_us' => array(
                                'method' => array()
                            ),
                            'from_us' => array(
                                'method' => array(
                                    '08', // Worldwide Expedited
                                )
                            )
                        )
                    ),
                )
            );
    
            if (!isset($codes[$type])) {
                return false;
            } elseif (''===$code) {
                return $codes[$type];
            }
    
            if (!isset($codes[$type][$code])) {
                return false;
            } else {
                return $codes[$type][$code];
            }
        }
    

    【讨论】:

      猜你喜欢
      • 2014-05-21
      • 1970-01-01
      • 1970-01-01
      • 2020-02-24
      • 2013-05-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-01-28
      相关资源
      最近更新 更多