{"id":71,"date":"2011-04-19T23:39:15","date_gmt":"2011-04-20T06:39:15","guid":{"rendered":"http:\/\/www.qtyman.com\/blog\/?p=71"},"modified":"2017-10-29T22:25:14","modified_gmt":"2017-10-30T05:25:14","slug":"what-qm-cant-do-part-2","status":"publish","type":"post","link":"https:\/\/www.qtyman.com\/blog\/2011\/04\/19\/what-qm-cant-do-part-2\/","title":{"rendered":"What QM Can&#8217;t Do (Part 2)"},"content":{"rendered":"<p>This is the second post in a series explaining certain technical limitations with Quantity Manager.\u00a0  Today we&#8217;ll cover third party tool compatibility.\u00a0  QM should work OK alongside many other eBay third party tools but caution should be taken when they adjust listing quantities.\u00a0 In particular we&#8217;ll be addressing the situation where a subscriber changes their Inventory in another app and then expects QM to change Inventory accordingly.<\/p>\n<p>Typical issues we hear about include:<\/p>\n<ol>\n<li>I sold something in ProStores<sup>\u00ae<\/sup> but QM didn&#8217;t reduce my Inventory.<\/li>\n<li>I updated listings in Turbo Lister, Blackthorne, or some other listing tool and my Inventories didn&#8217;t update.<\/li>\n<\/ol>\n<p>On the surface these sound like fair complaints.<\/p>\n<p><big><strong>Why This Isn&#8217;t Possible<\/strong><\/big><\/p>\n<p>When certain events like listing creation, sales, or listing revisions  occur, eBay sends QM a message.\u00a0 QM then runs a series of scripts based  on the type and content of that message.\u00a0 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.<\/p>\n<p>For our examples we&#8217;ll use the following parameters:<\/p>\n<ul>\n<li>Inventory = 100<\/li>\n<li>Display = 5<\/li>\n<li>Quantity available on eBay = 5<\/li>\n<\/ul>\n<p><strong>Naive Solution<\/strong><\/p>\n<p>It would seem then that the solution is very simple.\u00a0 QM should just observe a quantity increase or decrease and reduce Inventory by that amount.\u00a0 In this example a user simply decreases the available quantity to 3.\u00a0 QM sees that the quantity available has decreased by 2 and reduces Inventory to 98.<\/p>\n<p style=\"text-align: center;\"><img loading=\"lazy\" decoding=\"async\" class=\"size-full wp-image-78 aligncenter\" title=\"Naive Solution\" src=\"https:\/\/www.qtyman.com\/blog\/wp-content\/uploads\/2011\/04\/naive.jpg\" alt=\"\" width=\"640\" height=\"149\" srcset=\"https:\/\/www.qtyman.com\/blog\/wp-content\/uploads\/2011\/04\/naive.jpg 640w, https:\/\/www.qtyman.com\/blog\/wp-content\/uploads\/2011\/04\/naive-300x69.jpg 300w\" sizes=\"auto, (max-width: 640px) 100vw, 640px\" \/><\/p>\n<p><strong>The Problem<\/strong><\/p>\n<p>It would seem like the above solution should work and it actually will most of the time.\u00a0 However, in order for this to work every time we must have the following guarantees:<\/p>\n<ol>\n<li>QM will receive all messages.<\/li>\n<li>QM will receive only one copy of each message.<\/li>\n<li>QM will receive all messages in the correct order.<\/li>\n<\/ol>\n<p>Unfortunately none of these are guaranteed.\u00a0 Missed messages are lost forever leaving Inventory unchanged.\u00a0 Duplicate messages would cause Inventory increases or decreases to be doubled or even tripled.\u00a0 Out of order messages could cause Inventory to go out of sync in unpredictable ways.<\/p>\n<p><strong>Lost Message<\/strong><\/p>\n<p>In this example the user again decreases the available quantity to 3.\u00a0 QM  never receives the message so Inventory stays at 100 even though it should be 98.<strong><br \/>\n<\/strong><\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-82\" title=\"Lost Message\" src=\"https:\/\/www.qtyman.com\/blog\/wp-content\/uploads\/2011\/04\/lost.jpg\" alt=\"\" width=\"640\" height=\"149\" srcset=\"https:\/\/www.qtyman.com\/blog\/wp-content\/uploads\/2011\/04\/lost.jpg 640w, https:\/\/www.qtyman.com\/blog\/wp-content\/uploads\/2011\/04\/lost-300x69.jpg 300w\" sizes=\"auto, (max-width: 640px) 100vw, 640px\" \/><strong>Duplicate Message<\/strong><\/p>\n<p>In this example the user decreases the available quantity to 3.\u00a0 QM  sees that the quantity available has decreased by 2 and reduces  Inventory to 98.\u00a0 Later a quantity of 2 is sold on eBay and QM reduces the Inventory to 96.\u00a0 However, eBay sends a duplicate of the original quantity revision so QM again reduces Inventory by 2 to the incorrect amount 94.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-84\" title=\"Duplicate Message\" src=\"https:\/\/www.qtyman.com\/blog\/wp-content\/uploads\/2011\/04\/duplicate.jpg\" alt=\"\" width=\"640\" height=\"400\" srcset=\"https:\/\/www.qtyman.com\/blog\/wp-content\/uploads\/2011\/04\/duplicate.jpg 640w, https:\/\/www.qtyman.com\/blog\/wp-content\/uploads\/2011\/04\/duplicate-300x187.jpg 300w\" sizes=\"auto, (max-width: 640px) 100vw, 640px\" \/><strong>Wrong Order<\/strong><\/p>\n<p>In this example the user decreases the available quantity to 3.\u00a0 Then the user realizes this was a mistake and corrects it back to 5.\u00a0 However, the messages are received in reverse order leaving the user with an incorrect Inventory of 98.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-86\" title=\"Wrong Order\" src=\"https:\/\/www.qtyman.com\/blog\/wp-content\/uploads\/2011\/04\/order.jpg\" alt=\"\" width=\"638\" height=\"222\" srcset=\"https:\/\/www.qtyman.com\/blog\/wp-content\/uploads\/2011\/04\/order.jpg 638w, https:\/\/www.qtyman.com\/blog\/wp-content\/uploads\/2011\/04\/order-300x104.jpg 300w\" sizes=\"auto, (max-width: 638px) 100vw, 638px\" \/><big><strong>Then How Can QM Track Sales?<br \/>\n<\/strong><\/big><\/p>\n<p>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.\u00a0 It turns out all messages from eBay fail to make any of the necessary guarantees.\u00a0 However for sales and listings these can be easily overcome by polling the eBay site and by having something unique regarding those messages.<\/p>\n<p>Missed sales and listing notifications are currently checked for once every 30 minutes.\u00a0 This wouldn&#8217;t work for tracking revisions because the listing could have been revised multiple times between checks and only the final state would be visible.<\/p>\n<p>Duplicate listing and sales messages are not a problem because each listing and transaction is unique.\u00a0 If a listing is already in the database the message can just be ignored.\u00a0 If a sales notification is duplicated then QM sees that the transaction has already been handled so the message is again ignored.<\/p>\n<p>If a listing message or sale message occurs out of order it doesn&#8217;t matter for several reasons.\u00a0 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.\u00a0 If two listing notifications arrive out of order they are from different listings so it doesn&#8217;t matter.\u00a0 If two sales messages for the same listing arrive out of order it again doesn&#8217;t matter because each message contains the exact amount sold for that transaction.\u00a0 This allows QM to correctly track the differences in Inventory.<\/p>\n<p><big><strong>The Good News<\/strong><\/big><\/p>\n<p>As it has been shown there are several pitfalls with supporting this sort of feature.\u00a0 The good news is that we recognized these issues ahead of time rather than trying to <strong> <\/strong>implement a system that had no chance of working.\u00a0 This means our subscribers do not have to worry about any of the above situations occurring with their accounts.\u00a0 Instead revision messages are simply used to advise QM of possible changes like price, end time, title, or available quantity (but not Inventory).\u00a0 None of these impact the way QM behaves.<\/p>\n<p><big><strong>The Bad News<\/strong><\/big><\/p>\n<p>Unfortunately this means that such a feature will most likely never exist with Quantity Manager nor any other decent 3rd party stand-alone application.<\/p>\n<p>The only way this could ever be supported would require eBay to change the way they handle revisions.\u00a0 This would require eBay to keep track of every revision ever performed per listing and make that retrievable on a per seller basis.\u00a0 Furthermore those revisions would need to have a unique identifier and timestamp attached to them.\u00a0 It is highly unlikely eBay would ever take on such overhead though the site itself does imply that such information is logged.\u00a0 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.<\/p>\n<p>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.\u00a0 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.\u00a0 For example making a simple change to a listing&#8217;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.\u00a0 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.<\/p>\n<p>Compatibility with specific 3rd party tools could be achieved but would require us working directly with the developers of the other product.\u00a0 We did try to reach out to ProStores back in 2009 but rather than letting us join their developer&#8217;s program they instead ignored us and then ceased accepting new members.\u00a0 If you are another third party developer and want to ensure your apps are compatible with ours, please contact us.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>This is the second post in a series explaining certain technical limitations with Quantity Manager.\u00a0 Today we&#8217;ll cover third party tool compatibility.\u00a0 QM should work OK alongside many other eBay third party tools but caution should be taken when they adjust listing quantities.\u00a0 In particular we&#8217;ll be addressing the situation where a subscriber changes their [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[4],"tags":[21,20,19,18,15],"class_list":["post-71","post","type-post","status-publish","format-standard","hentry","category-features","tag-ebay-third-party-tools","tag-inventory","tag-limitations","tag-not-a-bug","tag-quantity"],"_links":{"self":[{"href":"https:\/\/www.qtyman.com\/blog\/wp-json\/wp\/v2\/posts\/71","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.qtyman.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.qtyman.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.qtyman.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.qtyman.com\/blog\/wp-json\/wp\/v2\/comments?post=71"}],"version-history":[{"count":33,"href":"https:\/\/www.qtyman.com\/blog\/wp-json\/wp\/v2\/posts\/71\/revisions"}],"predecessor-version":[{"id":126,"href":"https:\/\/www.qtyman.com\/blog\/wp-json\/wp\/v2\/posts\/71\/revisions\/126"}],"wp:attachment":[{"href":"https:\/\/www.qtyman.com\/blog\/wp-json\/wp\/v2\/media?parent=71"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.qtyman.com\/blog\/wp-json\/wp\/v2\/categories?post=71"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.qtyman.com\/blog\/wp-json\/wp\/v2\/tags?post=71"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}