Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

...

...

...

Table of Contents

Fonctionnalité 

Les buffers servent à protéger un certain nombre d'unités de stock. Le cas le plus commun d'utilisation est de protéger quelques unités (2-3) du stock sur le stock vendable global, pour ainsi mitiger la désynchronisation entre les ventes en magasin et les ventes en ligne.

title
Info

Application par type de stock

Les buffers peuvent être appliques de manier globale ou par endpoint, par contre, leur application est toujours ouverte par type de stock. Il n'y a pas une application unifiée qu'englobe plusiers types de stock à la fois.

Example : S'il y a un buffer glob de 2 pour le type de stock on_hand et un autre de 3 pour le type de stock ASN, quand les buffers sont appliques de manier global, leur application corresponde à la sum de l'application globale pour on_hand + l'application global pour l'ASN.

...

Tout buffer à un buffer_group auquel il appartient et que permet lui faire référence depuis une requete de stock

...

...

Buffer groups dans requête de stock
Code Block
languagejs
{
    "aggregates": {
        "0": {
            "deduction": {
                "endpoint_buffer": [
                    "FR",
					"IT"
                ],
                "global_buffer": [
					"stores_FR"
                ]
            }
        }
    }
}

...

Les plus simple de buffers, correponde a une nombre de unites bufférisés pour un couple item_id , endpoint_id.

endpoint_id

item_id

qty

buffer_group

store_1

i1

2

FR

store_1

i1

3

US

Declaration avec key requests

Très similaire aux buffers en dur, mais plus flexibles. Ils permettent de indiquer des filtres pour prendre en compte de manier dynamique des endpoints et items.

endpoint_id

item_id

qty

buffer_group

endpoint_type = store AND address.region.country.code = FR

*

9

FR

endpoint_type = warehouse 

*

12

WORLD

Buffer Global

Permet affecter un buffer de manier global, donc sans renseigner de filtrage sur les endpoints affecté. Si un filtre endpoint est declaré il sera ignoré. Permet buffériser une nombre de unites a niveau global.

item_id

qty

buffer_group

category = "bebe"

9

FR

*

12

WORLD

Structure d'un buffer

Signature API

Routes BIP - Buffer Inventory Processor

  • item_filter: Si nil, s'applique à tous les items

    • id (string) : item_id sur le quel le buffer serai appliqué (buffer en dur)

    • request_name (string) : Permet appliquer le buffer a un request de items (tous les items avec un certain catégorie). Doit être vide si id est set

  • endpoint_filter:  Si nil, s'applique à tous les endpoints

    • id (string) : endpoint_id sur le quel le buffer serai appliqué (buffer en dur)

    • request_name (string) : Permet appliquer le buffer a un request de endpoints (tous endpoints du type store). Doit être vide si id est set

  • stock_type (string) : required type de stock sur lequel le buffer est appliqué.

  • global (bool) : true dans le cas d'un buffer global, false sinon.

  • buffer_group (string) : required buffer group au quel appartient le buffer, permet lui fair référence dans une requete de stock..

  • qty 

    qty (int) : required nombre de unites bufférisés. 

Impact des buffers sur le calcul de stock

Prise en compte dans le requêtes de stock

Les buffers globals/endpoints que sont appliques dépende de la configuration des requêtes de stock. Dans la requete de stock on liste les buffers groups - les groups dans lesquels les buffers sont reparties - que doive être prise en compte. S'il y a 3 buffers globales configures pour une même clé de stock, et le but se d'appliquer arbitrairement 1 de ces 3. Il suffit de les repartir dans 3 buffers groups différents, et d'indiquer QUE 1 seul dans la requête de stock.

Calcul

Quand les buffers sont prise en compte dans un requete de stock, le calcul de stock disponible ce fait comme suit : 

Sans unification endpoint

Info
title

Detaille

Stock par endpoint => MAX( RawStock - ResEndpoint - Dispositions - MAX ( BufDur, BufEndpoint ) , 0 )

Avec unification endpoint

...

titleUnifie

...

endpoint

...

Code Block
MIN(
    SUM(
        MAX_par_endpoint(
            RawStock - ResEndpoint - Dispositions - MAX(BufDur, BufEndpoint),
            0
        )
    ),
    SUM(RawStock - ResEndpoint - Dispositions) - BufGlob
)

...