Table of Content

    1.0.1.0.0

    App "Produktstatus auf Produktvariante"
    Übersteuert das geerbte Feld "Status" auf der Produktvariante und steuert Textfarbe in Listenansichten

    product_state_variant

    Ausgangslage

    Der Produktstatus beschreibt die Phase des Produkt-Lebenszyklus, in der sich das Produkt befindet. Auf dem Model product.template wird dazu mit dem Community-Modul product_state das Feld state ergänzt.

    state = fields.Selection(
        selection=[
            ('draft', 'In Development'),
            ('sellable', 'Normal'),
            ('end', 'End of Lifecycle'),
            ('obsolete', 'Obsolete')
        ],
        string='Status',
        default='sellable',
        index=True
    )
        

    Implementierte Funktionen

    Standardwert für neue Produkte und Varianten

    Neue Produktvorlagen und -Varianten erhalten neu standardmässig den Status "In Entwicklung".

    Steuerung des Status auf Produktvariante

    Da das Model product.product das Feld state über die normale Vererbung übernimmt, gibt es keine Möglichkeit, den Status für einzelne Produktvarianten separat zu pflegen. Dies wird mit dem vorliegenden Modul erreicht, indem auf dem Model product.product ein neues Feld state_variant definiert wird, welches in den Produkt-Ansichten und weiteren Zusatzmodulen für die Steuerung des Variantenstatus verwendet wird.

    Farbliche Kennzeichnung je Status

    Über die Felder state und state_variant wird auf den Listenansichten der Produkte und Varianten die Textfarbe gesteuert:

    • 'draft': blau

    • 'sellable': grün

    • alle anderen: grau

    Kaskadierung der Statusänderung

    Statusänderungen auf dem Produkt werden für alle Varianten übernommen.

    Kennzeichnung von auslaufenden/obsoleten Produkten

    Bei der Namenssuche nach Produktvarianten, beispielsweise in Verkaufsangeboten, wird der Produktname von obsoleten oder auslaufenden Produkten gekennzeichnet.

    Fehlerhandling

    Es wird verhindert, dass der Status einer Variante auf 'In Entwicklung' oder 'Normal' gesetzt werden kann, wenn das Produkt den Status 'Obsolet' oder 'Auslauf' hat. 

    Abhängigkeiten

    product_state (Flectra Community Modul)