<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/rss2full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:sy="http://purl.org/rss/1.0/modules/syndication/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" version="2.0">

<channel>
	<title>Otel Consulting Blog</title>
	
	<link>http://blog.otelconsulting.com</link>
	<description>Pittsburgh based Otel Consulting can help with all IT needs: designing and implementing network infrastructure solutions, search engine marketing, internet application development, custom software development, server infrastructure, and much more!</description>
	<lastBuildDate>Mon, 18 Mar 2013 15:14:54 +0000</lastBuildDate>
	<language>en-US</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.5.1</generator>
		<atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" type="application/rss+xml" href="http://feeds.feedburner.com/OtelConsulting" /><feedburner:info uri="otelconsulting" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com/" /><item>
		<title>Ubuntu PHP / Postfix Virtual Hosting Multiple Relay Host via Gmail</title>
		<link>http://feedproxy.google.com/~r/OtelConsulting/~3/bTeMjDG7iYM/</link>
		<comments>http://blog.otelconsulting.com/2013/03/ubuntu-php-postfix-virtual-hosting-multiple-relay-host-via-gmail/#comments</comments>
		<pubDate>Mon, 18 Mar 2013 14:44:02 +0000</pubDate>
		<dc:creator>benleto</dc:creator>
				<category><![CDATA[howto]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[postfix gmail]]></category>
		<category><![CDATA[postfix sender_dependent_relayhost_maps]]></category>
		<category><![CDATA[Postfix virtual host]]></category>
		<category><![CDATA[sender_dependent_relayhost_maps]]></category>

		<guid isPermaLink="false">http://blog.otelconsulting.com/?p=652</guid>
		<description><![CDATA[When dealing with virtual hosting with a PHP lamp server the old way of just sending email via Sendmail right from your server can lead to bad things down the road spam-wise resulting in people not getting key emails from your LAMP hosted applications. I knew how I wanted to do it but did not know the technical way to make it happen. All of my domains email is hosted with google apps so I wanted to have each domain send all mail from my server to gmail smtp server (authenticated). However there are 5 domains all with their own username and passwords hosted at gmail. Here is how I accomplished it.]]></description>
				<content:encoded><![CDATA[<p><a href="http://blog.otelconsulting.com/wp-content/uploads/2013/03/postfix-virtualhost-gmail.png" rel="lightbox[652]" title="Ubuntu PHP / Postfix Virtual Hosting Multiple Relay Host via Gmail"><img class="alignnone size-full wp-image-677" alt="LAMP server vertial host Postfix relayhost map" src="http://blog.otelconsulting.com/wp-content/uploads/2013/03/postfix-virtualhost-gmail.png" width="600" height="99" /></a></p>
<p>When dealing with virtual hosting with a PHP lamp server the old way of just sending email via Sendmail right from your server can lead to bad things down the road spam-wise resulting in people not getting key emails from your LAMP hosted applications. I knew how I wanted to do it but did not know the technical way to make it happen. All of my domains email is hosted with google apps so I wanted to have each domain send all mail from my server to gmail smtp server (authenticated). However there are 5 domains all with their own username and passwords hosted at gmail. Here is how I accomplished it&#8230;</p>
<p><em>This how-to is geared toward Ubuntu 12.10 because that is what we are using. Minus the package install commands this should work on any distro.</em> It also assumes you have a fully functioning LAMP environment.</p>
<p><strong>Install Postfix (if you don&#8217;t already have it instal)</strong></p>
<pre class="wp-code-highlight prettyprint">sudo apt-get install postfix mailutils libsasl2-2 ca-certificates libsasl2-modules​</pre>
<p>I chose the &#8220;mail relay option&#8221; and entered smtp.gmail.com however this doesn&#8217;t to much matter because we will be change the config.</p>
<p>After everything is installed let configure postfix to use the <strong>sender_dependent_relayhost_maps</strong> directive. Which means we are mapping each user or domain &#8220;from&#8221; that goes through postfix to use a specific relay map we define.</p>
<pre class="wp-code-highlight prettyprint">sudo nano /etc/postfix/main.cf</pre>
<p>note: some of these lines will no be present and some will need replaced so pay attention</p>
<pre class="wp-code-highlight prettyprint">mydestination = localhost
 #Default Relay Host if not Found in relayhost_map
 relayhost = [smtp.gmail.com]:587
 smtp_use_tls = yes
 smtp_sasl_auth_enable = yes
 #Per user or domain auth map
 smtp_sender_dependent_authentication = yes
 sender_dependent_relayhost_maps = hash:/etc/postfix/relayhost_map
 #SMTP login info file
 smtp_sasl_password_maps = hash:/etc/postfix/sasl_passwd
 smtp_sasl_security_options = noanonymous
 # list of CAs to trust when verifying server certificate
 smtp_tls_CAfile = /etc/postfix/cacert.pem
 # eliminates default security options which are imcompatible with gmail
 smtp_sasl_security_options =
 #SMTP Debug
 #debug_peer_list=smtp.gmail.com
 #debug_peer_level=3</pre>
<p>​<strong>Validating the certificate for postfix SMTP connection</strong></p>
<pre class="wp-code-highlight prettyprint">cat /etc/ssl/certs/Thawte_Premium_Server_CA.pem | sudo tee -a /etc/postfix/cacert.pem​</pre>
<p><strong>Setting up the relayhost_map for each of our domains</strong></p>
<pre class="wp-code-highlight prettyprint">nano /etc/postfix/relayhost_map</pre>
<p><span style="text-decoration: underline;">Per Domain wildcard &#8211; covers any from address coming from specified domain<br />
</span></p>
<pre class="wp-code-highlight prettyprint">@mydomain1.com [smtp.gmail.com]:587
@mydomain2.com [smtp.gmail.com]:587</pre>
<p><strong>Setup sasl_passwd file for each domain.</strong> <em>This file contains the username and passwords for your gmail accounts that you want each domain to send from.</em></p>
<pre class="wp-code-highlight prettyprint">nano /etc/postfix/sasl_passwd</pre>
<pre class="wp-code-highlight prettyprint"># Per-sender authentication
@domain1.com user@domain1.com:xxxxx
@domain2.com user@domain2.com:xxxxx</pre>
<pre class="wp-code-highlight prettyprint"># Login for the default relayhost - Default SMTP - recommended
[smtp.gmail.com]:587    user@domain1.com:xxxxx</pre>
<p><strong>Convert your files to postmap hash db</strong></p>
<pre class="wp-code-highlight prettyprint">postmap hash:/etc/postfix/sasl_passwd
postmap hash:/etc/postfix/relayhost_map</pre>
<p><strong>Secure your password so they can not be view by anyone other than root</strong></p>
<pre class="wp-code-highlight prettyprint">sudo chown root:root /etc/postfix/sasl_passwd
sudo chmod 600 /etc/postfix/sasl_passwd</pre>
<p><strong>Forcing PHP mail function to send from one email address</strong></p>
<p>At this point postfix is configured but before we reload the new config we have to force each virtual host in apache to have the php mail command send outbound mail from one specific account so that postfix relayhost_map catches it.<br />
Pick one of your apache hosted virtual hosts confs located in: /etc/apache2/sites-available/ and add the following line in your VirtualHost section</p>
<p><em>php_admin_value sendmail_path &#8220;/usr/sbin/sendmail -fuser@domain1.com -t -i&#8221;</em><br />
A basic virtual host would look something like this:</p>
<pre class="wp-code-highlight prettyprint">        ServerName domain1.com
        ServerAdmin info@domain1.com
        DocumentRoot /home/user1/public_html
        php_admin_value sendmail_path &quot;/usr/sbin/sendmail -fuser@domain1.com -t -i&quot;

                AllowOverride All</pre>
<p>Follow this for all your domains you want to use the postfix relayhost_map anyone&#8217;s that you do not force, will use the default SMTP account to send you setup in sasl_passwd.</p>
<p>Everything is all finished up and you can restart / reload postfix and restart apache.</p>
<pre class="wp-code-highlight prettyprint">/etc/init.d/postfix restart
/etc/init.d/apache2 restart</pre>
<p><strong>Testing PHP Mail command and Log watching</strong></p>
<p>Make sure you test your php scripts to ensure they are working and forwarding to gmail correctly. Watch your mail.log to see what postfix is doing when you run your mail test</p>
<pre class="wp-code-highlight prettyprint">sudo tail -f /var/log/mail.log</pre>
<p>When you use your mail command you should see a line similar to this with your specific information and user accounts.</p>
<pre class="wp-code-highlight prettyprint">Mar 18 09:40:46 myhostname postfix/qmgr[10316]: 7D9961200CC: from=, size=2198, nrcpt=1 (queue active)
Mar 18 09:40:48 myhostname postfix/smtp[10322]: 7D9961200CC: to=, relay=smtp.gmail.com[74.125.133.109]:587, delay=1.9, delays=0.12/0.06/0.61/1.1, dsn=2.0.0, status=sent (250 2.0.0 OK 1363614106 px9sm9523394igc.0 - gsmtp)</pre>
<img src="http://feeds.feedburner.com/~r/OtelConsulting/~4/bTeMjDG7iYM" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://blog.otelconsulting.com/2013/03/ubuntu-php-postfix-virtual-hosting-multiple-relay-host-via-gmail/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://blog.otelconsulting.com/2013/03/ubuntu-php-postfix-virtual-hosting-multiple-relay-host-via-gmail/</feedburner:origLink></item>
		<item>
		<title>A Mobile Website for Homebuilders</title>
		<link>http://feedproxy.google.com/~r/OtelConsulting/~3/4-EHNuuvTlM/</link>
		<comments>http://blog.otelconsulting.com/2012/06/a-mobile-website-for-homebuilders/#comments</comments>
		<pubDate>Tue, 19 Jun 2012 12:39:48 +0000</pubDate>
		<dc:creator>benleto</dc:creator>
				<category><![CDATA[mobile]]></category>
		<category><![CDATA[homebuilder mobile site]]></category>
		<category><![CDATA[jquery mobile]]></category>
		<category><![CDATA[mobile website]]></category>
		<category><![CDATA[mobile website design]]></category>

		<guid isPermaLink="false">http://blog.otelconsulting.com/?p=604</guid>
		<description><![CDATA[When Maronda Homes came to Otel Consulting for with the statement "We want the best mobile site in the home building industry". We feel nothing short of that and delivered a high quality, feature rich mobile experience for home buyers in the markets Maronda Homes serviced.]]></description>
				<content:encoded><![CDATA[<p>When Maronda Homes came to Otel Consulting with the statement “We want the best mobile site in the home building industry”, we fell nothing short of that and delivered a high quality, feature rich mobile experience for home buyers in the markets Maronda Homes serviced.</p>
<p><strong>Features incorporated in their mobile home building site:</strong></p>
<ul>
<li>GPS based community location: Allows the user to a button and get a list of what communities are around them</li>
<li>Click-2-Call : Gives the end user as many opportunities to call the company sales representative with the push of a button</li>
<li>Point to Point Directions from the user&#8217;s current location right to the door step of the house they are interested in</li>
<li>Interactive Photo Gallery for all Communities, Home Designs and Move-In ready home sites.</li>
<li>Complete Tracking of all actions on a feature rich analytic system</li>
</ul>
<p>Browse some of the screenshots below or see for yourself and visit the site on your smart phone <a title="Mobile site for Homebuilder - Maronda Homes" href="http://m.maronda.com" target="_blank">m.maronda.com</a></p>

<a href='http://blog.otelconsulting.com/2012/06/a-mobile-website-for-homebuilders/img_0216/' title='IMG_0216'><img width="150" height="150" src="http://blog.otelconsulting.com/wp-content/uploads/2012/04/IMG_0216-150x150.png" class="attachment-thumbnail" alt="IMG_0216" /></a>
<a href='http://blog.otelconsulting.com/2012/06/a-mobile-website-for-homebuilders/img_0217/' title='IMG_0217'><img width="150" height="150" src="http://blog.otelconsulting.com/wp-content/uploads/2012/04/IMG_0217-150x150.png" class="attachment-thumbnail" alt="IMG_0217" /></a>
<a href='http://blog.otelconsulting.com/2012/06/a-mobile-website-for-homebuilders/img_0218/' title='IMG_0218'><img width="150" height="150" src="http://blog.otelconsulting.com/wp-content/uploads/2012/04/IMG_0218-150x150.png" class="attachment-thumbnail" alt="IMG_0218" /></a>
<a href='http://blog.otelconsulting.com/2012/06/a-mobile-website-for-homebuilders/img_0219/' title='IMG_0219'><img width="150" height="150" src="http://blog.otelconsulting.com/wp-content/uploads/2012/04/IMG_0219-150x150.png" class="attachment-thumbnail" alt="IMG_0219" /></a>
<a href='http://blog.otelconsulting.com/2012/06/a-mobile-website-for-homebuilders/img_0220/' title='IMG_0220'><img width="150" height="150" src="http://blog.otelconsulting.com/wp-content/uploads/2012/04/IMG_0220-150x150.png" class="attachment-thumbnail" alt="IMG_0220" /></a>
<a href='http://blog.otelconsulting.com/2012/06/a-mobile-website-for-homebuilders/img_0221/' title='IMG_0221'><img width="150" height="150" src="http://blog.otelconsulting.com/wp-content/uploads/2012/04/IMG_0221-150x150.png" class="attachment-thumbnail" alt="IMG_0221" /></a>
<a href='http://blog.otelconsulting.com/2012/06/a-mobile-website-for-homebuilders/img_0222/' title='IMG_0222'><img width="150" height="150" src="http://blog.otelconsulting.com/wp-content/uploads/2012/04/IMG_0222-150x150.png" class="attachment-thumbnail" alt="IMG_0222" /></a>
<a href='http://blog.otelconsulting.com/2012/06/a-mobile-website-for-homebuilders/img_0223/' title='IMG_0223'><img width="150" height="150" src="http://blog.otelconsulting.com/wp-content/uploads/2012/04/IMG_0223-150x150.png" class="attachment-thumbnail" alt="IMG_0223" /></a>
<a href='http://blog.otelconsulting.com/2012/06/a-mobile-website-for-homebuilders/img_0224/' title='IMG_0224'><img width="150" height="150" src="http://blog.otelconsulting.com/wp-content/uploads/2012/04/IMG_0224-150x150.png" class="attachment-thumbnail" alt="IMG_0224" /></a>
<a href='http://blog.otelconsulting.com/2012/06/a-mobile-website-for-homebuilders/img_0225/' title='IMG_0225'><img width="150" height="150" src="http://blog.otelconsulting.com/wp-content/uploads/2012/04/IMG_0225-150x150.png" class="attachment-thumbnail" alt="IMG_0225" /></a>
<a href='http://blog.otelconsulting.com/2012/06/a-mobile-website-for-homebuilders/img_0226/' title='IMG_0226'><img width="150" height="150" src="http://blog.otelconsulting.com/wp-content/uploads/2012/04/IMG_0226-150x150.png" class="attachment-thumbnail" alt="IMG_0226" /></a>
<a href='http://blog.otelconsulting.com/2012/06/a-mobile-website-for-homebuilders/img_0227/' title='IMG_0227'><img width="150" height="150" src="http://blog.otelconsulting.com/wp-content/uploads/2012/04/IMG_0227-150x150.png" class="attachment-thumbnail" alt="IMG_0227" /></a>
<a href='http://blog.otelconsulting.com/2012/06/a-mobile-website-for-homebuilders/img_0228/' title='IMG_0228'><img width="150" height="150" src="http://blog.otelconsulting.com/wp-content/uploads/2012/04/IMG_0228-150x150.png" class="attachment-thumbnail" alt="IMG_0228" /></a>

<p>The Home builders Mobile website was built using a mixture of Jquery Mobile, HTML5 and CSS with some back-end services in PHP5. The end result was something pretty impressive and in fact the most advance mobile site for any home builder to date. Read more on <a href="http://blog.marondahomes.com/pennsylvania/pittsburgh/maronda-homes-pioneers-mobile-real-estate-technology-4/" target="_blank">Maronda Home&#8217;s company blog &#8211; Mobile Homebuilder Site Press Release</a>.</p>
<img src="http://feeds.feedburner.com/~r/OtelConsulting/~4/4-EHNuuvTlM" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://blog.otelconsulting.com/2012/06/a-mobile-website-for-homebuilders/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://blog.otelconsulting.com/2012/06/a-mobile-website-for-homebuilders/</feedburner:origLink></item>
		<item>
		<title>ARDEX of America Adroid App Launch</title>
		<link>http://feedproxy.google.com/~r/OtelConsulting/~3/5gTK4rNh6O4/</link>
		<comments>http://blog.otelconsulting.com/2012/01/ardex-of-america-adroid-app-launch/#comments</comments>
		<pubDate>Tue, 03 Jan 2012 07:23:05 +0000</pubDate>
		<dc:creator>benleto</dc:creator>
				<category><![CDATA[android]]></category>
		<category><![CDATA[mobile]]></category>
		<category><![CDATA[android app]]></category>
		<category><![CDATA[ardex]]></category>
		<category><![CDATA[iphone android port]]></category>

		<guid isPermaLink="false">http://blog.otelconsulting.com/?p=589</guid>
		<description><![CDATA[The ARDEX Americas Product Calculator and information App is brought to you by the industry-leading manufacturer of specialty cements and substrate preparation products for flooring and building professionals in North America. ARDEX came to Otel Consulting to take their existing iPhone OS based application and make a direct port of it to the Android OS.]]></description>
				<content:encoded><![CDATA[<p>The <a title="ARDEX Engineered Cements" href="http://www.ardex.com/default.asp" target="_blank">ARDEX Americas</a> Product Calculator and information App is brought to you by the industry-leading manufacturer of specialty cements and substrate preparation products for flooring and building professionals in North America. ARDEX came to Otel Consulting to take their existing iPhone OS based application and make a direct port of it to the Android OS.</p>
<p>This functional, easy to use application can be used by Flooring Installation Professionals, Contractors, Architects, Engineers and Building Professionals when on the go product, technical and installation information is needed. ARDEX delivers innovation and time tested, consistent solutions to the most complex installation problems while continuing to be&#8230;Your Best Choice For Installation Success!</p>
<p><a title="ARDEX Americas Product Calculator" href="https://market.android.com/details?id=com.ARDEX.Activity" target="_blank">ARDEX Americas Product Calculator</a> on the Android Market Place</p>

<a href='http://blog.otelconsulting.com/2012/01/ardex-of-america-adroid-app-launch/ardex-android-1/' title='ARDEX Product Calulator Android App'><img width="150" height="150" src="http://blog.otelconsulting.com/wp-content/uploads/2012/02/ardex-android-1-150x150.jpg" class="attachment-thumbnail" alt="ARDEX Product Calulator Android App" /></a>
<a href='http://blog.otelconsulting.com/2012/01/ardex-of-america-adroid-app-launch/ardex-android-2/' title='ardex-android-2'><img width="150" height="150" src="http://blog.otelconsulting.com/wp-content/uploads/2012/02/ardex-android-2-150x150.jpg" class="attachment-thumbnail" alt="ardex-android-2" /></a>
<a href='http://blog.otelconsulting.com/2012/01/ardex-of-america-adroid-app-launch/ardex-android-3/' title='ardex-android-3'><img width="150" height="150" src="http://blog.otelconsulting.com/wp-content/uploads/2012/02/ardex-android-3-150x150.jpg" class="attachment-thumbnail" alt="ardex-android-3" /></a>
<a href='http://blog.otelconsulting.com/2012/01/ardex-of-america-adroid-app-launch/ardex-android-4/' title='ardex-android-4'><img width="150" height="150" src="http://blog.otelconsulting.com/wp-content/uploads/2012/02/ardex-android-4-150x150.jpg" class="attachment-thumbnail" alt="ardex-android-4" /></a>

<p>&nbsp;</p>
<img src="http://feeds.feedburner.com/~r/OtelConsulting/~4/5gTK4rNh6O4" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://blog.otelconsulting.com/2012/01/ardex-of-america-adroid-app-launch/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://blog.otelconsulting.com/2012/01/ardex-of-america-adroid-app-launch/</feedburner:origLink></item>
		<item>
		<title>Otel Consulting TV Ad on Championship Chase Fox 53</title>
		<link>http://feedproxy.google.com/~r/OtelConsulting/~3/t0BgcF3BULA/</link>
		<comments>http://blog.otelconsulting.com/2011/11/otel-consulting-tv-ad-on-championship-chase-fox-53/#comments</comments>
		<pubDate>Wed, 16 Nov 2011 20:15:50 +0000</pubDate>
		<dc:creator>benleto</dc:creator>
				<category><![CDATA[company news]]></category>

		<guid isPermaLink="false">http://blog.otelconsulting.com/?p=582</guid>
		<description><![CDATA[Our recent ad sponsorship on 2011 NFL Season for Fox 53 Pittsburgh Steeler / NFL show Championship Chase. Great weekly show that breaks down the Pittsburgh Steelers past and future season games and interacts with the Steeler community. Check it out on WPGH Channel 53, a Fox Network affiliate, every Saturday at 10:30 p.m. ]]></description>
				<content:encoded><![CDATA[<p>Our recent ad sponsorship on 2011 NFL Season for Fox 53 Pittsburgh Steeler / NFL show Championship Chase. Great weekly show that breaks down the Pittsburgh Steelers past and future season games and interacts with the Steeler community. Check it out on WPGH Channel 53, a Fox Network affiliate, every Saturday at 10:30 p.m.</p>
<p>Their website: <a title="http://www.championshipchasetv.com" dir="ltr" href="http://www.championshipchasetv.com/" rel="nofollow" target="_blank">www.championshipchasetv.com</a></p>
<p><iframe src="http://www.youtube.com/embed/bRp9_AJWQDE" frameborder="0" width="420" height="315"></iframe></p>
<h6><span style="color: #999999;"><em>All images are copyrighted to Championship Chase TV</em></span></h6>
<img src="http://feeds.feedburner.com/~r/OtelConsulting/~4/t0BgcF3BULA" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://blog.otelconsulting.com/2011/11/otel-consulting-tv-ad-on-championship-chase-fox-53/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://blog.otelconsulting.com/2011/11/otel-consulting-tv-ad-on-championship-chase-fox-53/</feedburner:origLink></item>
		<item>
		<title>Zimbra 6 Drag and Drop – Firefox 7 Compatible Fix</title>
		<link>http://feedproxy.google.com/~r/OtelConsulting/~3/qrGRPK4FB-8/</link>
		<comments>http://blog.otelconsulting.com/2011/10/zimbra-6-drag-and-drop-firefox-7-compatible-fix/#comments</comments>
		<pubDate>Tue, 25 Oct 2011 20:01:29 +0000</pubDate>
		<dc:creator>benleto</dc:creator>
				<category><![CDATA[zimbra]]></category>

		<guid isPermaLink="false">http://blog.otelconsulting.com/?p=571</guid>
		<description><![CDATA[Otel Consulting has developed an in house fix for users running Zimbra 6 with Firefox 7 using the drag and drop extension. If you are uploading files and getting errors or undefended file name and "Critical - Error uploading file" messages then this will take care of your issues.]]></description>
				<content:encoded><![CDATA[<p>We have developed an in house fix for users running Zimbra 6 with Firefox 7 using the drag and drop extension. If you are uploading files and getting errors or undefended file name and &#8220;Critical &#8211; Error uploading file&#8221; messages then this will take care of your issues.</p>
<p><span style="text-decoration: underline;"><strong>Resloves the following issues</strong></span></p>
<ul>
<li>&#8220;Critical &#8211; Error uploading file&#8221; dialog appears and the &#8220;Attaching files&#8221; line sort of sits there and spins</li>
<li>java.io.FileNotFoundException: zimlet description not found: com_zimbra_dnd.xml</li>
<li>undefined file description after upload</li>
</ul>
<p>Tested and works under the following browsers versions: Firefox 3.5.x, 3.6.x, 6x, 7x<br />
Works with Zimbra 6.0.14 and may work with other subsequent versions please report.</p>
<p><span style="text-decoration: underline;"><strong>Install Instructions</strong></span></p>
<p>download <a href="http://www.otelconsulting.com/downloads/com_zimbra_dnd.zip" target="_blank">Drag-and-Drop Attachments 1.0.1 otel consulting update</a></p>
<p>once downloaded go into Zimbra Administration : Configuration &gt; Zimlet</p>
<p>undeploy the old com_zimbra_dnd</p>
<p>click &#8220;deploy&#8221; and select the updated version of com_zimbra_dnd you just downloaded and make sure you select &#8220;Flush zimlet cache&#8221; and click deploy</p>
<p><a href="http://blog.otelconsulting.com/wp-content/uploads/2011/10/dnd_1.jpg" rel="lightbox[571]" title="How to deloy Drag and Drop Zimlet Firefox 7 fix for Zimbra 6.x"><img class="alignnone size-medium wp-image-573" title="How to deloy Drag and Drop Zimlet Firefox 7 fix for Zimbra 6.x" src="http://blog.otelconsulting.com/wp-content/uploads/2011/10/dnd_1-300x202.jpg" alt="How to deloy Drag and Drop Zimlet Firefox 7 fix for Zimbra 6.x" width="300" height="202" /></a><a href="http://blog.otelconsulting.com/wp-content/uploads/2011/10/dnd_2.jpg" rel="lightbox[571]" title="Drag and Drop Zimlet Firefox 7 Fix in action!"><img class="alignnone size-medium wp-image-574" title="Drag and Drop Zimlet Firefox 7 Fix in action!" src="http://blog.otelconsulting.com/wp-content/uploads/2011/10/dnd_2-300x223.jpg" alt="Drag and Drop Zimlet Firefox 7 Fix in action!" width="300" height="223" /></a></p>
<img src="http://feeds.feedburner.com/~r/OtelConsulting/~4/qrGRPK4FB-8" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://blog.otelconsulting.com/2011/10/zimbra-6-drag-and-drop-firefox-7-compatible-fix/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		<feedburner:origLink>http://blog.otelconsulting.com/2011/10/zimbra-6-drag-and-drop-firefox-7-compatible-fix/</feedburner:origLink></item>
		<item>
		<title>Magento Mobile Version of Store with Tablet Support</title>
		<link>http://feedproxy.google.com/~r/OtelConsulting/~3/ugVCcy0vyLM/</link>
		<comments>http://blog.otelconsulting.com/2011/10/magento-mobile-version-of-store-with-tablet-support/#comments</comments>
		<pubDate>Mon, 24 Oct 2011 16:36:52 +0000</pubDate>
		<dc:creator>benleto</dc:creator>
				<category><![CDATA[ecommerce]]></category>
		<category><![CDATA[magento]]></category>
		<category><![CDATA[magento android]]></category>
		<category><![CDATA[magento iphone]]></category>
		<category><![CDATA[magento tablet]]></category>

		<guid isPermaLink="false">http://blog.otelconsulting.com/?p=540</guid>
		<description><![CDATA[Learn how to setup up Magento Theme exceptions to support Mobile Devices and optionally exclude tablet based devices to show the standard html version of the site. ]]></description>
				<content:encoded><![CDATA[<p>Want to optimize your Magento store for Mobile platforms? This article will walk you through how to make your store not only mobile friendly but to serve a different version of your Magento store based on what mobile platform your customers are using. Other how-to&#8217;s do not show you how to deal with the increasingly popular tablet market like iPad, Android &amp; Kindle Fire.</p>
<p><a href="http://blog.otelconsulting.com/wp-content/uploads/2011/10/magento-mobile.jpg" rel="lightbox[540]" title="Magento Mobile Version of Website iPad &amp; iPhone"><img class="size-medium wp-image-542  alignnone" style="border: 0pt none;" title="Magento Mobile Version of Website iPad &amp; iPhone" src="http://blog.otelconsulting.com/wp-content/uploads/2011/10/magento-mobile-300x179.jpg" alt="Magento Mobile Version of Website" width="300" height="179" /></a></p>
<p>&nbsp;</p>
<p>Under the Magento Admin : System &gt; Configuration &gt; Design is where you want to be. You also want to make sure you have the &#8220;<a href="http://www.magentocommerce.com/magento-connect/Magento+Core/extension/303/iphone-theme" target="_blank">mCommerce &#8211; iPhone theme</a>&#8221; or some mobile designed theme to server as your secondary store alternative for your mobile based clients.</p>
<p><span style="text-decoration: underline;"><strong>Configuration</strong></span></p>
<p>Depending on how you want to serve up your store depends on what configuration you want.</p>
<p><strong><span style="color: #ff9900;">Option #1 : Show mobile version on Any Mobile Based OS (phone ,tablet, kindle fire)</span></strong></p>
<p><span style="color: #808080;"><strong>iPhone|iPod|BlackBerry|Pre|Palm|Googlebot-Mobile|mobi|Safari Mobile|Windows Mobile|Android|Opera Mini|mobile|Silk|Kindle</strong></span></p>
<p><span style="color: #ff9900;"><strong>Option #2: Show mobile version to just phone based browser and Display normal desktop version on tablet based devices</strong></span></p>
<p><span style="color: #808080;"><strong>(iPhone|iPod|BlackBerry|Pre|Palm|Googlebot-Mobile|mobi|Safari Mobile|Windows Mobile|Android|Opera Mini|mobile)|(!iPad|Silk|Kindle|Xoom|SCH-I800|Tablet)</strong></span></p>
<p>After you have chosen one of the configurations above go under the Design &#8220;Themes&#8221; section and add it to the following sections (Template, Skin, Layout, Default) in the &#8220;Matched Expression&#8221; field.  Then in the values section you should put in &#8220;iphone&#8221; in the value field. If you have a different mobile theme then your value field should be the theme name. Then click save config.</p>
<p><a href="http://blog.otelconsulting.com/wp-content/uploads/2011/10/magento-mobile2.jpg" rel="lightbox[540]" title="Magento mobile browser version configuration"><img class="size-medium wp-image-544 alignnone" title="Magento mobile browser version configuration" src="http://blog.otelconsulting.com/wp-content/uploads/2011/10/magento-mobile2-300x295.jpg" alt="Magento mobile browser version configuration" width="300" height="295" /></a></p>
<p>So just to recap what we did: We are saying hey Magento if the &#8220;<a href="http://en.wikipedia.org/wiki/User_agent" target="_blank">Browser User-Agent</a>&#8221; matches any of the following &#8220;Matched Expressions&#8221; then change the theme directory to &#8220;Value&#8221;.  Make sure you test your new configuration on a mobile platform. If you don&#8217;t have any mobile devices to test with we recommend using Safari and following this great how-to &#8220;<a href="http://www.htmlgoodies.com/beyond/webmaster/toolbox/article.php/3889011/Using-Safari-for-iPhone-iPad-and-iPod-Touch-Website-Testing.htm" target="_blank">Using Safari for iPhone, iPad and iPod Touch Website Testing</a>&#8221;</p>
<p><span style="text-decoration: underline;"><strong>Supported Browsers in this script as of October 2011<br />
</strong></span></p>
<p><strong>Phone Based Browsers:</strong></p>
<ul>
<li>iPhone / iPod</li>
<li>Android</li>
<li>Palm</li>
<li>Blackberry</li>
<li>Windows Mobile</li>
</ul>
<p><strong>Tablet Based Browsers:</strong></p>
<ul>
<li>iPad</li>
<li>Galaxy Tablet</li>
<li>Any Android Tablet</li>
<li>Xoom</li>
<li>HP WebOS</li>
</ul>
<p>&nbsp;</p>
<img src="http://feeds.feedburner.com/~r/OtelConsulting/~4/ugVCcy0vyLM" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://blog.otelconsulting.com/2011/10/magento-mobile-version-of-store-with-tablet-support/feed/</wfw:commentRss>
		<slash:comments>7</slash:comments>
		<feedburner:origLink>http://blog.otelconsulting.com/2011/10/magento-mobile-version-of-store-with-tablet-support/</feedburner:origLink></item>
		<item>
		<title>10 Shopping Search Engines to Sell your Products</title>
		<link>http://feedproxy.google.com/~r/OtelConsulting/~3/dv5yJsoTaK4/</link>
		<comments>http://blog.otelconsulting.com/2011/09/10-shopping-search-engines-to-sell-your-products/#comments</comments>
		<pubDate>Wed, 28 Sep 2011 10:55:02 +0000</pubDate>
		<dc:creator>benleto</dc:creator>
				<category><![CDATA[ecommerce]]></category>
		<category><![CDATA[internet]]></category>
		<category><![CDATA[magento]]></category>
		<category><![CDATA[Product Search Engines]]></category>

		<guid isPermaLink="false">http://blog.otelconsulting.com/?p=531</guid>
		<description><![CDATA[Listing your products with shopping-oriented search engines can be a great way to attract new customers. Many shopping search engines are free, but some require a fee and come with varying levels of control and interaction with your products and with customers that buy through the shopping engine.]]></description>
				<content:encoded><![CDATA[<p>Listing your products with shopping-oriented search engines can be a great way to attract new customers. Many shopping search engines are free, but some require a fee and come with varying levels of control and interaction with your products and with customers that buy through the shopping engine.</p>
<p>What many of these services have in common is discounted merchandise. To therefore take advantage of some of these portals, your company may have to mark down its products to compete with the similar discounted items on the site. Alternatively, these services can be good way to sell excess stock at a lower price.<br />
Large-Sized Search Engine Solutions</p>
<p>Google, Yahoo! and Bing all have their own shopping search engines that you can register your products with. They vary from being free to flexible fee-structures, depending on items sold. If just starting out, you may want to focus on a free option. You may also want to focus on a search engine that you don’t get a tremendous amount of traffic, to help build awareness of your brand with a new group of potential customers.</p>
<p><strong>Google Product Search</strong><br />
Google’s product search is a useful way to expose your products to more shoppers on one of the most popular search engines on the web. Your products will appear in the Product Search engine but also may appear on Google’s standard search results depending on the relevance of the product to the search being performed.</p>
<p><strong><span style="color: #000000;"><em>Price: Free.</em></span></strong></p>
<p><strong>Yahoo! Shopping</strong><br />
Submit your products to Yahoo! Shopping, provide a detailed description, and Yahoo! will do the rest. Each submission will be listed on Yahoo! Shopping in both the general product search and product comparison pages. All you need is a Yahoo! Search Marketing account. For Yahoo! store merchants, use the merchant solutions service to publish your catalog.</p>
<p><strong><em>Price: Submitting products is free; Search Marketing plans vary from free to a one-time $99 fee; Additional fees for purchases on Yahoo! Shopping also apply, including its bidding service, which affects the placement of the product in-search.</em></strong></p>
<p><strong>TheFind</strong><br />
TheFind is a powerful comparison shopping service and has probably already found your store&#8217;s products with its search bot, but merchants can play a much more active role by setting up a merchant account with The Find. Once you are registered, you can submit a comprehensive product feed to the service of all products available, update that feed as often as desired, and control your store&#8217;s brand and logo as seen from TheFind. You can also pay to have your products featured and increase traffic to your own site.</p>
<p><em><strong>Price: Free &#8211; $299.</strong></em></p>
<p><strong>Bing Shopping</strong><br />
A free service from Microsoft that gives access to your products to one of most widely used search engines on the web. You have to contact a Microsoft Advertising representative to get started and once you sign up, all you have to do is send your Bing Shopping data feed to Microsoft.</p>
<p><em><strong>Price: Free.</strong></em></p>
<p><span style="color: #3366ff;"><strong>Comparison Shopping and Shopping Directories</strong></span></p>
<p>These are shopping destination sites that offer thousands of popular brands and products, usually at a discounted price. I’ve tried to focus on general and popular shopping sites and comparison sites. If you are interested in the dozens of niche online marketplaces, check out my previous article, “How To Set Up Shop on Niche Online Marketplaces,” for more information on that process.</p>
<p><span style="color: #3366ff;"><strong>Amazon</strong></span><br />
It’s one of the most costly sites to list your products, but it is also has high traffic and could be worth the cost for the right merchant.</p>
<p>Price: Structure varies on amount of items sold – 40 items or less monthly, $.99 per sale plus 15 percent referral fee and variable closing fee per item starting at $.45 to $.05 per pound; 40 items or more monthly, flat $39.99 for unlimited sales plus the same referral and closing fees.</p>
<p><span style="color: #3366ff;"><strong>PriceGrabber</strong></span><br />
A price comparison search engine, PriceGrabber gets roughly 24 million unique visitors monthly looking for deals. Merchants can list their products for free and then only pay when a shopper clicks on their product. The merchant then pays a cost-per-click fee. The nice thing here is that once the shopper clicks through on PriceGrabber, the shopper finalizes the sale on the merchant’s website.</p>
<p><strong>Price: $.35 &#8211; $.90 per item clicked, depending on category of product.</strong></p>
<p><span style="color: #3366ff;"><strong>PriceScan</strong></span><br />
Any merchant can list a product here, but you need extremely competitive prices or PriceScan will not list your product if it is higher than the similar products that it already lists.</p>
<p><strong>Price: Free.</strong></p>
<p><strong><span style="color: #3366ff;">Shop.com</span></strong><br />
Another shopping comparison directory that merchants can list products on with two payment options: Cost-Per-Order (CPO) and Cost-Per-Click (CPC). CPO means merchants pay a negotiated commission to Shop.com and comes with some additional benefits when selling with them. CPC is a per-click fee program with varying rates that depend on the product and category.</p>
<p><strong>Price: Varies with product and product listing program in use.</strong></p>
<p><span style="color: #3366ff;"><strong>Shopping.com</strong></span><br />
Owned by eBay, Shopping.com has a large following in the comparison-shopping world with an average of 20 million unique visitors monthly.</p>
<p><strong>Price: $.05 &#8211; $.90 per item clicked, depending on category of product.</strong></p>
<p><span style="color: #3366ff;"><strong>ShopWiki</strong></span><br />
A shopping search engine that crawls for products and stores and lists them in their search results. If your store is not already listed, you can simply type in your store’s URL and add it to ShopWiki&#8217;s index. Once your URL has been added, your products should start appearing in ShopWiki&#8217;s search results within 3 to 4 weeks.</p>
<p><strong>Price: Free.</strong></p>
<p><span style="color: #3366ff;"><strong>ShopZilla</strong></span><br />
A widely used shopping comparison directory that merchants can take advantage of. Shopzilla is free to register and list products on, but it uses a similar cost-per-click (CPC) fee structure as many other comparison sites. Register a Shopzilla merchant account and pay a minimum of $50, which will all go towards the CPC fee for each item purchased through ShopZilla.</p>
<p><strong>Price: $.05-$.90 per item clicked, depending on category of product.</strong></p>
<img src="http://feeds.feedburner.com/~r/OtelConsulting/~4/dv5yJsoTaK4" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://blog.otelconsulting.com/2011/09/10-shopping-search-engines-to-sell-your-products/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://blog.otelconsulting.com/2011/09/10-shopping-search-engines-to-sell-your-products/</feedburner:origLink></item>
		<item>
		<title>Still haven’t used a QR Code?</title>
		<link>http://feedproxy.google.com/~r/OtelConsulting/~3/UL_G_nljo0U/</link>
		<comments>http://blog.otelconsulting.com/2011/07/still-havent-used-a-qr-code/#comments</comments>
		<pubDate>Tue, 12 Jul 2011 19:39:57 +0000</pubDate>
		<dc:creator>benleto</dc:creator>
				<category><![CDATA[internet]]></category>
		<category><![CDATA[search marketing]]></category>
		<category><![CDATA[qr codes]]></category>

		<guid isPermaLink="false">http://blog.otelconsulting.com/?p=515</guid>
		<description><![CDATA[Whether you don't know what QR codes are or you’re a frequent user of them, be prepared because they’re going to become more popular than Justin Bieber and you’re going to see them everywhere you turn. they’re basically barcodes that can be read by smart phones. This literally can bring your print material to life and allow even a simple business card to interact with your potential client’s phone, which is quickly becoming everyone’s lifeline.]]></description>
				<content:encoded><![CDATA[<p>Whether you don&#8217;t know what QR codes are or you’re a frequent user of them, be prepared because they’re going to become more popular than <a href="http://www.justinbiebermusic.com" target="_blank">Justin Bieber</a> and you’re going to see them everywhere you turn. they’re basically barcodes that can be read by smart phones. This literally can bring your print material to life and allow even a simple business card to interact with your potential client’s phone, which is quickly becoming everyone’s lifeline.<span id="more-515"></span><img class="alignleft size-thumbnail wp-image-520" title="website-qrcode" src="http://blog.otelconsulting.com/wp-content/uploads/2011/07/website-qrcode2-150x150.png" alt="" width="150" height="150" /></p>
<p>QR stands for “quick response” and this strange-looking little square is a barcode that holds encoded information, commonly URLs. By downloading a QR reader app, smartphone users can take a picture of the code and have it read and decoded. If you try your app on the above code, you’ll be directed to our company website. The codes can be generated for free on a number of websites. Our favorite is <a href="http://www.qrstuff.com/" target="_blank">QRstuff.com</a> generator with its high resolution downloads and easy to configure this makes things very user / designer friendly!<img class="size-thumbnail wp-image-523 alignright" title="People-Scanning" src="http://blog.otelconsulting.com/wp-content/uploads/2011/07/People-Scanning-150x150.jpg" alt="" width="150" height="150" /></p>
<p>Becoming inventive with where and how to use them is our specialty. QR Codes have used for Posters, Magazine Ad, A Video about your Company or Service, Coupon, Competition, T-Shirts &amp; Promotional Products. But the possibilities are pretty much endless.</p>
<p>In our next article &#8220;coupling QR codes with <a href="http://www.google.com/analytics/" target="_blank">Google analytic</a>&#8221; we will talk about how you can turn a simple print ad into a statistical marketing platform and find out what types of customers are interested in your ad.</p>
<p><strong>Bottom Line is QR codes make the electronic connection with Print media and the End Users smart phone.</strong></p>
<p><img class="alignnone size-thumbnail wp-image-524" title="QRcode_billboard-e1300745592146" src="http://blog.otelconsulting.com/wp-content/uploads/2011/07/QRcode_billboard-e1300745592146-150x150.png" alt="" width="150" height="150" /></p>
<p>&nbsp;</p>
<img src="http://feeds.feedburner.com/~r/OtelConsulting/~4/UL_G_nljo0U" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://blog.otelconsulting.com/2011/07/still-havent-used-a-qr-code/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://blog.otelconsulting.com/2011/07/still-havent-used-a-qr-code/</feedburner:origLink></item>
		<item>
		<title>Otel Consulting Welcomes Allegheny Millwork &amp; Lumber</title>
		<link>http://feedproxy.google.com/~r/OtelConsulting/~3/ZHoQABDlUAo/</link>
		<comments>http://blog.otelconsulting.com/2011/06/otel-consulting-welcomes-allegheny-millwork-lumber/#comments</comments>
		<pubDate>Thu, 09 Jun 2011 18:06:58 +0000</pubDate>
		<dc:creator>benleto</dc:creator>
				<category><![CDATA[company news]]></category>
		<category><![CDATA[Allegheny Millwork]]></category>

		<guid isPermaLink="false">http://blog.otelconsulting.com/?p=509</guid>
		<description><![CDATA[Otel Consulting would like to give a warm welcome to their new client Allegheny Millworks &#38; Lumber. For over 30 years, Allegheny Millwork has earned a national reputation as a leader in the custom millwork by providing their customers with the highest standard of quality, value and service.  More information can be found on their [...]]]></description>
				<content:encoded><![CDATA[<p><a href="http://www.otelconsulting.com" target="_blank">Otel Consulting</a> would like to give a warm welcome to their new client <a title="Allegheny Millworks Pittsburgh PA" href="http://www.alleghenymillwork.com/" target="_blank">Allegheny Millworks &amp; Lumber</a>. For over 30 years, Allegheny Millwork has earned a national reputation as a leader in the custom millwork by providing their customers with the highest  standard of quality, value and service.  More information can be found on their two websites <a href="http://www.alleghenymillwork.com" target="_blank">Allegheny Millworks</a> and their Lumber Yard products website <a title="Allegheny Millwork Lumber Pittsburgh PA" href="http://www.alleghenymillworklumber.com/" target="_blank">Allegheny Millworks Lumber</a>.</p>
<p>&nbsp;</p>
<img src="http://feeds.feedburner.com/~r/OtelConsulting/~4/ZHoQABDlUAo" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://blog.otelconsulting.com/2011/06/otel-consulting-welcomes-allegheny-millwork-lumber/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://blog.otelconsulting.com/2011/06/otel-consulting-welcomes-allegheny-millwork-lumber/</feedburner:origLink></item>
		<item>
		<title>Valor Corporation API Inventory Check with PHP</title>
		<link>http://feedproxy.google.com/~r/OtelConsulting/~3/mB2wUOdFC2w/</link>
		<comments>http://blog.otelconsulting.com/2011/05/valor-corporation-api-inventory-check-with-php/#comments</comments>
		<pubDate>Fri, 13 May 2011 14:24:46 +0000</pubDate>
		<dc:creator>benleto</dc:creator>
				<category><![CDATA[ecommerce]]></category>
		<category><![CDATA[magento]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[valor corp api]]></category>
		<category><![CDATA[valor corp api php]]></category>
		<category><![CDATA[valor php api]]></category>

		<guid isPermaLink="false">http://blog.otelconsulting.com/?p=489</guid>
		<description><![CDATA[Working with XML request via PHP can be pretty easy with the CURL functions built into PHP and make complex tasks seamless. We recently had a client that operated a retail site that need to check their distributors inventory levels consitantly through out the day and update their Magento shopping cart software inventory levels. It was a simple solution with some quick PHP implementation.]]></description>
				<content:encoded><![CDATA[<p>Working with XML request via PHP can be pretty easy with the CURL functions built into PHP and make complex tasks seamless. We recently had a client that operated a retail site that need to check their distributors inventory levels consistently through out the day and update their Magento shopping cart software inventory levels. It was a simple solution with some quick PHP implementation.<span id="more-489"></span></p>
<p>In reference to the following article <a href="http://blog.valorcorp.com/2011/04/23/valorcorp-com-api-getting-stock-status/">&#8220;valorcorp.com API – Getting Stock Status&#8221;</a> at the companies blog site they had a ASP solution in place to get the real time stock level with the Valorcorp Inventory API. All we need to do was convert that to PHP and feed it into magento.</p>

<div class="wp_codebox_msgheader"><span class="right"><sup><a href="http://www.ericbess.com/ericblog/2008/03/03/wp-codebox/#examples" target="_blank" title="WP-CodeBox HowTo?"><span style="color: #99cc00">?</span></a></sup></span><span class="left"><a href="javascript:;" onclick="javascript:showCodeTxt('p489code1'); return false;">View Code</a> PHP</span><div class="codebox_clear"></div></div><div class="wp_codebox"><table><tr id="p4891"><td class="code" id="p489code1"><pre class="php" style="font-family:monospace;"><span style="color: #000000; font-weight: bold;">function</span> Valor_GetCurrentStock<span style="color: #009900;">&#40;</span><span style="color: #000088;">$APIkey</span><span style="color: #339933;">,</span> <span style="color: #000088;">$ItemNumber</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
	<span style="color: #000088;">$ch</span> <span style="color: #339933;">=</span> <span style="color: #990000;">curl_init</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
	<span style="color: #990000;">curl_setopt</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$ch</span><span style="color: #339933;">,</span> CURLOPT_URL<span style="color: #339933;">,</span> <span style="color: #0000ff;">'https://www.valorcorp.com/api/stock_status2.0.asp'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
	<span style="color: #990000;">curl_setopt</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$ch</span><span style="color: #339933;">,</span> CURLOPT_RETURNTRANSFER<span style="color: #339933;">,</span> <span style="color: #cc66cc;">1</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
	<span style="color: #990000;">curl_setopt</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$ch</span><span style="color: #339933;">,</span> CURLOPT_TIMEOUT<span style="color: #339933;">,</span> <span style="color: #cc66cc;">4</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
	<span style="color: #990000;">curl_setopt</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$ch</span><span style="color: #339933;">,</span> CURLOPT_SSL_VERIFYPEER <span style="color: #339933;">,</span> <span style="color: #009900; font-weight: bold;">false</span> <span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
	<span style="color: #990000;">curl_setopt</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$ch</span><span style="color: #339933;">,</span> CURLOPT_SSL_VERIFYHOST <span style="color: #339933;">,</span> <span style="color: #009900; font-weight: bold;">false</span> <span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
	<span style="color: #990000;">curl_setopt</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$ch</span><span style="color: #339933;">,</span> CURLOPT_POSTFIELDS<span style="color: #339933;">,</span> <span style="color: #0000ff;">&quot;key=<span style="color: #006699; font-weight: bold;">$APIkey</span>&amp;amp;item=<span style="color: #006699; font-weight: bold;">$ItemNumber</span>&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
	<span style="color: #000088;">$result</span> <span style="color: #339933;">=</span> <span style="color: #990000;">curl_exec</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$ch</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
	<span style="color: #990000;">curl_close</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$ch</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span> 
&nbsp;
	<span style="color: #666666; font-style: italic;">#Match Item Number
</span>	<span style="color: #b1b100;">if</span><span style="color: #009900;">&#40;</span><span style="color: #990000;">preg_match</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;/(.*)&amp;lt;\/item_number&amp;gt;/i&quot;</span><span style="color: #339933;">,</span> <span style="color: #000088;">$result</span><span style="color: #339933;">,</span> <span style="color: #000088;">$Matches</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
		<span style="color: #000088;">$RTNarray</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'itemnumber'</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">=</span> <span style="color: #990000;">trim</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$Matches</span><span style="color: #009900;">&#91;</span><span style="color: #cc66cc;">1</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
	<span style="color: #009900;">&#125;</span>
&nbsp;
	<span style="color: #666666; font-style: italic;">#Match Stock
</span>	<span style="color: #b1b100;">if</span><span style="color: #009900;">&#40;</span><span style="color: #990000;">preg_match</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;/(.*)&amp;lt;\/in_stock&amp;gt;/i&quot;</span><span style="color: #339933;">,</span> <span style="color: #000088;">$result</span><span style="color: #339933;">,</span> <span style="color: #000088;">$Matches</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
		<span style="color: #000088;">$RTNarray</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'stock'</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">=</span> <span style="color: #990000;">trim</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$Matches</span><span style="color: #009900;">&#91;</span><span style="color: #cc66cc;">1</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
	<span style="color: #009900;">&#125;</span>
&nbsp;
	<span style="color: #666666; font-style: italic;">#Match Description
</span>	<span style="color: #b1b100;">if</span><span style="color: #009900;">&#40;</span><span style="color: #990000;">preg_match</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;/(.*)&amp;lt;\/short_description&amp;gt;/i&quot;</span><span style="color: #339933;">,</span> <span style="color: #000088;">$result</span><span style="color: #339933;">,</span> <span style="color: #000088;">$Matches</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
		<span style="color: #000088;">$RTNarray</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'description'</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">=</span> <span style="color: #990000;">trim</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$Matches</span><span style="color: #009900;">&#91;</span><span style="color: #cc66cc;">1</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
	<span style="color: #009900;">&#125;</span>	
&nbsp;
	<span style="color: #b1b100;">if</span><span style="color: #009900;">&#40;</span><span style="color: #339933;">!</span><span style="color: #990000;">is_nan</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$RTNarray</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'stock'</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span>
		<span style="color: #b1b100;">return</span> <span style="color: #000088;">$RTNarray</span><span style="color: #339933;">;</span>
	<span style="color: #b1b100;">else</span>
		<span style="color: #b1b100;">return</span> <span style="color: #009900; font-weight: bold;">false</span><span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span></pre></td></tr></table></div>

<p>&nbsp;</p>

<div class="wp_codebox_msgheader"><span class="right"><sup><a href="http://www.ericbess.com/ericblog/2008/03/03/wp-codebox/#examples" target="_blank" title="WP-CodeBox HowTo?"><span style="color: #99cc00">?</span></a></sup></span><span class="left"><a href="javascript:;" onclick="javascript:showCodeTxt('p489code2'); return false;">View Code</a> PHP</span><div class="codebox_clear"></div></div><div class="wp_codebox"><table><tr id="p4892"><td class="code" id="p489code2"><pre class="php" style="font-family:monospace;"><span style="color: #000088;">$ArrValorStock</span> <span style="color: #339933;">=</span> Valor_GetCurrentStock<span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;YOUR-API-KEY-HERE&quot;</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">&quot;Valor Item Number&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></pre></td></tr></table></div>

<p>The function listed above will return an array of the information based on the Valor Corp Item ID. With magento you can setup up a custom attribute per items to make the relation between your item number and the valor corp item number. Which can then be used to update the stock levels in Magento.</p>
<p><strong>Reference for what is returned from the function</strong>:<br />
Valor Corp Item Number : $ArrValorStock['itemnumber']<br />
Valor Corp Stock Level Number : $ArrValorStock['stock']<br />
Valor Corp Description : $ArrValorStock['description']<strong> </strong></p>
<p><strong>If you need help doing this for your Magento Store or Any other Shopping Cart System please contact <a href="http://www.otelconsulting.com/contact-us.html" target="_blank">Otel Consulting</a></strong></p>
<p>&nbsp;</p>
<img src="http://feeds.feedburner.com/~r/OtelConsulting/~4/mB2wUOdFC2w" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://blog.otelconsulting.com/2011/05/valor-corporation-api-inventory-check-with-php/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://blog.otelconsulting.com/2011/05/valor-corporation-api-inventory-check-with-php/</feedburner:origLink></item>
	</channel>
</rss>
