Обнаружение применимых программ
Передайте hsCode и shipToCountry товара, чтобы найти, какие программы
применяются. Результатом является постраничное соединение узлов
ComplianceRequirement, каждый из которых указывает на ComplianceProgram,
который он срабатывает.
query ComplianceRequirements($filter: ComplianceRequirementFilter!) { complianceRequirements(filter: $filter, first: 10) { totalCount pageInfo { hasNextPage endCursor } edges { cursor node { id hsCode shipToCountry shipFromCountry program { id code name programType authority jurisdiction status strictness currentVersion { id version status } } } } }}Значение shipFromCountry равное null для требования означает, что программа
применяется независимо от происхождения. Когда вы предоставляете
shipFromCountry в фильтре, совпадают как строки, специфичные по происхождению,
так и строки "любого происхождения".
Фильтрация и постраничность
complianceRequirements принимает ComplianceRequirementFilter плюс стандартные
аргументы постраничности курсора (first / after для прямого постраничного
преобразования, last / before для обратного постраничного преобразования).
| Поле фильтра↕ | Тип↕ | Примечания↕ |
|---|---|---|
hsCode | String | Точное совпадение кода HS. Взаимно исключающе с hsCodePrefix. |
hsCodePrefix | String | Совпадение префикса (только цифры и точки, максимум 12 символов). Взаимно исключающе с hsCode. |
shipToCountry | CountryCode | Страна назначения. |
shipFromCountry | CountryCode | Страна происхождения. Строки с нулевым происхождением ("любое происхождение") также совпадают. |
programTypes | [ComplianceProgramType!] | Совпадают только эти типы программ. Пустой список = нет фильтра. |
Например, перечислите все требования PGA для главы косметики 3304:
query PgaRequirements($filter: ComplianceRequirementFilter!) { complianceRequirements(filter: $filter, first: 25) { totalCount edges { node { hsCode shipToCountry program { code name } } } }}Чтение анкеты программы
Каждая ComplianceProgram предоставляет свою currentVersion — активную
анкету — и вопросы этой версии questions в порядке отображения. Каждый вопрос
объявляет свой answerType, является ли он required, его options (для типов
выбора) и необязательный displayCondition, который ветвит анкету. Прочитайте
эту структуру, чтобы отобразить собственный интерфейс или точно понять, что
должен предоставить импортер.
query QuestionnaireStructure($filter: ComplianceRequirementFilter!) { complianceRequirements(filter: $filter, first: 1) { edges { node { program { code name currentVersion { version status questions { code prompt helpText answerType required section displayOrder optionsSource options { value label displayOrder } displayCondition { questionCode operator values } } } } } } }}В примере выше contains_color_additives отображается только если intended_use
равно cosmetic — вот как работает displayCondition. Для полной модели ветвления
и динамических опций (optionsSource) см. Как это работает.
Следующие шаги
- Заполнение анкеты - вывод, ответ и финализация анкет, которые вы обнаружили здесь.
- Как это работает - ветвление, происхождение и динамические опции.
Проверка требований по соответствию
Определите, какие программы соответствия применяются к товару, и прочитайте анкету, которую вам потребуется заполнить.
GraphQL
Запрос
complianceRequirementsявляется точкой входа в Zonos Clarify. По коду HS товара и маршруту он возвращает программы соответствия, которые срабатывают, и позволяет вам просмотреть полную структуру анкеты каждой программы — вопросы, варианты и логику ветвления. Используйте его, чтобы определить, нужны ли поставке ответы по соответствию, и для отрисовки собственного интерфейса анкеты.Этот запрос требует области действия
COMPLIANCE_READ. Перейдите на OAuth для аутентификации запросов API.