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