推論和預先填寫
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"。