Drupal 6 如何将Fedex SmartPost添加为配送选项?

Drupal 6 如何将Fedex SmartPost添加为配送选项?,drupal-6,ubercart,fedex,Drupal 6,Ubercart,Fedex,我期待着添加联邦快递SmartPost作为一个运输选项。你知道我需要做什么来完成这个吗?我在这里找到的唯一信息,但似乎没有人解决这个问题。如果需要,我愿意修改ubercart fedex模块 到目前为止,我所做的: 将RateService\u v10.wsdl更改为RateService\u v14.wsdl 将代码添加到uc\u fedex\u rate\u请求中功能: $request['RequestedShipment']['SmartPostDetail'] = addSmartP

我期待着添加联邦快递SmartPost作为一个运输选项。你知道我需要做什么来完成这个吗?我在这里找到的唯一信息,但似乎没有人解决这个问题。如果需要,我愿意修改ubercart fedex模块

到目前为止,我所做的:

  • RateService\u v10.wsdl
    更改为
    RateService\u v14.wsdl
  • 将代码添加到uc\u fedex\u rate\u请求中功能:

    $request['RequestedShipment']['SmartPostDetail'] = addSmartPostDetail();
    function addSmartPostDetail(){
      $smartPostDetail = array( 
         'Indicia' => 'PARCEL_SELECT',
         'AncillaryEndorsement' => 'CARRIER_LEAVE_IF_NO_RESPONSE',
         'SpecialServices' => 'USPS_DELIVERY_CONFIRMATION',
         'HubId' => 5087,
         'CustomerManifestID' => myid, 
       );
      return $smartPostDetail;
    }
    
uc\u fedex\u quote
函数中,我在下面添加了一条调试语句:

  $response = uc_fedex_rate_request($packages, $origin, $destination);
  drupal_set_message('<pre>'. print_r($response, TRUE) .'</pre>');
$response=uc\u联邦快递\u费率\u请求($packages,$origin,$destination);
drupal设置消息(“”.print\r($response,TRUE)。“”);
在回复中,我没有将SmartPost作为选项返回。

这是我必须做的(注意:我直接编辑了uc_fedex.module):

  • 您必须先获得SmartPost对您帐户的批准
  • 从获取更新的wsdl文件并将其上载到服务器
  • 从客户支持处获得HubId(我的是5185)
  • 从客户支持获取CustomerManifestID
  • 在代码中更改为RateService_v14.wsdl(接近$client=new SoapClient…)
  • 将版本更改为14

    $request['Version']=数组( 'ServiceId'=>'crs', “少校”=>“14”, “中间”=>“0”, “次要”=>“0”, );

  • 添加以下代码:

    $request['RequestedShipping']['SmartPostDetail']=addSmartPostDetail(); 函数addSmartPostDetail(){ $smartPostDetail=数组( “标记”=>“地块选择”, “辅助背书”=>“承运人如无回应,请离开”, “特殊服务”=>“USPS交付确认”, “HubId”=>你的HubId, “CustomerManifestID”=>yourmanifestid, ); 返回$smartPostDetail; }

  • 将以下内容添加到_uc_fedex_ground_services():“智能邮政”=>t(“联邦快递智能邮政”)

  • 转到管理员/商店/设置/报价/方法/联邦快递并选中“联邦快递智能邮件”

    • 艾莉森的回答很有帮助。对于任何使用Drupal+Ubercart设置SmartPost API调用的人,下面是我如何使用FedEx Shipping 7.x-2.0+23-dev构建她的解决方案

      • 从下载更新的RateService_vXX.wsdl文件(当前版本为v18)。在文本编辑器中打开wsdl文件,确保它连接到FedEx生产服务器(当前为ws.FedEx.com:443/web services/)。将此文件上载到/uc_fedex/wsdl production/

      • 按如下方式编辑uc_fedex.module(行号可能会有所不同,具体取决于您编辑文件的方式):

      • 考虑在测试时禁用SOAP WSDL的缓存(第19行)
      • 在uc_fedex_quote函数之外(我使用了第248行),按如下方式定义addSmartPostDetail函数:

        函数addSmartPostDetail(){ $smartPostDetail=数组( “标记”=>“地块选择”, 'HubId'=>'5185',//仅将5531用于测试 ); 返回$smartPostDetail; }

      • 在uc_fedex_quote函数(第271行)中,调用addSmartPostDetail函数

        $request['RequestedShipping']['SmartPostDetail']=addSmartPostDetail()

      • 将以下内容添加到_uc_fedex_ground_services()数组(第857行):

        “智能邮政”=>t(“联邦快递智能邮政”)

      • 定义包装尺寸(第544行)。SmartPost的最小容器尺寸为6英寸长、4英寸宽、1英寸高,且模块的硬接线设置不充分

        “维度”=>数组( “长度”=>6, “宽度”=>4, “高度”=>1, '单位'=>'英寸', ),

      • 我还使用位于的修补程序手动修补了.module文件,以避免在请求无法正常工作时出现毫无帮助的“可恢复致命错误”通知
      • 转到管理员/商店/设置/报价/方法/联邦快递并选中“联邦快递智能邮件”

      我的客户需要分别为送货上门和智能邮寄设置条件,并且没有使用任何快递服务,因此我将“智能邮寄”=>t(“联邦快递智能邮寄”),代码片段移动到_uc_FedEx_Express_services()数组中,启用联邦快递方法,然后相应地设置条件