SoapClient Error after enabling FedEx Shipping Method on Magento Ecommerce Solution

In this tutorial I will explain how to fix the SoapClient error and why it happened. My server threw this error after enabling the FedEx shipping option in Magento running 1.7. I isolated the issue to the FedEx shipping option because every time I enabled FedEx the shopping cart. The next step was to check the Magento error logs which gave me the errors below.

2012-10-19T03:57:53+00:00 ERR (3): Warning: include(SoapClient.php): failed to open stream: No such file or directory  in /var/www/vhosts/www.domain.com/httpdocs/lib/Varien/Autoload.php on line 93
2012-10-19T03:57:53+00:00 ERR (3): Warning: include(SoapClient.php): failed to open stream: No such file or directory  in /var/www/vhosts/www.domain.com/httpdocs/lib/Varien/Autoload.php on line 93
2012-10-19T03:57:53+00:00 ERR (3): Warning: include(): Failed opening 'SoapClient.php' for inclusion (include_path='/var/www/vhosts/www.domain.com/httpdocs/app/code/local:/var/www/vhosts/www.domain.com/httpdocs/app/code/community:/var/www/vhosts/www.domain.com/httpdocs/app/code/core:/var/www/vhosts/www.domain.com/httpdocs/lib:.:')  in /var/www/vhosts/www.domain.com/httpdocs/lib/Varien/Autoload.php on line 93

First I’ll explain why it happened. The reason for my SoapClient error was the php-common and php-soap extensions were at a different version than my PHP installation itself.
PHP was at version 5.3.3 and php-common and php-soap were at 5.3.17. So it’s important to make sure that the PHP extension versions are compatible with the PHP version.

Secondly I’ll explain how to fix this issue. It was extremely easy.
*Note:  There is always the potential that an update may break your site make sure you have a backup in place and ready to go before completing this process!
I simply ran the following command. I knew the PHP version was old compared to the extensions so this updates the PHP installation.

yum update php

After updating the PHP restart Apache by running the following command.

service httpd restart

Refresh the website and verify the checkout works properly.

If you have questions feel free to email [email protected] or leave a comment below.

How-To's, Tech

How to Upgrade Magento from 1.6.2 to 1.7 Using Magento Connect

In this tutorial I will explain how to upgrade the Magento ecommerce solution from 1.6 to 1.7 using Magento connect.

First login to the Magento admin page.

Hover over System then hover over Magento Connect then click on Magento Connect Manager.

On the right side of where it says “Manage Existing Extensions” click on “Check for Upgrades”.

After it finishes scroll through the list of extentions and find “Mage_All_Latest” the entire extension should be yellow and in the actions drop down select the latest stable release.

Scroll to bottom of page and click commit changes this will start the upgrade.

Some people may get a timeout if the php execution time takes too long. If this happens make sure to adjust in the php.ini file the max execution time to something longer than default. I set mine to 300 seconds.

If you have any questions use the contact form or email me at [email protected].

Build Email Message Dynamically From Submitted Form

I wrote some code to dynamically generate an email message based on the names of form elements being sent through post.
In this post I’ll describe how it’s done.

The foreach loop grabs the keys from the post array. An example key for this  $_POST[‘Name’] would be “Name”. It’s important to put in the name of the field how you want it to show in the email. So if you want uppercase letters or spaces put them in.

The $keywos (key without spaces) gets the current key in the foreach loop and replaces the underscores that are automatically put in if the name from the HTML form elements had spaces when posting and replaces them with spaces.

Copy the post array to values array

If the current value for a particular key doesn’t have information in it don’t add it to the email message. This means the user hasn’t typed in any information in the input or selected an option.

If the key isn’t equal to submit then add it to the email messages. The submit button doesn’t need to be added to the email message.

 

Have questions? Email me at [email protected].

Understanding AJAX In WordPress Plugins

For me it’s difficult to retain and grasp the programming concept, especially if it’s new, if I don’t understand the why behind the concept. I didn’t  understand how to properly use AJAX in WordPress. I started searching google and found many article explaining how to use it. The problem was it didn’t go into enough detail for me to understand why. The articles said do it this way, but didn’t explain.

The following article from Smashing Magazine goes into great detail on how to use AJAX in WordPress.
http://wp.smashingmagazine.com/2011/10/18/how-to-use-ajax-in-wordpress/

Send me an email [email protected] if you have questions.