[
    {
        "useIf": {
            "blField": "payment_method",
            "condition": "startsWith",
            "value": "Inpost"
        },
        "blField": "admin_comments",
        "operation": "append",
        "separator": "-",
        "prefix": "Paczkomat",
        "externalField": "note",
        "suffix": "suffix",
        "modifiers": [
            [
                "replace",
                "inpost",
                "paczomat"
            ],
            [
                "substr",
                "10",
                "50"
            ],
            [
                "trim"
            ],
            [
                "addText",
                "jaki\u015b dodatkowy teks"
            ]
        ]
    }
]

useIf

Pozwala określić warunki dla których reguła będzie użyta

Allows you to specify conditions for which the rule will be used

Pola / Fields

blField

Ścieżka do pola w zamówieniu w BL

Allows you to specify conditions for which the rule will be used

condition

Warunek dla którego wartość zostanie użyta

Allows you to specify conditions for which the rule will be used

Parametry / Parameters
Nazwa / NameOpis / DescriptionUwagi / Comments
equalsSprawdza czy wartość jest równa

Checks if the value is equal

notEqualsSprawdza czy wartość nie jest równa

Checks if the value is not equal

containsSprawdza czy wartość zawiera

Checks if the value contains

notContainsSprawdza czy wartość nie zawiera

Checks if the value does not contain

startsWithSprawdza czy wartość zaczyna się od

Checks if the value starts with

notStartsWithSprawdza czy wartość nie zaczyna się od

Checks if the value does not start with

endsWithSprawdza czy wartość kończy się na

Checks if the value ends with

notEndsWithSprawdza czy wartość nie kończy się na

Checks if the value does not end with

greaterThanSprawdza czy wartość jest większa niż

Checks if the value is greater than

greaterThanOrEqualSprawdza czy wartość jest większa lub równa

Checks if the value is greater than or equal to

lessThanSprawdza czy wartość jest mniejsza niż

Checks if the value is less than

lessThanOrEqualSprawdza czy wartość jest mniejsza lub równa

Checks if the value is less than or equal to

inSprawdza czy wartość jest w tablicy

Checks if the value is in the array

podaj wartości oddzielone przecinkiem

enter values separated by a comma

notInSprawdza czy wartość nie jest w tablicy

Checks if the value is not in the array

podaj wartości oddzielone przecinkiem

enter values separated by a comma

emptySprawdza czy wartość jest pusta

Checks if the value is empty

notEmptySprawdza czy wartość nie jest pusta

Checks if the value is not empty

beetwenSprawdza czy wartość jest pomiędzy

Checks if the value is between

podaj dwie wartości oddzielone przecinkiem

enter two values separated by a comma

notBeetwenSprawdza czy wartość nie jest pomiędzy

Checks if the value is not between

podaj dwie wartości oddzielone przecinkiem

enter two values separated by a comma

value

Wartość do użycia

Allows you to specify conditions for which the rule will be used

blField

Ścieżka do pola w zamówieniu w BL

Path to the field in the order in BL

Przykład / Example

extra_fields_1 => Pole dodatkowe 1
products[].location => Pole 'location' w każdym produkcie w zamówieniu
products[].attributes.Kod producenta => Dodaje parametr 'Kod producenta' do 'attributes' w każdym produkcie w zamówieniu

externalField

Pole w zewnętrznym systemie, możemy wskazać dowolne pole w zamówieniu z zewnętrznego systemu
w przypadku gdy pole jest elementem tablicy, należy wskazać po którym z pól tablicy chcemy filtrować wybierając pole z listy rozwijanej 'if' oraz wprowadzić wartość do pola 'equals'
np additional_fields[].value if field_id=3, pobierze wartość pola 'value' jeśli pole field_id będzie miało wartość 3

[
    [
        "value"=>"ABC",
        "field_id"=>7
    ],
    [
        "value"=>"XYZ",
        "field_id"=>3
    ]
]
Można również powiązać dwie tabele ze sobą, w tym celu jako wartość do dopasowania należy użyć skrótu 'tgt.NAZWA_POLA' gdzie 'NAZWA_POLA' to nazwa pola z pierwszej tabeli, np.:
$blOrder=[
    "products"=>[
        [   
            "id"=>1,
            "name"=>"Produkt 1",
            "sku"=>""
        ],
        [   
            "id"=>2,
            "name"=>"Produkt 2",
            "sku"=>""
        ]
    [
];
$externalOrder=[
    "items"=>[
        [
            "code"=>"AWS",
            "product_id"=>2
        ],
        [
            "code"=>"XYZ",
            "product_id"=>1
        ]
    ]
]
np.: blField: products[].sku, externalField items[].code if product_id=tgt.id, pobierze wartość pola 'code' jeśli pole 'product_id' będzie miało wartość zgodną z polem 'id' z pierwszej tabeli, otrzymamy wtedy:

$blOrder=[
    "products"=>[
        [   
            "id"=>1,
            "name"=>"Produkt 1",
            "sku"=>"XYZ"
        ],
        [   
            "id"=>2,
            "name"=>"Produkt 2",
            "sku"=>"AWS"
        ]
    [
];
Można również użyć powiązania po kluczu, w tym celu jako 'if' należy wybrać 'idx' a jako wartość do dopasowania należy użyć skrótu 'tgt.idx' gdzie 'idx' to klucz z pierwszej tabeli, np.: np.: blField: products[].sku, externalField items[].code if idx=tgt.idx, otrzymamy wtedy:

$blOrder=[
    "products"=>[
        [   
            "id"=>1,
            "name"=>"Produkt 1",
            "sku"=>"AWS"
        ],
        [   
            "id"=>2,
            "name"=>"Produkt 2",
            "sku"=>"XYZ"
        ]
    [
];
w miejscu 'tgt.idx' można również użyć wartości liczbowej wskazującej na pozycję w tablicy zaczynając od '0', np. '0' oznacza pierwszy element tablicy, '1' drugi itd.,
np.: blField: extra_field_1, externalField items[].code if idx=1, otrzymamy wtedy:
$blOrder=[
    "extra_field_1"=>"XYZ",    
];
w przypadku wybrania pola, które jest elementem tablicy elementów i nie wskazaniu dopasowania, zostaną wartości ze wszystkich pól,i rozdzielone wartością z pola 'value separator' np.: np.: blField: extra_field_1, externalField items[].code otrzymamy wtedy:
$blOrder=[
    "extra_field_1"=>"XYZ,ABC",    
];

Field in the external system, we can specify any field in the order from the external system. In the case where the field is an element of an array, you should indicate after which field of the array you want to filter by selecting a field from the dropdown list 'if' and entering a value into the 'equals' field. For example, `additional_fields[].value if field_id=3` will retrieve the 'value' of the field if the 'field_id' has a value of 3: json [ { "value": "ABC", "field_id": 7 }, { "value": "XYZ", "field_id": 3 } ] You can also link two tables together. To do this, you should use the abbreviation 'tgt.FIELD_NAME' as the matching value, where 'FIELD_NAME' is the name of the field from the first table. For instance:

$blOrder = [
    "products" => [
        [
            "id" => 1,
            "name" => "Product 1",
            "sku" => ""
        ],
        [
            "id" => 2,
            "name" => "Product 2",
            "sku" => ""
        ]
    ]
];

$externalOrder = [
    "items" => [
        [
            "code" => "AWS",
            "product_id" => 2
        ],
        [
            "code" => "XYZ",
            "product_id" => 1
        ]
    ]
];
For example, `blField: products[].sku, externalField items[].code if product_id=tgt.id` will retrieve the 'code' value if the 'product_id' matches the 'id' from the first table:
$blOrder = [
    "products" => [
        [
            "id" => 1,
            "name" => "Product 1",
            "sku" => "XYZ"
        ],
        [
            "id" => 2,
            "name" => "Product 2",
            "sku" => "AWS"
        ]
    ]
];
You can also use key-based associations. In this case, you should choose 'idx' for 'if' and use the abbreviation 'tgt.idx' as the matching value, where 'idx' is the key from the first table. For instance, `blField: products[].sku, externalField items[].code if idx=tgt.idx` will result in:
$blOrder = [
    "products" => [
        [
            "id" => 1,
            "name" => "Product 1",
            "sku" => "AWS"
        ],
        [
            "id" => 2,
            "name" => "Product 2",
            "sku" => "XYZ"
        ]
    ]
];
In place of 'tgt.idx', you can also use a numerical value indicating the position in the array starting from '0', where '0' represents the first element, '1' the second, and so on. For example, `blField: extra_field_1, externalField items[].code if idx=1` will result in:
$blOrder = [
    "extra_field_1" => "XYZ"
];
If you choose a field that is an element of an array and do not specify a match, values from all fields will be included, separated by the 'value separator' value. For example, `blField: extra_field_1, externalField items[].code` will result in:
$blOrder = [
    "extra_field_1" => "XYZ,ABC"
];

operation

Operacja na wartościach

Operation on values

Parametry / Parameters

append

Dodaje wartość do istniejącej

Adds a value to an existing one

prepend

Doda wartość na początku istniejącej

Adds a value at the beginning of an existing one

replace

Zamienia wartość

Replaces the value

clear

Czyści wartość

Clears the value

null

Ustawia wartość NULL

Sets the value to NULL

modifiers

Modyfikator wartości, przyjmuję wartości według schematu podanego poniżej, modyfikatorów można użyć wiele rozdzielając je znakiem & lub jako tablice,
parametry modyfikatorów podajemy po przecinku, lub jako kolejne elementy tablicy, której kluczem zero jest nazwa modyfikatora

Value modifier, it accepts values according to the scheme given below, you can use many modifiers by separating them with the & sign or as an array,
modifier parameters are given after a comma, or as subsequent elements of an array, whose zero key is the name of the modifier

Parametry / Parameters

toTime,format

Konwertuje wartość na datę według podanego formatu

Converts the value to a date according to the given format

Parametry / Parameters
Nazwa / NameOpis / DescriptionDomyślna wartość / Default value
formatFormat daty

Date format

Y-m-d H:i:s
Przykład / Example:
["toTime","H:i:s Y-m-d"]

Rezultat / Result: '2021-01-01 00:00:00' => '00:00:00 01-01-2021'

toTimestamp

Konwertuje date na wartość w formacie UNIX

Converts the date to a UNIX format value

Przykład / Example: toTimestamp

Rezultat / Result: '2021-01-01 00:00:00' => 1609459200

trim

Usuwa białe znaki z początku i końca wartości

Removes white spaces from the beginning and end of the value

Przykład / Example:
["trim"]

Rezultat / Result: ' test ' => 'test'

ltrim

Usuwa białe znaki z początku wartości

Removes white spaces from the beginning of the value

Przykład / Example:
["ltrim"]

Rezultat / Result: ' test ' => 'test '

rtrim

Usuwa białe znaki z końca wartości

Removes white spaces from the end of the value

Przykład / Example:
["rtrim"]

Rezultat / Result: ' test ' => ' test'

upper

Zamienia wartość na wielkie litery

Converts the value to uppercase

Przykład / Example:
["upper"]

Rezultat / Result: 'test test' => 'TEST TEST'

lower

Zamienia wartość na małe litery

Converts the value to lowercase

Przykład / Example:
["lower"]

Rezultat / Result: 'TEST TEST' => 'test test'

ucfirts

Zamienia pierwszą literę na wielką

Converts the first letter to uppercase

Przykład / Example:
["ucfirts"]

Rezultat / Result: 'test test' => 'Test test'

replace,search,replace

zamienia wartości

replaces values

Parametry / Parameters
Nazwa / NameOpis / DescriptionDomyślna wartość / Default value
searchWartość do zamiany

Value to replace

replaceWartość zamiany

Replacement value

Przykład / Example:
["replace"," ","-"]

Rezultat / Result: 'test test' => 'test-test'

substr,start,length

Zwraca fragment wartości

Returns a fragment of the value

Parametry / Parameters
Nazwa / NameOpis / DescriptionDomyślna wartość / Default value
startPoczątek fragmentu

Fragment start

lengthDługość fragmentu

Fragment length

Przykład / Example:
["substr",1,5]

Rezultat / Result: 'test test' => 'est t'

condition,true,false

Zwraca wartość w zależności od warunku

Returns a value depending on the condition

Parametry / Parameters
Nazwa / NameOpis / DescriptionDomyślna wartość / Default value
trueJeśli wartość jest prawdziwa

If the value is true

falseJeśli wartość jest fałszywa

If the value is false

Przykład / Example:
["condition","Yes","No"]

Rezultat / Result: '1' => 'Tak'

conditionSelfText,alternativeValue

Jeśli wartość jest pusta zwraca wartość alternatywną

If the value is empty, it returns an alternative value

Parametry / Parameters
Nazwa / NameOpis / DescriptionDomyślna wartość / Default value
alternativeValueWartość alternatywna

Alternative value

Przykład / Example:
["conditionSelfText","abc"]

Rezultat / Result: ' ' => 'abc'

conditionSelfText,field

Jeśli wartość jest pusta zwraca wartość z podanego pola

If the value is empty, it returns the value from the given field

Parametry / Parameters
Nazwa / NameOpis / DescriptionDomyślna wartość / Default value
fieldPole z którego ma zostać pobrana wartość

Field from which the value is to be retrieved

Przykład / Example:
["conditionSelfText","delivery_name"]

Rezultat / Result: ' ' => 'DHL'

regex,pattern,replace

Zamienia wartość na podstawie wyrażenia regularnego

Replaces the value based on a regular expression

Parametry / Parameters
Nazwa / NameOpis / DescriptionDomyślna wartość / Default value
patternWyrażenie regularne w formie /find_regex/

Regular expression in the form /find_regex/

replaceWartość zamiany

Replacement value

Przykład / Example:
["regex","/test/","-"]

Rezultat / Result: 'test test' => '- -'

Przykład / Example

["replace,ab,bb","upper","sustr,1,2"]

Rezultat / Result

'abc' => 'bbc', 'bbc'=>'BBC', 'BBC' => 'BC', otrzymamy 'BC'

prefix

Prefix dodany do wartości

Prefix added to the value

suffix

Suffix dodany do wartości

Suffix added to the value