Drupal 6 如何将Fedex SmartPost添加为配送选项?
我期待着添加联邦快递SmartPost作为一个运输选项。你知道我需要做什么来完成这个吗?我在这里找到的唯一信息,但似乎没有人解决这个问题。如果需要,我愿意修改ubercart fedex模块 到目前为止,我所做的: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
- 将
更改为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(“联邦快递智能邮政”)
- 转到管理员/商店/设置/报价/方法/联邦快递并选中“联邦快递智能邮件”
- 从下载更新的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文件,以避免在请求无法正常工作时出现毫无帮助的“可恢复致命错误”通知
- 转到管理员/商店/设置/报价/方法/联邦快递并选中“联邦快递智能邮件”
- 艾莉森的回答很有帮助。对于任何使用Drupal+Ubercart设置SmartPost API调用的人,下面是我如何使用FedEx Shipping 7.x-2.0+23-dev构建她的解决方案