ShopDrop/AutoShop Integration

Description

Integrates with Laz's ShopDrop (LAZ#5401 https://discord.gg/6pQKgjT) or WorldIsMine's AutoShop (WorldIsMine#0001 https://discord.gg/DVBhXDFGcP), allowing you to post up a subset of your products to D2JSP and have iDB deliver the items!

How To

Adding New Entries

  • Add to ShopDrop (and edit) is for adding one entry at a time and opening up the edit window.
  • Add to ShopDrop (immediate) is for adding one or more entry at a time with the defaults:
    • Price = 0
    • Cap = ShopDrop-DefaultCap
    • Threshold = ShopDrop-DefaultThreshold

Editing Entries

Sorting

First must disable grouping:
Then click on the column headers. Beware, it is slow! Highly recommend using Excel / Google Docs instead.

Editing in Excel

After exporting the data from iDB and importing into Excel, select the first cell:
Go to Data tab, then Filter:
Arrows should appear now that let you filter the visible rows:
To do complex sorting that keeps rows intact, click on the Sort button:

Editing in Google Docs

After exporting the data from iDB and importing into a Google Doc, highlight all of the data, then go to Data, then Sort range:
Make sure to tell it that headers are included:

Configuration

Info

  • Thumb and Graphic are auto-generated based on the underlying Code, much less work for you! It utilize the Type, Quality and Graphic properties on the Code to grab the correct thumb.
  • Price of 0 means iDB won't send that entry to ShopDrop (totally invisible to Laz)
  • Threshold means how many of that item you want to keep in iDB, unreported to ShopDrop. Like for Jah Runes maybe you want to keep 20 at all times for order deliveries. So, if you had 25 Jah in stock but defined a threshold of 20, then we would tell ShopDrop we have 5.
  • Cap logic is not controlled by iDB, instead it is controlled by Laz' app:
    • ‐1 cap means it will be like 999 (no cap essentially)
    • 0 cap means it will be 0 and won't show (but the product is visible to Laz)
    So let's say you have 25 Jah, you set threshold to 10 and cap to 5. That means iDB will report 15 Jah to ShopDrop, and then ShopDrop will only display 5 in the picture. Now let's say you drop bunch of Jah and you have only 14 left. That means iDB will report 4 Jah to ShopDrop, and then ShopDrop will display 4 in the picture.
  • iDB's UI isn't very good for editing ShopDrop entries in comparison with editing via Excel / Google Docs. So once you've added all the codes you want to manage, export the data, open in Excel or a text editor, then re‐arrange, fill in values there, etc, then re-import into iDB.
  • Special packs are treated as SpecialStrict when ordered via ShopDrop.

Proof of Drops

Let's say you get accused of scamming and they demand a refund, or perhaps you see a ShopDrop order say that it "finished with errors" like this:
[08:01:42.077] [INFO]	ShopDrop Drop with ID 7265f62235964c3ebbe08b319680022f from any database queued.
[08:12:16.241] [INFO]	ShopDrop Drop with ID 7265f62235964c3ebbe08b319680022f from any database finished with errors.
This section will explain how to dig through the logs to figure out what exactly happened.

You'll need to look through the recent session logs like:
  • iDB-Logs\2020-03-25-08.57\ShopDropProcessor.log
  • iDB-Logs\2020-03-24-08.57\ShopDropProcessor.log
  • iDB-Logs\2020-03-23-11.39\ShopDropProcessor.log
..and search for the drop ID (eg. 7265f62235964c3ebbe08b319680022f) or the jsp user's name. Here's what you're looking for:
[08:01:42.077]	Drop was queued for USER, requested 2x301773 (Unmade - Spirit Monarch) on WSCL in GAME/PASS with order ID 7265f62235964c3ebbe08b319680022f.
[08:12:16.241]	Dropped 1x301773 for USER on WSCL in GAME/PASS.
You can see 2 unmade spirits were requested but only 1 was reported to have successfully been dropped. That's a good sign that the user rightfully complained. To find out more, we have to search the session's logs for that ID. If you have Notepad++ you can hit CTRL+SHIFT+F (Find in Files), fill in the ID and make sure Follow current doc. is checked:
Hit Find All to see a list of all the places in the logs related to this activity. Double-click on a result to be brought to that file.
After scanning the dropper module logs, we find something interesting in the 2nd Amn rune drop:
[08:02:13.404] [BNCS] [WARN]    Chat info - 'XXXX (*XXXX) is using Diablo II Lord of Destruction in a private game.'.
..
[08:02:09.295] [BOT] [INFO]    Dropped Code 17000030 (Amn Rune).
[08:02:09.295] [BOT] [INFO]    Waiting 540 seconds for pickup.
..
[08:11:10.340] [BOT] [INFO]    Successfully retrieved item ourselves.
[08:11:10.340] [BOT] [INFO]    Job aborted (pickup timeout).
[08:11:10.340] [BOT] [INFO]    Removed 1 aborted products.
[08:11:10.340] [BNCS] [INFO]    Disconnected (Sent: 721 Bytes, Received: 1.67 KB, Total: 2.38 KB over 09m27s).
[08:11:10.340] [BOT] [INFO]    Released spot in West/XXX, total of 1 in-game now.
[08:11:10.340] [BOT] [INFO]    Updated our items in the database.
[08:11:10.340] [GS] [INFO]    Exiting game.
So here we have proof that the buyer was in-game (and we have his character & account name). This dropper dropped the Amn rune on the ground and waited 9 minutes for the buyer to pick it up. After the 9 minutes ended, we picked up the item so that it doesn't poof (many items poof after 10 minutes on the ground). Now its up to you to decide whether to refund this user!

Examples