Лично мне это видится так: заходим в веб, смотрим нужный товар, отмечаем галочками, покупаем. В случае, если отмеченный товар уже купили, выводится сообщение вида "Выбранный вами товар уже продан.", и ниже список такого же товара, независимо от цены.
Другой вариант - покупка товара по определенной цене, так сказать, пачкой. Например, надо купить два десятка лайфов по цене 11кк. Тут, наверное, можно сделать по-другому: выбираем ценовой диапазон и, собственно, предмет, скрипт проверяет наличие некупленного товара, его количество, сообщает об этом (что-то типа "Найдено 14 Jewel of Life по цене 11кк. Купить? Да/Нет", далее покупаем. Чтобы избежать минусов такой системы вроде "товар уже куплен, извините" - можно заставить скрипт как-бы бронировать товар, но тогда имеем проблему, когда можно забронировать товар, и нехай себе висит сколько влезет. Чтобы и от этого избавиться, можно ограничить время бронирования, скажем, до 3-5 минут. Чтобы избавиться от людей, которые будут скупать все лайфы (к примеру) - надо будет ограничить массовую закупку количеством товара, например, не больше 10 JoL'ов за раз, а количество массовых закупок - 1 закупка за раз. Тоесть для того, чтобы сделать несколько массовых закупок, нужно каждую из них завершить. Можно ещё ввести ограничение по времени - 1 закупка 1 раз в 10 минут, например. Тогда мы избавимся от торгашей и скупщиков-перекупщиков.
Ещё одна проблема - нехватка зен и места в сундуке. С нехваткой зен, думаю, понятно - нет денег, нет покупки. В этом случае список покупок редактируется (но это, думаю, будет возможно если будет система бронирования, см. выше) до тех пор, пока кол-во налички не будет соответствовать цене закупки. Насчет места в сундуке - есть идея веб-сундука. Тоесть выглядеть это будет так: если не хватает места в игровом сундуке, скрипт веб-магазина сообщает об этом и предлагает перенести вещи в веб-сундук. Но я не в курсе, реализуемо ли это вообще.
Вот, собственно, и все. Может быть, идею реализуют.