Aller au contenu

Promotion

Permet la création, l'édition et l'utilisation de promotions

MCD

classDiagram
    class Promotion {
        +int id
        +boolean auto_promo
        +String code
        +Hash conditions
        +Date date_debut
        +Date date_fin
        +Text description
        +DateTime discarded_at
        +Hash effets
        +String nom
        +enum statut
        +enum type_acces
        +enum type_promotion
        +int usages_max
        +DateTime created_at
        +DateTime updated_at
    }

    class Club {
        +int id
    }

    class Panier {
        +int id
    }

    class Commande {
        +int id
    }

    Promotion "0..*" <--> "1" Club : club 
    Promotion "0..1" <--> "0..*" Panier : paniers
    Promotion "0..1" <--> "0..*" Commande : commandes

Détail du MCD

Promotion

Une promotion permet d'offrir une remise sur un panier ou sur certains articles d'un panier (un effet). Une promotion ne s'applique que sur sa durée de validité (date_debut - date_fin) et si le panier, son contenu et le contact/client valident les conditions.

Le statut de la promotion détermine son état actuel. Une promotion à l'état brouillon peut être invalide.

type_promotion permet de différencier les promotions simple des promotions complexe dans les sous-modules liés au formulaire.

Si une promotion de type_acces automatique est appliquable à un panier, elle l'est automatiquement (aucune ordre de priorité si plusieurs promotions possible). Il est possible de retirer une promotion du panier. Il est possible d'essayer d'appliquer une promotion via son code.

Les conditions et l'effet sont des Hash sérializés, au format: Nom de classe => optionsoptions est un Hash. Le Nom de classe doit être celui d'une classe du module promotions/effets ou promotions/conditions.

Les effets d'une promotion sont appliquées aux ligne_articles des articles du Panier ou de la Commande, sur les champs de remise.

Club

Les promotions sont liées à un Club.

Panier

Un Panier peut se voir appliquer une(maximum) promotion.

Commande

Une Commande peut avoir une(maximum) promotion.