2012-07-18 95 views
1

我使用wordpress和wp电子商务为我的产品,我使用UPS进行装运,并且我创建了一个UPS帐户,并获得了我在航运下输入的API和信息,并且我已经检查了所有正确的盒子。Wordpress WP电子商务UPS运输

我知道UPS Shipping只进行计算,但是有没有办法让用户下订单时,它会通过跟踪号码或类似内容进入我的UPS帐户。我收到了wp-ecommerce的一封电子邮件,内容是这样的

您会按照自己的方式装运产品,而不管拥有网上商店。在大多数情况下,这意味着要进入UPS系统并创建运输标签。此时,您将获得一个跟踪号码,然后您可以输入该订单的商店销售日志。然后通知将被发送给具有跟踪信息的人。

这是最好的方式来做我的航运或没有人有一个更好的主意?

感谢, Ĵ

回答

1

这是适用于WP电子商务目前唯一的办法:我不知道任何WP插件,做任何事情,但是从UPS取运费的

- 你必须让别人写你自定义的插件,也可以生成运输摘要并提交给UPS以获得运输标签。

下面是一些代码,你可以用开始做出这样的插件

$xmlRequest1='<?xml version="1.0" encoding="ISO-8859-1"?> 
<AccessRequest> 
<AccessLicenseNumber>ACCESS LICENCE NUMBER</AccessLicenseNumber> 
<UserId>UPS USERNAME</UserId> 
<Password>UPS PASSWORD</Password> 
</AccessRequest> 
<?xml version="1.0" encoding="ISO-8859-1"?> 
<ShipmentAcceptRequest> 
<Request> 
<TransactionReference> 
<CustomerContext>Customer Comment</CustomerContext> 
</TransactionReference> 
<RequestAction>ShipAccept</RequestAction> 
<RequestOption>1</RequestOption> 
</Request> 
<ShipmentDigest>SHIPMENT DIGEST</ShipmentDigest> 
</ShipmentAcceptRequest> 
'; 

$ch = curl_init(); 
curl_setopt($ch, CURLOPT_URL, "https://wwwcie.ups.com/ups.app/xml/ShipAccept"); 
// uncomment the next line if you get curl error 60: error setting certificate verify locations 
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0); 
// uncommenting the next line is most likely not necessary in case of error 60 
// curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 0); 
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); 
curl_setopt($ch, CURLOPT_HEADER, 0); 
curl_setopt($ch, CURLOPT_POST, 1); 
curl_setopt($ch, CURLOPT_POSTFIELDS, $xmlRequest1); 
curl_setopt($ch, CURLOPT_TIMEOUT, 3600); 

//if ($this->logfile) { 
// error_log("UPS REQUEST: " . $xmlRequest . "\n", 3, $this->logfile); 
//} 
$xmlResponse = curl_exec ($ch); // SHIP ACCEPT RESPONSE 
//echo curl_errno($ch); 

$xml = $xmlResponse; 

preg_match_all("/\<ShipmentAcceptResponse\>(.*?)\<\/ShipmentAcceptResponse\>/s", 
$xml, $bookblocks); 

foreach($bookblocks[1] as $block) 
{ 
preg_match_all("/\<GraphicImage\>(.*?)\<\/GraphicImage\>/", 
$block, $author); // GET LABEL 

preg_match_all("/\<TrackingNumber\>(.*?)\<\/TrackingNumber\>/", 
$block, $tracking); // GET TRACKING NUMBER 
//echo($author[1][0]."\n"); 
} 

echo '<img src="data:image/gif;base64,'. $author[1][0]. '"/>'; 

代码来源:http://webcollage.wordpress.com/2011/05/13/ups-label-print-with-php/

这里http://webcollage.wordpress.com/2011/05/10/ups-shipping-confirmation-code-in-php/你会发现货运文摘看起来像

2

我的两个美分:在开始遵循@ c2h50h的解决方案(伟大的发现,btw!)后,我意识到PayPal有一个打印运输标签选项,并可以与您的UPS帐户无缝集成。我的客户使用PayPal Pro(这是他们的30美元/月的白色标签付款解决方案),并且运送信息自动转移到PayPal,在那里您可以在执行后打印标签。注意:这也适用于其他PayPal(免费)平台。

虽然我在测试中获得了@ c2h50h的解决方案,但我意识到要为客户端创建一个可行的插件需要很多编码。不过,他们喜欢PayPal解决方案,但我不得不承认,我很难设计出更好/更可靠的WordPress管理页面。

这里的的情况下,说明你想要走这条路:

  1. 注册贝宝临
  2. 接下来,加入PayPal API信息,以WP电子商务:How to find PayPal API credentials
  3. 设置此功能后, ,登录贝宝账户。
  4. 在订单旁边的帐户页面上,点击“打印运送标签”。
  5. 添加UPS账户(或美国邮政编码)
  6. 客户可以打印来自PayPal的运输标签,并收取他们的PayPal或UPS账户。
  7. 将追踪号码放入WP电子商务中。

很容易。