General Overview
The application is composed of two main blocks:
- Frontend Blazor .NET9
- API .NET9
The APIs connect to Imagonist via REST APIs and manipulate objects to extract only the necessary data for the frontend. They also provide configuration content for each instance, stored in the Redis database.
General Guidelines
- All texts and contents are configured in Redis or retrieved from the Imagonist menu: for the former, you can locate the origin by inspecting the HTML and reading the value of the
data-sectionfieldattribute. - All properties in the configuration JSONs follow the
camelCasenaming convention. - Redis DB keys are written using the
snake_casenaming convention. - For main product images, a placeholder image is inserted if the received image is missing or invalid. You can find the original image URL by inspecting the HTML and checking the
data-originalSrcattribute.
Basic Configuration
To work correctly, the system requires two fundamental generic configurations to be inserted in Redis database 0.
Tenants
Contains the addresses and names of configured instances, used to customize the frontend based on the call’s origin URL.
Field Description
| Field | Description | Type |
|---|---|---|
id | Unique identifier of the tenant | guid / uniqueidentifier |
slug | Human-readable identifier of the tenant, used to structure Redis DB | string |
name | Descriptive label of the tenant, appears in the page title | string |
url | Base URL of the instance | string |
iconUrl | Favicon image URL | string |
Example JSON
[
{
"id": "d44fbcdd-a03f-4664-93b8-fc2336f8bc88",
"name": "ImagonistShop Debug",
"slug": "imagonist-shop-debug",
"url": "https://localhost:7285",
"iconUrl": "https://icon.png"
},
{
"id": "a894911b-65e8-4388-a997-a91a25767eb5",
"name": "Test",
"slug": "imagonist-shop-test",
"url": "https://imagonistshop.3sd.dev",
"iconUrl": "https://icon.png"
},
{
"id": "3b46751f-2acf-4fcd-bbeb-6cfd4676fd6",
"name": "Prod",
"slug": "imagonist-shop",
"url": "https://imagonistshop.timeware.it",
"iconUrl": "https://icon.png"
},
{
"id": "dcb295d9-8266-44f1-b30a-01c787ce2732",
"name": "ECommerce",
"slug": "ecommerce",
"url": "https://ecommerce.3sd.dev",
"iconUrl": "https://icon.svg"
}
]
Cultures
Contains the list of available system languages.
Field Description
| Field | Description | Type |
|---|---|---|
slug | ISO 2-character identifier | string |
cultureInfoCode | ISO 3166-1 alpha-2 code | string |
label | Label | string |
numberGroupSeparator | Thousands separator | string |
currencyGroupSeparator | Thousands separator for currency values | string |
isDefault | Indicates the default language to use if not specified in input | boolean |
Example JSON
[
{
"slug": "it",
"cultureInfoCode": "it-IT",
"label": "Italiano",
"numberGroupSeparator": ".",
"currencyGroupSeparator": ".",
"isDefault": true
},
{
"slug": "en",
"cultureInfoCode": "en-US",
"label": "English",
"numberGroupSeparator": ",",
"currencyGroupSeparator": ","
}
]