Hi there,
This is a good suggestion. I think players should be able to gift each other anything that is currently in the store at the time, such as ranks, bundles, egg skins, etc. However, I do not agree that XP should be obtained from gifts. The reason for this is because I think XP should remain as earnings from games that you've earned. But with things from the store, you still get the common cosmetics such as buddies and egg-skins.
The way it could work, is there could be a "gift locker" in the lobby, and when you press on it, you can send a player a gift. Every single item that shows in the Gift Locker would be every item from the store. When you click on an item, for example the SkyWars Rank, the marketplace item will pop up. It would appear as the exact same page as the real SkyWars rank, except the title of the item would say "SkyWars Rank - Gift". When this item is purchased, you can search for the player that you want to send it to. The gift items would not be visible from the Server Store, only visible from the Gift Locker Menu, just to stop the marketplace from overcrowding. I hope you understood that haha.
I think this would benefit both the players and CubeCraft, so it's a +1 from me :).