View difference between Paste ID: NhDWh1zx and JdprgsAB
SHOW: | | - or go back to the newest paste.
1
overwrite:
2
  - condition:
3
      - value: 
4
	      from: request # request ou product
5
          ref:
6
            object: App\Spec
7
            object_id: 12
8
			# Ou aller dans la requête chercher un champ en dur
9
			object: App\Request
10
			object_id: weight
11
        condition: eq # eq, ne, gt, gte, lt, lte, in, range (avec deux valeurs, équivalent de gte et lte)
12
        to: # Peut être un tableau si la condition est "in" ou "range"
13
          ref:
14
            object: App\SpecValue
15
            object_id: 133
16
			# Ou une littérale
17
			litteral: "Bleu"
18
	# Définit l'effet sur la requête
19
    # - set : définit et remplace une ou plusieurs valeurs
20
    # - unset : supprime une ou plusieurs valeurs
21
    # - addToSet : Ajoute une ou plusieurs valeurs à un tableau
22
    # - removeFromSet : Supprime une ou plusieurs valeurs dans un tableau
23
    # - add : ajoute la valeur à la littérale numérique
24
    # - subtract : soustrait la valeur à la littérale numérique
25
    # - multiply : multiplie la valeur à la littérale numérique
26
    # - divide : divise la valeur à la littérale numérique
27
    # - modulo : garde le reste de la division avec la littérale numérique
28
    # - add : ajoute la valeur à la littérale numérique
29
    effect: set
30
    to:
31
	  ref:
32
        object: App\Spec
33
        object_id: 13
34
	value: # Peut être un tableau pour ajouter de multiples valeurs
35
      ref:
36
        object: App\SpecValue
37
        object_id: 12233
38
		# Ou une littérale
39
		litteral: "Rouge"
40
          
41
42
algorithm:
43
  step_slug:
44
    # Si true et qu'un produit n'a pas la spec liée définie, alors il sera exclus.
45
    # Default : false
46
    mustMatch: true
47
48
    # Nombre de points ajoutés au scoring si il y a un match. Si checkbox, alors
49
    # les points de chaque match seront ajoutés à cette configuration.
50
    # Default: 0
51
    points: 20
52
53
	# Définit si on a besoin d'au moins une specValue qui matche, ou de toutes les specValues désirées qui matchent
54
	# Default: AND
55
    operator: OR
56
57
    # Définit la référence à une spec
58
    refersTo:
59
      object: App\Spec
60
      object_id: 1
61
62
    # Condition à utiliser pour vérifier si match :
63
    #  - eq : est égal à
64
    #  - ne : n'est pas égal à
65
    #  - lt : est plus petit que
66
    #  - gt : est plus grand que
67
    #  - range : est compris entre ... et ... (inclus)
68
    # Default: eq
69
    condition: eq
70
71
    # Définit la configuration des valeurs en fonction des réponses.
72
    # Si une valeur n'est pas renseignée, alors elle ne rentrera pas
73
    # en compte dans l'algo, sauf pour les specs littérales.
74
    values:
75
      value_slug:
76
        # Définit la référence à une spec value, ou une littérale.
77
        refersTo:
78
          # Si la référence est une spec value
79
          object: App\SpecValue
80
          object_id: 1
81
82
          # Si la référence est une littérale
83
          litteral: Bleu
84
85
        # Écrase la configuration des points
86
        points: 23
87
88
        # Ordre de qualité : détermine une échelle définissant la
89
        # qualité d'un produit par rapport à un autre, en fonction
90
        # d'une caractéristique. Les points ajoutés au score seront
91
        # modulés en fonction de l'écart entre la spec désirée et
92
        # la spec la plus proche.
93
        # Formule: points *= (1 - (Math.abs(foundQuality - wantedQuality) / (maxQuality - minQuality)))
94
        # Default: 1
95
        quality: 20
96
97
    # Permet de définir les valeurs par défaut de l'ensemble des valeurs
98
    valuesDefault:
99
      points: 20
100
      quality: 23