Skip to main content

Core Models

All core models are available as contracts that can be swapped for custom implementations.
ModelContractNamespace
ProductProductContractEsign\UnleashCommerce\Core\Contracts\Models
CategoryCategoryContractEsign\UnleashCommerce\Core\Contracts\Models
PagePageContractEsign\UnleashCommerce\Core\Contracts\Models
UserUserContractEsign\UnleashCommerce\Core\Contracts\Models
CustomerCustomerContractEsign\UnleashCommerce\Core\Contracts\Models
CustomerUserCustomerUserContractEsign\UnleashCommerce\Core\Contracts\Models
OrderOrderContractEsign\UnleashCommerce\Core\Contracts\Models
CartLineCartLineContractEsign\UnleashCommerce\Core\Contracts\Models
AddressAddressContractEsign\UnleashCommerce\Core\Contracts\Models
RoleRoleContractEsign\UnleashCommerce\Core\Contracts\Models
MediaDownloadMediaDownloadContractEsign\UnleashCommerce\Core\Contracts\Models

Associating with Custom Models

Register custom models in the ModelManifest:
use Esign\UnleashCommerce\Core\Facades\ModelManifest;
use Esign\UnleashCommerce\Core\Contracts\Models\Product as ProductContract;

ModelManifest::add(ProductContract::class, CustomProduct::class);

Morphing Models

Core models are registered in a morph map for polymorphic relationships:
Relation::morphMap([
    'product' => Product::modelClass(),
    'category' => Category::modelClass(),
    'page' => Page::modelClass(),
    'mediaentry' => MediaEntry::modelClass(),
]);