Hard coding expiration dates into LSL code was leading to a big problem with having to update my demonstration products every seven days. I worked at a solution today to host a database of licenses so that anyone can start the trial from the time that they first rez a product in-world. Most of the infrastructure on my web-based marketplace paid off as it was simple to setup an API to call the method and initiate a trial. Along with that, I have a bit of control over the message displayed to end-users to advertise my store, news and slurl to my shop. They only get the message at most, every five minutes if they keep interacting with the object. Otherwise, no message is displayed. I also display the length of time remaining (days/hours, hours/minutes, or minutes/seconds). Eventually, I’ll have 3 different versions of all of my products. Copy, Transfer, and Trial. The trial has both copy/transfer permissions and is free for anyone to copy. The trail is based on who owns the object. This will make it easy for me to list my products free on web-based marketplaces, since free objects seem to be the bulk volume of most of my sales. Currently, the trail is for seven days (controlled on the server). I am debating if seven days is too long.
In general, I have a local development environment that I’ve been creating my marketplace. Deploying to production proved useful as I discovered that the PHP version needed to be upgraded (took only 2 hours after a request), and that some features that I used didn’t work in that environment – specifically working with apache headers. Once it was fixed, everything worked like a charm. I’ll probably start deploying more web-based features for my products over time.