How To Easily Spy On Your Competitor’s Order Volume With Magento
With a little bit of detective work, Magento can give you some really useful insight into your competitor's (or anyone else) order volume. The majority of store owners don't change their default order settings and that makes it easy to get an estimate of how many orders they are doing per day. Add in some estimates on average order value (AOV) and you can even make a rough stab at their gross sales.
Here is how it works...
Magento assigns a unique order number to every new order. By default this order number is built by the following method:
{STORE ID} + {SOME NUMBER OF ZEROS} + {ORDER INCREMENT}
So the 20th order for store id 3 would look something like this: 300000020
Magento also assigns a different unique id to every order that can be seen in the url when viewing the order in the admin (or your customer account! <this is what we use to get data from our competitors)
Here is an example from one of our Magento stores, as you can see we have done 17,740 orders so far:
Their is a catch though. Magento generates a new quote during the checkout process. So if a customer does not fully complete the checkout process it will generate an order id but obviously the company never made the sale. This is where abandoned carts come from. Here is an example:
Order id: 30000001 (Entity id: 1) - Customer completed the order
Order id: 30000002 (Entity id: 2) - Customer did not complete the order
Order id: 30000003 (Entity id: 3) - Customer completed the order
In this example it would appear that we have 3 sales when in reality we only had 2. So this method does not give us an exact number of sales, but it does give us a max number of potential sales.
Here is how you can easily get some info on your competitors
- Place a small order with your competitor and create a customer account during checkout, make note of your order ID and when you view the order from My Account, make note of the order id in the URL
- Wait a week or two and place another order, again note the order ID and ID in the URL
- Subtract the second order id (the URL one) from the first and divide by the number of days you waited. That will tell you approximately how many orders per day your competitor is receiving. Take that number times estimated average order value, times 365 and you can (very) roughly estimate yearly sales.
- EXTRA CREDIT: If you want a more accurate number, do this every couple months and you can identify their sales trends and potentially estimate sales better. You can also do competitive research about their industry to determine what their AOV might be.
Real World Example
I am currently in the process of starting a new company and we will be using Magento as our shopping cart solution. Here is my live example of this research and what it told me...
Order #31521, Placed 5/26/2011
Order #31756, Placed 6/9/2011
If I subtract the two URL ids from each other (556-509) I get 47.
47 orders / 14 days = 3.35 orders per day!
I estimated this company's AOV to be around$50 so 3.35 orders per day * $50 AOV * 365 days in a year = $61,137 in sales per year!
As I mentioned before, Magento generates a new order id before the order is actually completed, so this number is probably higher than reality. I am also guessing at their AOV but this at least gives me a good estimate to start working from. This is a very new company and they are already doing around $50k/year in sales from one product so I am now more confident about my move into this market.
Now if you have been paying close attention, you will notice that my order IDs had a much larger increase than my order entity IDs (from the URL). My assumption is that they are using this handy extension (FREE): Set Start Order Number extension
Off topic a bit...
There is another extension that will do custom order numbers, if you are the type who likes spending money on overpriced extensions and ridiculous licensing structures, click here. But seriously, see if the Free one from Ashley Schroder works for you, the guy is an amazing Magento developer and is extremely helpful. Support him, <rant>don't support developers who will automatically upgrade your previous extensions when you install a new one and then inform you that you are violating their licensing structure and must purchase an upgrade which is, for some unknown reason, based on the number of products you have and now costs $399 when you initially purchased it for $59. Do you get an extra features? Nope. More support time? Nope. The only difference is the price. Seriously, it's absurd.</rant>
Back on topic...
Ok so the Order numbers for these two orders had a difference of 235, but as we can see from the entity IDs, they could not have had more than 47 orders. It's a simple explanation, 235 / 47 = 5. They are using an increment of 5 instead of 1. Their first order will be #3000001 and their next order will be #3000006 but the entity IDs can never lie.
EXTRA CREDIT
If you run a Magento store, how do you stop your competitors from using this technique to find out your sales numbers?
Unfortunately that order entity id is hard to mess with. The only solution I have come up with is to manually run a bunch of orders yourself using Check/Money Order or Purchase Order and then cancel them. If anyone has a better method please let me know. This technique works extremely well on Magento sites and is therefore hard to protect yourself against.
Update from one of our developers: a very SIMPLE way to hide the order id is to extend the sales_order extension and base64 encode the order id. i actually don't understand why magento doesn't already hide this.
Now go out and do some research on your competitors! Let me know in the comments if this helps you out.






June 23rd, 2011 - 17:21
Do you know a way to generate random order numbers in magento to prevent this?
June 27th, 2011 - 09:09
Not yet. The difficult thing is the url in My Account that shows the entity id for each order. That number would be difficult to randomize. The best idea would be to encode those url’s somehow and then the user would never see a useful number.
August 5th, 2011 - 01:54
Look at youtube URLs or Google Docs: the complete URL is encoded. Nothing visible –> no hacking.