Jump to content


  • Content count

  • Joined

  • Last visited

  • Days Won


cannuck1964 last won the day on September 3 2015

cannuck1964 had the most liked content!


About cannuck1964

  • Rank
    Contract Coder
  • Birthday 06/30/1964

Profile Information

  • Real Name
    Peter McGrath
  • Gender
  • Location
    Ontario, Canada
  • Interests
    osCommerce development, customization and related services. I provide code development not found here on the osCommerce site, implementing functionality built to meet your business needs. If you need contributions installed or modified, I have worked with osC for many years and understand the code very well.
  • Website

Recent Profile Visitors

The recent visitors block is disabled and is not being shown to other users.

  1. cannuck1964

    Search Engine Optimisation (SEO)

    I am currently working on that right now. The usage of "each" is all over the place and was my starting point. Is a slow and tedious job, since this function is used extensively all over the files.
  2. cannuck1964

    Search Engine Optimisation (SEO)

    Nice work, is osC php 8.0 ready as well?
  3. cannuck1964

    Auth.net CIM show for specific countries only

    You would have to look at the shipto (or billto) address and put a filter on the payment modules being displayed out (or modify the module).
  4. cannuck1964

    Has anyone implemented Authorize.net CIM ?

    Hi, I have developed a CIM frame work for authorize. CIM uses XML for communication, and allows for a host of newer features. I am just looking to implement an update to the error handling on expired cards.
  5. For hosted forms. For XML it is the preferred method of implementation The link I sent is for XML implementation classes Hosted forms have not been in use for a very long time now. cheers Peter
  6. The CIM method has a lot of added functionality. You can use it to save credit card data with authorize.net in a PCI safe manor, and subscription etc easily implemented. I have built the CIM based system to save card info etc. I will see if I have some time to put a package together, just that the extraction etc will take some work to do and not sure I have the time until after vacation and work load. There are some class implementations if anyone wants to start it up on development: https://github.com/stymiee/Authorize.Net-XML cheers Peter
  7. cannuck1964

    FedEx - Web Services v9

    This generally means the SOAP library is not installed on the server. This library is needed for the module to communicate with fedex. You may want to contact your hosting provider and ask them about it. cheers Peter
  8. Actually Jack the TLS1.2 requirement will be in 4 months (Sept 18, 2017).
  9. cannuck1964

    FedEx - Web Services v9

    A a mistake I seen here: should have stated : For defining the shipping to type (commercial or residential) I have added a new field to the address_book table called address_type. The address book needs this as the customer may have multiple ship to addresses which means each address should be checked. Cheers Peter
  10. cannuck1964

    FedEx - Web Services v9

    For defining the shipping to type (commercial or residential) I have added a new field to the customer table called address_type. On log in, this new field is made as a session, having the values : residential commercial empty (not set since customer has not added to the cart any items and checked out) the session variable $address_type is added to the shipping module function quote as a global. New code to add into the function quote is: if($address_type == ''){ $path_to_address_validation_wsdl = DIR_FS_CATALOG . DIR_WS_INCLUDES . "wsdl/AddressValidationService_v2.wsdl"; $av_client = new SoapClient($path_to_address_validation_wsdl, array('trace' => 1)); // Refer to http://us3.php.net/manual/en/ref.soap.php for more information ini_set("soap.wsdl_cache_enabled", "0"); $residential_address = true; $address_validation = false; $av_request['WebAuthenticationDetail'] = array('UserCredential' => array('Key' => $this->fedex_key, 'Password' => $this->fedex_pwd)); $av_request['ClientDetail'] = array('AccountNumber' => $this->fedex_act_num, 'MeterNumber' => $this->fedex_meter_num); $av_request['TransactionDetail'] = array('CustomerTransactionId' => ' *** Address Validation Request v2 using PHP ***'); $av_request['Version'] = array('ServiceId' => 'aval', 'Major' => '2', 'Intermediate' => '0', 'Minor' => '0'); $av_request['RequestTimestamp'] = date('c'); $av_request['Options'] = array('CheckResidentialStatus' => 1, 'VerifyAddress' => 1, 'MaximumNumberOfMatches' => 10, 'StreetAccuracy' => 'MEDIUM', 'DirectionalAccuracy' => 'MEDIUM', 'CompanyNameAccuracy' => 'MEDIUM', 'ConvertToUpperCase' => 1, 'RecognizeAlternateCityNames' => 1, 'ReturnParsedElements' => 1); $av_request['AddressesToValidate'] = array( 0 => array( 'AddressId' => 'Customer Address', 'Address' => array( 'StreetLines' => array(utf8_encode($street_address), utf8_encode($street_address2)), 'Company' => $order->delivery['company'], 'PostalCode' => $postcode, 'City' => $city, 'StateOrProvinceCode' => $state, 'CompanyName' => $order->delivery['company'], 'CountryCode' => $country_id ) ) ); try { $av_response = $av_client->addressValidation($av_request); if ($av_response->HighestSeverity == 'SUCCESS') { $address_validation = true; if ($av_response->AddressResults->ProposedAddressDetails->ResidentialStatus == 'BUSINESS') { $residential_address = false; $address_type = 'commercial'; tep_session_register('address_type'); }elseif(($av_response->AddressResults->ProposedAddressDetails->ResidentialStatus == 'INSUFFICIENT_DATA') || ($av_response->AddressResults->ProposedAddressDetails->ResidentialStatus == 'UNAVAILABLE') || ($av_response->AddressResults->ProposedAddressDetails->ResidentialStatus == 'NOT_APPLICABLE_TO_COUNTRY')) { $address_type = 'residential'; tep_session_register('address_type'); } } } catch (Exception $e) { } if ($address_validation == false) { if ($order->delivery['company'] != '') { $residential_address = false; } else { $residential_address = true; } } if(isset($customer_id) && ($customer_id > 0)) tep_db_query("update " . TABLE_ADDRESS_BOOK . " set entry_delivery_type = '" . tep_db_prepare_input($address_type) . "' where address_book_id = '" . (int)$order->delivery['delivery_id'] . "'"); }else{ if ($address_type == 'commercial') { $residential_address = false; } else { $residential_address = true; } } This new code work is based off of USPS tables that fedex looks up the address to find out the address type. If no type is returned and the customer has a company name then defaults to commercial, else all others are residential. hope this helps. cheers Peter
  11. Distance based shipping This module will allow you to define a set radius from 0 to any other value in your selected unit of measure imperial or metric, (base radius). This defined zone around your shipping area can have a defined cost associated with it from 0 to any other value (defined zone cost). The unit of measure will be calculated based on the per unit of measure cost that is defined in the settings section in the admin. Distance outside of this defined radius will incur charges based on the following formula: shipping cost = (define zone cost + ((total distance shipped - base radius) * per unit of measure cost) Distance is rounded up to nearest KM or mile. Requests are sent in SSL mode (I may change this later but would fully expect people to use SSL in the checkout section) Add on is found at: http://addons.oscommerce.com/info/9543 cheers Peter M
  12. cannuck1964

    UPS Dimensional Weight Starting in 2015

    We have successfully implemented UPS dimensional shipping. Did you make any changes to the UPS XML version or just implement shipping sizes in the product editing and set up the shipping sizes in the admin tool? As well did you use the same logic for the Fedex module? thanks, Peter
  13. cannuck1964

    fedex smartpost shipping method

    Just curious, where did you get this module?
  14. Hi, I was looking to install this module on a site, but ran into issues with PHP compatability. In the create_order.php file, you are using : $result = $rs->fetch_all(MYSQLI_ASSOC); // line 89 which works with php 5.3 and beyond. With the 5.2 serries it has issues. I switched to an older file you have there and the drop down has some strange test options to use. On any selection I then get another error: Which again I am sure would be related to compatability issues. Will your newest version fix compatability issues? and when might you release this? Just curious if you have a time line is all. thanks Peter M PS. it is a pretty impressive piece of work still :)
  15. The latest release has an issue with the categories editing tool, it does not save the Category name or the description. No error is generated, as well the category id is not set on the redirect after the edit... cheers Peter