If you run a lead generation website and you need to verify the identity of your leads I highly recommend using DataX. I just completed some work for one of my clients that needed this ability. I leveraged DataX’s ID Verify API through an AJAX call to check a lead in realtime while the lead was filling out the lead generation form. DataX has comprehensive ways of scoring in their business rules that provide the lead the appropriate feedback to fix certain data points that may be inaccurate thus cleaning up the lead data.

If your website needs to verify the identity of the leads to filter out junk data please contact me and I can help you get integrated with DataX.


Received an email from a new client of mine today that reads:


My name is Hal Werner. I’m a friend of Ryan Boots and he said you could probably help me out. If this sounds like something do-able in the given time frame, Ryan tells me the next step is go to your site at and buy an hour of time to start. Here are the particulars.

I have an existing non-Wordpress site at I created a new version of my site within WordPress at the subdomain I’d like to delete the existing site at and move my new WordPress site to the URL. I have a backup copy of the current site if anything goes awry. I’m hoping to get the move completed on or before Wednesday, 10/16/13 (I’m attending a conference starting 10/17).

Does that sound do-able? If so, just let me know and I can throw down for my first hour and start getting you the details you need.”

The first hour was pure exploratory research. Mr. Werner’s hosting was not configured to use the proper primary domain name, which was in fact expired. Every link in his hosting control panel pointed to the expired domain. I figured out a way to attach to his proper domain name and managed to make a MySQL dump of his new WordPress database.

I advised Mr. Werner at that point to contact his hosting provider to have them correct his hosting account setup.

After the hosting provider fixed his account I migrated Mr. Werner’s WordPress installation from his test subdirectory into root and changed the database to reflect the domain change. This was a very quickly executed support task.






Last month I got the opportunity to revamp for my client Garth Oliver. He came to me with the idea to focus much more on getting his message out through blog posts.

Once he purchased his new domain name I helped him setup the web hosting he was using to host the site and configured his name servers accordingly.

Once the site was hosted I began to work on a dozen or so action items we sat down and defined prior to beginning the project. Part of this project involved maintaining the existing WordPress database for use in the new site and editing it accordingly for use with the new domain.

The over all project only took a few days to complete. How could it be better?

A couple of years ago I built the website by myself under the direction of an expert SEO ninja named Ryan Boots. To date we have received a few mentions and an article or two about how our site can help other SEO people out there.

How has the site helped you? What updates would you like to see?

Please let us know by commenting on this post and we will consider adding your features into future builds.

MAGENTO: Community version is out now

Enhanced Tax Calculations
Magento Community Edition 1.8 improves tax calculation accuracy for VAT merchants and eliminates potential rounding errors that can be confusing to buyers. Knowledge Base updates also provide more guidance on tax configurations and Canadian tax requirements, enabling you to more fully benefit from the native Magento tax engine. – See more at:

Functional Improvements
We made approximately 350 functional improvements that boost product quality in key areas, including the web store, shopping cart, admin order creation, import and export functionality, web API components, and payment methods. – See more at:

Performance Improvements
Magento Community Edition 1.8 enables a better shopping experience through faster page-loading in the checkout process and optimized cache adapters for single server systems, which minimize the number of cached pages that must be refreshed when product updates are made. The performance of the 1.8 administrator panel is also improved for those of you with large product or order databases. – See more at:

Security Enhancements
Through a number of enhancements, we also strengthened the security of Magento Community Edition. A full list of enhancements is available in our release notes. – See more at:

Magento: Quotes being escaped when magic_quotes_gpc is set to off

“Magento is escaping apostrophes when magic_quotes_gpc is set to off. When I set magic_quotes_gpc to on, Magento stops inserting slashes. It’s completely backwards.

I can’t have Magento escaping my apostrophes, but I also do not want to have magic_quotes_gpc set to on because I am concerned about the implications it might have on other parts of my site (vBulletin forum, WordPress blog, etc.).

Just to note – Magento wasn’t always behaving this way, it only started today.”

That was a scenario I just encountered with two of my clients websites where the required WordPress integrations. I noticed that Magento all of a sudden started escaping quotes and it became very troublesome to edit CMS pages in Magento due to that.

In order to resolve the issue I did this:

It turns out that WordPress has it’s own function to add in slashes. As of WordPress version 3.2.1, you can find function wp_magic_quotes() around line 530 of /wp-includes/load.php

To fix the issue, I commented out everything within the function (not the function itself, so as to prevent a call to an undefined function). It’s removed the issue of escaped quotes. I haven’t done extensive testing, but from what I understand, this may break older WordPress plug-ins, so be careful.

It will go from this:

function wp_magic_quotes() {
    // If already slashed, strip.
    if ( get_magic_quotes_gpc() ) {
        $_GET    = stripslashes_deep( $_GET    );
        $_POST   = stripslashes_deep( $_POST   );
        $_COOKIE = stripslashes_deep( $_COOKIE );

    // Escape with wpdb.
    $_GET    = add_magic_quotes( $_GET    );
    $_POST   = add_magic_quotes( $_POST   );
    $_COOKIE = add_magic_quotes( $_COOKIE );
    $_SERVER = add_magic_quotes( $_SERVER );

    // Force REQUEST to be GET + POST.
    $_REQUEST = array_merge( $_GET, $_POST );

to this:

function wp_magic_quotes() {
    // If already slashed, strip.
    //if ( get_magic_quotes_gpc() ) {
    //    $_GET    = stripslashes_deep( $_GET    );
    //    $_POST   = stripslashes_deep( $_POST   );
    //    $_COOKIE = stripslashes_deep( $_COOKIE );

    // Escape with wpdb.
    //$_GET    = add_magic_quotes( $_GET    );
    //$_POST   = add_magic_quotes( $_POST   );
    //$_COOKIE = add_magic_quotes( $_COOKIE );
    //$_SERVER = add_magic_quotes( $_SERVER );

    // Force REQUEST to be GET + POST.
    // $_REQUEST = array_merge( $_GET, $_POST );

Magento: Numbers are added to the end of my URLs automatically

Sometimes when you make changes to your products, or enable a certain extension, Magento might start to rewrite all your URLs to include a suffix “-1” or some other number. Within the URL Rewrites, Magento differentiates between System URLs and Custom URLs. If the System URLs are broken like this, you should not fix this by adding new Custom URLs.

Instead, open up phpMyAdmin, create a backup of your Magento database, and flush the Magento table core_url_rewrite (so that it becomes totally empty). Immediately afterwards, refresh the Catalog Url Rewrites under Index Management. This will regenerate all System URLs.



Magento: Will my hosting support Magento?

Over the past couple of years I have had to set up several LAMP boxes from scratch to run Magento. Up until today I’ve had a script I could run that would tell me if all of the requirements are met to run Magento on the box. That script used phpversion() function for version comparison and now that function doesn’t seem to be working as it used to. A little Googling brought me to the answer that the function can be replaced with a PHP constant “PHP_VERSION”. I have provided my new working script for your perusal. I hope this is valid code for you guys for at least 6 months…

function extension_check($extensions) {
    $fail = '';
    if(version_compare(PHP_VERSION, '5.2.0', '<')) {
        $fail .= '<li>PHP 5.2.0 (or greater)</li>';
    if(!ini_get('safe_mode')) {
        if(preg_match('/[0-9].[0-9]+.[0-9]+/', shell_exec('mysql -V'), $version)) {
            if(version_compare($version[0], '4.1.20', '<')) {
                $fail .= '<li>MySQL 4.1.20 (or greater)</li>';
    foreach($extensions as $extension) {
        if(!extension_loaded($extension)) {
            $fail .= '<li>'.$extension.'</li>';
    if($fail) {
        echo '<p>Your server does not meet the requirements for Magento.';
        echo 'The following requirements failed:</p>';
        echo '<ul>'.$fail.'</ul>';
    } else {
        echo '<p>Congratulations! Your server meets the requirements for Magento.</p>';

Magento: Can’t upload product images

If for some reason you cannot all of a sudden upload product images into Magento through the admin area I suggest you SSH into your server and navigate to the Magento directory for your website and run the following:

# chmod 777 -R media

Magento: Product Image Upload Problem

My client was having an issue on his Godaddy shared hosting account with his Magento product image uploads. I went through a dozen or more troubleshooting steps to determine the cause of the issue. After careful comparison with a Magento instance just like it hosted on another hosting company server I determined Magento was not at fault! Magento tries to write to a tmp directory on your server when it uploads and if it doesn’t have the privileges to do so will fail on image upload everytime.

My solution on Godaddy shared hosting is to create a php5.ini in the root of your Magento installation. Inside the php5.ini file add the following line:

upload_tmp_dir = var/tmp

Then under your Magento var directory create a directory named “tmp” with 755 permissions.

If this does not resolve your issue please contact me as anyone of the other troubleshooting steps could resolve your issue!

Next Page »