They are now denying taking/using any of my code so I will paste some example here.
The denial is here:
http://www.opencart.com/index.php?route ... order=DESC
Comment here:
kedgegroup
We have not derived or used the code from your module - Sean
I created the entire '4 methods' that are looped through, I find it completely unlikely that not only someone creates the same method, they use identical code to decide which methods to support.
My code :
if($country_info['iso_code_2'] == 'AU') {
if (!preg_match('/^[0-9]{4}$/', $address['postcode'])) { $error = 'Your post code is not valid in Australia';}
$validmethods = array("standard","express");
} else {
$validmethods = array("sea","air");
}
Kedge code:
if($country_info['iso_code_2'] == 'AU') {
if (!preg_match('/^[0-9]{4}$/', $address['postcode'])) { $error = 'Post Code provided is not Valid.';}
$validmethods = array("standard","express");
} else {
$validmethods = array("sea","air");
}
The language files used. I decided to only split out some of the language as I got lazy.. no other reason. They mysteriously split out exactly the same language (the additional language line is specific to their module.. or 'added on'. Notice the file is constructed exactly the same, in the exact same order and they call their addition an 'enhancement'.. an enhancement to what exactly? existing code?.
My code:
<?php
// Text
$_['text_title'] = 'Australia Post';
$_['text_express'] = 'Australia Post Express';
$_['text_standard'] = 'Australia Post Standard';
$_['text_sea'] = 'Australia Post International Sea';
$_['text_air'] = 'Australia Post International Air';
?>
Kedge code:
<?php
// Text
$_['text_title'] = 'Australia Post';
$_['text_express'] = 'Australia Post Express';
$_['text_standard'] = 'Australia Post';
$_['text_sea'] = 'Australia Post International Sea';
$_['text_air'] = 'Australia Post International Air';
//Later enchancements
$_['error_no_splits'] = 'We even tried to split the items!';
?>
In case there was any doubt, here is the code I wrote which strips the GST off the returned value so it can be passed in to OpenCart. If you read the history of this thread I discuss when I add this feature. This feature is unique to my module and as you can see the entire section of code is replicated line for line. You will also notice that my delivery estimate code is replicated line for line, this is some of the language I chose not to split into a separate language file above... (because I never got around to it).
You will also notice in the kedge code how variable names have been changed by prefixing them with 'sa', this is done throughout the code, and is also done with the file names, eg. auspost.php became saauspost.php.
My code:
$get_quote_charge = preg_match('/^charge=([0-9]{1,3}\.?[0-9]{0,2})/', $get_quote, $quote_charge);
if (!isset($quote_charge[1])) {
$auspost_quote[0] = -1;
$auspost_quote[1] = 'Error interfacing with Australia Post (charge)';
} else {
$post_charge = sprintf('%.2f', $quote_charge[1]);
if (floatval($this->config->get('auspost_handling')) > 0) {
$post_charge = sprintf('%.2f', $post_charge + floatval($this->config->get('auspost_handling')));
}
if ($this->config->get('auspost_stripgst')) {
$auspost_quote[0] = (($post_charge / 11) * 10);
} else {
$auspost_quote[0] = $post_charge;
}
$get_post_estimate = preg_match('/days=([0-9]{1,2})/', $get_quote, $post_estimate);
$auspost_quote[1] = '';
if ($this->config->get('auspost_estimate') && isset($post_estimate[1])) {
if (is_numeric($post_estimate[1])) {
if($post_estimate[1] == 1) {
$auspost_quote[1] = ' (est. ' . $post_estimate[1] . ' day delivery)';
} else {
$auspost_quote[1] = ' (est. ' . $post_estimate[1] . ' days delivery)';
}
}
}
}
Kedge Code:
$get_quote_charge = preg_match('/^charge=([0-9]{1,3}\.?[0-9]{0,2})/', $get_quote, $quote_charge);
if (!isset($quote_charge[1])) {
$sauspost_quote[0] = -1;
$sauspost_quote[1] = 'Error contacting Australia Post Server!';
} else {
$post_charge = sprintf('%.2f', $quote_charge[1]);
if (floatval($this->config->get('sauspost_handling')) > 0) {
$post_charge = sprintf('%.2f', $post_charge + floatval($this->config->get('sauspost_handling')));
}
if ($this->config->get('sauspost_stripgst')) {
$sauspost_quote[0] = (($post_charge / 11) * 10);
} else {
$sauspost_quote[0] = $post_charge;
}
$get_post_estimate = preg_match('/days=([0-9]{1,2})/', $get_quote, $post_estimate);
$sauspost_quote[1] = '';
if ($this->config->get('sauspost_estimate') && isset($post_estimate[1])) {
if (is_numeric($post_estimate[1])) {
if($post_estimate[1] == 1) {
$sauspost_quote[1] = ' (est. ' . $post_estimate[1] . ' day delivery)';
} else {
$sauspost_quote[1] = ' (est. ' . $post_estimate[1] . ' days delivery)';
}
}
}
}
Also found that Kedge are using the 100x100x100 dimensions that I used in this module before setting up volumetric shipping (also discussed in this thread), I compared the code to my older 145 module, as you can see.. it's a little similar.
My code:
$request_url = '
http://drc.edeliver.com.au/ratecalc.asp ... _postcode=' . $this->config->get('auspost_postcode') . '&height=100&width=100&length=100&country=' . $country . '&service_type=' . $service . '&quantity=1&weight=' . $weight;
if(strtolower($country) == "au") {
$request_url .= '&destination_postcode=' . $dst_postcode;
}
Kedge code:
$request_url = '
http://drc.edeliver.com.au/ratecalc.asp ... _postcode=' . $this->config->get('sauspost_postcode') . '&height=100&width=100&length=100&country=' . $country . '&service_type=' . $service . '&quantity=1&weight=' . $weight;
if(strtolower($country) == "au") {
$request_url .= '&destination_postcode=' . $dst_postcode;
}
If you need any more proof i'd be happy to provide it.