What QM Can’t Do (Part 3)

June 5th, 2011

This is the third post in a series explaining certain technical limitations with Quantity Manager.  Today we’ll cover something that affects all third-party tools for eBay.  It is very likely that this is also an issue with all third-party applications that connect to any service through an API.  In particular we’ll be addressing the situation where a subscriber cancels their account or revokes their authorization token leaving QM without access to their account.  In general this is not a problem since QM should never have access to a former subscriber’s account.  However this becomes a problem when that user does not restore their Inventory levels before doing so.

Granting Access

When a subscriber first joins QM, eBay sends us something called an authentication token.  The authentication token identifies the user and the application that has been granted access.  Every time QM needs to access a user’s account for anything such as updating the quantity available or even downloading their inventory it must send the authentication token back to eBay.  Without a valid authentication token QM cannot update a user’s listings nor access their account in anyway.

Revoking Access

When a user unsubscribes, eBay immediately invalidates the user’s authentication token.  What this means is QM immediately loses all access to the subscriber’s account.  This is a good thing as QM should no longer have such access.  However, this also means a user can’t unsubscribe and then expect QM to perform any actions afterwards.  It is a reasonable expectation that all quantities would return to their correct levels immediately after canceling.  Unfortunately, this is simply impossible.

“I just unsubscribed, now my Inventory is messed up!” or “I just unsubscribed, can you please reset my Inventory?”

Before a user unsubscribes they are instructed to have QM release their Inventory levels.  If a user doesn’t do this their quantities will remain at their current levels.  Once a user unsubscribes QM loses all access to the account and it is impossible to reset them.

Display = Inventory

Having QM release your Inventory back to its proper levels is a very simple one-click process.  Simply go to the “Shortcuts” page and click the button that says “Display = Inventory”.  This tells QM to display on eBay exactly what you have in stock.  Once this button is clicked a notification will appear stating that your listings will be modified shortly.  For performance reasons QM does not do bulk updates immediately but instead puts them in a queue to be performed by a separate process.  The entire process should not take more than 10 minutes unless you have several thousands listings on eBay.  Also, MVL listings usually take longer to update than normal listings due to eBay limitations.  Once you have verified that your listings are back to normal you are free to unsubscribe.

But I didn’t follow directions and my Inventory is wrong.  How do I fix it?

If you do happen to unsubscribe but have ignored the instructions above you are not alone.  There are two easy solutions to this issue.

You can resubscribe to one of our monthly plans and then follow the directions above.  Keep in mind that you must correct for any sales you’ve made since you unsubscribed because QM did not see them.  Once you have fixed your listings simply unsubscribe again.  Monthly plans are prorated so the most this could cost you is $0.18.

The other solution is to simply contact us and request that we send you your Inventory counts.  When you unsubscribe your listing details are not immediately purged and most likely we still have them.  Keep in mind that we must have a way to verify who you who you claim to be as we are not going to send your details to anyone who just asks for them.  Sufficient proof would include contacting us through our helpdesk or website using an IP address you logged into our service from or requesting details sent to the email address you had on record.

Will QM ever be able to restore listings on unsubscribed users?

Unfortunately this will probably never be possible.  The only way it could work is if eBay allowed a grace period between unsubscribing and token revocation.  We believe this would be a bad idea because it could lead to apps getting stuck mid way during cleanup.  It is not a good idea to assume that the user really does want their quantities restored at the end.  We’ve spoken to many users over the years and some simply didn’t want QM to reset their Inventory before unsubscribing.  Thus, the best solution is to leave responsibility of final quantities levels to the subscriber.

What QM Can’t Do (Part 2)

April 19th, 2011

This is the second post in a series explaining certain technical limitations with Quantity Manager.  Today we’ll cover third party tool compatibility.  QM should work OK alongside many other eBay third party tools but caution should be taken when they adjust listing quantities.  In particular we’ll be addressing the situation where a subscriber changes their Inventory in another app and then expects QM to change Inventory accordingly.

Typical issues we hear about include:

  1. I sold something in ProStores® but QM didn’t reduce my Inventory.
  2. I updated listings in Turbo Lister, Blackthorne, or some other listing tool and my Inventories didn’t update.

On the surface these sound like fair complaints.

Why This Isn’t Possible

When certain events like listing creation, sales, or listing revisions occur, eBay sends QM a message.  QM then runs a series of scripts based on the type and content of that message.  When a user revises a listing in any way the message that eBay sends QM contains the quantity available of that listing along with the item number but does not give any uniquely identifiable information.

For our examples we’ll use the following parameters:

Naive Solution

It would seem then that the solution is very simple.  QM should just observe a quantity increase or decrease and reduce Inventory by that amount.  In this example a user simply decreases the available quantity to 3.  QM sees that the quantity available has decreased by 2 and reduces Inventory to 98.

The Problem

It would seem like the above solution should work and it actually will most of the time.  However, in order for this to work every time we must have the following guarantees:

  1. QM will receive all messages.
  2. QM will receive only one copy of each message.
  3. QM will receive all messages in the correct order.

Unfortunately none of these are guaranteed.  Missed messages are lost forever leaving Inventory unchanged.  Duplicate messages would cause Inventory increases or decreases to be doubled or even tripled.  Out of order messages could cause Inventory to go out of sync in unpredictable ways.

Lost Message

In this example the user again decreases the available quantity to 3.  QM never receives the message so Inventory stays at 100 even though it should be 98.

Duplicate Message

In this example the user decreases the available quantity to 3.  QM sees that the quantity available has decreased by 2 and reduces Inventory to 98.  Later a quantity of 2 is sold on eBay and QM reduces the Inventory to 96.  However, eBay sends a duplicate of the original quantity revision so QM again reduces Inventory by 2 to the incorrect amount 94.

Wrong Order

In this example the user decreases the available quantity to 3.  Then the user realizes this was a mistake and corrects it back to 5.  However, the messages are received in reverse order leaving the user with an incorrect Inventory of 98.

Then How Can QM Track Sales?

If you made it this far you may have wondered how QM can accurately track sales if sales and listing notifications have the same limitations.  It turns out all messages from eBay fail to make any of the necessary guarantees.  However for sales and listings these can be easily overcome by polling the eBay site and by having something unique regarding those messages.

Missed sales and listing notifications are currently checked for once every 30 minutes.  This wouldn’t work for tracking revisions because the listing could have been revised multiple times between checks and only the final state would be visible.

Duplicate listing and sales messages are not a problem because each listing and transaction is unique.  If a listing is already in the database the message can just be ignored.  If a sales notification is duplicated then QM sees that the transaction has already been handled so the message is again ignored.

If a listing message or sale message occurs out of order it doesn’t matter for several reasons.  A sale message for a listing not yet in the database triggers QM to retrieve the listing and store it in the database then process the sale.  If two listing notifications arrive out of order they are from different listings so it doesn’t matter.  If two sales messages for the same listing arrive out of order it again doesn’t matter because each message contains the exact amount sold for that transaction.  This allows QM to correctly track the differences in Inventory.

The Good News

As it has been shown there are several pitfalls with supporting this sort of feature.  The good news is that we recognized these issues ahead of time rather than trying to implement a system that had no chance of working.  This means our subscribers do not have to worry about any of the above situations occurring with their accounts.  Instead revision messages are simply used to advise QM of possible changes like price, end time, title, or available quantity (but not Inventory).  None of these impact the way QM behaves.

The Bad News

Unfortunately this means that such a feature will most likely never exist with Quantity Manager nor any other decent 3rd party stand-alone application.

The only way this could ever be supported would require eBay to change the way they handle revisions.  This would require eBay to keep track of every revision ever performed per listing and make that retrievable on a per seller basis.  Furthermore those revisions would need to have a unique identifier and timestamp attached to them.  It is highly unlikely eBay would ever take on such overhead though the site itself does imply that such information is logged.  Anyone is able to click a link on an eBay listing and see what was changed and when it was changed however this information is not available via the API nor does it give specifics.

We have also observed that most 3rd party listing applications make the assumption that they are the one and only app that the seller uses.  What this means is that Turbo Lister, Blackthorne, etc have a tendency to overwrite all settings that were on the listing any time the app is used on that listing.  For example making a simple change to a listing’s description in Turbo Lister can result in any changes that had been made to price, quantity, etc via eBay or another third party tool to be overwritten.  Unfortunately this means that even if eBay did take the necessary steps to allow QM to support this feature it would be very easy for a user to accidentally mess up their Inventories.

Compatibility with specific 3rd party tools could be achieved but would require us working directly with the developers of the other product.  We did try to reach out to ProStores back in 2009 but rather than letting us join their developer’s program they instead ignored us and then ceased accepting new members.  If you are another third party developer and want to ensure your apps are compatible with ours, please contact us.

What QM Can’t Do (Part 1)

April 5th, 2011

Today we’ll begin a series of posts addressing a few common complaints we’ve received over the past two years. These posts will deal with behaviors that many subscribers often incorrectly assume exist or think should be implemented but which are technically impossible. Much of this is mentioned already in the documentation but we’ll be going into the issues in-depth. In part 1 we’ll address the most common question “Why did my listing end?“. Specifically we’ll be covering the situation where a buyer purchases all available quantity at once.

Why did my listing end?!?!?!

In almost every case we have examined over the years this is due to the simple misunderstanding in how QM works.  QM works after the sale, not during.  The events from purchase to quantity refresh occur as follows:

  1. Buyer makes a purchase.
  2. eBay decreases quantity available on eBay.  If 0 remain then mark the listing as ended.
  3. eBay notifies QM of the sale.
  4. QM refreshes quantity (if applicable).

Step #2 above is where the problem lies.  Because buyers can purchase any quantity available to them they have the option to purchase all within a single order.  When that happens eBay will end the listing before anything can be done about it. This is the reason why you cannot specify a Display value of 1 by default. A Display setting of 1 would result in every sale causing the listing to end and most subscribers don’t want that.

MVL listings do not suffer from this limitation in the same way since they contain one or more sub listings. As long as one variation has a quantity available of more than 0 at all times eBay will not end it. This allows QM to bring variations back from having a quantity available of 0 as long as that wasn’t the only active variation.

What can I do to stop this from happening?

There are a few actions that can be performed to avoid situations like this.

The easiest and most effective solution is to simply increase your setting for Display to a number higher than what your buyers commonly buy. If you sell something that people only ever buy singingly then it is probably OK selling with Display set to 2. But if buyers occasionally buy 2 or 3, experiment with slightly higher numbers. Over time the number of quantity sold (as shown by eBay to your buyers) will increase and as long as you have a quantity available of 10 or less, your listing will have the appearance of scarcity.

Another, often overlooked, setting is your buyer requirements. eBay allows sellers to automatically block buyers who meet certain criteria such as feedback and unpaid listings. eBay also lets sellers select the maximum number of items someone may purchase from you in a set period of time. This lets you choose a number purchased from 1 – 10, 25, 50, 75, and 100. Simply select a number that is one lower than your setting for Display and no single buyer will be able to end any of your listings. Just keep in mind that if your business depends on selling multiple different products to the same buyers this setting may negatively impact sales.

Buyer Requirements

The true cost of this happening.

In most cases a listing ending due to this situation doesn’t cause any significant harm.  A listing that ends will permanently lose its watchers, number of quantity sold, and the cost to relist.

The cost to relist for most sellers is between $0.03 and $0.20 depending on their store subscription level plus any optional features that had been added.  For eBay.com most optional (and expensive) features liked Featured First, etc have been retired limiting potential financial loses. The fee to relist was very likely already paid for by the sale that ended the listing.

Watchers, for the most part, are irrelevant to a listing because they rarely if ever come back to purchase.  The whole point of QM is to prevent them from adding your listing to the watch list in the first place and make their purchase immediately instead.  There are however cases where eBay will cross promote a listing for free inside competing sellers’ listings if it is one of the top 5 most watched listings in the same category.  If that applies to your listing then it is strongly advised that you perform one of the preventative measures mentioned above.

One thing that isn’t lost in this case is your best match ranking. As long as a listing is relisted within 7 days of ending its recent sales score will be carried over into the next listing. QM also has the ability to relist immediately upon ending due to this situation ensuring that your score is not lost.

Some sellers actually have found that having a Display setting of 1 paired with auto-relisting provides enough benefit to make up for any of these losses.

Will QM ever be able to work in this situation?

It is unlikely given the way eBay currently operates.

Most eCommerce sites end a listing immediately upon the quantity available becoming 0. Some sites like Amazon which doesn’t let sellers create actual listings does not have that issue. As eBay becomes progressively more like Amazon and moves towards everything being catalog based there may come a point in the future where it is possible.

eBay could also open their developer’s program to embedding functions into the eBay platform itself. This is even more unlikely though due to security and performance concerns.

How well does QM work outside of this situation?

QM has a very strong record of keeping listings active when excluding all cases where a single buyer purchased a quantity equal to Display in a single order. In most cases QM will refresh a listing in around six seconds after a sale has occurred with recent improvements making it as quick as four seconds in many cases. We spend several hundred dollars per month in hosting costs and infrastructure improvements to keep everything running as smoothly and quickly as possible.

From the period 11/25/10 – 12/25/10 (the busiest time of the year on eBay) QM failed to refresh a listing in time 0.006% of the time. In many cases the failure was due to a buyer accidentally duplicating an order within seconds or the seller accepting multiple best offers before waiting for QM to refresh the listing.