推斷並預填
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"。