CasperVend 2/Deliveries
Anatomy of a Transaction
Ever wonder what goes on during a purchase transaction? Or where things can get hung up? On the merchant's version of the transaction link is a very long "wall of text" log file that gives the details. This is a simpler explanation of what goes on, and where some of the common error points are.
Calculating Processing Plan
- 1) What is the product name?
- 2) Is vendor affiliate locked?
- 3) Search for item connected to product name
- 4) Does product have an item configured to be delivered on purchase?
- If not, a "No product configured for delivery" message will appear here
- 5) Is recipient or purchaser banned?
- 6) Is merchant blocked?
- 7) Is transaction blocked?
- 8) Is maximum # of purchases exceeded?
- 9) Are duplicates restricted?
- 10) Did the amount paid match the purchase price?
- 11) Does the tag worn by customer match the one the vendor is rezzed under?
- 12) Are there group restrictions?
- 13) Has customer spent enough for a discount?
- 14) Are they "free" vendors subject to CT commission?
- 15) Are they affiliate vendors subject to affiliate fee?
- 16) Are there profit shares?
Resolve avatar names
- 1) Resolve name-to-key
- If someone is too new in SL the system won't find them because it doesn't know their avatar key yet - just have the new account click any vendor to be added to the name2key database.
Check Item Availability / Make Delivery
- 1) Find a dropbox that contains the item
- 2) Find product in the dropbox
- 3) Check item availability with the box
- 4) Check if box is active
- 5) If not active, check all previously-deferred boxes
- 6) When next box is located, see if product is in box
- 7) System repeats 1-6 until either a dropbox sends the item, or the maximum number of retries is reached.
- If a DropBox does NOT contain the product package at all (due to the product package either not being in the DropBox at all, or in the DropBox with a different name - remember, matching captialisation and spacing counts!), you'll see "just" these messages:
"No dropbox currently contains the item (product name)" "Exception: The item (product name) is not available for delivery"
- If a DropBox is on a sim/region that has "gone dark" - stopped communicating with the website - you'll see multiple sets of these messages until either success happens or fail point is reached:
"CHECK failed on....Response: Took 0.03 seconds to respond / time out." "Item not found." "Some inactive items found, trying to give the dropboxes the 'kiss of life'." "Sent kiss of life to v2 dropbox: (dropbox UUID)" "No active dropbox currently contains the item (product name)" "Exception: Unable to contact a suitable dropbox for delivery"
- If the delivery fails, in addition you will see:
"Exception: The item (product name) is not available for delivery"
- If the delivery is (eventually) successful then, in addition, you will see:
"Correctly loaded box. Attempting to issue CHECK command for item (product name)" "Attempting to load (dropbox UUID)" "Delivery success! v2 DropBox returned VERIFIED - took (number) seconds."
Send Delivery Notices
- 1) Send the various "transaction complete" IM's to both merchant and customer
Add to Statistics
- 1) Add to web stats
- 2) Send ANS message if required
- 3) Add to customer stats
Send Linked Messages
- 1) Send linked messages (such as API script calls)
- 2) Send message to dropbox
Customer Loyalty Message
- 1) Are there spend levels even set up?
- 2) If yes, send loyalty message to customer
- 3) If not, no loyalty message goes at all to customer
Step 8: Complete!
- 1) Set "transaction complete" or "transaction failed" message on status page
Transaction Log OK, but Still No Delivery?
Then what may have happened is any of the following:
- Customer may have not noticed the delivery popup (especially if they're on a v3-interface viewer such as the SL Viewer 3, Firestorm, Catznip, Exodus, etc.)
- Customer may have accidentally muted your dropbox
- Customer may have muted - by name - "CasperTech DropBox v2.11" from someone else. If you have never renamed YOUR dropbox from that default, then YOUR dropbox would get caught in that muting as well.
- Customer may have accidentally muted YOU
- Customer may be in "busy" mode (which typically declines *everything*, regardless of whether it comes from a person or object)
- Customer might need to relog to see either the delivery prompt, or the product in their inventory.
- Does your product package have an apostrophe in the name? If so, this TRUNCATES the name, the package is not delivered, but the transaction log will say that it did - and the truncation problem will block redeliveries as well! This happens to ANY system using scripts to read object names - not just CasperVend - the apostrophe is read as a "end of name" despite there being additional characters afterward.
FAQ / Troubleshooting
- Q. Customer paid for product, but only received the picture??
- A. This happens when your packaged product and your vendor picture have the exact same name. Please rename the picture, OR if you have already set up all your products, simply delete the pictures from your dropbox - the website will track the pictures by the UUID. Alternately, you can avoid this issue by simply pasting the picture's UUID into the appropriate box in the product listing, and never putting the pictures in the dropbox.
- Q. My customers aren't getting the product after purchase, and the redelivery terminal keeps giving them a "Failed: Couldn't find delivery box for item on SLIFE. This merchant may no longer be using CasperVend." message, when it IS in the dropbox, and I am still using CasperVend!
- A1. Reset / resync the DropBox(es). Use the touch menu first - if that doesn't work, then manually Edit > Reset scripts in selection to get them to actually reset.
- A2. If you have DropBox(es) on only one sim/region, then we strongly recommend having a backup set on at least one other sim/region location to reduce the risk of this happening again.
- A3. If you can, Restart/reboot the sim/region your dropboxes are on. It will take a few minutes for the dropboxes to reupload once the sim/region is back up.
- Q. I got this message: "failed because 'We've encountered a problem with pricing on the vendor (the price info is out of date). Please wait a minute and try your transaction again.' - the money has been refunded to the customer." - what happened?
- A. You may have changed the price recently and the vendor hadn't updated to the new price yet.
- Q. I'm trying to set an item to be delivered on touch by turning off the touch menu. Unfortunately, it's not delivering. How can I fix this?
- A. Make sure the product is set to be L$0 - if the product has a price greater than L$0 and the vendor has a price override of L$0, it's no longer considered "free on touch".
- Q. Can you limit a purchase to one per avatar for a limited time period?
- A. You can limit to one per avatar, but not for any time period. It's either limilted, or not - you have to make the changes manually. The 1-per-person limit is based on RECIPIENT, not buyer. So if you have the item limited to 1-per-person, the same person can buy 10 copies, but they have to go to 10 differnet avatars.
- Q. My customer said they bought one item, but received a completely unrelated item!
- A. Have the customer search their inventory for the item they actually purchased. What often happens is they will receive the item just dandy, but get confused by a broadcast delivery of something ELSE that happens right around the same time.
- Q. A customer bought two of something but I ony received the L$ for one, and I don't have any affiliates - what happened?
- A. Most likely reason: You have two caspervend scripts in one vendor. You may have run the update bee and it may not have deleted the old script when it dropped in the new script. Just delete the older of the two and you'll be fine.
- Q. How does the system track purchases when the servers are down?
- A1. When servers are UP, transactions are sent to all three servers simultaneously to ensure there's no problem getting the product to the customer.
- A2. When servers are down, our v2 vendors will:
- 1) Make multiple attempts to register that the sale took place
- 2) If they can't succeed, they'll send an email to a special inbox.
- 3) Once the servers return to active duty, the inbox is read every 5 minutes and any transactions recorded there are picked up and pushed through.
- This means, even if the database crashes, the transactions are NOT lost. They just have to wait until the database comes back to life.
- Q. Is it possible for lag to cause a multi-item vendor to deliver the wrong item, say, if it delivers the item that was up before the new one fully loaded on the vendor?
- A. No, that will never happen. The system will deliver the item that was configured. However....the user may not have understood which item was actually the active / selected item in the vendor.
- Q. I'm setting up products on the website. One of the options is for "Second Item". What is that? Can I include something like a free gift when sold?
- A. You can deliver an extra item (can be any item), however the SECOND item will NOT be included with redeliveries, only the FIRST (primary) item configured on the website.
- Q. A customer contacted me saying they never received an item / unacceptable delivery delays. My stuff is no-copy, so is there a way to cancel the first transaction if I redeliver the purchase manually?
- A. Casper Warden writes: "Yes, you need the transaction link which is sent to the customer when they pay the vendor. Then on that page you can cancel the transaction."
- If there's a delivery delay it usually means there's something that you (the merchant) need to fix - the details are in the wall-of-fine-print in the merchant link from the sale - just read carefully to see where the problem might be.
- Q. I've got a ton of customers complaining that they never got their purchase! When will these go through??
- A1. Casper will need the transaction URL that you and/or the customer received when the purchase was made. Without this link, he CANNOT see what's happened with the transaction. (Just the name of the product or customer is NOT helpful if there have been database issues.)
- A2. If the transaction completed and the customer is complaining they did not receive it, bear in mind the following:
- 1) Customers can miss the popup box -completely-, depending on their viewer. This is especially true for v3-based interface viewers (Firestorm, Exodus, Catznip, Niran's Viewer, the current Linden Lab viewer, etc.) where notices just seem to "vanish" if you don't tend to them right away.
- 2) Customer may have muted you for whatever reason in the past (this also prevents them from getting purchases from your servers.)
- 3) They may log off without "Accept"ing the delivery (thus, it gets lost.) If the product is copiable, they can redeliver it themselves from the redelivery terminal later.
- 4) If they've logged off before it got sent, their messages may have capped in the meantime (and thus the delivery gets lost.) If the product is copiable, they can redeliver it themselves from the redelivery terminal later.
- 5) Customer may have been in "Busy" mode, and the purchase was auto-declined.
- 6) If there's a global system issue, and your products are no-copy, and you are getting a lot more of this type of complaint than usual, it is possible that people MAY be trying to scam you, especially if they don't want to provide the transaction link they should have gotten. (Check your SL website transaction history if you have doubts.)
- A3. If you have no-copy items, consider having a "rez check" script in your product packaging - this will let you determine whether they rezzed out the item to unpack it.
- A4. LL *currently* does NOT have a "received verification" system in place. There is NO way to verify that a user accepted the delivery, unless (1) you have a script in the box that notifies YOU when it's rezzed out, and (2) they rez it in a script-enabled area.
- Q. A (single) user claimed that they didn't get a delivery...
- A. In addition to the points in the last answer, deliveries will also fail to arrive if they happen to be sent while the user is teleporting. This is why the vendor gives a message NOT to teleport away until the item is delivered. This is an SL issue, not specific to any vendor system - the grid sees you as "offline" while you're teleporting, because you are not in a single sim, but it's not a true "offline" status. NOTHING is guaranteed to get through in a teleport, not even IM's.