Skip to main content
fusionCore is a solution built on top of Salesforce that supports member-based organizations. Internally, it is a collection of managed and unmanaged packages rather than a single application. To be productive as a developer, you need to know three things: how to set up a development environment, how to follow the fusionCore coding conventions, and how to use the common tools, frameworks, and utilities the platform provides. This section covers the last two — the coding conventions and the shared infrastructure; the pages below are your starting point.

How fusionCore Is Packaged

fusionCore ships as a mix of managed and unmanaged packages. The managed packages carry a global namespace, so the metadata they expose is referenced from a subscriber org with a namespace prefix. The three core packages and their namespaces are:
  • PlatformFCORE_BASE
  • CommerceFCORE_PAY
  • SubscriptionsFCORE_MEM
When you reference managed-package Apex or SObjects from another package or a subscriber org, you use the namespaced name, for example FCORE_BASE.ServiceLayer or FCORE_PAY__Wallet_Item__c. You can tell whether a given package is managed or unmanaged from the namespace field in its sfdx-project.json: a populated namespace means the package is managed, while an empty or missing namespace means it is unmanaged. Unmanaged-package metadata does not carry a Salesforce namespace, so each unmanaged package instead applies its own per-package prefix to its API names. That prefix is documented near the top of the package’s README.md under Development Conventions.

The Shared Infrastructure

The platform provides several key pieces of shared infrastructure that the rest of fusionCore builds on. Learn these before writing feature code:
  • Logging — structured logging for capturing diagnostic output and errors in a consistent, queryable way.
  • Caching — per-transaction caching that holds reusable data in memory for the life of a single transaction.
  • DB classes — the per-object query pattern that centralizes how each object’s records are queried and retrieved.
  • Utility functions — the smaller reusable helpers for collection manipulation, validation, describe calls, and LWC support.
  • Trigger Framework — metadata-driven control over triggers, including ordering and the ability to turn specific triggers off programmatically or through custom metadata. It also supports validation-only triggers.
  • Event Framework — an in-memory hook system, not standard Salesforce platform events. One package defines extension points, and other packages register handlers that run synchronously when an event fires.
  • Services — common multi-step tasks grouped into service classes that bundle the code, event hooks, and supporting metadata for a task.

Coding Standards

The conventions every fusionCore package follows — naming, structure, and API-name prefixes.

Logging

Structured logging for capturing diagnostic output and errors in a consistent way.

Caching

Per-transaction caching that holds reusable data in memory for a single transaction.

DB Classes

The per-object query pattern that centralizes how each object’s records are retrieved.

Utility Functions

The smaller helpers for collection manipulation, validation, describe calls, and LWC support.

Trigger Framework

Metadata-driven trigger ordering and on/off control, including validation-only triggers.

Event Framework

The in-memory event and handler system packages use to extend each other synchronously.

Services

Service classes that bundle multi-step tasks with their event hooks and metadata.