> For the complete documentation index, see [llms.txt](https://docs.nalpeiron.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.nalpeiron.com/zentitle2-docs/developers/no-code-saas-example/creating-a-product-and-entitlement.md).

# Creating a Product and Entitlement

Create a test product, features, offering, entitlement, and activation codes in the Zentitle2 UI to match the SaaS demo app.

### Creating a Product and Entitlement in the Zentitle UI for testing

To make the demo work, you will need to add a new entitlement with the right features and attributes to match those in the demo app.

{% hint style="info" %}
First, [read the documentation](/zentitle2-docs/ui-product-catalog/licensing-and-business-models.md) and fully understand the product paradigm and how to set up a product and its parts, including an entitlement, with activation codes.
{% endhint %}

**Once you are familiar with how Zentitle2 works, you can set up the specific parameters required to run the demo successfully—all these changes are necessary to allow you to test successfully.**

### Steps to match the server side with the demo app:

<figure><img src="https://2412542193-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F1tBhTGn5igyI6ECLHjpC%2Fuploads%2FPhorwZe3HiGIamxeYxG8%2FSaasDemoApp1.png?alt=media&amp;token=193991c9-d318-4162-8c81-1df4381c54a0" alt=""><figcaption></figcaption></figure>

![](https://2412542193-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F1tBhTGn5igyI6ECLHjpC%2Fuploads%2FIvC85MvJkVs2NsLCzG2A%2Fcounter_1_FILL0_wght400_GRAD0_opsz24.svg?alt=media\&token=e9e24ee0-b25b-4028-a774-f5b21e399e85) Login to your account and navigate to the "product" section.

![](https://2412542193-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F1tBhTGn5igyI6ECLHjpC%2Fuploads%2FBggKfcwtHYyokAoW6CA4%2Fcounter_2_FILL0_wght400_GRAD0_opsz24.svg?alt=media\&token=b4a1c291-524f-4064-838e-5dfaac404fea) Add a new product. Name it something useful, in this case, "SaasDemoApp".

<figure><img src="https://2412542193-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F1tBhTGn5igyI6ECLHjpC%2Fuploads%2F76hz7PhRlcCse4VayBl8%2FSaasDemoApp3.png?alt=media&amp;token=3b1e4818-f6c9-4bec-aba5-faec46f0e171" alt=""><figcaption></figcaption></figure>

![](https://2412542193-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F1tBhTGn5igyI6ECLHjpC%2Fuploads%2FgP2ydddGH7JrOOoUkK6o%2Fcounter_3_FILL0_wght400_GRAD0_opsz24.svg?alt=media\&token=25e6aed0-9d7d-4425-b8d7-82ae916130d2) Now click the "features" tab and start adding the test features, attributes, and advanced features for testing.

* Add features with the following keys:
  * **Calendar,**
  * **ProjectPlanning,**
  * **Collaboration,**
  * **Reporting,**
  * **ReportingAdvanced,**
  * **Security.**
* Set the "value" to **Enabled** for them all.

<div align="left"><figure><img src="https://2412542193-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F1tBhTGn5igyI6ECLHjpC%2Fuploads%2FwI4QXhe29ZC5ZybpgN2Z%2FSaasDemoApp4.png?alt=media&amp;token=abd53f3a-170f-4dd4-82c1-7175765ea94b" alt=""><figcaption></figcaption></figure></div>

* Click Save, and repeat.

<figure><img src="https://2412542193-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F1tBhTGn5igyI6ECLHjpC%2Fuploads%2FpmLJx3DoaUR5xIfPZfYa%2F1.png?alt=media&amp;token=756ec4fc-ceaa-4f25-9dd4-45b781220984" alt=""><figcaption></figcaption></figure>

* Repeat until all the demo features have been added and saved.

***

![](https://2412542193-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F1tBhTGn5igyI6ECLHjpC%2Fuploads%2FPDkUUXICZp0VjoNW7xDd%2Fcounter_4_FILL0_wght400_GRAD0_opsz24.svg?alt=media\&token=76f36e3b-7c9c-4fcf-b9bc-fe96049d5b4d) Next, Add two **string** attributes with the following keys:

* **CompanyName,**
* **PlanName.**

<figure><img src="https://2412542193-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F1tBhTGn5igyI6ECLHjpC%2Fuploads%2FF0xEvEZTQWq7J4Lyn6W3%2FSaasDemoApp5.png?alt=media&amp;token=f858e813-fd12-4441-a9c4-2fa5567afbd5" alt=""><figcaption></figcaption></figure>

<figure><img src="https://2412542193-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F1tBhTGn5igyI6ECLHjpC%2Fuploads%2FntXNxaJN6NkK0V4AO6S9%2Fatt1.png?alt=media&amp;token=3ebb54df-7fde-4fd8-85c6-6e9c1a40781a" alt=""><figcaption></figcaption></figure>

* Click Save, and repeat.

<figure><img src="https://2412542193-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F1tBhTGn5igyI6ECLHjpC%2Fuploads%2F7N4OubLy03t1t8PHoGHG%2F2.png?alt=media&amp;token=6342e89d-d6cc-42d7-a8cc-f64bd934bc1b" alt=""><figcaption></figcaption></figure>

***

<figure><img src="https://2412542193-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F1tBhTGn5igyI6ECLHjpC%2Fuploads%2FP9UBe9NQrjwn8DBuNG8J%2FSaasDemoApp7.png?alt=media&amp;token=164b7f39-6d0f-4f23-bbf5-2a7154c0168c" alt=""><figcaption></figcaption></figure>

![](https://2412542193-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F1tBhTGn5igyI6ECLHjpC%2Fuploads%2FeDNjcr6hYAUKl9tnMeXo%2Fcounter_5_FILL0_wght400_GRAD0_opsz24.svg?alt=media\&token=c1110a9d-a776-4560-a37a-e9cf95e523cd) Next, Add three **"advanced features".**

<figure><img src="https://2412542193-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F1tBhTGn5igyI6ECLHjpC%2Fuploads%2Fz6jIbE7rZhnwEqiUi2UA%2Fct1.png?alt=media&amp;token=0e846246-763e-4dc0-aca0-3773e7f06c15" alt=""><figcaption></figcaption></figure>

* First, a **usage counter** with the key: **CT1.** Set the value to **100** (conversions) and click save.

<figure><img src="https://2412542193-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F1tBhTGn5igyI6ECLHjpC%2Fuploads%2FhUwJKo28bkaVsppNdsuC%2Fep1.png?alt=media&amp;token=581254c5-c441-4282-ac93-7d9de958a1b2" alt=""><figcaption></figcaption></figure>

* Next, Add an element pool with key: **EP1.** Set the value to 2 and click save.

<figure><img src="https://2412542193-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F1tBhTGn5igyI6ECLHjpC%2Fuploads%2FqK4jjDiOJ6Pr231RgqkG%2FSaasDemoApp10.png?alt=media&amp;token=036f0851-510e-47e4-bcc7-bff7ded03f85" alt=""><figcaption></figcaption></figure>

* Next, Add a floating feature with key: **FF1.** Set the value to 20 and click save.

<figure><img src="https://2412542193-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F1tBhTGn5igyI6ECLHjpC%2Fuploads%2F3LqisXt40Gq9b04TrwYk%2Ffinished%20page.png?alt=media&amp;token=0251879e-b2c8-4550-a679-a5e1148db8f5" alt=""><figcaption></figcaption></figure>

When you are done the features page should be completed with the demo components required to test.

***

### Offerings

The next tab is editions. We will skip that tab as we will use the default edition (no need to edit the edition part) so go to the next tab, "Offerings".

![](https://2412542193-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F1tBhTGn5igyI6ECLHjpC%2Fuploads%2FeDNjcr6hYAUKl9tnMeXo%2Fcounter_5_FILL0_wght400_GRAD0_opsz24.svg?alt=media\&token=c1110a9d-a776-4560-a37a-e9cf95e523cd) Add an offering by clicking on the add button on the top right. The Product is pre-selected.

<figure><img src="https://2412542193-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F1tBhTGn5igyI6ECLHjpC%2Fuploads%2FAVQw5PmCT4TQeX8H3yRA%2FCleanShot%202023-12-12%20at%2014.14.35.png?alt=media&amp;token=603877d6-6ce8-4743-bf89-b7c3f5e81b7d" alt=""><figcaption></figcaption></figure>

Edit the offering parameters exactly as below:

* Give the offering a name e.g. Standard
* Add in a short dummy SKU
* Leave the edition as default
* Pick a plan from the existing examples (e.g., a one-year subscription with **activation**).
* Set the seat count e.g. 1
* Set the mode e.g. concurrent
* Click Save

***

### Entitlements

![](https://2412542193-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F1tBhTGn5igyI6ECLHjpC%2Fuploads%2F5JDdCdLb01H9EAKq0NRV%2Fcounter_6_FILL0_wght400_GRAD0_opsz24.svg?alt=media\&token=9b27bfd8-0d64-42c3-a7d7-618039480ed4) Now to the final couple of steps. Add an **entitlement** and edit the parameters.

* Navigate to the "entitlements" option in the left navigation or **the last tab when editing a product.**

<figure><img src="https://2412542193-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F1tBhTGn5igyI6ECLHjpC%2Fuploads%2FWnIpl8XmWzh43zgxeKGS%2FCleanShot%202023-12-12%20at%2014.16.39.png?alt=media&amp;token=81eff6b0-318d-4e7c-93da-59ae9ad90cc6" alt=""><figcaption></figcaption></figure>

* Click Add Entitlement

<figure><img src="https://2412542193-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F1tBhTGn5igyI6ECLHjpC%2Fuploads%2FOQYjVOC2pDIMa0VXbqK5%2FCleanShot%202023-12-12%20at%2014.19.31.png?alt=media&amp;token=f033e80e-1b38-42ed-8f4d-794e0925ffe5" alt=""><figcaption></figcaption></figure>

* If you start in the product section the offering name is pre-selected but you can change it from the drop-down men&#x75;**. If you start in the offering section the offering name is fixed and pre-selected.**
* Skip the customer (unless you added a test one already etc and want to try that)
* Add order ref as you wish
* Click save

![](https://2412542193-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F1tBhTGn5igyI6ECLHjpC%2Fuploads%2FgGUEva6qUYylH1E6PR9P%2Fcounter_7_FILL0_wght400_GRAD0_opsz24.svg?alt=media\&token=fa4abdea-f982-44a2-a814-1a26c4f1a48e) Now we **edit** the entitlement to add in some test parameters under the "attributes" fields we added earlier.

<figure><img src="https://2412542193-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F1tBhTGn5igyI6ECLHjpC%2Fuploads%2FoE6F5RavSIGqp5mdFtW1%2Fentitlement.png?alt=media&amp;token=371ab099-3968-4935-9869-9a7ea8507abb" alt=""><figcaption></figcaption></figure>

* Fill in the company and plan attribute to your test values, e.g., "Boeing" for the company name and "Standard" for the plan name for example.
* The rest of the parameters should be prefilled.
* Click save.

***

### Activation codes

![](https://2412542193-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F1tBhTGn5igyI6ECLHjpC%2Fuploads%2FyxDaMHMsVVzxZceM7Xal%2Fcounter_8_FILL0_wght400_GRAD0_opsz24.svg?alt=media\&token=1083ccc1-9706-4c7e-a4a5-8d1f9dd6b547) The final serverside step is to Add activation codes to the entitlement (e.g., add ten codes for testing).

* Go to the bottom of the new entitlement page

<figure><img src="https://2412542193-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F1tBhTGn5igyI6ECLHjpC%2Fuploads%2FiA3lhyZqOFOqWbvgQbqJ%2Factn%20codes.png?alt=media&amp;token=61175146-8d54-440d-9560-7a8fd5b3954a" alt=""><figcaption></figcaption></figure>

On the bottom right is the activation codes section.

{% hint style="warning" %}
This activation code area has moved to a separate tab, and this doc will be updated soon!

[See the activation codes area for update details.](/zentitle2-docs/ui-entitlements/working-with-entitlements/activations.md)
{% endhint %}

* Click add.

<figure><img src="https://2412542193-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F1tBhTGn5igyI6ECLHjpC%2Fuploads%2FW4ieYCX6a7YcMMOc0fxe%2Factn%20codes%20gen.png?alt=media&amp;token=0f1e9efd-fdd4-49be-abb8-502d522778d0" alt=""><figcaption></figcaption></figure>

* Next, click Generate
* Add 10 (or whatever number of codes you like)
* Click Save

<figure><img src="https://2412542193-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F1tBhTGn5igyI6ECLHjpC%2Fuploads%2FwcnzuaCMj6nSCSvvHh4e%2Fsetup%20server10c.png?alt=media&amp;token=37918176-afb1-4a1a-87af-9bb4762cde1b" alt=""><figcaption></figcaption></figure>

* Now, you will see your codes ready to use in the codes section.
* You can copy a code to the clipboard and paste it into the SaasDemoApp on your desktop or export the codes for testing later.

**You are now all set to move to the SaaS demo (run as a desktop app), keep the Zentitle UI open as well so you can see what happens on the server when you perform actions on the desktop client.**


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation by asking a question.

Perform an HTTP GET request on the following URL with the `ask` and `goal` query parameters:

```
GET https://docs.nalpeiron.com/zentitle2-docs/developers/no-code-saas-example/creating-a-product-and-entitlement.md?ask=<question>&goal=<user_goal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is what the user is ultimately trying to achieve, the reason they need the answer. Sharing it helps GitBook give you a better, more relevant answer. A goal is most helpful when it describes the outcome the user wants rather than restating the question. For example, with `ask=how do I create an API token`, a goal like `automate deployments from our CI pipeline` lets GitBook tailor the answer to that use case.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
