Modèles
Les modèles dans Swell, adaptez-les à votre projet.
Les modèles de données
Swell propose une collection de modèles prêts à l’emploi, conçus pour couvrir les besoins courants d’un projet e-commerce moderne.
Ces modèles servent de base solide, mais restent entièrement personnalisables afin de s’adapter à la structure et aux spécificités de votre application.
Vous pouvez ainsi les modifier ou en créer de nouveaux selon les exigences de votre domaine métier, tout en profitant d’une intégration fluide avec l’écosystème Swell.
Adapter un modèle
Les modèles Swell sont basiquement situés dans le dossier app/Models
, à l’exception des fonctionnalités
optionnelles dont les modèles sont placés dans app/Modules/Feature/Models
.
Ils sont associés à leurs fichiers de migration respectifs dans database/migrations
ou
Modules/Feature/database/migrations
, permettant de définir la structure des tables correspondantes.
Swell n’impose aucune logique métier. Les modèles proposés servent de socle initial, à adapter librement. Pour toute modification de structure ou comportement, référez-vous à la documentation officielle de Laravel.
Structure des modèles
Brand
Champ | Type |
---|---|
name | string |
slug | string unique |
logo_url | string nullable |
Category
Champ | Type |
---|---|
name | string |
slug | string unique |
description | text nullable |
status | boolean defaut:true |
parent_id | nullable nullOnDelete |
HasMany(Category).
BelongsToMany(Product).
Product
Champ | Type |
---|---|
name | string |
slug | string unique |
sku | string unique |
description | text |
short_description | string max:500 |
price | decimal:10,2 |
discount_price | decimal:10,2 |
cost_price | decimal:10,2 |
stock | unsignedInteger default:0 |
reorder_level | unsignedInteger default:10 |
status | boolean default:true |
meta_title | string nullable |
meta_description | string max:255 nullable |
meta_keywords | string max:255 nullable |
brand_id | integer restrictOnDelete |
product_group_id | integer nullable nullOnDelete |
BelongsTo(Brand).
HasMany(ProductImage).
BelongsTo(ProductGroup).
BelongsToMany(Wishlist).
HasMany(Comment).
ProductGroup
Champ | Type |
---|---|
name | string |
slug | string unique |
ProductImage
Champ | Type |
---|---|
image_url | string |
alt_text | string nullable |
is_featured | boolean default:false |
order | unsignedInteger |
ProductComment
Champ | Type |
---|---|
title | string |
comment | text nullable |
rating | unsignedTinyInteger default:0 |
user_id | integer cascadeOnDelete |
product_id | integer cascadeOnDelete |
BelongsTo(Product).
Cart
Champ | Type |
---|---|
session_id | string nullable |
user_id | integer nullable cascadeOnDelete |
HasMany(CartItem).
CartItem
Champ | Type |
---|---|
cart_id | integer cascadeOnDelete |
product_id | integer cascadeOnDelete |
quantity | unsignedInteger default:1 |
BelongsTo(Cart).
Wishlist
Champ | Type |
---|---|
user_id | integer cascadeOnDelete |
BelongsToMany(Product).
Order
Champ | Type |
---|---|
order_number | string unique |
stripe_checkout_session_id | string |
amount_discount | unsignedInteger |
amount_subtotal | unsignedInteger |
amount_total | unsignedInteger |
billing_address | json |
shipping_address | json |
user_id | integer cascadeOnDelete |
BelongsTo(User).
OrderItem
Champ | Type |
---|---|
name | string |
description | text |
price | unsignedInteger |
quantity | unsignedInteger |
amount_discount | unsignedInteger |
amount_total | unsignedInteger |
order_id | integer |
product_id | integer |
BelongsTo(Product).
Banner
Champ | Type |
---|---|
message | string |
is_active | boolean |
order | unsignedInteger default:0 |