DOCS

Managing rules

/

Продвинутые правила

СКОРО

Zonos поддерживает продвинутую настройку того, как происходят расчеты в вашем аккаунте с помощью правил. Правила могут использоваться для добавления буферов к различным частям расчета, настройки сборов и многого другого. Для полного разбора того, как Zonos обрабатывает правила, включая список всех возможных типов правил, смотрите наш документ о разбивке правил. Правила могут управляться через Zonos Панель управления или через GraphQL API.

Важно: Правила являются продвинутой функцией, и неправильное использование может привести к различным непредвиденным последствиям в том, как Zonos работает и рассчитывает для вас.

Просмотр правил

Панель управления
GraphQL

Чтобы управлять правилами в Панели управления:

  1. Войдите в свой Zonos Панель управления аккаунт.
  2. Перейдите в Настройки -> Правила.

На странице "Правила" вы можете просмотреть все правила, связанные с вашим аккаунтом Zonos, отфильтровать правила и быстро включить или отключить правила.

Создание правил

Панель управления
GraphQL

Чтобы создать новое правило в Панели управления:

  1. Войдите в свою Zonos Панель управления .
  2. Перейдите в Настройки -> правила.
  3. Нажмите Создать правило.
  4. Добавьте имя вашему правилу, чтобы вы могли идентифицировать его позже. Эти имена видны только членам вашей организации.
  5. Следуйте шагам в разделе “Указать условие правила” ниже, чтобы добавить условие к вашему правилу.
  6. Следуйте шагам в разделе “Указать действие правила” ниже, чтобы добавить действие к вашему правилу.
  7. При желании вы можете добавить комментарий для дополнительного контекста. Эти комментарии видны только членам вашей организации.
  8. Следуйте шагам ниже, чтобы добавить конкретную дату начала и/или окончания для вашего правила (по желанию).
  9. Установите ваше правило в Включено или Отключено.
  10. Нажмите Сохранить.

Указать даты начала и окончания

Правила могут иметь дату начала, дату окончания или обе. Даты начала и окончания контролируют, когда и как ваше правило становится активным, и могут использоваться для создания правил, которые активны только в определенные периоды, такие как сезонные скидки или другие временные ситуации.

Поведение правила

ДатыПоведение
Дата начала и дата окончанияПравило будет активно в указанный период между датой начала и датой окончания.
Только дата начала, без даты окончанияПравило станет активным после указанной даты начала и должно быть отключено вручную.
Нет даты начала или окончанияПравило всегда будет активно, если не отключено вручную.

Указать условие правила

Каждое правило требует указания условия, чтобы определить, к чему оно применяется и какие переменные доступны в момент выполнения правила. Другими словами, условие определяет, должно ли правило выполняться вообще и когда. Разные условия имеют разные доступные параметры.

Например, если вы выберете “Перевозчик”, как условие, это позволит вам дополнительно выбрать, какой перевозчик является частью условия, что может быть полезно, если вы настраиваете буфер только для конкретного перевозчика.

Правила поддерживают только одно условие каждое и не поддерживают сложную логику, такую как “иначе если”, “и/или” или подобные термины. Если вы хотите связать правила, лучше подумать о том, как вы можете достичь той же логики с помощью нескольких правил по сравнению с одним большим, сложным правилом.

Указать действие правила

Действие правила — это то, что происходит, когда его условие выполнено. Так же, как и условия, существует множество возможных действий, каждое с разными параметрами.

Например, если вы хотите добавить буфер только для конкретного перевозчика, вы установите действие на “применить буфер” и укажете размер вашего буфера и к чему он применяется. Затем вы можете контролировать, к какому именно перевозчику применяется буфер, указав это в условии правила.

Так же, как и условия, правила поддерживают только одно действие каждое. Если вы хотите несколько действий, лучше подумать о том, как вы можете достичь той же логики с помощью нескольких правил по сравнению с одним большим, сложным правилом.

Правила обновления

Обновление правил в действии невозможно из-за особенностей работы нашей системы. Это связано с тем, что нам необходимо сохранять отслеживаемую историю того, какие правила были применены в каких ситуациях и что правило делало, когда оно выполнялось. В качестве альтернативы вы можете архивировать и воссоздавать правило, передавая измененные значения, что эффективно достигает "обновления" правила.

Этот пример мутации показывает, как вы можете объединить мутации ruleArchive и ruleCreate, чтобы достичь этого поведения:

Мутация

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
mutation ruleUpdate(
  $ruleId: ID!
  $action: String!
  $condition: String!
  $context: String!
  $description: String!
  $name: String!
) {
  ruleArchive(id: $ruleId)
  ruleCreate(
    input: {
      action: $action
      condition: $condition
      context: $context
      name: $name
      description: $description
    }
  ) {
    id
    action
    context
    condition
  }
}

Переменные

1
2
3
4
5
6
7
8
{
  "ruleId": "rule_935ee1ca-0c4d-4147-826a-1cb0894d9f43",
  "action": "amount = amount + 5 % amount",
  "condition": "ship_to_country == CA",
  "context": "SHIPMENT_RATING_BUFFER",
  "description": "test",
  "name": "test"
}

Правила архивации

Панель управления
GraphQL

После добавления правила его можно легко включать или отключать, чтобы определить, должны ли они влиять на ваши расчеты. Ручное включение или отключение правила переопределит любую логику, основанную на датах начала и окончания, содержащуюся в правиле.

Правила можно включать или отключать по одному из раздела “Редактировать правило” screen, или массово, используя флажки рядом с каждым правилом на странице “Все правила” screen.

Перечислите все возможные контексты правил

Мы предлагаем несколько глобальных запросов для работы с правилами, которые полезны для понимания того, как работают правила, создания пользовательских интерфейсов на основе правил и т. д. Эти запросы применимы ко всем пользователям, не являются специфичными для организаций и предлагаются для удобства. Этот запрос возвращает список всех возможных контекстов, к которым могут принадлежать правила. Контекст правила определяет, когда правило выполняется и какие переменные доступны.

Запрос

1
2
3
4
5
6
7
8
9
10
query {
  ruleContexts {
    name
    context
    variables {
      ruleTokenType
      value
    }
  }
}

Ответ

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
{
  "data": {
    "ruleContexts": [
      {
        "name": "SHIPMENT_RATING_BUFFER",
        "context": "buffer",
        "variables": [
          {
            "ruleTokenType": "MONEY",
            "value": "amount"
          },
          {
            "ruleTokenType": "NUMBER",
            "value": "item_count"
          },
          {
            "ruleTokenType": "MONEY",
            "value": "items_total"
          },
          {
            "ruleTokenType": "COUNTRY",
            "value": "ship_from_country"
          },
          {
            "ruleTokenType": "COUNTRY",
            "value": "ship_to_country"
          },
          {
            "ruleTokenType": "WEIGHT",
            "value": "weight"
          },
          {
            "ruleTokenType": "STRING",
            "value": "service_level"
          },
          {
            "ruleTokenType": "STRING",
            "value": "carrier"
          }
        ]
      }
    ]
  }
}

Была ли эта страница полезной?


На этой странице: