CasperVend 2/Deliveries

From CasperTech Wiki
Jump to: navigation, search

German flag.gif Schaue hier in Deutsch!

Troubleshooting Flowchart

You can use the Delivery Flowchart for a simplified way to isolate problems, or you may analyze the transaction log yourself (see below for instructions and message examples.)

Time Change Bug

Twice a year - spring and fall/autumn - the SL grid time and the UK timezone that CasperTech is based out of, go out of sync for about a week because they don't change times on the same weekend. During this time period, transactions that occur between 11pm/23:00 hours and midnight may not appear on the day you expect them to - they may, instead, appear in the sales statistics for the day before, or the day after, they actually took place, depending on the time of the year.

Getting Your "Merchant Link"

If you ask for help in the CasperTech support group in Second Life, you may be asked for your "merchant link" - this section tells you where to find it. The merchant version is important because that actually has the "giant wall of text" log file that gives all the details of what is going on during the transaction. The link the customer gets doesn't show the log.

Finding your "Merchant Link":
Look in your local chat history. You should see a notification with this wording:

 CasperVend System: You just sold a ((product name)) to ((customer name)) 
 for ((L$price)) in ((sim/region name)). 
 View the transaction log here: ((clickable web link))

Simply click that link to be taken to your merchant transaction log.

You will get a transaction log from all vendors, but not from lucky chairs, gatchas, or midnight madness boards.

"...Pricing Info is Out of Date"

This simply means that you changed the pricing, but the vendor was paid before it knew about the change.

This could be either the customer was in the shop to make the purchase when you did that, or the change message never made it TO the sim (part of the HTTP-IN issue...) to get to the vendor.

Once a transaction generates this error, the affected vendor is reset so it won't happen again on that vendor (until the price changes again).

Read Your Transaction Log

Are all of the purchase transactions suddenly failing? If you turned on your panic button recently, you may have forgotten to turn it off - you'll see this in the transaction logs if you forgot to turn off the panic button.

Step 1: 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, you will see the following message:
 "No item configured on this product for delivery, so skipping delivery phase."
  Fix by checking product listing on the website and selecting the actual product. See the option marked #1 in the image below and to the right. 
Click for larger version
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?
If NOT, you will see a message like the following:
 "Amount paid is less than the product price (Paid: 0, Price: 99). Doing some quick checks to ensure this is legit."
Then it will check to see if it's acceptable. In this example block, a vendor override is in effect:
 "Not gatcha or lucky chair.."
 "Not MM or GC.."
 "No general discount set"
 "Group discount is: 10"
 "Expected price is: 89.1"
 "Group discount doesn't account for reduced price (89.1)"
 "Price paid matches vendor override setting. Authorised."
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?
If so, you will see the following message:
 "Customer spend of $____ qualifies for a discount of ___%"
 "Loyalty discount will be awarded for ___%, since it's the greatest."
14) Is there a customer credit balance?
15) Are they "free" vendors subject to CT commission?
16) Are they affiliate vendors subject to affiliate fee?
If so, you will see the following message:
 "Executing step: affiliatefee"
 "Paying affiliate vendor fee"
If the system can NOT contact one of YOUR vendors, you will see:
 "Exception: Pay: No vendors or holovendors could be found to make the payment"
 In some cases (such as when gift cards are used), the affiliate commission is paid through YOUR vendors, not any vendor the affiliate has rezzed out.
17) Are there profit shares?

Step 2: Resolve avatar names


1) Resolve name-to-key
It should be rare, but if the system can't find a customer with a new account, just have the new account click any vendor to be added to the name2key database.

Step 2.5: Gift Delivery


IF the customer has purchased a product as a gift for someone else, AND is having the CasperVend system deliver the product, you will see these messages:
1) Confirm gift (Asks the customer to confirm that this is a gift, and who it's going to)
   "Executing step: giftconfirm"
2) Inform the gift recipient about their gift
   "Executing step: informrecipient"
   "Informing recipient about the incoming gift."
3) If recipient is offline, wait for them to come online
   "Executing step: waitforonline"
   "Online check result: 0"
   "Exception: Suspended processing until user is online (120)"
4) If recipient is online, send the product (Please note: This may be days, weeks or months AFTER the transaction actually took place!)
   "Executing step: deliveritem"'
   "Locating dropbox that contains our item."
   "Beginning standard delivery process for item ((product name))"'

Step 3: 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
If a DropBox has been inactive six months or more, it gets purged from the database, and you will see these messages:
 Trying to locate item '((product name))' in box ((dropbox UUID))..
 Couldn't load dropbox data - hard fail.
 **** Solution: Click for popup menu, then reset the dropbox.
4) Check if box is active
5a) If box IS active, refund any earned discount (loyalty bonus, etc.) at this time
5b) If box is 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 capitalisation 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"
You may see this message instead if it cannot properly talk to a DropBox that contains the item:
 "DropBox issued invalid response: from URL: ((sim/region URL string)) dropbox key: ((UUID of DropBox))
 "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 times out and 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))"
"Delivery success! v2 DropBox returned VERIFIED - took ((number)) seconds."
8) If a second item is selected in the product listing, you will see this message:
 "Attempting delivery of the second item."
  This message ONLY appears if you have a second item configured. If you don't normally configure a second item, check 
  your product listing on the site for an accidental addition.

Step 4: Send Delivery Notices


1) Send the various "transaction complete" IM's to both merchant and customer

Step 5: Add to Statistics


1) Add to web stats
2) Send ANS message if required
3) Add to customer stats

Step 6: Send Linked Messages


1) Send linked messages (such as API script calls)
2) Send message to dropbox

Step 7: 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

Video About Delivery Issues

Casper created an explanatory video about viewer-related delivery issues in Second Life. This information pertains to ALL scripted delivery and vending systems - not just CasperVend - and explains points #1 and #2 in the next section.

Video by Casper explaining viewer-related delivery issues

If the customer is on a V3-style viewer, they need to look in their upper right (or lower right if they're on a really old version) and click the object icon to get the delivery popup back. This icon is shown in the image below, just follow the yellow arrows:

Where to click for missing delivery popup

Transaction Log OK, but Still No Delivery?

Then what may have happened is any of the following:

  1. 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.)
  2. Customer may have accidently clicked "Delete" - if you are not using the Bot Delivery system, clicking "delete" doesn't even send it to the user's trash folder - it's just gone forever.
  3. Customer may have accidentally muted your dropbox
  4. Customer may have muted - by name - "CasperTech DropBox ((version number))" from someone else. If you have never renamed YOUR dropbox from that default, then YOUR dropbox would get caught in that muting as well.
  5. Customer may have accidentally muted YOU
  6. Customer may be in "busy" mode (which typically declines *everything*, regardless of whether it comes from a person or object)
  7. Customer might need to relog to see either the delivery prompt, and/or see the product in their inventory.

Delivery Errors

"DropBox Issued Invalid Response..."

This message sometimes comes up when it can't find the item.

This is NOT specifically a "must upgrade" issue - using an UpgradeBee will NOT fix this.

"Can't find the item" simply means it cannot properly contact a DropBox that contains the item. The sim/region may simply not be speaking properly to the outside web, or the DropBox may have "gone to sleep."

Things to try:

  1. First, check and make sure the product is actually in the DropBox(es)
  2. Reset your DropBox(es)
  3. If Reset doesn't work, then manually Edit > Reset scripts in selection.

"Transaction Is Currently Suspended"

If you get a message similar to the following:

  CasperVend System: Your transaction ((UUID numbers/letters)) is currently suspended and cannot complete because 
  'The item '((name of product PACKAGE))' is not available for delivery. 
  Transaction will refund shortly if this is not resolved.'. Please rectify the situation.

This is typically due to one of three situations:

  1. The system cannot see the rezzed dropbox that the item is in.
  2. The system cannot see the item - that the product listing is looking for - in ANY rezzed dropbox (for example, if you've renamed the product package, but forgot to update the website listing, or if you've capitalized one but not the other - names ARE case sensitive...)
  3. Your DropBox version is not current - the Lab introduced some bugs in 2015 that cause older dropboxes to either outright fail, or take too long to deliver product. As of August 2015, the current DropBox version is 2.26.

Sometimes this can be due to user error, but sometimes this can be due to SL grid issues, i.e., the sim/region stops talking to the outside world properly. If you get this a lot, and you do not have at least one set of duplicate DropBox(es), we STRONGLY recommend that you do so, as this will greatly reduce, if not eliminate, the problem.

"The Product I'm Trying To Deliver Doesn't Exist!"

This means that you deleted the product listing without cancelling the transaction first.

Setting up the product again will not fix this problem. Resetting the dropboxes will not fix this problem.

You - the merchant - will need to cancel the transaction - there's a "cancel" link in the 5th white block on the merchant version of the transaction status page.

Messages will continue until the affected transaction is cancelled.

"Unknown Product" or "Product Doesn't Exist"

If you have deleted the product listing in an attempt to recreate while the transaction is happening....all that will happen is that particular transaction is not ever going to complete because the system will not EVER connect the old transaction-in-progress with the new listing. The only solution is to cancel the transaction.

Creating a new listing, even with the same name and information, will NOT pick up the previous transaction ID in progress - the system at that point is tracking ONLY by the transaction ID, and a new product listing is not connected to the transaction-in-progress at all. Unfortunately, this currently also means that the transaction will now go in a loop - and will not time out. You'll keep getting messages about every 10 minutes until you cancel the transaction.

You will need to CANCEL the transaction for the "Unknown Product" - you can do this by clicking on the merchant link for the "doesn't exist" transaction. Once you are there, scroll down 5 boxes, and look for the "cancel this transaction" link. Click that, and the transaction will cancel in a few minutes and stop sending you messages.

FAQ / Troubleshooting

Q. Why'd my vendors suddenly stop delivering notecards / demos / products?
A. Things cannot be delivered if the system cannot find the dropbox, and/or cannot find the product items it's been told to send. Therefore, the first points to check are:
* Is the item IN the dropbox?
* Is the site pointing to the correct item(s)
* Have you recently changed the name on the product / notecard / demo, without updating the website to point to the new version?
* Has the sim/region "gone dark"? (If so, the only solution is restart the sim and/or have duplicate DropBox(es) on at least one other sim/region.)
* How many items are in your DropBox? (Remember if there are too many things in the DropBox, the SL servers seem to make stuff "go missing" - which would also prevent delivery of items.)
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. Click the DropBox and select "Re-Sync" from the popup menu - if that doesn't work, then manually Edit > Reset scripts in selection to get them to actually reset. Be sure you use the popup menu first!
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". There was a bug which meant that "price overrides" or 100% discounts did not behave as a "free product", but this has now been resolved.
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, but you will 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. See this video Casper created that explains this problem.
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 grid issue, not anything 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.