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