Virtual World Merchant

Print
Quick Overview

Introduction

Sell in your online store and Deliver in a Virtual World.

This extension for Magento provides to merchants of Virtual Worlds (Second Life included) the tools needed to sell and delivery in-world items to in-world avatars from within Magento platform in a transparent way like any other product, using a auto-synchronized network of in-world vendors.

Terminology

In-World Item
The object/texture/sound/animation/script or whatever item that you own in a virtual world and that you are willing to sale. You can have as many as you wish.

In-World Vendor
The in-world object used to hold in its contents the items to be sold, and to send them to avatars that purchase them. You can have as many as you wish, and organize the items among all vendors as you wish.

In-World Vendor LSL Script
Script that needs to be dropped inside any in-world object to make that object work as one of your vendors.

Magento Product
The products in your Magento catalog that represents in-world items. When sold, they create a download link in the customer's account, to request the item in-world whenever.

Setup in-World Vendors

Go to System->Configuration->VIRTUAL WORLD MERCHANT->In-World Vendors Settings.

In LSL Script for In-World Vendors copy the content of the script to your clipboard.

Connect to your favorite virtual world and paste your clipboard as a source of a newly created script in your inventory (this script can have any name that you wish), and drop it inside the object/s that you wanna use as vendor/s.

Wait a few seconds while the vendor/s synchronize with your Magento instance before go to Catalog->Manage In-World Vendors and Catalog->Manage In-World Items to check that everything went as expected.

Create Products in Magento

Go to Catalog->Manage Products and click the button Add Product.

Select Default (In-World Item) as Attribute Set, and In-World Item as Product Type, when you're click Continue.

Fill in all the required fields as a bare minimum and save your changes.


Extended Documentation

Configure In-Word Vendors Behaviour

Go to System->Configuration->VIRTUAL WORLD MERCHANT->In-World Vendors Settings.

For security reasons, in Validation Key modify the value of the secret key and save your changes. This will keep the communication between your Magento instance and your vendors as safe as possible, avoiding intruders to reach the funcionalities of your vendors.

In Automatic Synchronization check if the values satisfy your needs, but the default ones should be fine, since its recommended to have the sychronization activated and with a value that doesn't exceeds the patience of the customers together with keepin the servers with good response times.

Synchronize In-World Vendors with Magento

Go to System->Configuration->VIRTUAL WORLD MERCHANT->In-World Vendors Settings.

In LSL Script for In-World Vendors copy the content of the script to your clipboard.

Connect to your favorite virtual world and paste your clipboard as a source of a newly created script in your inventory (this script can have any name that you wish), and drop it inside the object/s that you wanna use as vendor/s.

Anytime before or after you drop the LSL Script, you can drop other items inside to the content of any of your vendors, and they will be synchronized after every new drop/remove of a item in its content, just wait a few seconds while the vendor/s synchronize with your Magento instance before go to Catalog->Manage In-World Vendors and Catalog->Manage In-World Items to check that everything went as expected (you should see notices in-world about the synchronization in the form of 'message to owner').

reSynchronize In-World Vendors with Magento

This action is done automatically every time you drop or remove a item from the content of a vendor, or when a vendor is moved, or when the sim where the vendor exists is restarted.

In the first two cases, there isn't any downtime, but in the later case, the vendors and items affected will have a temporary status of Offline, that will change to Online as soon as the Interval of the Synchronization runs again.

The status of your vendors and items is available at Catalog->Manage In-World Vendors and at Catalog->Manage In-World Items, or can be tracked using the RSS Feeds located at the top of those pages.

If you wanna synchronize your vendor/items manually at any time for any reason, you can do it by going to Catalog->Manage In-World Vendors and click in the row of the vendors, or using the button 'Synchronize All', or check the checkboxes and select the action 'Synchronize'.

Configure Magento Catalog for show In-World Items

Items are visible in the public catalog of Magento based on the same conditions as any other product type, but there are a few global variables that you can customize:

Go to System->Configuration->VIRTUAL WORLD MERCHANT->Catalog Settings.

In Product View you can select if a in-world link to the location of the vendor and/or of the sample may appear in the page that is the product's view. You can also select if the customer will be teleported to the in-world location, or will see the official worldmap in a new tab centered at the given location with a link to be teleported too.

In Customer Account you can write the title of the link that will appear in the Downloads section of the customer's account, that link will be used to request the item in-world, and the title of that link, must be equal for all products (it appears near the name of the product, therefore is not needed to have the name of the product, but the action that it does, so the customer can understand what will happen later than click on it).

Create a Product in Magento Linked to a In-World Item

Go to Catalog->Manage Products and click the button Add Product.

Select Default (In-World Item) as Attribute Set, and In-World Item as Product Type.
Other combinations will not work, unless the new 'Attribute Set' that you wanna combine is extended from 'Default (In-World Item)' at the time of the creation in Catalog->Attributes->Manage Attribute Sets. Keep in mind that the 'Product Type' must be always 'In-World Item', but the 'Attribute Set' can be any correctly created based on 'Default (In-World Item)'.

Later than click on Continue, fill in all the fields as you wish, but now taking care about the fields inside the menu at the left side called In-World Item. You can have as many products as you wish referencing a single in-world item.

You must define the in-world item that this product stands for, using the dropdown of the field In-World Item Reference.

Also you must define how many times a customer is allowed to request the item. That value is defined in Number of allowed downloads and can be 0 for unlimited request, but if the item has no-copy permissions, it should be defined as 1. Or, you can define a given number of your convenience to limit the requests even if the item has copy permissions.

Optionally, you can offer a Sample or Demo in-world location to allow your customers to be teleported and test the item in-world before purchase. To do this, you will need to define the Map Link and a title for it (using the top-right button at http://maps.secondlife.com/ named 'Create Your Own Map Link').

When saving your changes, your product may appear in the public catalog based on the same conditions that are also currently applied to any other product type.

Selling In-World Items in Magento

When a customer purchase one of your products, it counts as a Virtual product type, and will not require to enter the 'Shipping Information' (but other products in the shopping cart may require it).

After the order is successfully placed, a new link will appear in the customer's account page, inside the 'My Downloadable Products' section, allowing the customer to request the item in-world, and it will be available to click as many times as you previously defined for that product in 'Number of allowed downloads'.

Delivery In-World Items from Magento

This action is done automatically by the vendor that holds the given item each time a customer request a in-world item.

Before a customer can request any in-world item from your store (and a message will tell them to do so if they attempt to request a item first), they must provide the UUID Key of the avatar that will receive the in-world item. To help them, theres no need to enter the UUID Key manualy, but the Username in the Virtual World of that avatar, in the customer's account, under the Second Life Information section.

Only if the item is finally delivered in-world to the avatar of the customer, the countdown for allowed number of downloads will decrease by 1.


F.A.Q.

Common Questions of All Times

What Virtual Worlds are supported?
The target of this extension is Second Life, but any virtual world based on Open Metaverse Foundation, OpenSim and OSgrid (as far as tested) is supported, just keep in mind that you may need to change the map links to teleport customers to another virtual world rather than the default of Second Life.

How exactly works the communication between Magento and my vendors?
Magento only connects to your vendors to delivery items.

Vendors save internally the url to your Magento instance, and they communicate to Magento when needed. That is because then, Magento is free from start new connections to all your vendors to check if new products exists or if there are new ones (and slow down your online store meanwhile). Instead, every time you drop or remove a item from the content of a vendor, or when a vendor is moved, or when the sim where the vendor exists is restarted, or when the interval or manually synchronization runs, they will be synchronized.

Moreover, vendors have assigned a non-public url in the virtual world server to access it when needed from Magento (that is when a customer request a item). In the even that the virtual world server is restarted (for maintenance or whatever) or if you manually restart the LSL Script, a new non-public url will be assigned again and your Magento will not be able te reach the your vendors, but the vendors itself will automatically synchronize back to Magento as soon as the script runs again.

Can i modify the source of this extension to satisfy my requirements?
Absolutely, feel free, because it is licensed under the terms of the GPLv3 (see http://license.nightlydev.org)


Ok, but, What If..

..I want to move my vendor!
If you move it, it will be synchronized without any problems as long as it have the script inside.

The only problem while moving a vendor, is if the script is not inside while you move it. If so, after the script is dropped again, if the vendor was moved, it will become a new vendor if is not in the same location, and the old one will never be online again, making the old items unavailable to download to your customers anymore.

..I want to restart/remove the script inside the vendor to put it back later on!
As long as the vendor remains in the same sim and same position, it will be synchronized later on.

..my vendor/s are in Offline status!
While a vendor is offline, the customer will be asked to wait for the amount of time that you defined as 'synchronization interval', and to contact you if the situation persists (or contact you directly if the synchronization is disabled).

The Offline status only have consequences when a customer try to request a item. Even in Onffline status, the products that reference those items will remain availabe to purchase in your public catalog.

..my vendor/s keeps in Offline status!
If you face the worst possible scenario, that is when the Virtual World servers dumps to nowhere the internal memory of the LSL Scripts of your vendors, you may need to connect in-world and restart the LSL Script of your vendor/s manually to fix this situation and get back to business.

..my vendor/s are too much often back to Offline status!
You better contact your sim owner, or your virtual world owner directly, because is not normal to have downtimes too often. The only possible reason should be a maintenance tasks in their servers, so ask for what else is going on there.

..I need to change the URL of my Magento Store!
Do it, and later copy/paste the script again to all your vendors (notice that the first line of the script will correctly point to your new online store).


Known Issues

Everything works smoothly, but if this is not the case for you, feel free to contact me using the Developer Info links at the top of this page.

and and and thank you for reading!