I am looking for someone to help or create a module for Con-Way freight shipping. I have tried to develop one but have had not luck. There is a file that can be added to shopping carts to give online quotes for shopping customers but i cannot implemented it.
We are willing to even pay for this if we have to and the reason i ask here is because it is a zencart shopping cart. This implementation has to been done ASAP. Anyones assistance would greatly be appreciated.
Here is the code the company has available on their website to add for online quotes on our website:
PHP Code:<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>XML Rating PHP sample code</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>
<body text="SlateBlue">
<xmp>
<?php
/*
Con-way XML Sample Code for PHP - Rating interface
This code has been tested on PHP 4.3.XX and PHP 5.XX
-----------------
TODO:
* replace the USERNAME and PASSWORD String values below
with your Con-way username and password
* to get customer-specific discounts, replace CUSTNMBR String value
below with your Con-way customer number
NOTE: you must have the cURL libraries installed with PHP on your server--
If you need them, see your System Administrator, who can get then at
http://curl.haxx.se/download.html
-----------------
Send questions to Con-way XML Support at [email protected]
*/
$title = "Rating";
$requestType = "RateRequest";
$requestUrl = "https://www.Con-way.com/XMLj/X-Rate";
// replace the USERNAME and PASSWORD String values below with your Con-way username and password
$username = "USERNAME";
$password = "PASSWORD";
// to get a customer-specific discount, replace the CUSTNMBR string below with
// your Con-way customer number, then uncomment the <CustNmbr> line below.
$custNmbr = "CUSTNMBR";
$today = date("m/d/y");
// array of input data
$myInput = $_GET;
// If you don't pass data in as a GET variables, hard code them here:
if (! isset($myInput['origZip'])) {
$myInput['origZip'] = "19348";
}
if (! isset($myInput['destZip'])) {
$myInput['destZip'] = "97202";
}
// array of elements you want to query from the XML Response
$myElements = array('TotalCharge', 'Discount', 'TotalAccessorialCharges', 'NetCharge', 'TransitTime');
/*
Build XML Request
In actual use, you would probably populate the XML Request
parameters (Weights, Classes, Zip Codes, etc.) from data submitted
via an on-line order form or database.
For this sample we will just hard code some dummy data.
*/
$itemArray = array(); //Your commodity items, maximum of 4 - add as needed
$itemArray[] = array('class'=>'775', 'weight'=>'667');
$itemArray[] = array('class'=>'100', 'weight'=>'555');
$accArray = array(); // Your accessorial services - add as needed
$accArray[] = "SSC";
$accArray[] = "DNC";
$accArray[] = "GUR";
extract($myInput);
$xmlRequest="<RateRequest>" .
"<OriginZip country=\"us\">$origZip</OriginZip>" .
"<DestinationZip country=\"us\">$destZip</DestinationZip>";
// To get customer specific discount, uncomment this line:
// $xmlRequest .= "<CustNmbr shipcode=\"S\">$custNmbr</CustNmbr>";
$xmlRequest .= "<ChargeCode>P</ChargeCode>" .
"<DiscountRate>100</DiscountRate>" .
"<EffectiveDate>$today</EffectiveDate>";
foreach ($itemArray as $item) { // Add commodity items to the XML Request
extract($item);
$xmlRequest .= "<Item>" .
"<CmdtyClass>$class</CmdtyClass>" .
"<Weight unit=\"lbs\">$weight</Weight>" .
"</Item>";
}
foreach ($accArray as $acc) { // Add accessorials to the XML Request
$xmlRequest .= "<Accessorial>$acc</Accessorial>";
}
$xmlRequest .= "</RateRequest>";
//Convert characters to proper format for HTTP POST
$xmlRequest = urlencode($xmlRequest);
// open synchronous connection to Con-way servlet and set options
$urlConn = curl_init ($requestUrl);
curl_setopt ($urlConn, CURLOPT_POST, 1);
curl_setopt ($urlConn, CURLOPT_SSL_VERIFYPEER, false); // May be needed for SSL behind a firewall
curl_setopt ($urlConn, CURLOPT_HTTPHEADER, array("Content-type: application/x-www-form-urlencoded"));
curl_setopt ($urlConn, CURLOPT_USERPWD, $username.":".$password);
curl_setopt ($urlConn, CURLOPT_POSTFIELDS, "$requestType=$xmlRequest");
// Get the XML Response
ob_start(); // prevent the buffer from being displayed
curl_exec($urlConn);
$xmlResponse = ob_get_contents();
ob_end_clean();
curl_close($urlConn); // close the connection
// Parse the XML Response
$parser= xml_parser_create();
xml_parse_into_struct($parser,$xmlResponse,$xmlVals);
xml_parser_free($parser);
// This function will return an array of the values of an element
// given the $vals and $index arrays, and the element name
function getElementValue($xmlVals, $elName) {
$elValue = null;
foreach ($xmlVals as $arrkey => $arrvalue) {
foreach ($arrvalue as $key => $value) {
if ($value==strtoupper($elName)){
$elValue[] = $arrvalue['value'];
}
}
}
return $elValue;
}
// Build the HTML page
echo "
<html>
<head>
<title>Sample PHP for Con-way XML $title></title>
<script language=\"Javascript\" type=\"text/javascript\">
<!--
function erase(object) {
object.value=\"\";
}
// -->
</script>
</head>
<body text=\"SlateBlue\">
<center>
<B><font face=\"arial\" size=+1><I>Sample PHP Con-way XML $title</I></font></B>
</center>
<br>
<form action=\"". $_SERVER['PHP_SELF'] ."\" method=\"get\">
<table border=\"0\" cellspacing=\"0\" cellpadding=\"0\">
";
foreach ($myInput as $key => $value) {
if ($key != "Submit" && strlen($value))
echo "
<tr>
<td><b>" . strtoupper($key) . ": </b></td>
<td><input type=\"text\" name=\"$key\" value=\"$value\"
onFocus=\"erase(this);\" onClick=\"erase(this);\"></td>
</tr>
";
}
echo "
<tr><td> </td><td> </td></tr>
<tr>
<td> </td>
<td><input type=\"submit\" name=\"Submit\" value=\"Process $title\"></td>
</tr>
</table>
</form>
<hr>
";
// Extract your element values from the XML Response
$elCount = count(getElementValue($xmlVals, $myElements[0])); // total occurrences
// The outer loop iterates the total number of occurrences of your first element
for ($i=0; $i < $elCount; $i++) {
// The inner loop iterates all of your elements, for each occurrence of the first
foreach ($myElements as $myEl) {
$myVals = getElementValue($xmlVals, $myEl);
echo "<b>Value of <$myEl> is: $myVals[$i]</b><BR>";;
}
echo '<br>';
}
echo "<b>Here is the dump of the XML output for $title:</b>" .
"<code>$xmlResponse</code><br><br>" .
"<b>And here it is displayed as a formatted array:</b><br>";
print_r($xmlVals);
echo
"</body>" .
"</html>";
?>
</xmp>
</body>
</html>



