Concerning blocks, I think sand should be added to the list.
Also i had a thought about the selling process and how it is somewhat like an admin shop, but only for obtaining rhines to help discourage leaving blocks on the ground that don't always despawn because of a slightly more aggressive chunk load/unload method on the server.
Since selling is still effectively destroying those blocks, what about consider retaining a "buffer" of items that could be bought back for something like double (or more) of the sell worth?
My thinking is that this would create a sort of mini-economy though an admin store with finite resources.
Items availble to be bought would initially be set at some maximum level. As items are sold, the number of available blocks increases but couldn't exceed that maximum level.
When an item is bought, the number of items available is reduced, still resulting in a permanent item destruction, which could cause the shop to go to zero per item if it were in high demand, for instance cobblestone or gravel.
This could result in some items that might be frequently bought but not sold very often, which I expect might happen with dirt, for example, where there may be more demand than supply. If an item hit zero it stock of items would only be increased by more items sold.
This way it is not anfinite source for blocks, like admin shops tend to be.
It seems like it could possibly be setup using SignShops, and seems like a good compromise to help prevent an admin shop from competing too heavily with items in market shops (especially if the price to buy is sufficiantly high).
I would expect this might be used more as a convienience to someone not wanting to o back to the market for something, similar to the way the sell function is being used. The only thing I see that could be a slight issue is that it would be very helpful to have the worth command to return both the item sell and buy values, and the number of items available to buy.