Skip to main content
Technical ManualLooking for step-by-step instructions? In the User Manual: Features and Settings

Setup Recipes

A setup recipe decides what a new tenant becomes. The recipes live in src/Modules/CrestApps.Almohaseb/Recipes and appear on the setup screen and in the tenant editor under the Almohaseb category.

RecipeDisplay nameUse it for
almohaseb-business-cstoreAlmohaseb - Convenience storeA convenience store, gas station or other retail business that runs a cash register
almohaseb-business-serviceAlmohaseb - Service businessA service business that bills customers with service tickets and invoices
almohaseb-firmAlmohaseb - Accounting firmThe tenant of an accounting firm
almohaseb-platformAlmohaseb - PlatformThe Default tenant of a hosted platform only

Business recipes​

Both business recipes enable the same features, except that the service recipe also enables CrestApps.Almohaseb.Sales.Services (Service tickets & invoices) and the c-store recipe CrestApps.Almohaseb.Retail.CashDrawer (Cash drawer, with starter drawer reasons and US denominations) CrestApps.Almohaseb.Retail.DailyClose (Daily close, with card terminal, EBT and WIC tenders) CrestApps.Almohaseb.Retail.CheckCashing (Check cashing) and CrestApps.Almohaseb.Retail.Lottery (Lottery, with twelve display boxes and the Lottery and Lottery payouts categories compared with the counts) and CrestApps.Almohaseb.Retail.Fuel (Fuel, with Regular, Mid-grade, Premium and Diesel grades), and they differ in the business day and the starter sales categories.

StepWhat it does
ContentSeeds the starter data of the business: the Michigan sales tax exemption reasons, starter sales categories (c-store: Grocery, Food, Beer and wine, Liquor, Tobacco, Lottery, Deposit, Bottle Refund, Lottery payouts, Inventory; service: Labor, Parts and materials, Materials) and vendor categories (Suppliers; Rent, utilities and services; Other expenses; Equipment and vehicles). It is a starting point the business changes to its own.
FeatureEnables the Orchard Core admin, deployment, features, navigation, recipes, resources, roles, settings, themes and users features, the TheAdmin and SafeMode themes, CrestApps.Almohaseb.Ledger (Accounting) CrestApps.Almohaseb.Imports (Imports) CrestApps.Almohaseb.Contacts (Customers & vendors) CrestApps.Almohaseb.Items (Sales categories) CrestApps.Almohaseb.Sales (Sales & receivables) CrestApps.Almohaseb.Purchases (Purchases & payables), CrestApps.Almohaseb.Assets (Fixed assets), CrestApps.Almohaseb.Mileage (Trip log), CrestApps.Almohaseb.Documents (Documents & attachments), CrestApps.Almohaseb.Banking (Banking) with CrestApps.Almohaseb.Banking.Plaid (Bank feeds, which works once the platform sets its Plaid account), CrestApps.Almohaseb.SalesTax (Sales tax returns, monthly, prices without tax, in the Settings step), CrestApps.Almohaseb.Payroll (Payroll: a 2.7% state unemployment rate on $9,500 in the Settings step, the Detroit city tax, and the 2025–2026 federal, Michigan, Massachusetts and Virginia tax content through the AlmohasebPayrollTaxContent step, all unverified), the 1099 boxes of 2025 and 2026 through the AlmohasebForm1099Content step (unverified), and CrestApps.OrchardCore.Reports with CrestApps.OrchardCore.Reports.OpenXml CrestApps.Almohaseb.Reports (Operational reports) and CrestApps.Almohaseb.Reports.Dashboard (Dashboard widgets, with OrchardCore.AdminDashboard and the profit and category margin widgets; the financial statements, the sales, purchase, expense, other income and performance reports, and their Excel export). The Content step also seeds the payment methods (Cash, Check, Credit card, On account). Accounting pulls in the foundation, the admin UI and jobs; Customers & vendors pulls in Orchard Core contents and the CrestApps content, phone and address fields.
ThemesSets SafeMode as the site theme and TheAdmin as the admin theme.
SettingsWrites the starting BusinessProfileSettings: the fiscal year starts in January, and the business day starts at 04:00 (convenience store) or 00:00 (service business).
{
"name": "Settings",
"BusinessProfileSettings": {
"FiscalYearStartMonth": 1,
"BusinessDayStartsAt": "04:00:00"
}
}

The recipes do not enable the foundation, admin UI or jobs features directly. Those are EnabledByDependencyOnly, and a recipe cannot enable them; it enables Accounting, which depends on them. See Architecture.

The rest of the business profile (name, address, EIN) is entered after setup in Settings > Business profile. See Foundation.

Platform recipe​

almohaseb-platform sets up the Default tenant that hosts every business. It enables the same admin features as the business recipes plus OrchardCore.AuditTrail, OrchardCore.Tenants and CrestApps.OrchardCore.TenantHierarchy.Platform, which lets the platform turn tenants into firms. It does not enable Accounting: the platform keeps no books. It also enables OrchardCore.HomeRoute and makes the admin dashboard the home page, so the root of the platform opens the admin.

Firm recipe​

almohaseb-firm sets up the tenant of an accounting firm: the admin, users, roles, the audit trail, OrchardCore.HomeRoute with the admin dashboard as the home page, and CrestApps.Almohaseb.Firm (Accounting firm, see Firm) with six services in the Content step. The compliance board, templates and client communications join it as they are built. To run the firm's clients as its child tenants, the platform makes the firm tenant a parent under Multi-Tenancy > Tenant Hierarchy; that needs each tenant to have its own host name (see Tenants on one address).

Tenants on one address​

On a single address, such as a test machine behind one tunnel, tenants can use URL prefixes instead of host names: the platform at /, the firm at /accountant, each business at its own prefix such as /cornermarket. In the platform, Multi-Tenancy > Tenants > Add Tenant, enter the URL prefix, choose the recipe and Create & Setup. Each tenant keeps its own users and sign-in. Prefixed tenants are ordinary tenants: the tenant hierarchy, which lets a firm open its clients without signing in again, works only with host names (accountant.example.com, cornermarket.accountant.example.com), because tenants on one host share its cookies.

Local setup values​

Use the time zone of the business, for example America/Detroit, when you set up a business tenant. Business dates and the business day are computed in that time zone.