A shipping API is available for developers. At this time, there is no integration with the cart or payment services.
From PHP
<?php // Canadian zip code, country will be detected $from = array( 'zip' => 'A1B 2C3' ); // US zip code, country not required, but specifying is better $to = array( 'zip' => '12345', 'country' => 'US' ); // Multiple packages, unspecified count means 1 // Dimensions may be added in the future // (length, width, height -- all in centimeter) // to allow more accurate estimates // Weight provided in kilograms $packages = array( array( 'weight' => 3 ), array( 'weight' => 1, 'count' => 5 ), ); global $shippinglib; require_once 'lib/shipping/shippinglib.php'; // Single call queries all configured APIs and list shipping options $rates = $shippinglib->getRates( $from, $to, $packages ); var_dump($rates);
array(3) { [0]=> array(4) { ["provider"]=> string(5) "FedEx" ["service"]=> string(18) "PRIORITY_OVERNIGHT" ["cost"]=> string(5) "49.40" ["currency"]=> string(3) "CAD" } [1]=> array(4) { ["provider"]=> string(5) "FedEx" ["service"]=> string(11) "FEDEX_2_DAY" ["cost"]=> string(5) "48.77" ["currency"]=> string(3) "CAD" } [2]=> array(4) { ["provider"]=> string(5) "FedEx" ["service"]=> string(12) "FEDEX_GROUND" ["cost"]=> string(5) "35.45" ["currency"]=> string(3) "CAD" } }
From JavaScript
$jq.getJSON( 'tiki-ajax_services.php', { listonly: 'shipping', 'from[zip]': 'A1B 2C3', 'to[zip]': '12345', 'to[country]': 'US', 'packages[0][weight]': 3, 'packages[1][weight]': 1, 'packages[1][count]': 5 }, function( data ) { // Called when results are received // data contains the list of rates, essentially the same format as in PHP } );