Вывести и предварительно заполнить
complianceQuestionnaireInfer разрешает применимые программы для ваших товаров,
открывает сеанс и предварительно отвечает на вопросы на основе данных вашего
товара. Каждый предварительно заполненный ответ имеет provenance: INFERRED и
оценку confidence.
Передайте intendedUse для руководства выводом — потоки витрин должны отправлять
CONSUMER.
mutation InferQuestionnaire($input: ComplianceQuestionnaireInferInput!) { complianceQuestionnaireInfer(input: $input) { session { id status lines { id programId status currentQuestion { code prompt answerType } } } lines { lineId state remainingRequiredCount } }}Состояние каждой строки state говорит вам, что дальше:
READY_TO_ATTEST- все обязательные вопросы получили ответы. Переходите прямо к Подтверждению (ниже).PARTIAL- некоторые ответы были предварительно заполнены, но остались обязательные вопросы. Ответьте на них вcurrentQuestion.NOT_INFERRED- ничего не удалось предварительно заполнить; ответьте на него как на обычную анкету.
Программы, уже удовлетворенные существующим ответом, пропускаются и возвращаются в
alreadySatisfied (выше опущено).
Просмотр и исправление
Сеанс содержит предварительно заполненные ответы — не финализированный ответ. Для каждого ответа грузоотправитель либо:
- принимает его — оставляет его без изменений, и он остается
INFERRED, либо - исправляет его — отправляет новое значение с помощью
questionnaireAnswersSubmit, которое становитсяMANUAL.
Отправьте один ответ или несколько одновременно. Clarify переводит currentQuestion на
следующий оставшийся вопрос и, когда их больше нет, финализирует ответ строки
(его responseId заполняется).
Например, грузоотправитель принимает выведенный intended_use, но исправляет
contains_color_additives, поэтому отправляет только этот ответ:
mutation SubmitAnswers($input: QuestionnaireAnswersSubmitInput!) { questionnaireAnswersSubmit(input: $input) { status lines { id status responseId answers { questionCode value provenance confidence } } }}Подтверждение
Когда строка имеет статус READY_TO_ATTEST — все обязательные ответы уже предварительно
заполнены и грузоотправитель согласен — примите это в одном вызове с помощью
questionnaireSessionAttest. Он финализирует каждую подходящую строку или только
lineIds, которые вы передали.
mutation AttestSession($input: QuestionnaireSessionAttestInput!) { questionnaireSessionAttest(input: $input) { id status lines { id status responseId } }}Чтобы отказаться от незавершенного сеанса, вызовите questionnaireSessionAbandon(id: ID!).
Отправить полный ответ
Если у вас уже есть все ответы — например набор повторно используемых ответов для
CATALOG_ITEM — пропустите сеанс и отправьте напрямую с помощью
questionnaireResponseSubmit. Это заменяет любой предыдущий ответ для того же товара
и программы.
mutation SubmitResponse($input: QuestionnaireResponseSubmitInput!) { questionnaireResponseSubmit(input: $input) { id status completedAt answers { questionCode value provenance } }}Предпочитаете ответить без вывода? questionnaireSessionStart открывает сеанс
для выбранных вами программ, а затем вы используете те же вызовы Просмотр и исправление
и Подтверждение выше.
Прочитать ответы и готовность
Получите финализированную запись с помощью questionnaireResponse(id) и проверьте,
готов ли весь контейнер к подаче с помощью containerComplianceReadiness — ready
имеет значение true только когда каждая строка имеет полный ответ.
query ContainerReadiness($containerType: ContainerType!, $containerId: ID!) { containerComplianceReadiness( containerType: $containerType containerId: $containerId ) { ready totalLineCount outstandingLineCount }}Дальнейшие шаги
- Как это работает - ветвление, происхождение, динамические опции и предполагаемое использование.
- Проверка требований соответствия - откройте программы и прочитайте структуры анкеты.
Заполните анкету
Clarify предварительно заполняет то, что может, на основе данных вашего товара; вы подтверждаете или исправляете остальное, а затем финализируете.
GraphQL
После того как вы узнаете, какие программы применяются (см. Проверка требований соответствия), рекомендуемый поток состоит из трех вызовов:
complianceQuestionnaireInferоткрывает сеанс с ответами, предварительно заполненными из данных вашего товара.questionnaireAnswersSubmitдля изменения любых ответов, с которыми грузоотправитель не согласен, и ответа на оставшиеся.questionnaireSessionAttestдля принятия и финализации.Если у вас уже есть все ответы, вы можете отправить полный ответ в одном вызове вместо этого — см. Отправить полный ответ ниже.
Для чтения требуется область
COMPLIANCE_READ; для отправки ответов требуетсяCOMPLIANCE_WRITE. См. OAuth.Каждое значение ответа
value— это строка, кодированная в JSON: логическое значение —"true", выбранное или текстовое значение заключено в кавычки, как"\"cosmetic\"", множественный выбор —"[\"a\",\"b\"]", а число —"42".