Core concepts
By using Moonbase as the provider for your storefront and delivery needs, it is important to understand the concepts behind the building blocks providing the functionality.
Licenses
A license is the core of the system, defining ownership of products by your customers. Trials also fall in under this category, where trials are practically speaking normal licenses but with more restrictions like expiry date, uniqueness per device, etc.
License activations
Any license will have configuration on it, inherited from the product at the time of creation, that determines how many activations are possible, and if offline activations are allowed. See product licensing for more details on this.
It's important to keep in mind that while online activated devices can at any time revoke the activation in order to move the license to different devices, offline activations does not have the same ability. That is because there would be no way for an offline activated application to know that the license activation has been revoked or moved. As a merchant on Moonbase, you can manually revoke offline license activations if necessary.
Products
Having products defined is the only way to create licenses in Moonbase, which means it's usually the first thing you set up when starting up with us. These products define what sort of licenses should be issued, what kind of trials might be allowed and how the product can be purchased. As a delivery platform, products also let you create releases of the software, to be able to deliver versioned binaries to the customers who need the software.
Product pricing
To be able to offer the same product at different rates or through different purchase models, Moonbase allows you to create pricing variations for all products. These variations will all be available through the Storefront APIs and SDKs, to enable you to fetch pricing and details of all options on demand. Variations contain configuration regarding recurrence (one-off purchase or a recurring subscription), entitlements (perpetual access or limited support updates) and pricing.
Every product will have a default variation, which is what will be used when no variation is given as the product is added to the cart. The default variation is also the one being used if you send customers to the immediate checkout flow.
Pricing in Moonbase is purposefully simple at the moment, giving you max control over what currencies your customers will see. When you first open an account on Moonbase, you will usually only have one or two currencies enabled, but you can always reach out to support to enable more currencies.
VAT and sales taxes are based on the norm of the given currency, which means that for currencies like USD and CAD, the price configured will be exclusive of sales tax, while for currencies like EUR, the price is inclusive sales tax.
Product licensing
Whenever a product is fulfilled by Moonbase, the licenses created will be created on the basis of the product licensing configuration.
Through this configuration you can determine how many activations each license should allow simultaneously, as well as if offline activations should be allowed. While product activations using the online flow is always a floating activation, offline activations can never be moved to another device unless you as a merchant manually alter the activation.
Product trials
Similarly to the licensing configuration, trial configuration determine what options customers will have to try out your apps before buying.
Trials are for all intents and purposes a normal license, but with a limited expiry date attached to them. It is the responsibility of the integrating software to ensure the expiry date is still in the future when validating licenses stored locally.
Product releases
If you want to use Moonbase to also deliver the actual installers to your customers, you need to create releases of your products.
Releases let you roll out new versions of your software, making it available for all owners to download new installers or binaries. It's also possible to have un-released binaries stored, for later publishing.
Bundles
Predictably, bundles are collections of products sold together as one. Similarly to products, you can define pricing variations in the exact same way, with the added option of enabling partial bundle purchases.
Partial bundle purchases
A common scenario is that you might want to offer bundles fit for a very specific use case, at a discount from the individual price. Something that will quickly come up in that journey for a customer is being faced with a bundle where the customer already owns one or more of the products in the bundle, but would still like to get the general discount to upgrade to the complete package.
Partial bundle purchases allow that, by adjusting the price of the bundle based on already owned products from the customer purchasing the bundle. This is one of the big benefits of having a platform that can correctly identify customers as part of the payment flow, to offer relevant discounts and benefits for added incentives to purchase.
Coupons
If you want to offer discounts by using promotional codes on your products and bundles, coupons are the way to go. Coupons will let you define either a percentage based discount, or a flat amount off discount to a set of codes that can be applied to orders in progress.
If you want the coupon to only apply to specific products or bundles, that's also possible to configure on the coupon itself.
Vouchers
If instead of a discount, you rather want to give products away entirely, vouchers is the feature you need. Vouchers will let you define a set of products or bundles to give away, and like coupons, add a set of codes that can be redeemed to receive the entitlements of the voucher. Unlike coupon codes, voucher codes have limited uses, only redeemable by one customer, so that you can control how many licenses are issued from the voucher you create.