Sometimes the developers of the core Magento e-commerce system forgets that most people that use the software spend a huge amount of time doing data entry. One of the UI problems that we’ve run into is the fact that if you have a significant amount of product attributes it doesn’t sort them alphabetically. We ran in to a particular problem with one of our clients. They have a massive amount of Manufactures.

With more than 300+ entries, it was quite the problem for them to manually sort them alphabetically. Instead of writing a plug in to address this problem we came up with a simple hack. We wrote some SQL code to copy the attributes, sort them and then copy then back to the original table.


SET @ordering_inc = 1;
SET @new_ordering = 0;

DROP TABLE IF EXISTS my_new_sort_order;
CREATE Temporary TABLE my_new_sort_order (
option_id INT (10),
attribute_id SMALLINT (5),
sort_order SMALLINT (5)
);

INSERT INTO my_new_sort_order
SELECT eav_attribute_option_value.value, eav_attribute_option.option_id, (@new_ordering := @new_ordering + @ordering_inc) AS sort_order
FROM eav_attribute_option_value
JOIN eav_attribute_option ON eav_attribute_option_value.option_id = eav_attribute_option.option_id
WHERE eav_attribute_option.attribute_id=66
ORDER BY eav_attribute_option_value.value;

UPDATE my_new_sort_order
SET sort_order := (@new_ordering := @new_ordering + @ordering_inc)
ORDER BY VALUE ASC;

UPDATE eav_attribute_option
JOIN my_new_sort_order ON my_new_sort_order.option_id = eav_attribute_option.option_id
SET eav_attribute_option.sort_order = my_new_sort_order.sort_order;

If your sorting a different attribute, simple change the eav_attribute_option.attribute_id=66 to the attribute ID that you’re sorting.

It’s 2011 and right now everybody is jumping on the group buying bandwagon. Companies like Groupon, Living Social, Google and Facebook are all trying to leverage their massive user base to offer steep discounts to consumers. Retailers are slowly starting to pull themselves out of the recession are are desperate to find new customers. Group buying is now a viable way to get new customers. I’ve had a number of clients that have looked into this and after doing a ROI check, they find that they would actually loose money on the deals. One client in particular asked me if there was any existing extensions to Magento that could fulfill their needs. These extensions include:

Group Buy for $399.00
Great Deals Buying Extension for $299.00

I think that both of these extensions are great, but overpriced for what my clients were looking for. A quick way to offer group deals and track how many have been purchased.

After sitting down and thinking for a while I came upon a quick hack that you can use to create your own “Group Buy” functionality for Magento. We used JavaScript to create a countdown functionality, used inventory control to count the number of items left and use attributes to let our templates know that we want to display the item as a “Group Buy”. It should only take about 20 minutes to set up the functionality if you know your way around a Magento installation.

Magento Attribute group_deal

Set up Magento Attributes

To create this Magento hack you will need to create two separate custom attributes on the administrative side of Magento. Start by creating a new attribute Catalog -> Attributes -> Manage Attributes -> Add New Attribute. The first attribute, should be called: “group_deal“. Set the “Catalog Input Type for Store Owner” as a “Yes/No” input type. Set the default value to “No” and make sure to set the “Apply To *” it to “All Product Types“. You can name the attribute whatever you want under the “Manage Label / Options” tab. We called ours “Group Deal” on both the Admin and Default Store Views.

We then set up a second attribute called “group_deal_number_for_deal”. We set the attribute type as a text field and made sure that we didn’t make it a required attribute. Once again set the “Apply To *” it to “All Product Types” and name it “” for both the Admin and Default Store Views.

After both of the attributes are created, we need to go to Catalog -> Attributes -> Manage Attributes Sets-> and add these to whatever attribute set you want them to come upon. We added ours to the “Prices” tab to make things easy.

Magento Group Buy Product Creation

Before we modify our Magento Template code, we need to set up our products correctly so they display them as a “Group Buy” products. Create or Edit a product that you want to offer the group deal with. To make this work on the product, we have to set the proper group buy attributes, set Magento to track the inventory of the product and offer it “On-Sale” for a set period of time.

Since we have already placed our attributes in the product “Prices” tab, we can set up the product with absolute ease. Start by setting the “Special Price” to whatever you’re going to offer the deal at. You’re then going to set the length of the Group Buy deal using the “Special Price From Date” and “Special Price To Date” fields. Set the “Group Deal” to “Yes” and define “Number Needed for Group Deal” as the number needed for everyone to get the deal.

If you’re not currently managing stock inventory with Magento, you’ll need to switch to the “Inventory” tab and set the “Manage Stock” to “Yes” Set the “Qty *” to the number of “Deals” that you want to offer and “Stock Availability” to “In Stock“.

Group Buy view.phtml changes

Once you have made these changes to the products, you only have to change two files and add an image for the CSS files to serve up. There is only two files that you need to modify in your templates: Your Theme:/template/catalog/product/view.phtml and the CSS in your Skin Code, Your Theme:/css/style.css. You’ll want to add the following code to the view.phtml file after

<!--?php echo $_helper--->productAttribute($_product, nl2br($_product->getShortDescription()), 'short_description') ?>

in the view.phtml file

Code to add:

 <!--Group Buy Code-->
<!--?php $isGroupDeal = $_product--->getAttributeText('group_deal') ?>
<!--?php $groupDealDateEnd = $_product--->getSpecialToDate() ?>
<!--?php $mydate = date('M d Y h:i:s', strtotime($groupDealDateEnd)) ?-->
<!--?php $groupDealSpecialPrice = $_product--->getSpecialPrice() ?>
<!--?php $groupPrice = $_product--->getPrice() ?>
<!--?php $formattedPrice = number_format($groupPrice, 2) ?-->
<!--?php //Geting Discount Amoutn ?-->
<!--?php $groupDiscount = ($groupDealSpecialPrice / $groupPrice)?-->
<!--?php $groupDiscount = $groupDiscount * 100 ?-->
<!--?php $finalGroupDiscount = number_format($groupDiscount, 0)?-->
<!--?php //Getting Savings Amount ?-->
<!--?php $groupSavings = ($groupPrice - $groupDealSpecialPrice) ?-->
<!--?php //Number Left to Get Deal ?-->
<!--?php  $groupInvAmt = (int)Mage::getModel('cataloginventory/stock_item')--->loadByProduct($_product)->getQty();?>
<!--?php  $groupDealNumber =$_product--->getGroupDealNumberForDeal ?>
<!--?php $groupDealLeft = $groupInvAmt - $groupDealNumber ?-->
<!--?php if ( $isGroupDeal == "Yes" ) { ?-->
<script type="text/javascript">// <![CDATA[
function Countdown(then) {

 	this.then = then;

 	function setElement(id, value) {
 		if (value.length < 2) {
 	    	value = "0" + value;
 		}

 		window.document.getElementById(id).innerHTML = value;
 	}

 	function countdown() {
 		now  		  = new Date();
 	  	diff		  = new Date(this.then - now);

 		seconds_left  = Math.floor(diff.valueOf() / 1000);

 		seconds  = Math.floor(seconds_left / 1) % 60;
 		minutes  = Math.floor(seconds_left / 60) % 60;
 		hours    = Math.floor(seconds_left / 3600) % 24;
 		days     = Math.floor(seconds_left / 86400) % 86400;

 		setElement('countdown-days', days);
 		setElement('countdown-hours', hours);
 		setElement('countdown-minutes', minutes);
 		setElement('countdown-seconds', seconds);

 		countdown.timer = setTimeout(countdown, 1000);
 	}

 	function start() {
 		this.timer = setTimeout(countdown, 1000);
 	}

 	start(then);
 }

 Countdown(new Date(""));
// ]]></script>
<div id="groupbuy">
<div id="groupbuy-hdr">
<div id="grp-buy-name">Va Va Voom Group Deal</div>
<div id="groupbuy-l2">
<div id="groupbuy-retai-value">Value 

<span id="groupbuy-retail">$<!--?php echo $formattedPrice ?--></span>

</div>
<div id="groupbuy-discount">Discount 

<span id="groupbuy-discount-percent"><!--?php echo $finalGroupDiscount ?-->%</span>

</div>
</div>
<div id="groupbuy-savings">Savings 

<span id="groupbuy-savings-price">$<!--?php echo $groupSavings ?--></span>

</div>
</div>
<div id="groupbuy-countdown">Time Left To Buy Deal 

<span id="countdown-days"> </span> days <span id="countdown-hours"> </span>:<span id="countdown-minutes"> </span>:

</div>
<div id="groupbuy-number-sold">The Number of Items left to Get Deal: 

<span id="DealAmount"> <!--?php echo $groupDealLeft ?--></span>

</div>
<span id="how-it-wrks"><a href="/group-deal">How it works</a></span>

</div>
<!--?php } ?-->
<!-- /Group Buy Code -->

Group Buy style.css changes

Now add the following code to your style.css file:

/* Group Buy CSS */
#groupbuy-hdr {
width: 380px;
height: 80px;
background: url(../images/groupbuy-hdr.gif) no-repeat center center;
color: white;
}
#groupbuy-countdown {
width: 380px;
text-align: center;
font: bold 26px "Lucida Grande", Lucida, Verdana, sans-serif;
margin: 10px;
color: red;
}
#groupbuy-number-sold {
text-align: center;
font: 18px "Lucida Grande", Lucida, Verdana, sans-serif;
width: 380px;
height: 80px;
color: white;
background: url(../images/groupbuy-hdr.gif) no-repeat;
padding-top: 10px;
}
span#DealAmount {
font-size: 32px;
font-weight: bold;
}
#groupbuy-savings {
width: 125px;
height: 32px;
float: right;
text-align: center;
font: bold 16px "Lucida Grande", Lucida, Verdana, sans-serif;
}
#groupbuy {
position: relative;
margin-top: 20px;
}
#groupbuy-retai-value {
width: 125px;
height: 32px;
float: left;
text-align: center;
font: bold 16px "Lucida Grande", Lucida, Verdana, sans-serif;
}
#groupbuy-discount {
width: 125px;
height: 32px;
float: right;
text-align: center;
font: bold 16px "Lucida Grande", Lucida, Verdana, sans-serif;
}
#grp-buy-name {
font-weight: bold;
font-size: 24px;
text-align: center;
width: 380px;
height: 22px;
padding-top: 10px;
}
#groupbuy-l2 {
float: left;
width: 250px;
}

Finally add the following graphics to your theme skin files: Your Theme:/images/ for it to display like the illustration below. You can change the CSS code as needed to display the deal to fit your theme.

groupbuy-hdr
groupbuy-hdr

That’s it. You won’t have things fancy features like email notification if the deal doesn’t go through or any of the fancy bells and whistles that the two above extensions have to offer, but you can use it to quickly convince people to all jump in on a group deal without having to pay 50% of your net sales to another company.
Magento Group Buy Results

Do you have experience with development work on the Android and iOS using Flash? Our newest client is looking to integrate their existing website with an online application. The Back end of the clients site is developed using Python’s Django Web Framework.  As the mobile developer, you would be responsible for implementing an application that runs on both the Android OS and the iOS using flash. This project will be using a combination of QR technology, location tagging and product rating.

If this project sounds like it’s something you would be interested in, please send a previous application list.

Utah Locals Only – Must Love Beer

Our latest project is a combination Website/Mobile application for a company putting on festivals in multiple locations. We are creating a website and mobile application as rating tool and guide for the festival.

We are screening illustrators whom can draw people and create layouts that look somewhat like an old-style traveling carnival or circus poster. We will be developing the mobile app with an interface similar to the website UI. If you have flash development experience, it’s a plus in our book. All UI for the site and mobile application is already approved and ready to go.

If this project sounds like something you would be interested in, please send previous client list along with an online portfolio to jason (at) studio1909.com.

Utah Locals Only – Must Love Beer

Last year was the year of the SME, that is Social Media Experts, not Subject Matter Expert. Many of these SME were pushing the dream of you becoming rock-star in the social media world by having thousands and thousands of follower and firends. While there is a few people with thousands of connections on Facebook and Twitter, the majority of people use social media as a tool to connect with your customers both pre and post sale..

Social media is not the end all for a marketing solution. It’s a cog in the very complex wheel of online advertising. Social media gives small corporations the same footing as larger corporations in having a conversation with your customer. Companies such as Starbucks and Comcast have tried to embrace the social media world. You as a small business owner should also embrace this world and use social media in your sales cycle.

Social media is not a platform to become the spammy douche that everyone knows. I’ve see person after person doing the exact same thing by sending out Facebook updates and twitter updates like, “look at me! I’ve mad tons of mad money with my proven MLM system! So can you.”

Un-follow, un-friend, hide.

These are the reactions of people getting  crap like this to their in boxes. Nobody likes the spammer. I’ve talked to countless number of people who try to tell me that their product is the latest and greatest item. In reality, they’re just trying to build their “down-lines” to get others to buy those crappy products or to get them to do the actually selling.

SM is a platform to engage the customer and to keep your brand in front of them day in and day out. its a chance for your customers to opt-in to your message. People are sick and tired of interrupt based marketing. They’re tire of businesses constantly interrupting you every x amount of minutes to hear a word from their sponsor.

SM is one method to allows customers to choose what marketing message they want to partake of. If you’re offing an amazing service or product you will have customers follow you and engage your brand.

If you haven’t got a twit account or if you haven’t signed up for a Facebook account, go do this right now. Once you have set up your accounts, go set up a business page for your Facebook account. Don’t use your Facebook account for business purposes. I’ve seen many a business get started on Facebook and then they get shut down because their competition turns them in to Facebook reporting structure.

Make sure that all of your pages one your website are setup to have these social media networks and allow people to talk about your pages in their social networks.

Your next step is to decide what sort of strategy you are going to use for social media. Its easy. Just be yourself. Engage your customer like they are in your place of business. The number one rule:  Don’t be a douche. Don’t spam your customs. Tell them jokes, find engaging article, let them know about their products.

Choose your social networks wisely. Twitter, and Facebook are probably the best to start with. Once you’ve established a solid dialog with your customers on these networks, you can then venture out to more specialized networks, video, etc.

Most businesses have a physical location of some sort. If you’re a retailer, you likely have both online and a brick and mortar location. This means that you can leverage advertising online to bring people to both your website and your physical location.

Advertising has shifted in the last few years from gigantic printed publications, local radio & TV and billboards to computers and mobile phones. While you want to advertise and sell your products globally, your brick and mortar business location’s customer base is most likely local within a few miles or a few key zip codes.. This means that you can harness the powers of online and mobile advertising to precisely target your potential customers using the Internet.

When to use Local Advertising

There was a day when the “local pages” or “Yellow Pages” gave you a huge ROI on your advertising dollar. Today, these books are nothing more than gigantic pieces of bound recyclable paper. Consumers have shifted to using the internet or mobile phones to find information about your products and services. If your business targets anyone under the age of 65 or anyone whom can’t use a computer,  you’ll be wasting your money advertising in these printed behemoths.

The question you have to ask yourself is what kind of businesses are you? Most businesses can use the online “Yellow Pages”, Yahoo and Google. Restaurants, cafes, coffeehouses can precisely target their customers by using services such as Dishfinders, Yelp, CitySearch, etc.

Let’s start with the easiest and quickest form of local Adverting, Google. You need to take a moment to see if you’re listed in Google Maps. There you’ll have the chance to edit your companies information.

Google will allow you to update your information and either send you a post card through the snail mail or phone you with a code. Doing so allow you to add/edit as you see fit. Once you’ve done this go to Yahoo, Mapquest and Bing and do the same thing.

Gowalla & Foursquare

Location base gaming is starting to take hold in the marketplace. With the advent of these services, you can take advantage of them. Currently we  prefer FourSqare to Gowalla. FourSquare has a much easier interface than Gowalla to add your business and encourage people to check in to your business. You can set up an approved offer that people will see when the check in. FourSquare offers stats such as how many check-ins, who’s checked in and who is your current mayor.

If you’re a Restaurant, you’ll want to pay particular attention to Applications such as Yelp, UrbanSpoon, and Dishfinders. Get your business listed and start paying attention to whom is reviewing. Be sure to respond to customer complaints and customer accolades.

  • More Big Brother from stupid politicians. Have they EVER heard of TOR. Criminals & smart peeps will not be tracked. http://ow.ly/3K0bV #
  • Interesting view of my linked in network. http://lnkd.in/NyQfEB #
  • American News Outfits rather report on American Idiot than the protests and riots in Egypt: http://ow.ly/3MboB #

  • I find it Ironic that Obama is meeting w/ China Pres 2 discuss Human rights. dont we have more peeps in prison than any other country? #
  • Off to get my better half a nice birthday present. Good thing she never reads facebook or twiiter. #

  • Wow a major media outlet just put the "Terrorism Hysteria" into perspective: http://is.gd/k0TFg #
  • Funny question today: Whom would you consider Utah's Geekiest Celebrity? Looking for one to MC for a special upcoming event. #
  • Did you know that Ignite SLC is accepting proposals for the Feb 10 show? Have you submitted yours? http://is.gd/kkt4E #igniteSLC #
  • I rarely do a #FF but follow @ignitesaltlake #

PPC AdvertisingIsn’t SEO the name of the Game?

This is not a guide on how to use Adwords or Microsoft’s AdCenter. This a general outline on how to form a keyword strategy for your PPC Campaigns.

While Search Engine Optimization (SEO) is important part of an overall web strategy, a new business is not going to rank very high in the Search Engine Rankings unless they’re using some sort of black hat SEO method. You may have an amazing idea or product that is highly sought after that very few people are marketing, but that’s the exception not the rule. An SEO strategy can give you a great position in Search Engine Results Page’s (SERPs) comes with time and amazing content.

If you have someone whom tells you that they can get you to the front page of Google through SEO methods, you should be VERY wary. SEO rankings, while go through a complex algorithm really have to do with your semantic page content, whom links to you, what sort of content that you produces and if that content is amazing.

In a nutshell, produce great content and you’ll get high rankings in the search engines.

Why advertise on PPC?

Pay Per Click marketing should be part of your overall strategy in your marketing plans. There is many, many places where you can advertise on the internet. It becomes your responsibility to find those web properties where you will see the highest results in for your advertising dollar. The easiest way to do this is to advertise on the top web properties. Google, Facebook, Bing are three great places to advertise your products. Each of them have their advantages and disadvantages.

Yahoo (Bing), Google, Bing & Facebook round out the top for web properties. In our experience, Bing & Yahoo have higher conversion rates, Facebook can really rocket your product if it becomes successful. Google is the standby go to Search Engine property. We typically set up our clients on Google and then migrate them to Yahoo (Bing) & the Bing search engine. We reserve Facebook for specialized products and services.

Common Pitfalls

Keep in Mind that PPC advertising can become VERY, Very expensive if you do not pay attention to what you’re doing. Search Engines are in the business of serving ads, not promoting your business. They don’t care if you’re successful, they’re in the business of selling keywords and advertising positions. They take your money any way that you want to give it to them.

You will also need to carefully pick keywords that provide high click-through rates. Many people throw thousands of key words in the advertising campaign and can’t figure out why their campaigns are not working . Keywords need to be carefully chosen based on your content and products. Picking the wrong keywords can lead to useless visitors to your website. This is akin to having people visit your retail store and not having them purchase anything.

After getting your customers to your site, if you pages is not optimized or your landing page is poor, you’re just wasting money. Again, if you’re sending your potential customers to your main home page of your site, you’re not helping them land in proximity to what they’re looking for.

Metrics, Metrics, Metrics…

You can’t build your house unless you’ve measured your cuts. You need to know what you need to measure before you start your online campaigns.

You must be very aware of industry standard metrics and be able to beat those metrics to turn a profit. The Click Through Rate (CTR) is obtained by dividing the “number of users who clicked on an ad” on a web page by the “number of times the ad was delivered” (impressions).

Once you understand the CTR, you must then understand the Conversion Rate (CR) of your industry. You can fine a good guide here http://index.fireclick.com/.

You will then need to figure out what the average keyword cost is for your search engine or web property. Once you know this you can estimate the costs of acquiring a new customer.

Strategies to Use for Keywords

Bid Odd Amounts

The conventional bidder, bids in increments of $.05. You can get more bank for your buck for 80% less by bidding in odd amounts. If the average costs for a number 2 position is $0.25 then you can make your bidding strategy $0.26 or $0.31. It give you a slight advantage over your competition.

Schedule Your Pay Per Click Ads

Most e-commerce engines have analytic reports in them. If you’ve already set up your metric you can find out when the majority of you sales come from. Many of our retail clients get 80% of their sales in 2-4 key hours per day. This means that you can schedule your PPC ads to appear at peak times and not waste your marketing dollar when nobody is really purchasing.

Setting up Multiple Campaigns for different goals

Retailers whom have many products should make sure that they group them into logical groupings. Google seems to penalize low performing groups. You should separate them out from your higher performing groups. If you’re selling 3 different types of widgets, then you should logically separate them into three different groups.

Focus on Transactional Keywords

What type of retailer are you? Do you provide the low price for your product? Are you a value retailer? Do you provide specialized products. Transactional keywords allow you to dial in on your potential customer.

Find Widget A
Buy Widget B
Information Widget C

Compile a targeted list of transactional worlds and use them as keywords of choice. Your advertising budget will thank you.

Eliminate Wasteful Keywords

Get rid of non-performing key words. The two key metrics of CTR and CR will show you what words work and what words do not. If you have keywords with a high CTR and an low CR, get rid of them. There is some keywords that have a low CTR and a high conversion rate, focus on throwing your advertising dollar at them.

Target, Target, Target

The internet is not like a retail store. Many people are looking for specific products or services. Send them right to the product or service they are looking for. You’re wasting your time when you send them straight to your home page. They’re going to get there and go where is Widget A? Send them right to Widget A’s page.

Pay Attention

You can’t set up your advertising and expect it to magically manage your campaign. You need to make a daily effort to manage your account. Your campaigns can either go wildly out of control (If you set up automatic bidding) or they’ll eventually fizzle out as there is more and more competition with your product or service.

Get Local

Is your product or service regional based? It does you no good to advertise your product or service to people that are never going to purchase. Make sure that your ads only show up to the area, demographic and keywords that make the most sense to you.

Wash, Rinse & Repeat

After you’ve spent your time developing and deploying your PPC Keyword strategy, you need to revisit this strategy, daily, weekly and monthly to make sure you’re on-target with what you’re trying to accomplish.

Conclusion.

PPC Keywords strategies can help jump start your business. You shouldn’t rely upon one strategy when deploying your overall marketing strategy. Make sure that you work PPC Marketing in along with SEO, SEM and other strategies in your quiver.