Friday, December 17, 2010

Finding the Right Software with Microsoft Pinpoint

Our latest post on ERP Software Blog looks at finding software through Microsoft Pinpoint and how it can help connect customers and software vendors. Pinpoint offers over 7,000 software applications from over 30,000 Independent Software Vendors worldwide.

Check out the full post on ERP Software Blog and see how we at Azox have used Pinpoint as a tool to showcase our products to potential organizations looking for solutions. Find out why Pinpoint is easy to use and how users can view data sheets, case studies, and links to demo videos or trial downloads that help them in the software selection process.

Friday, December 10, 2010

Recommend Our Products on LinkedIn

We would be thrilled if you could recommend our products. Visit to recommend Azox e-commerce, credit card processing or online bill pay bundle software. Partner and customer recommendations play a huge role in forming the company we are today. Thank you to anyone who recommends us, we appreciate your support.

Sunday, November 28, 2010

Cyber Monday

Monday is cyber Monday. This is considered by many as the biggest shopping day of the year for online stores. I think this really depends on what you sell so don't believe all the hype! What is always interesting is to see growth patterns. Later this week you will be hearing the percentage of people who shopped online on cyber Monday versus last year. This number can be very encouraging and testify to the fact that online sales just continue to grow and grow.

I hope all of you had a Blessed Thanksgiving.

Wednesday, November 24, 2010

Happy Thanksgiving

Thanksgiving is a time to be grateful for what we have and share that appreciation with the ones that are closest to us. We want to thank you for using and recommending our products and helping us continue to provide solutions that help businesses through technology.

The entire Azox team joins in wishing you, your family and friends a Happy Thanksgiving. We truly appreciate working with you and once again we wish you the best this holiday.



Monday, November 15, 2010

Azox Products Now Featured on LinkedIn

Azox has now posted its products on its LinkedIn company page. Each of our major product offerings are now displayed on that page and visitors can also click on each product to discover more information as well as YouTube videos specific to each product. LinkedIn users can also provide recommendations for products that they use and have these recommendations seen by others across LinkedIn. If you are using any of Azox solutions and are happy we would greatly appreciate your recommendation. If you would like to recommend any of our solutions please visit the Azox LinkedIn product page.

For our customers who have company pages setup on LinkedIn we highly recommend they do the same with their page and add their products and services. By placing products on these pages companies can enhance their visibility online as well as offer additional credibility to their network of connections that may be looking for recommendations before they make any purchases. To learn more about these great new features on LinkedIn visit their blog post.

Importance of Using a PA-DSS Certified Solution

Read our recent post on ERP Software Blog that goes over why companies need to look closley at using payment application software that is secure and PA-DSS certified. Learn how products like Azox Credit Card Extension can help companies with the overall goal of implementing a PCI compliant environment. Read the full post here.

Friday, November 5, 2010

End of Year Promos & November Webinars

Now through December 31, 2010 Azox is offering 15% off both its e-commerce and credit card processing software. If you want to learn more about our e-commerce and credit card processing solutions don’t miss our webinars for November.

On November 23 you can attend a free webinar that will go over our latest e-commerce engine, eSource 2, that allows for faster and easier to design web environments complete with search engine optimization and seamless integration to Microsoft Dynamics GP. Attend here.

On November 30 we will be having a webinar that goes over credit card processing in Microsoft Dynamics GP featuring our Credit Card Extension product. Attend here.

Tuesday, November 2, 2010

Important Please Read

Just a friendly reminder
If you havent backed up your site do so today! It only takes a few minutes to do.
Make sure you do a FULL BACK UP to your hard drive. The tutorial can be found on the support blog.
If your site is beling loaded weekly with new product or major changes make sure you save weekly.

Friday, October 29, 2010

Demo Video for Azox Credit Card Extension and Encore's Recurring Billing

Earlier in June we announced support for our Credit Card Extension product with Encore Business Solutions’ Recurring Contract Billing. These paired solutions provide the user with the ability to process credit cards for SOP batches that are created by Encore’s Recurring Contract Billing. This creates a more automated and efficient billing process. View our demo video featuring Azox Credit Card Extension and Encore's Recurring Contract Billing.

Thursday, October 28, 2010

Starting Monday! Very Important Please Read

Few great changes at

1) We now have a ticket support system. All emails to any of us at needs to go through this support system You can access the ticket system right through our site

2) We now have a support blog that feeds into the back end of your site ( if your hosting with our exclusive host EarthGirl) Be sure to be reading that blog daily. If your reading this your on the right track!

3) I noticed a LOT of you are NOT posting to facebook and twitter. If you want to be found you have to market your site. You should be posting to twitter and facebook EVERY DAY. You should blog daily if you can but at the very least 3 times a week.

Be Sure To Check Out MomPreneur Blog

Be sure to join and follow our newest blog.

This is a great blog for you to post comments to with links to your site for seo purposes!

Friday, October 22, 2010

Back Up Your Site and Other Friendly Reminders

If you haven't backed up your site please do so this weekend. The link for how to do this is on the blog.

Are you posting to facebook and twitter daily?  Be sure to do so! Include direct links back to your site!

If you change the log in to your site and we are working on your site PLEASE be sure to send us new passwords.

Have a great weekend! See ya Monday!

Wednesday, October 20, 2010

READ 3 Important TO DO's!!!!!

1) If you have not received a shipping/return page template for your site and would like one please email us at

2) Also, we are in the process of creating a social media and seo checklist. Watch for the coming your way soon.

3) Also BE SURE to set up your email to read something similar to the below. You want to always be encouraging signups for facebook/twitter/newsletter. I use gmail account quite a bit. I also use my for all of my children's sports, teachers, personal email, etc. The reason I do so is because I am promoting my business to all of these people while sending an email. Recently I sent out an email to all of the parents on my sons soccer team ( Jeff is the coach) one of the parents saw my signature and is now considering doing web design with us! Promote Promote Promote!

Jennifer Varner

Rule Your life-Own Your Own Business

Follow us on twitter  (have url)
Follow us on Facebook ( have url)
Sign up for our newsletter ( have url)

Monday, October 18, 2010

Webinar Tommorow-3 steps to Increase Online Purchases Sign UP!!

Sign Up Below

Protect Your Commerce Business

Here are some important tips to protect your site

1) Change your password frequently.
2) Use letters, numbers and caps in your password
3) Back up your site 1-2 times a month onto your hard drive
4) Whe typing content for your site be sure to copy and paste onto a word document and keep it on your computer

Friday, October 15, 2010

Partner Testimonial from Rose Business Solutions

Feel free to watch this video featuring Rebecca Bunas of Rose Business Solutions giving a testimonial as to why they choose to work with Azox.

Our First ERP Software Blog Post

Check out our first post on ERP Software Blog that talks about why you should look at Microsoft Dynamics GP for E-Commerce vs. Netsuite. We look at three key factors as to why e-commerce and Microsoft Dynamics GP can be the right solution for your company despite many claims coming from NetSuite.

Friday, October 1, 2010

SEO Tips: Anchor, Alt and Image Title Text

Anchor text is the hyperlinked text that users can click on and be redirected to other sites or pages and is rated highly in most search engine algorithms. Below is an example of the html code of an anchor tag.

Anchor Text

Will be displayed as: Windows 7 where Windows 7 is the anchor text for the link

Tips for Using Anchor Text
  1. Use descriptive text, that is short and to the point and describes the content of the linked page
  2. AVOID using text like “click here”, “next page”, or “learn more”
Alt Text is an alternative text for an image designed for users that can’t display images in their browsing environment. Below is an example of this. Make sure your alt text is described properly, and also make sure not to keyword stuff. Many search engine companies like Google use image alt text as the main piece of information when trying to index and find out what a particular image is about. Read more about using alt text properly here.

Alt Text
Image Title Text is displayed by a browser when a cursor hovers over an image. It is primarily used so users are able to get additional information about an image. Even though it isn’t as important as alt text in SEO, it is a good idea to use image title text properly so users can know more about the images. This is especially useful when images link to other sites or pages. Make sure you properly describe the image title and design it with user click through in mind. You can see below that when a cursor hovers over the Microsoft Dynamics logo a text tool tip pop-up appears. The title code specifies what text will appear when a cursor hovers over an image. It should be noted that certain versions of Internet Explorer are known to use the alt text as well to display roll over tool tip text pop-ups.

Image Title Text

To find out more SEO tips request Azox free
SEO Guide.

Friday, September 24, 2010

Top Takeaways from The Partner Event

The Partner Event this past week was a blast for us at Azox who were fortunate enough to participate. We thought we would go over the top three reasons why The Partner Event was a worthwhile time for us.

  1. A Boatload of Workshops and Valuable Keynotes

    With specific tracks for Marketing, Sales and Leadership there was no shortage of sessions that helped each member of our team gain new insights as to how to better market and sell our product as well as lead our organization forward. In addition, the keynotes provided attendees with knowledge of how to engage a company's workforce to ensure workers are satisfied at work. Other areas of focus during the keynote centered on the economy and the difficulties many companies faced in regards to innovating in a down economy and what companies need to do post survival to move ahead. Each of the workshops were worthwhile investments that are sure to give each of our team members the ability to reevaluate where we are as a company and how we can better run our organization.

  2. Network and See People You Haven't' Seen in a While

    Perhaps the best part of The Partner Event is networking with other members of the Microsoft Dynamics Partner community. For many members of our team it was their first Partner Event and interacting with people that they work with really helps connect the dots better and assist in developing a deeper connection with others. Whether it was meeting other ISVs or VARs it's great to be able to talk to one another, exchange best practices and learn what other companies are doing to market themselves.

  3. You Get to Have Fun

    Putting all the other important stuff aside perhaps the most enjoyable part of this year's Partner Event was the Welcome Reception which was held at the Fargo Billiards and Gastropub, which is dubbed as the largest pool hall in the western hemisphere. We found it to be a great way to meet other Microsoft Partners, network and challenge them to a friendly game of pool. In addition, there was a themed beach party as well as a live local band called The Shakers. Even though The Partner Event is place to network and learn, we found the activities were setup so well that you found it impossible not to meet, talk and have fun with other attendees.

So there you have it, the top takeaways of The Partner Event this year and the major reasons why Azox continues to sponsor and attend every year. Look forward to seeing you next year.

Thursday, September 16, 2010

Find Us At the Partner Event


Partner Event
in Fargo, ND from September 19-21. The Partner Event is the premier opportunity for Microsoft Dynamics Partners to build sales, marketing, and leadership skills by networking and learning from each other and industry experts. We look forward to networking with other Microsoft Dynamics Partners and learning from industry experts on what the industry future holds and how to prepare for upcoming changes. We will be posting our top takeaways from the event next week, so stay tuned. For more information about the event visit

Friday, September 10, 2010

SEO Tips: Meta Description Tag

Even though the use of meta tags in determining ranking order by search engines has decreased in importance over the years, properly using the meta description tags is still a very good practice for a number of reasons.

The meta description, as highlighted above in orange, is located under the title tag on the search results page, and should appear between the tag in the HTML. A Meta Description Tag is important because it will describe your website in more detail than the title tag. It will appear on the search engine results pages (SERPs) of queried keywords so it is important to display them properly. Creating a well written description tag will help provide visitors information about your site and encourage them to click and explore for more details.

Tips for Meta Description Tags
  • Keep Character Length in Mind - Just like title tags, search engines limit the number of characters that are displayed on the SERP. In the image above you will notice the description concludes with an ellipsis (...) suggesting there is more to the description that can't be displayed. It's generally recommended keeping character length between 140 - 160 characters to avoid having descriptive content that remains hidden.
  • Use Keywords where Applicable - In addition, to correctly describing your page you want to make sure you are including keywords in appropriate places in the meta description tag. Taking the above snapshot from Dell as an example, the keywords laptops, desktops, monitors, and Dell are all used in the title tag and description tag.
  • Provide a Summary of the Page's Content - Make sure that the meta description tags on each page properly describe the content that is located on that page. Content that is unrelated to what was described in the description will result in users exiting the page.
  • Keep it Unique on Each Page - Similar to title tags, you want to make sure each page has a unique description so users are able to distinguish each page from one another. Avoid using one similar blanket description for each page.
To find out more SEO tips request Azox free SEO Guide.

Friday, August 27, 2010

Filter Capability with New Catalog Engine

Azox new catalog engine allows users to narrow down and filter their search results with greater detail. Users can find what they are looking for quicker and easier. Below are some of the new features.

- Selection box informs user which attributes have been
selected for which categories

- Search through multiple categories simultaneously

- Narrow results down faster and easier with greater detail

- Minimize and maximize categories by clicking them

- Shadowed boxes indicate which options are not available

Friday, August 20, 2010

Web Part Technology

Web parts, or also known as web widgets, are objects built on the ASP.NET framework that allows HTML elements to be added to particular zones of a page. This allows users to easily add, move and manipulate content on a page fast and easily. Many people are probably already familiar with Web Part technology if they have used Microsoft SharePoint. You can see in the screenshot below how SharePoint takes advantage of Web Part technology.

With eSource II, Azox’s latest E-Commerce engine, Web Part technology was implemented as a way for companies to create content and change the appearance on a webpage while minimizing the need to go into the source code. This also allows fewer IT resources to be used and can save time and expense. With web part technology, now less technically oriented staff can make changes and edits to a webpage without the need of a dedicated and experienced web designer on hand. Another advantage of web parts is that its modular and allows the web page to be broken up into sections, providing information on a webpage to be managed much easier than before.

With eSource II, there are many web parts that can be added to a page including social media functionality like blogs, RSS feeds, AddThis Integration and Chat. AddThis allows products on a consumer site to be shared across social media networks and bookmark sharing sites, providing a great way for customers to promote the products on a web store. Referencing the screenshot below you can see how items on a page can be dragged and dropped, much like using SharePoint. This facilitates the process of changing the layout of web elements and HTML on a page.

(Click Image to Enlarge)

Other benefits of web part technology include:
  • Ease of upgrades and code updates. Changes made on a website will flow over from one update to the next. Custom web parts can also easily be built allowing for even greater customization and functionality.
  • Greater security. Web parts can also be assigned specific role-based access privileges allowing for greater security control.
  • Sharing of web part data. You also can have the ability for one web part to communicate with another. This allows data to be shared across different areas.
Utilizing web part technology in an E-Commerce environment can significantly help companies maintain a website easier and allow them to add the content that they want where they want. Web part technology is just one feature that Azox offers which aims at helping take businesses online. For more information, contact Azox at 734-928-6010 or

Friday, August 6, 2010

SEO Tips: The Title Tag

There is strong consensus that title tags play a huge role in having a properly optimized site. A title tag defines the title of a document and tells the user and search engines the topic of a particular page. Title tags also appear on the top of the browser and in opened tabs. Title tag should appear just after the tag of the html document.

Tips for Title Tags
  • Reduce Character Length - It’s recommended you keep title tags to under 60 characters because many search engines will not display them properly. You can see below the Title Tag for Dell is fully displayed with nothing cut off. If you look at there is more description left that cannot be fully displayed as noted by the ellipsis.

  • Use Title Tags within the Title Tag Appropriately - Placing keywords in the Title Tag that you use throughout your website is very important as well. But be careful not to over-stuff keywords in the title tag. Keyword stuffing is overloading keywords in a webpage or in this instance a single title tag with disregard for user readability and page relevance.
  • Make Title Tags Unique and Related to Page Content - Make sure each title tag is different for each page and that it is correctly describing the content that is on that page. Title tags that are not in context with the particular page will not be search engine friendly.
  • Use Proper Formatting - Use title casing and make sure important words are capitalized. Also make use of characters and dividers like hyphens “-“, arrows “>” and pipe bars “|”.
Stay tuned for more tips regarding SEO.

Monday, July 19, 2010

Streamline the Billing Process with Azox and Blue Moon

Azox and Blue Moon will be hosting a joint webinar that focuses on how Azox Credit Card Extension and Blue Moon's SOP Auto Invoice can work together to streamline the Sales Order Process in Microsoft Dynamics GP. With SOP Auto Invoice you can automatically transfer sales orders, print invoices and post within the Microsoft Dynamics GP SOP entry system. When combined with Azox Credit Card Extension you will have the ability to post-authorize the SOP invoice batch automatically before it gets posted in Dynamics GP. Join us for this free webinar Wednesday, July 21st and learn more about the features of Azox Credit Card Extension and Blue Moon's SOP Auto Invoice. Click here to register.

Friday, July 16, 2010

WPC Wrap Up

The Worldwide Partner Conference has come and gone, and one thought comes to mind following the WPC and that is Microsoft is serious about the Cloud. Over 9,500 partners gathered in Washington D.C. for the four day conference to network and learn more about Microsoft’s direction moving forward. Microsoft CEO Steven Ballmer & COO Kevin Turner pushed cloud-computing services very hard delivering keynotes focusing on Microsoft’s shift to the Windows Azure cloud computing platform. Corporate VP, Jon Roskill addressed channel partners stating, “Together we’re going to succeed in this transition to the cloud.”

It wasn’t all business as usual though as Microsoft also promoted their consumer products in a vision keynote on Tuesday focusing on everything from Windows Phone 7 to Kinetic for Xbox 360. Azox looks forward to focusing on the opportunities presented at the WPC and continuing to develop solutions that solve customer needs. Azox own Sales Director was there taking in the event and even published a short video on the Microsoft Partner Network YouTube channel.

Another big announcement was the official announcement of the Microsoft Dynamics Marketplace that will go live in September, 2010. Azox looks forward to participating in the Microsoft Dynamics Market Place, which create a fully searchable and filterable online catalog that will allow users to discover solutions from Microsoft partners, as well as connect, review and download applications. As usual it was a very busy and exhausting WPC, but we can only hope to take what we have learned and continue delivering solid solutions for our customers.

Thursday, July 8, 2010

Azox Helps Sell Vuvuzelas

Watch this comical video short of how Azox is able to provide a man with an E-Commerce solution to help sell thousands of vuvuzelas online. Watch the video below.

Friday, July 2, 2010

Azox is a Believer Sponsor at the Partner Event

Azox is pleased to be a Believer Sponsor at the 2010 Partner Event. The event is held in Fargo, North Dakota and runs from September 19-21, 2010. The Partner Event allows you to network with colleagues from the Microsoft Dynamics Partner community; enhance your sales, marketing and/or leadership skills through conference workshops. In addition to workshops there will be several guest speakers on hand. Cindy Alexander, the Microsoft Partner Technology Advisor for Microsoft Dynamics GP and AX in the Southeast will be speaking as well as many other experienced leaders and experts in the Microsoft Dynamics community. For more information visit

Friday, June 25, 2010

Azox Announces Integration with Blue Moon's SOP Auto Invoice

Azox is pleased to announce complete integration with Blue Moon's SOP (Sales Order Processing) Auto Invoice. SOP Auto Invoice provides the ability to post-authorize the SOP invoice batch automatically before it gets posted in Microsoft Dynamics GP. This saves time by removing unnecessary manual processes from your customer service team. SOP Auto Invoice allows for automatic transfer of sales orders, invoice printing, and posting within the Microsoft Dynamics GP SOP entry system. Azox Credit Card Extension integrates with this product and allows for automatic charging in between the invoice and posting stages of Sales Order Processing.

Azox is committed to finding new ways to improve upon its products and believes integrating with Blue Moon's SOP Auto Invoice will provide new opportunities and efficiencies for users wanting to automate the sales order transfer processes in Microsoft Dynamics GP. For more information on Blue Moon's SOP Auto Invoice, follow this link. To find more information on Azox Credit Card Extension, visit this link.

Friday, June 18, 2010

Catch Us and Former President Bill Clinton at WPC

Former President of the United States, Bill Clinton, has been announced as the official Worldwide Partner Conference (WPC) 2010 guest speaker. He is scheduled to have a keynote speech titled “Embracing Our Common Humanity” on Wednesday, July 14 in Washington D.C. The WPC is an annual gathering of Microsoft partners that allows for networking opportunities, sharing of best practices, and the latest product innovations and releases. The five day event runs from July 11 – 15 and it will be held at the Walter E. Washington Convention Center. Big themes of this year’s event include Microsoft’s cloud services strategy and how partners can take advantage of the opportunities offered by the cloud to improve their business. Other keynote speakers include Microsoft Executives Steve Balmer, Kevin Turner, and Allison Watson. Even though we are not an exhibitor at the event, our Sales and Marketing Director, Giuseppe Ianni, will be present. If you are attending the WPC and would like to schedule a meeting to learn more about Azox feel free to contact Giuseppe.

Friday, June 11, 2010

Azox Announces Support for Encore Business Solutions’ Recurring Contract Billing

We are pleased to announce Azox Credit Card Extension now works seamlessly with Encore Business Solutions’ Recurring Contract Billing. These combined solutions provide the user with the ability to process credit cards for SOP batches that are created by Encore’s Recurring Contract Billing. With this solution, saving different credit cards with different contracts and facilitating the process of handling recurring orders is more efficient and manageable. The combination of these solutions helps eliminate many of the manual processes that occur throughout the billing process. Azox President, Bernie Huang says, “Encore’s Recurring Billing works seamlessly and Azox Credit Card Extension (CCE) is the perfect solution to process SOP batches created by Encore’s Recurring Billing. In addition, Azox CCE also provides faster batch processing, credit card approval and decline reports with the ability to print all transaction receipts and invoices from batch processing with one click.” COO of Encore Business Solutions, Ken Chartand, says “"We are enthusiastic to partner our two solutions together as one. Billing and collections can be tedious and time consuming tasks so we are happy to be able to offer our clients an integrated solution to help make their processes more efficient."

Thursday, June 10, 2010

Prepare Yourself for the July 1st PCI Compliance Deadline

With the compliance mandates being enforced beginning in July we thought it would be a good idea to hold a webinar and go over what this all means. With this webinar we aim at educating people about the requirements needed to adhere to the PCI-DSS mandates, and how Azox PA-DSS validated Credit Card Processing solution for Microsoft Dynamics GP can help your organization gain compliance. The webinar is to be held June 16th. Attendees will also receive a free assessment guide that goes over the 12 requirements of becoming compliant, and how to assess whether or not your network is properly maintained and secure. To attend the webinar click here.

Tuesday, June 8, 2010

PCI Data Security Standards Rock

With the July 1st PCI Compliance deadline fast approaching we thought this video from the PCI Security Standards Council did a good job of going over the 12 requirements that must be met in order to gain compliance in an informative and entertaining way. Check it out. And then feel free to contact Azox and find out how our PA-DSS certified Credit Card Extension product can help achieve compliance mandates.

Friday, June 4, 2010

Azox Announces Compatibility with Credit Card Processing Products and Microsoft Dynamics GP 2010

Azox has just achieved compatibility with Microsoft Dynamics GP 2010 for its Credit Card Extension (CCE) product. Azox is excited to expand its' solutions in support of the Microsoft Dynamics GP 2010 product line and believes the new features of Microsoft Dynamics GP 2010 will help businesses with a list of new features that will include workflow integration between other Microsoft applications, such as Microsoft Office Suite and Microsoft Dynamics CRM. Fully integrated with Microsoft Dynamics GP 2010 Azox CCE products provide credit card processing, transaction management and tracking in the Microsoft Dynamics GP Sales Order Processing and Receivable Management modules. In addition, CCE is also a PA-DSS (Payment Application Data Security Standard) certified application that conforms to industry best practices when handling, managing and storing payment related information.

Friday, May 28, 2010

June Webinars

Our June webinar schedule is up. We will be having two complimentary webinars this month that focus on PCI compliance and how Azox Credit Card Extension can help achieve compliance mandates, as well as a webinar that discusses getting the most out of an integrated e-commerce solution by utilizing content management, SEO and Social Media. As always we encourage you to attend. You can follow this link to read a more detailed description of each webinar.

Wednesday, May 26, 2010

The Trouble With Satchmo

Conversations on the web about Satchmo, the most popular open source Django e-commerce platform, tend to be between two types of developers. The first kind encounters some problems with installing Satchmo, or hits a snag in deploying one of the features. Naturally, they pose the question: does it have to be this hard? Are there any alternatives?

At this point, the second type of developer pipes up and says something like, "If you think it's too hard, then you're not trying hard enough. Learn more and it'll be easier for you. Satchmo is just fine, so quit your whining."

I can see where both sides of these kinds of debates are coming from. I've gone through the work of getting Satchmo running on Linux machines, deploying it to servers, and even gotten it running on Windows boxes. And it is really a pain in the tush. For all of its features, there are a ton of dependencies that have to be installed and properly configured on your system before you can get it up and running. So I can empathize with the first kind of developer.

When you get right down to it, though, the second type of developer mentioned above is also correct. As arrogant as they can be, if you spend some time learning how to set up Django development environments, how to configure your PYTHONPATH, and so on, then it becomes much easier to install and configure Satchmo. You still run into problems, but you know how to handle them, and you know how to reduce the amount of repetitious work that needs to be done.

Satchmo is an e-commerce solution that was created by programmers almost exclusively for use by other programmers. If you're an experienced Django programmer, and your spouse wants to set up an online store to sell toys for dogs, then Satchmo is the logical choice. All of Satchmo's installation headaches, catalog management difficulties through the admin interface, and documentation shortcomings can be dealt with if you know Django or you've got a Django programmer helping you out. (Maybe.)

Don't get me wrong; I like Satchmo just fine. It's got a very large community of developers behind it, and it's certainly better than anything that one individual could create by themselves. But it's definitely not a great way to start learning Django.

The kind of developer who looks at Satchmo and thinks, "Man, can't we make this easier?" recognizes that while programmers can learn programming solutions in order to make their jobs easier, not everyone who wants to do e-commerce online is a programmer capable of learning and applying those solutions.

That's not to say that we can get to the point where programmers are unnecessary. Consider the PHP e-commerce community: for many years, PHP developers wrestled with the decision of creating their own codebase, or going with one of the many open source solutions that were available. Many of them were fraught with the same kinds of installation and maintenance headaches that plague Satchmo, most of which could be alleviated if you became more experienced with PHP.

But that wasn't quite good enough for the people who developed Magento, which, while still not perfect, is an extremely popular e-commerce framework among both developers and people in business. One of the main reasons? It's easy to install and setup. Which brings up a critical observation: I don't think ease of use is appealing only to non-programmers.

Here's the important thing to note: Magento might be open source, but like MySQL, they manage to make money from the software using a freemium business model. "Open source" does not equate to a lack of business sense or profit opportunities.

I'm not completely satisfied with Satchmo. Personally, if you like it and want to join the community that is helping develop it, don't let me stop you. Those developers are doing great work, and they deserve all the help they can get.

In the Django community, Satchmo is almost certainly the elephant in the room, but I don't think that should stop anyone who doesn't like it from creating their own e-commerce platform. If Satchmo is too much of a pain for you, why not try creating something of your own? And that was part of my motivation for writing my book about Django e-commerce: for those developers for whom Satchmo just isn't cutting it. I wanted to empower the readers of my book (who are probably way smarter than me, and better programmers) to scratch their own itch if they so desired, to run off and start their own projects. If nothing else, I hope it gives programmers the ability to get a handle on doing e-commerce with Django so that they have an easier time with Satchmo.

But I think the opportunities are many, and the potential for innovation is huge, in the Django e-commerce realm. I'm really can't wait to see in a few months' time what awesome projects Django programmers are creating in someone's basement right now.

Monday, May 24, 2010

Misspellings In Search

Ever heard of a word ladder? It's a game invented by the Lewis Carroll, the author of Alice in Wonderland. Here's how it works: you're given two words, and you start with one of them. Change one letter in the word at a time, or add or remove a letter, to arrive at the second word. At each step along the way, the changes you make have to result in valid words.

Here's an example: how do you turn "LEAD" into "GOLD"? Try it yourself right now if you're interested in solving the puzzle.

Here's the solution I devised back when I tackled this problem in middle school, changing one letter at a time:


The key here is that I changed the beginning "L" to an "H", since "LELD" and "LOLD" are not real words. It's an extra step that's needed to conform to the rules of the game. But as you can see, it takes four "steps" on the word ladder in order to get from the starting word to the ending one.

Counting the number of steps from the first word to the second can be a useful number to calculate when you want to offer spelling corrections to users who are doing internal searches on your site. You know how Google offers you polite suggestions when you misspell a word? (e.g. "Did you mean: 'electric guitar'")

The number of character insertions, deletions, and substitutions required to convert one string to another is known as the Levenshtein distance. Unlike word ladders, the Levenshtein distance doesn't care if each step along the way results in an actual word. So, the steps between "stretch" and "straight" would be as follows:


The Levenshtein distance between the two string is 4. The closer two words are together, the lower the distance score between the two of them will be.

What does this mean for misspelled search terms? If someone enters some search text on your site, and there are zero matching results returned, you might consider sweeping through your database and looking for strings or phrases with a very low Levenshtein distance, in an effort to catch misspelled words.

If someone enters "accoustic guitar", they might get no matching results. But, if your product data contains the phrase "acoustic guitar", you might be able to catch that and display a hyperlink offering the alternative "Did you mean...?" text that will repeat the search with the new word if clicked.

So how do you calculate the Levenshtein distance in Python? There are a few ready-to-use Python functions listed on this Levenshtein Distance wiki page. I've been using the first one listed in a couple of my projects and it seems to work very well.

Naturally, this is not a substitution for a complete full-text search package like Django Sphinx or your actual search algorithm; it's just something you might consider falling back on. Also, you want to be very careful about how you implement this on a live site where you're searching through thousands of records. Computing the Levenshtein distance between some search text and the words and phrases in a TextField (like, for example, in a product description field), would be a very slow, inefficient way to search for possible spelling corrections. If you do implement something, make sure you test its performance before releasing it into the wild.

However, if you have a small site in development, and want to try your hand at helping guide the user if they've possibly misspelled a search term, I found the Levenshtein distance is a great quick-and-dirty way to get started.

Friday, May 21, 2010

Microsoft CSAT Index

Microsoft Partner Network’s new requirement for Partners to participate in an annually conducted Customer Satisfaction Survey will allow companies that participate the ability to better realize their strengths, and perhaps more importantly areas of improvement. To complete the requirements for the CSAT Index Partners must have 10 customer responses annually. Designing, sending out and analyzing results of the surveys is all very manageable within the CSAT portal. General Manager of the Microsoft Partner Network, Julie Bennani, says that companies can leverage this opportunity and disinvest in their own customer survey efforts and save valuable time and money. Here at Azox we have been participating in Microsoft’s CSAT survey in part because it’s a free tool that lets us gain insight to our strengths and weaknesses, compare ourselves to other partners and also keep our Gold Certified Partner status. We look forward to analyzing our results and positioning ourselves better down the line in part because of this resource.

Tuesday, May 11, 2010

Azox Featured On Microsoft Pinpoint

We don't know how long we will be featured there on the front page, but it is nice to be recognized. In case you are unfamiliar with Microsoft Pinpoint it is basically a place that helps business customers find technology experts, software applications, and professional services that solve specific business issues and support long-term business goals. There you will find the largest list of Microsoft Business platform solutions under one roof. There are around 7,000 software application listings, and we are glad to have a presence in Pinpoint. Another great thing about Pinpoint is the ability to see reviews from customers who have gone through the entire process of integrating a solution into their business. You can view what they liked, what they didn't like and various ratings based on several categories. Azox is pleased to have received many positive reviews from its customers as well as feedback concerning ways in which we can improve our product and services. You can find a link to our Pinpoint page here.

Friday, May 7, 2010

Azox Convergence Wrapup

Now that Convergence has come and gone and we are all fully recovered we thought it would be a good idea to share some of our experiences from Convergence 2010 in Atlanta. For many of us on the team it was our first time ever attending Convergence and we learned a lot. It was great connecting with current customers, seeing partners and hopefully generating new business opportunities down the line. Attending the keynotes were very interesting and seeing some of the functionality of Microsoft Dynamics GP 2010 was exciting. Some of the integration features demoed between GP 2010, Microsoft Dynamics CRM, and Microsoft Office 2010 were very impressive and will definitely make business processes more efficient. Overall we believe it was a great experience for the Azox team and we are proud to be sponsors of the event since 2002. We also hope all who attended Rock-N-Rave had a great time. It was great partying with members of the Microsoft Dynamics Community. You can view a short video here of Rock-N-Rave 2010. We also uploaded a video of the team at the booth which can be seen here.

Monday, April 19, 2010

Azox Presents Technology Jeopardy

In the spirit of Convergence Azox has decided to host a game show that talks about Microsoft Promotions, PCI Compliance, Convergence Parties and E-Commerce. Special guest Kirill Tatarinov makes an appearance. You are sure to get a few laughs out of this. Check the video out by clicking the image below.

Friday, April 9, 2010

Case Study With Discrete Wireless

Discrete Wireless is a leading provider of GPS Fleet Management products and services. They develop and distribute hardware and software solutions that utilize existing wireless network infrastructures to provide web-based vertical applications to commercial customers and consumers. Formerly relying on older technology that was plagued with glitches, Discrete Wireless was looking to solve a problem when it came to processing and tracking their customers’ credit card payments. They chose Azox Online Bill Pay Bundle, which combines Credit Card Extension (plus e-interface), and the eSource Online Bill Pay Module. After implementing this solution Discrete Wireless customers were able to view and pay their invoices online while having payments simultaneously processed in Dynamics GP. This more automated and streamlined process has prevented costly banking errors and optimized the accounts receivable process. Read the full case study here.

Friday, April 2, 2010

5 Reasons to Stop by Azox Booth at Convergence

We are sure a lot of you are preparing for Convergence this April, 24-27. Azox has been sponsoring since 2002 and is proud to be a bronze sponsor alongside Trinity. We would like to explain the top 5 reasons you should stop by our booth if you plan to attend.

  1. See a demo of our latest product eSource II in action, a web-based E-Commerce platform with unlimited possibilities. Gain more control over the design and branding of your website with features like skinning and drag-and-drop webparts.
  2. Celebrate with us and enjoy live entertainment at Rock-N-Rave hosted at the Opera Atlanta Club. There will be free drinks, live DJs, and dancing. Stop by our booth to find out more about the premier Convergence party.
  3. Learn how Azox can help you become PCI Compliant as the July deadline approaches. These compliance standards will apply to all merchants, regardless of size or number of transactions, that accepts, transmits or stores any cardholder data.
  4. Find out what special promos and incentives we have to offer to our Partners and Customers
  5. Chat with the Azox team and view data sheets and case studies of how our solutions have helped companies in all sectors improve their business process.

Wednesday, March 24, 2010

Case Study With Red Hawk

Red Hawk is a wholesale distributor of parts and accessories for golf carts. With so many parts and accessories to sell they were looking for a way to feature their expansive catalog to customers online. At the same time they needed more efficient and secure credit card processing. Azox eSource B2B eCommerce engine, eCatalog, and Credit Card Processing Solutions were able to help Red Hawk’s sales force focus their attention on growing accounts and providing a higher level of service. Feel free to check out the full recently posted case study with our customer Red Hawk here.

Wednesday, March 17, 2010

Versatile Catalog Engine

Last week our sales and marketing teams were shown an overview of our new catalog engine for eSource II. This new engine is going to provide some exciting new functionality. It allows you to easily manage what items fall into different browsing paths. You can easily put items in more than one path. The structure of this data is designed for optimal performance. Item attributes are new to the catalog engine so that during your browsing, you can narrow your results set based on the attributes. We hope to have this new feature in beta sometime in the late second quarter of this year. As always we look forward to keeping you updated with the latest news here at Azox.

Friday, March 5, 2010

March Webinars

Our March webinar schedule is up. We will be having three this month that focus on PCI compliance, using a complete an integrated e-commerce solution, and a webinar featuring our online bill pay solution. As always we encourage you to attend and all webinars are free. You can follow this link to read a more detailed description of each webinar.

Thursday, February 25, 2010

FAQ Posted

We have just posted an FAQ on our website. This document is designed to answer many of the questions that prospective clients have had regarding our solutions. Hopefully this will help provide a better understanding of our solutions. Please feel free to view the PDF document here.

Tuesday, February 16, 2010

Q1: What is e-commerce? Explain.

The use of internet and the Web to transact business. More formally, digitally enabled commercial transactions between and among organizations and individuals.

Q2:What are eight key elements of a business model? Explain.

1- Value Proposition: How a company's product or service fulfills the needs of customers. Typical E-commerce value propositions include personalization, customization, convenience, and reduction of product search and price delivery cost.
2- Revenue Model: How the company plans to make money from its operations. Major E-commerce revenue models include the advertising model, subscription model, transaction fee model, sales model, and affiliate model.

3- Market Opportunity: The revenue potential within a company’s intended market-space.
4- Competitive Environment: The direct and indirect competitors doing business in the same market-space, including how many there are and how profitable they are.
5- Competitive Advantage: The factors that differentiate the business from its competition, enabling it to provide a superior product at a lower cost.
6- Market Strategy: The plan a company develops that outlines how it will enter a market and attract customers.
7- Organizational Development: The process of defining all the functions within a business and the skills necessary to perform each job, as well as the process of recruiting and hiring strong employees.
8- Management Team: The group of individuals retained to guide the company’s growth and expansion.

Q3: 3- Describe the differentiation of e-commerce and e-business?

- E-commerce primarily involves transactions that cross firm boundaries.
- E-business primarily involves the application of digital technologies to business processes within the firm.

Q4: 4-What are some of the unique features of e-commerce technology? Explain.

1- Ubiquity: Available just about everywhere, at all times, making it possible to shop from your desktop, at home, at work, or even from your car.
2- Global reach: Permit commercial transactions to cross cultural and national boundaries far more conveniently and cost-effectively that is true in traditional commerce.
3- Universal standards: Shard by all nations around the world. In contrast, most traditional commerce technologies differ from one nation to the next.
4- Richness: Refers to the complexity and content of a message. It enables an online merchant to deliver marketing message with text, video, and audio to an audience of millions, in a way not possible with traditional commerce technologies such as radio, television, or magazines.
5- Interactivity: Allows for two-way communication between merchant and consumer and enabling the merchant to engage a consumer in ways similar to a face-to-face experience, but on a much more massive, global scale.
6- Information density: Is the total amount and quality of information available to all market participants. The internet reduces information collection, storage, processing, and communication cost while increasing the currency, accuracy and timeliness of information.
7- Personalization and Customization: Merchant can target their marketing messages to specific individuals by adjusting the message to a person’s name, interest, and past purchase. The result is a level of personalization and customization unthinkable with existing commerce technologies.
8- Social technology: Provides a many-to-many model of mass communications. Millions of users are able to generate content consumed by millions of other users. The result is the formation of social networks on a wide scale and the aggregation of large audiences on social network platforms.

Q5: 5- What are the major types of e-commerce? Explain and give the example.

- Business-to-Consumer (B2C) E-commerce: Online business selling to individual consumers.
Ex. eBay is a general merchandiser that sells consumer products to retail consumers.
- Business-to-Business (B2B) E-commerce: Online business selling to other business.
Ex. Food-trader is an independent third-party commodity exchange, auctions provider, and market information source that serves the food and agricultural industry.
- Consumer-to-Consumer (C2C) E-commerce: Consumer selling to other consumers.
Ex. On a large number of Web auction sites such as eBay, and listing sites such as Craigslist, consumer can auction or sell goods directly to other consumers.
- Peer-to-Peer (P2P) E-commerce: Use of peer-to-peer technology, which enables internet users to share files and computer resources directly without having to go through a central Web server, in E-commerce.
Ex. Bit-Torrent is a software application that permits consumers to share video and other high bandwidth content with one other directly, without the intervention of a market maker as in C2C E-commerce.
- Mobile commerce (M-commerce): Use of wireless digital devices to enable transactions on the Web.
Ex. Wireless mobile devices such as PDAs (Personal Digital Assistants) and cell phones can be used to conduct commercial transactions.

Q7: Describe the advantage and disadvantage of online channel?

- Lower supply chain costs by aggregating demand at a single site and increasing purchasing power.
- Lower cost of distribution using Web sites rather than physical stores.
- Ability to reach and serve a much larger geographically distributed group of customers.
- Ability to react quickly to customer tastes and demand.
- Ability to change prices nearly instantly.
- Ability to rapidly change visual presentation of goods.
- Avoidance of direct marketing costs of catalogs and physical mail.
- Increased opportunities for personalization, customization.
- Ability to greatly improve information and knowledge delivered to customer.
- Ability to lower consumer’s overall market transaction costs.
- Consumer concerns about the security of transactions.
- Consumer concerns about the privacy of personal information given to Web sites.
- Delays in delivery of goods when compared to store shopping.
- Consumer concerns about the security of transactions.
- Consumer concerns about the privacy of personal information given to Web sites.
- Delays in delivery of goods when compared to store shopping.

Q8: What are e-commerce retailing visions?

  1. Greatly reduced search costs on the Internet would encourage consumers to abandon traditional marketplaces in order to find the lowest prices for goods. First movers who provided low-cost goods and high-quality service would succeed.
  2. Market entry costs would be much lower than those for physical storefront merchants, and online merchants would more efficient at marketing and order fulfillment than their offline competitors because they had command of the technology.

Q9: What are marketing communications in e-commerce?

- Marketing communications have a dual purpose: BRANDING and SALES. - One purpose of marketing communications is to develop and strengthen a firm’s brands by informing consumers about the differentiating features of the firm’s products and services. - Another purpose of marketing communications are used to promote sales directly by encouraging the consumer to buy products. There are a number of different forms of marketing communications: - Banner and rich media/video ads - Interstitial ads - Superstition ads - Paid search engine inclusion and placement - Sponsorships - Affiliate relationships - Direct e-mail marketing - Online catalogs - Offline marketing

G10: What are the key dimensions of e-commerce security?

There are six key dimensions to e-commerce security:
- Integrity
- Non-repudiation
- Authenticity
- Confidentiality
- Privacy
- Availability
Integrity: Ensures that information displayed on a Web site or sent or received via the Internet has not been altered in any way by an unauthorized party.
Non-repudiation: Ensure that e-commerce participants do not deny (repudiate) their online actions.
Authenticity: Verifies an individual’s or business’s identity.
Confidentiality: Determines whether information shared online, such as through e-mail communication or an order process, can be viewed by anyone other than the intended recipient.
Privacy: Deals with the use of information shared during an online transaction consumers want to limit the extent to which their personal information can be divulged to other organizations, while, merchants want to protect such information from falling into the wrong hand.
Availability: Determines whether a Web site is accessible and operational at any given moment.

Monday, February 15, 2010

Azox Launches Industry Leading E-Commerce Solution, eSource II

Here are some words from Azox President, Bernie Huang and what he thinks about our latest web-based ecommerce solution, eSource II.

"We are very excited about the announcement of eSource II to the market. Whether you are a B-to-B or B-to-C business, eSource II browser-based environment makes it easy for companies to develop and maintain their E-Commerce sites very cost-effectively. eSource II uses skinnable technology which allows users to quickly build and deploy a feature-rich, E-Commerce storefront. In addition, the product features drag and drop web parts for easy design and layout, as well as built-in SEO analytics," said Bernie Huang, president of Azox.

"eSource II is the next generation of E-Commerce and we are extremely excited about the value, flexibility and functionality this product brings to our customers and to the market," Huang added.

Check out the full press release for more information. You can also visit our website.

Monday, February 8, 2010

Azox Rocks at Rock-N-Rave

While at Convergence, come celebrate with the Microsoft Dynamics Community as we continue the Rock-N-Rave tradition on April 26th.

This year we are hosting the event from the Opera Atlanta in the Midtown Atlanta district. Live entertainment will include DJ's, go-go dancers, and dancing. Don't miss the premier Convergence party. RSVP opens March 1st. Check out our the Rock-N-Rave site and follow the latest on linkedin and twitter

Join Us at Convergence

Azox is proud to be a Bronze Sponsor at Convergence 2010 in Atlanta, Georgia. The event will run from April, 24 - 27, and will be held at the Georgia World Congress Center. Contact us today to schedule a meeting with our sales team at the event. We look forward to seeing you.

Tuesday, February 2, 2010

Why Azox is Blogging

We have finally launched a new blog here at Azox. It’s important to tell you why we believe a blog is important and what we intend to blog about. Perhaps the most important reason is to better inform our partners and end-users of relevant information. We want the community to know what is happening here and how we can support them. By continually providing relevant information visitors will have a better understanding of our company, industry and have a reason to come back. From time-to-time we look forward to reporting what the team at Azox is working on, what our future endeavors are, and how it will impact the Microsoft Dynamics community. We look forward to incorporating blogging as a permanent part of the company going forward in an effort to serve our partners and end-users better.

Monday, February 1, 2010

New Look, New Website

We have recently launched a new website with a brand new look and feel. The new website features a more intuitive navigation menu. The top menu navigation is more user friendly and you will notice a tree root below the navigation menu bar that lets users navigate to a specific page without going all the way to the top menu.

We have also made it a point to emphasize our social media outlets. You will notice links to Azox Facebook, Twitter, Linkedin, RSS, and YouTube pages on the right side of the menu bar. The RSS feed has been completely redone. Now users can view the latest news at Azox in a simple, easy to read format, as well as subscribe to our RSS feeds. We have also added a white paper section under "Resource Center", and have included an article on Credit Card Processing for decision makers who are evaluating credit card payment solutions for Microsoft Dynamics GP.

We look forward to making more updates to the website, and to continually deliver new content that will provide visitors with rich and informative information. In the meantime the new website can be reached here.

Thursday, January 28, 2010

Django and Ajax Form Submissions

I'm writing this post, in part, to correct a mistake. In Chapter 10 of the book, I cover how to add Ajax functionality to our Django e-commerce site by using the jQuery library. In the interest of keeping the chapter short and easy to understand, I kept the coverage in that chapter very rudimentary.

In hindsight, it was, I believe, a little too rudimentary, and I don't think the code is nearly as good as it could be. It's not very DRY (since we repeat ourselves), it's not degradable (if the user has JavaScript turned off, it doesn't work), and for larger forms with lots dozens of fields, it's likely to become a maintenance headache and possibly hurt performance.

This isn't errata, but it's worth taking another look at. Let's revisit how to do a simple Ajax form submission in a Django project with jQuery, using the submission of product reviews as an example.

(I'm assuming, if you're reading this, that you have the book handy and can follow along with what I'm doing. If you don't, I'll try to explain the concepts well enough so that you don't need the book. Just keep in mind there's a ProductReview model and associated form class being referenced here that I haven't included.)

Let's start with the URL entry that links to the view that accepts product review data, on page 219:

urlpatterns = patterns('ecomstore.catalog.views',
  ( r'^review/product/add/$', 'add_review' ),

One of the main problems is that this URL is defined here, and before, in our JavaScript code, we defined the same URL again, in perfect violation of the DRY principle. We're going to fix this. The first step is to give this URL entry a name parameter:

urlpatterns = patterns('ecomstore.catalog.views',
  ( r'^review/product/add/$', 'add_review', {}, 'product_add_review' ),

That means that, in our templates, we can use the URL tag and refer to 'product_add_review' to reference this URL. If it's in the template, we can make sure it's in the DOM someplace, and if it's in the DOM, then we can make our JavaScript code aware of it. That's exactly what we're going to do next.

In the book, on page 214, the fields are just text inputs on the page, and aren't actually contained in a form element. Actually, they're in a div element with an id attribute of 'review_form'. This is, at best, a missed opportunity.

Here's the new template code. Again, if you don't have the book, just know that 'review_form' is an instance of the review form class and that 'p' refers to the product instance on the current product page:

<div id="review_form">
<form id="review" action="{% url product_add_review %}" method="post">
  <div id="review_errors"></div>
    {{ review_form.as_table }}
    <tbody><tr><td colspan="2">
      <input id="id_slug" value="{{ p.slug }}" type="hidden">
      <input id="submit_review" value="Submit" type="submit">
      <a href="javascript:void(0);" id="cancel_review">Cancel</a>

With this, the DOM has all the semantic information it needs for posting a review form, and it can pass that along to our JavaScript. Also notice that I changed the "Cancel" button from a submit input to an anchor element.

Now, the changes we're going to make to our JavaScript are more than just a little superficial. If you're sitting there with the book in front of you, you won't be able to just change the addProductReview() function and have it work, because we're going to change the events that are fired and how we're attaching those events.

First, we're going to attach the addProductReview() to the form element. Inside of the prepareDocument() function, the contents of which are listed in the middle of page 216, remove this line:


and replace it with this:


Now, the addProductReview() function will fire whenever someone submits the form, which is done by click the "Submit" button.

Let's turn our attention to the addProductReview() function itself and give it an extreme makeover. In the book, we use the function to submit our Ajax request, but here, I'm going to use the jQuery.ajax() function, which allows for some more fine-grained control over the submission process. Here is the reworked version, which I will explain, line-by-line, in a moment:

function addProductReview(e){
  var review_form = jQuery(;
    url: review_form.attr('action'),
    type: review_form.attr('method'),
    data: review_form.serialize(),
    dataType: 'json',
    success: function(json){
      // code to update DOM here
    error: function(xhr, ajaxOptions, thrownError){
      // log ajax errors?

This new addProductReview() function takes a single argument, 'e', which refers to the form submission event itself, passed down on high from when we attached the function to the submit form event. 'e' allows us to do a couple of interesting things.

First, we call preventDefault() on the event. That means that the JavaScript will halt the normal form submission, so the browser won't reload the page. Naturally, if the user has JavaScript disabled in their browser, e.preventDefault won't fire, and the form will post to the "Add Review" URL as usual, the non-ajaxy way. This is the first step to ensure that our form degrades gracefully. (We'll revisit this is a moment, when we look at the view function.)

Next, we can reference the form element itself by using the selector and

var review_form = jQuery(;

'review_form' now refers to the 'form#review' element on the page, which includes all of its attributes and child elements, including the form inputs themselves. We're going to use this for the values we submit with our Ajax request.

The jQuery.ajax() function takes a few parameters. Here are the ones that I've used, along with a quick definition of each:

1. url - The URL path to which we should submit the request.
2. type - the HTTP method, either "get" or "post".
3. data - the form values, as a set of name-value pairs encoded in URL format. (e.g. "name=john&amp;content=good book!")
4. dataType - the type of data we expect as a response. (in this case, "json")
5. success - a function that handles the response after a successful request.
6. error - a function to handle unsuccessful requests. (optional)

The first three items, we get right from the form contents itself. The first two, we obtain by using the attr() function to get the values of the attributes of the form element:

url: review_form.attr('action'),
type: review_form.attr('method'),

The third one uses a new function that allows us to get the values of the form inputs as a set of name-value pairs, as a single URL string:

data: review_form.serialize()

That's much easier than having to spell out a selector and create a new variable for each input on the form, as was done in the book. This is especially true if you have a form with dozens of fields. The serialize() function is a handy shortcut. Also, DOM selection is an expensive operation for JavaScript, so doing a single selection of the form element and serializing it is much quicker than selecting the elements one-by-one, from a performance perspective.

For the last few items: we expect the dataType the server returns to be a JSON object. Inside of the success function, you can define the same code that was in the book, since the DOM update operations will be largely the same. Lastly, while we didn't create an architecture to handle Ajax errors in the book, I included the block where you would put code to handle any errors your Ajax request encounters. This could be useful for logging purposes.

Now that this is done, we just need to make a couple of small changes to our view function. First of all, requests that come into this URL from form submissions might be Ajax requests, or they could be coming from users who have JavaScript turned off and have just submitted a form the traditional, non-Ajax way. Our view function needs to check this and respond accordingly.

Here is the new view function in catalog/

def add_review(request):
if request.method == 'POST':
  form = ProductReviewForm(request.POST)
  slug = request.POST.get('slug')
  product =

  if form.is_valid():
    review =
    review.user = request.user
    review.product = product

    template = "catalog/product_review.html"
    html = render_to_string(template, {'review': review })
    response = simplejson.dumps({'success': 'True', 'html': html})

    html = form.errors.as_ul()
    response = simplejson.dumps({'success':'False', 'html':html})

  if request.is_ajax():
    return HttpResponse(response,
    return HttpResponseRedirect(product.get_absolute_url())

Again, I haven't defined the Review model or form in this case, but you should get the idea. We still handle the validation and saving of the new review instance in the same fashion. Towards the end, we just conditionalize the type of response we return depending on the nature of the request. If it's an Ajax request, we return the JSON object to the JavaScript function that we assume called it. Otherwise, it's a non-Ajax request coming from someone who has JavaScript disabled, and we just reload the current product page, with their new review posted.

They key here is in using request.is_ajax() to check the nature of the request. jQuery, as well as most other major JavaScript libraries, adds a header to the request called HTTP_X_REQUESTED_WITH with a value of "XMLHttpRequest". If Django finds this header in the request with that value, request.is_ajax() returns True.

There's one small problem with this: if a user has JavaScript turned off, and they submit a product review that doesn't validate, we don't communicate this to the user. They just get the page reloaded without their product review and no indication of what went wrong. In the case of our site, we already display a warning to people with JavaScript disabled that stuff might not work as expected. (Depending on your requirements, that might be unacceptable, but I leave it up to you, and the architecture of your own site, to determine how you could fix that particular bug.)

To recap, we've made the following improvements, which I encourage you to do elsewhere in your Django projects:

1. Give the Ajax request URL a name in your file, and use the {% url %} tag in the DOM of your page so jQuery can access it. (If the action attribute should be the current path, you can use {{ request.path }} in most cases in your templates to spell that out explicitly.)

2. Structure the elements of your page so they function all right even if the user has JavaScript disabled in their browser.

3. For forms, define the method for submission in the 'method' attribute of the form and use jQuery's attr() function to get it.

4. You can serialize the contents of a form for Ajax requests using the serialize() function on the form element.

5. In the view function, use the request.is_ajax() method to determine if the request came in via an Ajax request and, based on the origin, send the appropriate response.

As a side note, a lot of readers have complained about problems with the djangodblog app. For one, the installation instructions in the book don't work with current versions, but more importantly, it seems that if your database uses the UTF-8 character set encoding, django-db-log is not compatible with it. That's a bit disappointing, and I'm trying to figure out what to do about it.

Sunday, January 24, 2010

Money Isn't Everything In Branding

It really isn't. If it were, then you could launch any product and, given unlimited money, buy tons of TV ad time and you'd have a successful product on your hands. But that theory just doesn't make sense. In my household, when the television commercials come on, one of two things happen:

1. Everyone either tunes them out and goes back to pecking on their laptops, or

2. We start going MST3K on them, ridiculing them and interjecting our own snide and cynical comments into the inane little stories and dialogue.

Just about everyone I know is pretty good at ignoring commercials. My generation has evolved with a small part of the brain that knows how to ignore media when it's not relevant to us. There are a few that stand out amongst the dross, but most are just clutter and don't get stuck in my head. That means just buying TV ads and running them doesn't work anymore, which comes as no surprise.

Case in point: Dr. Pepper and Coca-Cola came out around the same time (around 1885), but were created by different companies. In 1972, the Coca-Cola company decided they would release a Dr. Pepper-esque clone, called Mr. Pibb, to try and take some of the market share away from Dr. Pepper. I don't have exact figures, but I rarely see Mr. Pibb in convenience stores and it's not very prominent in most grocery stores.

If money were the only thing that mattered, you'd think that a company like Coca-Cola, which has an annual advertising budget that could probably acquire an entire country, would be able to pose a significant threat to the Dr. Pepper brand. But we don't see Mr. Pibb many places other than in restaurants and diners on soda machines that the Coca-Cola company has dominated with its own line of beverages. Sure, it's still around, but Dr. Pepper clearly continues winning the battles in the marketplace.

When someone wants a Dr. Pepper, they immediately think of the name "Dr. Pepper". It's next to impossible for Coca-Cola to dislodge that name from people's minds to replace it with their own. It helps to get there first.

A more relevant, techno-geek example: take the new Bing search engine. Without question, at the time I'm writing this, Google is the largest and most frequently used search engine on the web. Its name has become synonymous with search. When people need to search on the web, they think "Google" and that's what they use. It's lodged in their brains.

Microsoft introduced Bing in mid-2009, a move clearly aimed to take some market share away from Google and Yahoo! In their ad campaigns, they show people who have used Google extensively for search babbling incoherent clanging like schizophrenic patients. They go on to suggest that "search overload" is something we should all be terrified of, and to avoid a similar fate, we should switch to using Bing.

This message seems a little odd to me, since there isn't any truth in it that resonates. It reminds me of the episode of the television show "Arrested Development" where the character Gob Bleuth opens a banana stand right next to his brother's banana stand to compete with them, and their slogan is "A frozen banana that won't make you sick and kill you". It's mudslinging without any truth to the message, and it's easy for the mind to ignore what it can easily discredit.

Moreover, Microsoft has pushed hard to brand Bing as a "decision engine" instead of a mere "search engine". I suppose this is their means of differentiating Bing from Google, but that's like trying to sell a "pop machine" to compete with a "soda machine". When you go to the Bing homepage, it seems just like Google, with a few small differences. It hardly seems like enough to convince people that they should switch over to using Bing instead of Google.

That's not to say Bing will wither and die completely. People are using it, but they're probably never going to be handling the majority of web searches. If that's Microsoft's goal, then they're out of their minds. Google is the Dr. Pepper and they're Mr. Pibb.

An important corollary of that is the fact that Google is currently working to develop its own Chrome operating system, which will be open source and available as an alternative to Windows. Spokespeople for Google have stated that they have no intention of trying to use Chrome to replace Windows as the most common OS.

Positioning tactics are everywhere. The other day I saw a bar of chocolate that said "Chocolate for wine lovers." People drinking wine can easily buy a Hershey's bar, but the company is trying to sneak their own chocolate into the mind of wine drinkers. Does chocolate even go with wine? Who knows? Maybe they'll put the idea in people's heads by putting it out there. (Problem is, I don't remember the name of the brand of chocolate. Fail.)

There's a very good book on the subject of positioning, called (aptly enough) Positioning, that covers this topic very well. It was written over thirty years ago, but the book is a very good overview of modern marketing, full of examples, and is very well written. If you're accustomed to reading long and dense computer books, you can probably finish the book in a few hours. If you're planning to start your own Internet company and don't know anything about branding, I'd say reading the book is well worth your time and money.

The important takeaway here is that money is definitely not everything. If you're a small business owner or just planning to start your own niche e-commerce site, that's great news, because it means there's a good chance you can achieve success without spending a whole lot of money on advertising. If you're selling a new product in a new market space, you'll probably have an easy time getting customers, provided you're selling something that people want to buy and your site seems trustworthy in appearance.

If you're entering an existing market with established competition, you'll have a much easier time if you position yourself relative to your competitors. I did it when I wrote my book on Django. I wanted to write an introductory book that covered the framework, but of course, there are plenty of "Introduction to Django" titles. Choosing to go the e-commerce route was my way of finding an untapped niche and distinguishing my book from others.

In following the "Modern Musician" example in the book, imagine that you want to sell musical instruments and other accessories online. I would first look at who the big players are. In terms of online merchants catering to musicians, Guitar Center and Musician's Friend are two big ones that show up on Google. They're also probably first in line in the mind of our prospects (customers) when they feel the urge to go buy guitar strings, capos, etc.

Now, Guitar Center and the other big players seem to make a strong effort to cater to everyone, no matter what they might need. For Modern Musician, that's probably not a good strategy. Let's start much smaller. These days, with RockBand on Macs and lots of other PC software recording programs, lots of musicians are doing home recording. Perhaps it would make sense to try and brand Modern Musician as an online merchant that supplies instruments to those musicians who have studios in their basements and garages. The slogan could be "The go-to place for DIY home studio recording."

By itself, of course, that's not a very great idea, the slogan's bad, and I'm sure it's being done by someone at the moment. But the hope is that you can find a hole in the minds of your customers, and that your brand can fill it. Give people a reason to think of your name when they are thinking about playing, writing, or recording music. Help them feel your store is helping them self-actualize their aspirations and dreams of being a musician. Remind them of the thrill of performing live or connecting with a raving fan of their music.

Naturally, whatever you promise, just make sure you can follow through on it and that it resonates with the truth. Otherwise, it's no better than the Bing commercials and, unlike Microsoft, you probably can't afford to fail.

Of course, if you happen to have a massive advertising budget and want to spend it on television commercials and billboards, by all means, do that. But I think that no matter how much money you have, creative strategy and careful planning are the most important assets in the marketing department. If you don't have those, there's a good chance that when your commercial airs on TV, me and everyone else will be ignoring it.