DOCS

Заполните анкету

Заполните анкету

Clarify предварительно заполняет то, что может, на основе данных вашего товара; вы подтверждаете или исправляете остальное, а затем финализируете.

GraphQL

После того как вы узнаете, какие программы применяются (см. Проверка требований соответствия), рекомендуемый поток состоит из трех вызовов:

  1. Вывести - complianceQuestionnaireInfer открывает сеанс с ответами, предварительно заполненными из данных вашего товара.
  2. Просмотр и исправление - questionnaireAnswersSubmit для изменения любых ответов, с которыми грузоотправитель не согласен, и ответа на оставшиеся.
  3. Подтверждение - questionnaireSessionAttest для принятия и финализации.

Если у вас уже есть все ответы, вы можете отправить полный ответ в одном вызове вместо этого — см. Отправить полный ответ ниже.

Области действия

Для чтения требуется область COMPLIANCE_READ; для отправки ответов требуется COMPLIANCE_WRITE. См. OAuth.

Значения ответов кодированы в JSON

Каждое значение ответа value — это строка, кодированная в JSON: логическое значение — "true", выбранное или текстовое значение заключено в кавычки, как "\"cosmetic\"", множественный выбор — "[\"a\",\"b\"]", а число — "42".

Вывести и предварительно заполнить 

complianceQuestionnaireInfer разрешает применимые программы для ваших товаров, открывает сеанс и предварительно отвечает на вопросы на основе данных вашего товара. Каждый предварительно заполненный ответ имеет provenance: INFERRED и оценку confidence.

Передайте intendedUse для руководства выводом — потоки витрин должны отправлять CONSUMER.

1mutation InferQuestionnaire($input: ComplianceQuestionnaireInferInput!) {
2 complianceQuestionnaireInfer(input: $input) {
3 session {
4 id
5 status
6 lines {
7 id
8 programId
9 status
10 currentQuestion {
11 code
12 prompt
13 answerType
14 }
15 }
16 }
17 lines {
18 lineId
19 state
20 remainingRequiredCount
21 }
22 }
23}

Состояние каждой строки state говорит вам, что дальше:

  • READY_TO_ATTEST - все обязательные вопросы получили ответы. Переходите прямо к Подтверждению (ниже).
  • PARTIAL - некоторые ответы были предварительно заполнены, но остались обязательные вопросы. Ответьте на них в currentQuestion.
  • NOT_INFERRED - ничего не удалось предварительно заполнить; ответьте на него как на обычную анкету.

Программы, уже удовлетворенные существующим ответом, пропускаются и возвращаются в alreadySatisfied (выше опущено).

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

Сеанс содержит предварительно заполненные ответы — не финализированный ответ. Для каждого ответа грузоотправитель либо:

  • принимает его — оставляет его без изменений, и он остается INFERRED, либо
  • исправляет его — отправляет новое значение с помощью questionnaireAnswersSubmit, которое становится MANUAL.

Отправьте один ответ или несколько одновременно. Clarify переводит currentQuestion на следующий оставшийся вопрос и, когда их больше нет, финализирует ответ строки (его responseId заполняется).

Принятые ответы сохраняются, не отбрасываются

Исправление одного ответа переопределяет только этот ответ. Финализированный ответ содержит полный набор — принятые ответы остаются INFERRED, исправления — MANUAL — поэтому вы всегда сохраняете запись о том, что предоставил ИИ и что изменил человек.

Например, грузоотправитель принимает выведенный intended_use, но исправляет contains_color_additives, поэтому отправляет только этот ответ:

1mutation SubmitAnswers($input: QuestionnaireAnswersSubmitInput!) {
2 questionnaireAnswersSubmit(input: $input) {
3 status
4 lines {
5 id
6 status
7 responseId
8 answers {
9 questionCode
10 value
11 provenance
12 confidence
13 }
14 }
15 }
16}

Подтверждение 

Когда строка имеет статус READY_TO_ATTEST — все обязательные ответы уже предварительно заполнены и грузоотправитель согласен — примите это в одном вызове с помощью questionnaireSessionAttest. Он финализирует каждую подходящую строку или только lineIds, которые вы передали.

1mutation AttestSession($input: QuestionnaireSessionAttestInput!) {
2 questionnaireSessionAttest(input: $input) {
3 id
4 status
5 lines {
6 id
7 status
8 responseId
9 }
10 }
11}

Чтобы отказаться от незавершенного сеанса, вызовите questionnaireSessionAbandon(id: ID!).

Отправить полный ответ 

Если у вас уже есть все ответы — например набор повторно используемых ответов для CATALOG_ITEM — пропустите сеанс и отправьте напрямую с помощью questionnaireResponseSubmit. Это заменяет любой предыдущий ответ для того же товара и программы.

1mutation SubmitResponse($input: QuestionnaireResponseSubmitInput!) {
2 questionnaireResponseSubmit(input: $input) {
3 id
4 status
5 completedAt
6 answers {
7 questionCode
8 value
9 provenance
10 }
11 }
12}

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

Прочитать ответы и готовность 

Получите финализированную запись с помощью questionnaireResponse(id) и проверьте, готов ли весь контейнер к подаче с помощью containerComplianceReadinessready имеет значение true только когда каждая строка имеет полный ответ.

1query ContainerReadiness($containerType: ContainerType!, $containerId: ID!) {
2 containerComplianceReadiness(
3 containerType: $containerType
4 containerId: $containerId
5 ) {
6 ready
7 totalLineCount
8 outstandingLineCount
9 }
10}

Дальнейшие шаги 

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


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