{"id":"9f460e9b-c618-4f62-96a4-fdad6b888495","entityType":"agent","slug":"clawhub-dataify-server-dataify-walmart-products","name":"Scraper Walmart Products","canonicalUrl":"https://www.xpersona.co/agent/clawhub-dataify-server-dataify-walmart-products","canonicalPath":"/agent/clawhub-dataify-server-dataify-walmart-products","generatedAt":"2026-10-14T15:57:00.031Z","source":"CLAWHUB","claimStatus":"UNCLAIMED","verificationTier":"NONE","summary":{"evidence":{"source":"CLAWHUB","verified":false,"confidence":"medium","updatedAt":"2026-10-12T01:28:22.862Z","emptyReason":null},"description":"Collect Walmart Products data and return results","descriptionLabel":"Source description","evidenceSummary":"Capability contract not published. No trust telemetry is available yet. 961 downloads reported by the source. Last updated 10/12/2026.","installCommand":"clawhub skill install s17feed8b2qc486skqmjapxmjs86bd4f:dataify-walmart-products","sourceUrl":"https://clawhub.ai/dataify-server/dataify-walmart-products","homepage":"https://clawhub.ai/dataify-server/skills/dataify-walmart-products","primaryLinks":[{"label":"View on ClawHub","url":"https://clawhub.ai/dataify-server/dataify-walmart-products","kind":"source"},{"label":"Homepage","url":"https://clawhub.ai/dataify-server/skills/dataify-walmart-products","kind":"homepage"}],"safetyScore":84,"overallRank":62,"popularityScore":60,"trustScore":null,"claimedByName":null,"isOwner":false,"seoDescription":"Scraper Walmart Products technical dossier on Xpersona with agent coverage, OPENCLEW support, and live trust metadata."},"coverage":{"evidence":{"source":"public-profile","verified":false,"confidence":"medium","updatedAt":"2026-10-12T01:28:22.862Z","emptyReason":null},"protocols":[{"protocol":"OPENCLEW","label":"OpenClaw","status":"self-declared","notes":"Declared in the public agent profile."}],"capabilities":[],"verifiedCount":0,"selfDeclaredCount":1,"capabilityMatrix":{"rows":[{"key":"OPENCLEW","type":"protocol","support":"unknown","confidenceSource":"profile","notes":"Listed on profile"}],"flattenedTokens":"protocol:OPENCLEW|unknown|profile"}},"adoption":{"evidence":{"source":"CLAWHUB","verified":false,"confidence":"medium","updatedAt":"2026-10-12T01:28:22.862Z","emptyReason":null},"stars":null,"forks":null,"downloads":961,"likes":null,"task":null,"library":null,"packageName":null,"latestVersion":"1.3.1","tractionLabel":"961 downloads"},"release":{"evidence":{"source":"CLAWHUB","verified":false,"confidence":"medium","updatedAt":"2026-10-12T01:28:22.791Z","emptyReason":null},"lastUpdatedAt":"2026-10-12T01:28:22.862Z","lastCrawledAt":"2026-10-12T01:28:22.791Z","lastIndexedAt":null,"nextCrawlAt":"2026-10-13T01:28:22.791Z","lastVerifiedAt":null,"highlights":[{"version":"1.3.1","createdAt":"2026-09-08T07:47:32.690Z","changelog":"Fix Walmart CLI defaults: all_variations now defaults to false and keyword searches default to walmart.com, matching documented behavior. Adds four-mode regression coverage.","fileCount":15,"zipByteSize":38904},{"version":"1.3.0","createdAt":"2026-09-01T09:15:43.851Z","changelog":"默认返回最终采集结果，完善异步等待下载与安全恢复；修复空目标误执行、Quick Start、Token 配置和触发路由冲突，并补齐发布前自动化测试","fileCount":9,"zipByteSize":18293},{"version":"1.2.0","createdAt":"2026-07-16T08:39:05.835Z","changelog":"新增能力路由与异步任务闭环，修复失效引用、Token 泄漏和 Skill 元数据兼容性","fileCount":8,"zipByteSize":15073},{"version":"1.1.0","createdAt":"2026-06-08T02:07:47.903Z","changelog":"补全中文文档，更新目录结构","fileCount":8,"zipByteSize":15210},{"version":"1.0.0","createdAt":"2026-06-03T05:38:40.223Z","changelog":"Initial release of Dataify Walmart Product Information Builder skill. - Submit Walmart product information collection jobs via Dataify Builder, supporting 4 modes: by product URL, category URL, SKU, or keyword. - Guides users step-by-step: mode selection, parameter input/confirmation, multiple group handling, and API TOKEN management. - Robust API TOKEN workflow: uses saved DATAIFY_API_TOKEN if present, else prompts user, with Windows PowerShell instructions for local saving. - Validates user inputs for each mode before submission. - Upon successful submission, provides task ID, status, and instructions to check results at the Dataify dashboard. - Handles skill activation for both English and Chinese Walmart collection/scraping prompts.","fileCount":7,"zipByteSize":10509}]},"execution":{"evidence":{"source":"CLAWHUB","verified":false,"confidence":"low","updatedAt":null,"emptyReason":"No published capability contract is available yet."},"installCommand":"clawhub skill install s17feed8b2qc486skqmjapxmjs86bd4f:dataify-walmart-products","setupComplexity":"low","setupSteps":["Install using `clawhub skill install s17feed8b2qc486skqmjapxmjs86bd4f:dataify-walmart-products` in an isolated environment before connecting it to live workloads.","No published capability contract is available yet, so validate auth and request/response behavior manually.","Review the upstream CLAWHUB listing at https://clawhub.ai/dataify-server/dataify-walmart-products before using production credentials."],"contract":{"contractStatus":"missing","authModes":[],"requires":[],"forbidden":[],"supportsMcp":false,"supportsA2a":false,"supportsStreaming":false,"inputSchemaRef":null,"outputSchemaRef":null,"dataRegion":null,"contractUpdatedAt":null,"sourceUpdatedAt":null,"freshnessSeconds":null},"invocationGuide":{"preferredApi":{"snapshotUrl":"https://www.xpersona.co/api/v1/agents/clawhub-dataify-server-dataify-walmart-products/snapshot","contractUrl":"https://www.xpersona.co/api/v1/agents/clawhub-dataify-server-dataify-walmart-products/contract","trustUrl":"https://www.xpersona.co/api/v1/agents/clawhub-dataify-server-dataify-walmart-products/trust"},"curlExamples":["curl -s \"https://www.xpersona.co/api/v1/agents/clawhub-dataify-server-dataify-walmart-products/snapshot\"","curl -s \"https://www.xpersona.co/api/v1/agents/clawhub-dataify-server-dataify-walmart-products/contract\"","curl -s \"https://www.xpersona.co/api/v1/agents/clawhub-dataify-server-dataify-walmart-products/trust\""],"jsonRequestTemplate":{"query":"summarize this repo","constraints":{"maxLatencyMs":2000,"protocolPreference":["OPENCLEW"]}},"jsonResponseTemplate":{"ok":true,"result":{"summary":"...","confidence":0.9},"meta":{"source":"CLAWHUB","generatedAt":"2026-10-14T15:57:00.017Z"}},"retryPolicy":{"maxAttempts":3,"backoffMs":[500,1500,3500],"retryableConditions":["HTTP_429","HTTP_503","NETWORK_TIMEOUT"]}},"endpoints":{"dossierUrl":"https://www.xpersona.co/api/v1/agents/clawhub-dataify-server-dataify-walmart-products/dossier","snapshotUrl":"https://www.xpersona.co/api/v1/agents/clawhub-dataify-server-dataify-walmart-products/snapshot","contractUrl":"https://www.xpersona.co/api/v1/agents/clawhub-dataify-server-dataify-walmart-products/contract","trustUrl":"https://www.xpersona.co/api/v1/agents/clawhub-dataify-server-dataify-walmart-products/trust"}},"reliability":{"evidence":{"source":"runtime-metrics","verified":false,"confidence":"low","updatedAt":null,"emptyReason":"No trust, reliability, or runtime telemetry is available."},"trust":{"status":"unavailable","handshakeStatus":"UNKNOWN","verificationFreshnessHours":null,"reputationScore":null,"p95LatencyMs":null,"successRate30d":null,"fallbackRate":null,"attempts30d":null,"trustUpdatedAt":null,"trustConfidence":"unknown","sourceUpdatedAt":null,"freshnessSeconds":null},"decisionGuardrails":{"doNotUseIf":["Contract metadata is missing or unavailable for deterministic execution."],"safeUseWhen":[],"riskFlags":["missing_or_unavailable_contract","trust_data_unavailable","schema_references_missing"],"operationalConfidence":"low"},"executionMetrics":{"observedLatencyMsP50":null,"observedLatencyMsP95":null,"estimatedCostUsd":null,"uptime30d":null,"rateLimitRpm":null,"rateLimitBurst":null,"lastVerifiedAt":null,"verificationSource":null},"runtimeMetrics":{"successRate":null,"avgLatencyMs":null,"avgCostUsd":null,"hallucinationRate":null,"retryRate":null,"disputeRate":null,"p50Latency":null,"p95Latency":null,"lastUpdated":null}},"benchmarks":{"evidence":{"source":"no-benchmark-data","verified":false,"confidence":"low","updatedAt":null,"emptyReason":"No benchmark suites or observed failure patterns are available."},"suites":[],"failurePatterns":[]},"artifacts":{"evidence":{"source":"CLAWHUB","verified":false,"confidence":"medium","updatedAt":"2026-10-12T01:28:22.862Z","emptyReason":null},"readme":"Skill: Scraper Walmart Products\n\nOwner: dataify-server\n\nSummary: Collect Walmart Products data and return results\n\nTags: latest:1.3.1\n\nVersion history:\n\nv1.3.1 | 2026-09-08T07:47:32.690Z | user\n\nFix Walmart CLI defaults: all_variations now defaults to false and keyword searches default to walmart.com, matching documented behavior. Adds four-mode regression coverage.\n\nv1.3.0 | 2026-09-01T09:15:43.851Z | user\n\n默认返回最终采集结果，完善异步等待下载与安全恢复；修复空目标误执行、Quick Start、Token 配置和触发路由冲突，并补齐发布前自动化测试\n\nv1.2.0 | 2026-07-16T08:39:05.835Z | user\n\n新增能力路由与异步任务闭环，修复失效引用、Token 泄漏和 Skill 元数据兼容性\n\nv1.1.0 | 2026-06-08T02:07:47.903Z | user\n\n补全中文文档，更新目录结构\n\nv1.0.0 | 2026-06-03T05:38:40.223Z | auto\n\nInitial release of Dataify Walmart Product Information Builder skill.\n\n- Submit Walmart product information collection jobs via Dataify Builder, supporting 4 modes: by product URL, category URL, SKU, or keyword.\n- Guides users step-by-step: mode selection, parameter input/confirmation, multiple group handling, and API TOKEN management.\n- Robust API TOKEN workflow: uses saved DATAIFY_API_TOKEN if present, else prompts user, with Windows PowerShell instructions for local saving.\n- Validates user inputs for each mode before submission.\n- Upon successful submission, provides task ID, status, and instructions to check results at the Dataify dashboard.\n- Handles skill activation for both English and Chinese Walmart collection/scraping prompts.\n\nArchive index:\n\nArchive v1.3.1: 15 files, 38904 bytes\n\nFiles: agents/openai.yaml (529b), assets/dataify-walmart-products-large.svg (892b), assets/dataify-walmart-products-small.svg (850b), references/modes-and-parameters.md (5616b), scripts/business_workflow.py (34775b), scripts/catalog_builder.py (7013b), scripts/dataify_client.py (6994b), scripts/submit_dataify_walmart_products.py (12265b), scripts/task_runtime.py (2259b), scripts/token_setup.py (2585b), scripts/wait_for_task.py (8879b), skill-card.md (2057b), SKILL.md (11969b), SKILL.zh-CN.md (18676b), _meta.json (143b)\n\nFile v1.3.1:SKILL.md\n\n---\nname: dataify-walmart-products\ndescription: \"Collect Walmart product records by URL, category URL, SKU, or keyword. Do not use for Amazon, eBay, or general shopping-search results.\"\n---\n\n# Dataify Walmart Products\n\nSubmit Walmart product information collection jobs through Dataify Builder. This skill is a guided wrapper for four collection modes:\n\n| Mode | Collector ID | Use For |\n| --- | --- | --- |\n| Product URL | `walmart_product_by-url` | Collecting one or more Walmart products by product URL. |\n| Category URL | `walmart_product_by-category-url` | Collecting Walmart products by category URL. |\n| SKU | `walmart_product_by-sku` | Collecting one or more Walmart products by SKU. |\n| Keyword | `walmart_product_by-keywords` | Collecting Walmart products by search keyword and domain. |\n\nAfter submission, continue monitoring the returned `task_id` and return the final result by default.\n\n## API TOKEN Handling\n\nUse `DATAIFY_API_TOKEN` as the long-term saved token name.\n\n- If `DATAIFY_API_TOKEN` is saved locally, use it without asking the user to re-enter the token.\n- If the user does not have an API TOKEN, tell them they can register or log in at [Dataify](https://dashboard.dataify.com/login?utm_source=skill) to get one.\n- If the user wants to save it, give the appropriate command for their shell and ask them to run it; do not silently persist tokens without confirmation.\n- Do not call the Builder endpoint without a token.\n- Always call it `API TOKEN` in user-facing instructions. Prefer the environment variable name `DATAIFY_API_TOKEN` for saved local use.\n\nPowerShell examples for saving the token for the current session:\n\n```powershell\n$env:DATAIFY_API_TOKEN = \"YOUR_DATAIFY_API_TOKEN\"\n```\n\nFor a persistent user-level variable on Windows:\n\n```powershell\n[Environment]::SetEnvironmentVariable(\"DATAIFY_API_TOKEN\", \"YOUR_DATAIFY_API_TOKEN\", \"User\")\n```\n\n## Core Workflow\n\n1. First ask the user to choose a collection mode: `url`, `category-url`, `sku`, or `keywords`.\n2. After the user chooses a mode, show only that mode's parameter table and defaults.\n3. If the selected mode has dropdown fields, show the dropdown options as Markdown tables with `Label` and `Value` columns.\n4. Ask whether the user wants to change any value before running the task.\n5. Ask whether the user wants to collect multiple Walmart product groups for the selected mode.\n6. Normalize the final values into a list of parameter objects for the selected mode only.\n9. Validate the selected mode, URLs, domain, SKU, keyword, numeric values, dropdown values, and file name.\n10. Submit the Builder request with the selected mode's `spider_id`.\n11. Read `data.task_id` from the Builder response and read `data.status` or `status` when present.\n## Mode Selection\n\nWhen the user invokes this skill, first show this Markdown table and ask them to choose one mode:\n\n| Label | Value |\n| --- | --- |\n| Collect Walmart products by product URL | `url` |\n| Collect Walmart products by category URL | `category-url` |\n| Collect Walmart products by SKU | `sku` |\n| Collect Walmart products by keyword | `keywords` |\n\nAsk: \"Which collection mode do you want to use: `url`, `category-url`, `sku`, or `keywords`?\"\n\nDo not submit a Builder request until the mode is clear.\n\n## Shared File Name Handling\n\n- `file_name` defaults to `{{TasksID}}`.\n- If the user changes `file_name`, submit the user-provided value.\n- `file_name` cannot be empty.\n- Send `file_name` as a Builder form field.\n\nFor detailed mode schemas and advanced fields, read [references/modes-and-parameters.md](references/modes-and-parameters.md) only when needed.\n\n## Dataify Builder Request\n\nUse form fields rather than hand-built URL-encoded strings.\n\n- URL: `https://scraperapi.dataify.com/builder?platform=1`\n- Method: `POST`\n- Authorization header: `Bearer DATAIFY_API_TOKEN`\n- Content type: `application/x-www-form-urlencoded`\n- Fixed fields:\n  - `spider_name=walmart.com`\n  - `spider_errors=true`\n- Mode-specific field:\n  - Product URL mode: `spider_id=walmart_product_by-url`\n  - Category URL mode: `spider_id=walmart_product_by-category-url`\n  - SKU mode: `spider_id=walmart_product_by-sku`\n  - Keyword mode: `spider_id=walmart_product_by-keywords`\n- Default field:\n  - `file_name={{TasksID}}`\n- Dynamic field:\n  - `spider_parameters` must be a JSON string array.\n\n## Script\n\nFor stable execution, prefer `scripts/submit_dataify_walmart_products.py` with Python 3.6 or newer instead of rewriting the Builder flow.\n\nProduct URL mode:\n\n```powershell\npython3 \".\\scripts\\submit_dataify_walmart_products.py\" --mode url --url \"https://www.walmart.com/ip/HI-CHEW-Stand-Up-Pouch-Getaway-Mix-11-65oz/12284762931?athAsset=eyJhdGhjcGlkIjoiMTIyODQ3NjI5MzEiLCJhdGhzdGlkIjoiQ1MwNTV+Q1MwMDR+Q1MwOTgiLCJhdGhlZSI6eyJhIjoyNy44NCwiYiI6Mjk1MS40MSwidyI6MC4wMDk0MjcxMjc3OTA0NzcxMjMsImwiOjAuNX0sImF0aHBvc2IiOiI4IiwiYXRoYW5jaWQiOiIxMDE2NDUwNzU1IiwiYXRocmsiOjAuMH0%3D&athena=true&adsRedirect=true\" --all-variations \"true\"\n```\n\nCategory URL mode:\n\n```powershell\npython3 \".\\scripts\\submit_dataify_walmart_products.py\" --mode category-url --category-url \"https://www.walmart.com/shop/deals/food/\" --all-variations \"false\" --page-turning \"1\"\n```\n\nSKU mode:\n\n```powershell\npython3 \".\\scripts\\submit_dataify_walmart_products.py\" --mode sku --sku \"439179861\" --all-variations \"false\"\n```\n\nKeyword mode:\n\n```powershell\npython3 \".\\scripts\\submit_dataify_walmart_products.py\" --mode keywords --keyword \"leggins\" --domain \"https://www.walmart.com/\" --all-variations \"false\" --page-turning \"2\"\n```\n\nTo override the saved environment token or file name:\n\n```powershell\npython3 \".\\scripts\\submit_dataify_walmart_products.py\" --mode sku --sku \"439179861\" --file-name \"{{TasksID}}\"\n```\n\nTo submit multiple product URL groups:\n\n```powershell\npython3 \".\\scripts\\submit_dataify_walmart_products.py\" --mode url --params-json '[{\"url\":\"https://www.walmart.com/ip/HI-CHEW-Stand-Up-Pouch-Getaway-Mix-11-65oz/12284762931?athAsset=eyJhdGhjcGlkIjoiMTIyODQ3NjI5MzEiLCJhdGhzdGlkIjoiQ1MwNTV+Q1MwMDR+Q1MwOTgiLCJhdGhlZSI6eyJhIjoyNy44NCwiYiI6Mjk1MS40MSwidyI6MC4wMDk0MjcxMjc3OTA0NzcxMjMsImwiOjAuNX0sImF0aHBvc2IiOiI4IiwiYXRoYW5jaWQiOiIxMDE2NDUwNzU1IiwiYXRocmsiOjAuMH0%3D&athena=true&adsRedirect=true\",\"all_variations\":\"true\"},{\"url\":\"https://www.walmart.com/ip/HI-CHEW-Stand-Up-Pouch-Getaway-Mix-11-65oz/12284762931?athAsset=eyJhdGhjcGlkIjoiMTIyODQ3NjI5MzEiLCJhdGhzdGlkIjoiQ1MwNTV+Q1MwMDR+Q1MwOTgiLCJhdGhlZSI6eyJhIjoyNy44NCwiYiI6Mjk1MS40MSwidyI6MC4wMDk0MjcxMjc3OTA0NzcxMjMsImwiOjAuNX0sImF0aHBvc2IiOiI4IiwiYXRoYW5jaWQiOiIxMDE2NDUwNzU1IiwiYXRocmsiOjAuMH0%3D&athena=true&adsRedirect=true\",\"all_variations\":\"true\"}]'\n```\n\nThe script prints a JSON summary with `mode`, `spider_id`, `task_id`, `status`, `parameters`, `file_name` and `message`.\n\n## Troubleshooting\n\n`Unsupported mode` means the mode must be `url`, `category-url`, `sku`, or `keywords`.\n\n`url must start with https://www.walmart.com/` means the product URL is outside the allowed Walmart domain.\n\n`category_url must start with https://www.walmart.com/` means the category URL is outside the allowed Walmart domain.\n\n`domain must start with https://www.walmart.com/` means the main domain is outside the allowed Walmart domain.\n\n`all_variations must be true or false` means the variation option is invalid.\n\n`page_turning must be an integer greater than or equal to 0` means the page limit is invalid.\n\n`sku cannot be empty` means the SKU is missing.\n\n`keyword cannot be empty` means the keyword is missing.\n\n`File name cannot be empty` means no usable `file_name` was provided.\n\n`Necessary parameters is empty!` usually means the Builder request was not submitted as form fields, `spider_parameters` was not a JSON string array, or the selected mode's object is missing required fields.\n\nMissing `task_id` usually means the authorization header, token, `spider_name`, selected `spider_id`, or `spider_parameters` is wrong.\n\n## Guardrails\n\n- Do not mix Product URL, Category URL, SKU, and Keyword mode parameters in the same Builder request.\n- Do not submit a Builder request until the mode is clear.\n- Do not put `file_name` inside `spider_parameters`.\n- Do not use a Walmart URL or domain from outside `https://www.walmart.com/`.\n- Use only `API TOKEN` and `DATAIFY_API_TOKEN` when referring to authentication.\n- Do not hard-code local Python paths.\n- Do not invent result fields.\n\n## Default completion behavior\n\nThe default deliverable is the collected result, not only a `task_id`.\n\n1. Submit the Builder task once and capture its `task_id`.\n2. Immediately continue with `$dataify-task-operations` and monitor the same task ID.\n   - Use the default 600-second wait for ordinary collections.\n   - Use `--timeout 1800` for media downloads or clearly high-volume, multi-page, or multi-input collections.\n3. When the task succeeds, download and return the final JSON result. Summarize large payloads while preserving access to the raw result.\n4. If monitoring times out or is interrupted, return the task ID and a resume command. Do not resubmit the paid task.\n5. Stop after submission only when the user explicitly asks for submission only, a task ID, or `--no-wait` behavior.\n\n## Quick Start\n\n```bash\npython3 scripts/submit_dataify_walmart_products.py --help\n```\n\n## Parameter interaction policy\n\n- For a clear, low-risk, read-only, and low-cost request, apply safe defaults and execute immediately. A short execution summary is optional; do not pause for confirmation.\n- Ask only for a missing required input, a material ambiguity, a high-volume or multi-page scope, a media download, a choice that materially changes credit usage, an irreversible action, or an explicit user request to review parameters.\n- When confirmation is required, show only user-facing values that affect the target, scope, output, or cost. Prefer one concise sentence; use a compact table only when three or more consequential values are easier to compare.\n- Never show fixed fields, empty optional fields, unchanged defaults, credentials, or internal implementation parameters such as engine selectors, response-format flags, offsets, spider IDs, and file-name templates.\n- Keep advanced filters hidden unless the user asks for them or they are needed to resolve ambiguity. Never substitute documentation example values for missing required user input.\n- After returning results, offer relevant refinements instead of forcing all optional decisions before the first result.\n\n## Account CTA policy\n\n- Show a prominent Dataify account CTA only when the API token is missing, rejected/invalid, or the account has insufficient credits.\n- For a missing token, offer https://dashboard.dataify.com/login?utm_source=skill and state: New accounts get 50 free credits, enough for about 6,000 trial results, valid for 7 days, and only successful requests are billed. Never ask the user to paste the token into chat.\n- Detect the current operating system and shell. Show only the matching session-scoped setup command first (`export` for macOS/Linux shells, `$env:` for Windows PowerShell, or `set` for Windows Command Prompt). Show other platforms or persistent setup only when detection is ambiguous or the user asks.\n- After the user says the token is configured, verify only whether `DATAIFY_API_TOKEN` is present; never print its value. If verification succeeds, continue the original task without asking the user to repeat it.\n- Explain that persistent shell changes may require a new terminal or restarting the agent application. Do not recommend a project `.env` unless the execution path explicitly loads it, and ensure `.env` is ignored by version control.\n- For an invalid token, direct the user to API-key management without implying that a new registration is required. For insufficient credits, direct the user to balance or recharge management.\n- During normal submission, processing, and successful completion, do not promote registration or the Dashboard. Never expose the token or include it in CTA attribution parameters.\n\nFile v1.3.1:_meta.json\n\n{\n  \"ownerId\": \"kn74z5hmmwk21kw8tpphd9w21x86bkdf\",\n  \"slug\": \"dataify-walmart-products\",\n  \"version\": \"1.3.1\",\n  \"publishedAt\": 1788853652690\n}\n\nFile v1.3.1:references/modes-and-parameters.md\n\n# Modes and parameters\n\nRead this reference only when selecting a non-default mode or mapping advanced fields.\n\n## Shared Dropdown Options\n\nDropdown options for `all_variations`:\n\n| Label | Value |\n| --- | --- |\n| true | `true` |\n| false | `false` |\n\n## Product URL Mode Parameters\n\nUse this section only when the user chooses `url`.\n\n| Field | Required | Default | Location | Notes |\n| --- | --- | --- | --- | --- |\n| `url` | Yes | `https://www.walmart.com/ip/HI-CHEW-Stand-Up-Pouch-Getaway-Mix-11-65oz/12284762931?athAsset=eyJhdGhjcGlkIjoiMTIyODQ3NjI5MzEiLCJhdGhzdGlkIjoiQ1MwNTV+Q1MwMDR+Q1MwOTgiLCJhdGhlZSI6eyJhIjoyNy44NCwiYiI6Mjk1MS40MSwidyI6MC4wMDk0MjcxMjc3OTA0NzcxMjMsImwiOjAuNX0sImF0aHBvc2IiOiI4IiwiYXRoYW5jaWQiOiIxMDE2NDUwNzU1IiwiYXRocmsiOjAuMH0%3D&athena=true&adsRedirect=true` | `spider_parameters` | Walmart product URL. |\n| `all_variations` | No | `false` | `spider_parameters` | Whether to collect all product variations. |\n| `file_name` | No | `{{TasksID}}` | Builder form field | Use the default when the user does not change it. |\n\nThen show the `all_variations` dropdown table from Shared Dropdown Options.\n\n\nAlso ask: \"Do you want to collect multiple Walmart product URL groups? If yes, provide multiple groups with `url` and `all_variations`.\"\n\nProduct URL mode handling:\n\n- `url` must start with `https://www.walmart.com/`.\n- `all_variations` must be `true` or `false`.\n- Submit `spider_id=walmart_product_by-url`.\n- Submit `spider_parameters` as a JSON string containing one or more objects like:\n\n```json\n[{\"url\":\"https://www.walmart.com/ip/HI-CHEW-Stand-Up-Pouch-Getaway-Mix-11-65oz/12284762931?athAsset=eyJhdGhjcGlkIjoiMTIyODQ3NjI5MzEiLCJhdGhzdGlkIjoiQ1MwNTV+Q1MwMDR+Q1MwOTgiLCJhdGhlZSI6eyJhIjoyNy44NCwiYiI6Mjk1MS40MSwidyI6MC4wMDk0MjcxMjc3OTA0NzcxMjMsImwiOjAuNX0sImF0aHBvc2IiOiI4IiwiYXRoYW5jaWQiOiIxMDE2NDUwNzU1IiwiYXRocmsiOjAuMH0%3D&athena=true&adsRedirect=true\",\"all_variations\":\"true\"}]\n```\n\n## Category URL Mode Parameters\n\nUse this section only when the user chooses `category-url`.\n\n| Field | Required | Default | Location | Notes |\n| --- | --- | --- | --- | --- |\n| `category_url` | Yes | `https://www.walmart.com/shop/deals/food/` | `spider_parameters` | Walmart category URL. |\n| `all_variations` | Yes | `false` | `spider_parameters` | Whether to collect all product variations. |\n| `page_turning` | Yes | `1` | `spider_parameters` | Page limit. Must be an integer greater than or equal to `0`. |\n| `file_name` | No | `{{TasksID}}` | Builder form field | Use the default when the user does not change it. |\n\nThen show the `all_variations` dropdown table from Shared Dropdown Options.\n\n\nAlso ask: \"Do you want to collect multiple Walmart category URL groups? If yes, provide multiple groups with `category_url`, `all_variations`, and `page_turning`.\"\n\nCategory URL mode handling:\n\n- `category_url` must start with `https://www.walmart.com/`.\n- `all_variations` must be `true` or `false`.\n- `page_turning` must be an integer greater than or equal to `0`.\n- Submit `spider_id=walmart_product_by-category-url`.\n- Submit `spider_parameters` as a JSON string containing one or more objects like:\n\n```json\n[{\"category_url\":\"https://www.walmart.com/shop/deals/food/\",\"all_variations\":\"false\",\"page_turning\":\"1\"}]\n```\n\n## SKU Mode Parameters\n\nUse this section only when the user chooses `sku`.\n\n| Field | Required | Default | Location | Notes |\n| --- | --- | --- | --- | --- |\n| `sku` | Yes | `439179861` | `spider_parameters` | Walmart SKU product code. |\n| `all_variations` | No | `false` | `spider_parameters` | Whether to collect all product variations. |\n| `file_name` | No | `{{TasksID}}` | Builder form field | Use the default when the user does not change it. |\n\nThen show the `all_variations` dropdown table from Shared Dropdown Options.\n\n\nAlso ask: \"Do you want to collect multiple Walmart SKU groups? If yes, provide multiple groups with `sku` and `all_variations`.\"\n\nSKU mode handling:\n\n- Trim leading and trailing whitespace from `sku`.\n- `sku` cannot be empty.\n- `all_variations` must be `true` or `false`.\n- Submit `spider_id=walmart_product_by-sku`.\n- Submit `spider_parameters` as a JSON string containing one or more objects like:\n\n```json\n[{\"sku\":\"439179861\",\"all_variations\":\"false\"}]\n```\n\n## Keyword Mode Parameters\n\nUse this section only when the user chooses `keywords`.\n\n| Field | Required | Default | Location | Notes |\n| --- | --- | --- | --- | --- |\n| `keyword` | Yes | `leggins` | `spider_parameters` | Walmart search keyword. |\n| `domain` | Yes | `https://www.walmart.com/` | `spider_parameters` | Walmart main domain. |\n| `all_variations` | No | `false` | `spider_parameters` | Whether to collect all product variations. |\n| `page_turning` | No | `2` | `spider_parameters` | Page limit. Must be an integer greater than or equal to `0`. |\n| `file_name` | No | `{{TasksID}}` | Builder form field | Use the default when the user does not change it. |\n\nThen show the `all_variations` dropdown table from Shared Dropdown Options.\n\n\nAlso ask: \"Do you want to collect multiple Walmart keyword groups? If yes, provide multiple groups with `keyword`, `domain`, `all_variations`, and `page_turning`.\"\n\nKeyword mode handling:\n\n- `keyword` cannot be empty.\n- `domain` must start with `https://www.walmart.com/`.\n- `all_variations` must be `true` or `false`.\n- `page_turning` must be an integer greater than or equal to `0`.\n- Submit `spider_id=walmart_product_by-keywords`.\n- Submit `spider_parameters` as a JSON string containing one or more objects like:\n\n```json\n[{\"keyword\":\"leggins\",\"domain\":\"https://www.walmart.com/\",\"all_variations\":\"false\",\"page_turning\":\"2\"}]\n```\n\nFile v1.3.1:skill-card.md\n\n## Description:\n\nCollect Walmart product records by URL, category URL, SKU, or keyword.\n\nThis skill is ready for commercial/non-commercial use.\n\n## Publisher:\n\n[dataify-server](https://clawhub.ai/user/dataify-server)\n\n### License/Terms of Use:\n\nMIT-0\n\n## Use Case:\n\nExternal users and developers use this skill to submit Dataify Builder jobs for Walmart product data collection and to monitor the task until final JSON results are available.\n\n### Deployment Geography for Use:\n\nGlobal\n\n## Known Risks and Mitigations:\n\nRisk: Unsafe credential handling can expose the Dataify API token.\n\nMitigation: Do not paste API tokens into chat, use the skill only in a contained environment, and rotate the token if it may have been exposed.\n\nRisk: Task status and download authentication place the token in URLs.\n\nMitigation: Avoid running the bundled scripts until task-status and download authentication no longer put the token in URLs.\n\nRisk: A script import path can run unreviewed local code.\n\nMitigation: Avoid running the bundled scripts until the external sys.path import is removed or the imported code path is reviewed.\n\n## Reference(s):\n\n- [Modes and Parameters](references/modes-and-parameters.md)\n- [ClawHub Skill Page](https://clawhub.ai/dataify-server/skills/dataify-walmart-products)\n- [Publisher Profile](https://clawhub.ai/user/dataify-server)\n\n## Skill Output:\n\n**Output Type(s):** [text, markdown, shell commands, configuration, JSON]\n\n**Output Format:** [Markdown guidance with shell commands and JSON task/result payloads]\n\n**Output Parameters:** [1D]\n\n**Other Properties Related to Output:** [Requires DATAIFY_API_TOKEN; default behavior waits for final Dataify task results unless no-wait behavior is requested.]\n\n## Skill Version(s):\n\n1.3.1 (source: server release evidence)\n\n## Ethical Considerations:\n\nUsers should evaluate whether this skill is appropriate for their environment, review any generated or modified files before relying on them, and apply their organization's safety, security, and compliance requirements before deployment.\n\nFile v1.3.1:SKILL.zh-CN.md\n\n---\nname: dataify-walmart-products\ndescription: \"提交 Dataify Walmart Product Information Builder 任务，支持四种 Walmart 商品采集模式。当用户需要 Walmart product information collection tool、采集/抓取/爬取 Walmart 商品信息或商品数据，按 URL、category URL、SKU、keyword 采集 Walmart products，创建 walmart_product_by-url、walmart_product_by-category-url、walmart_product_by-sku 或 walmart_product_by-keywords 任务，或表达 Walmart 产品信息采集/抓取、产品采集/抓取、产品 URL/类别 URL/SKU/关键词采集等含义时使用。也用于接收 task_id/status、配置 DATAIFY_API_TOKEN 或排查此 Dataify Builder 请求。\"\n---\n\n# Dataify Walmart Products\n\n通过 Dataify Builder 提交 Walmart 产品信息采集任务。本技能是四种采集模式的引导封装：\n\n| 模式 | 采集器 ID | 用途 |\n| --- | --- | --- |\n| 产品 URL | `walmart_product_by-url` | 通过产品 URL 采集一个或多个 Walmart 产品。 |\n| 类别 URL | `walmart_product_by-category-url` | 通过类别 URL 采集 Walmart 产品。 |\n| SKU | `walmart_product_by-sku` | 通过 SKU 采集一个或多个 Walmart 产品。 |\n| 关键词 | `walmart_product_by-keywords` | 通过搜索关键词和域名采集 Walmart 产品。 |\n\n提交成功后，向用户提供 `task_id`、返回的或推断的状态，并告知用户前往 [Dataify](https://dashboard.dataify.com?utm_source=skill) 查看结果。\n\n## API TOKEN 处理\n\n使用 `DATAIFY_API_TOKEN` 作为长期保存的 token 名称。\n\n- 如果用户在请求中提供了 token，则在本次运行中使用该 token。\n- 如果未提供 token，先检查环境中是否已在本地保存 `DATAIFY_API_TOKEN`。\n- 如果本地已保存 `DATAIFY_API_TOKEN`，则直接使用，无需要求用户重新输入。\n- 如果本地没有可用的 token，告诉用户：`Dataify 需要 API Token。新账号注册即得 50 免费积分，约可获得 6000 条试用结果，7 天有效，仅成功请求计费。注册完成后告诉我，我会继续当前任务。`。\n- 如果用户没有 API TOKEN，告知用户可以在 [Dataify](https://dashboard.dataify.com/login?utm_source=skill) 注册或登录以获取。\n- 如果用户已有 API TOKEN，告知用户可以在 [Dataify](https://dashboard.dataify.com?utm_source=skill) 右上角找到。\n- 用户提供 API TOKEN 后，如果本地未保存 `DATAIFY_API_TOKEN`，询问是否将其保存为 `DATAIFY_API_TOKEN` 以供后续使用。\n- 如果用户希望保存，提供适合其 shell 的命令并要求其执行；不要在未经确认的情况下静默保存 token。\n- 没有 token 不要调用 Builder 接口。\n- 在面向用户的说明中始终称其为 `API TOKEN`。保存到本地时优先使用环境变量名 `DATAIFY_API_TOKEN`。\n\nPowerShell 示例，为当前会话保存 token：\n\n```powershell\n$env:DATAIFY_API_TOKEN = \"YOUR_DATAIFY_API_TOKEN\"\n```\n\n在 Windows 上设置持久的用户级变量：\n\n```powershell\n[Environment]::SetEnvironmentVariable(\"DATAIFY_API_TOKEN\", \"YOUR_DATAIFY_API_TOKEN\", \"User\")\n```\n\n## 核心工作流程\n\n1. 首先询问用户选择采集模式：`url`、`category-url`、`sku` 或 `keywords`。\n2. 用户选择模式后，仅展示该模式的参数表格和默认值。\n3. 如果所选模式有下拉字段，以包含 `Label` 和 `Value` 列的 Markdown 表格展示下拉选项。\n4. 询问用户是否需要在运行任务前修改任何值。\n5. 询问用户是否需要为所选模式采集多组 Walmart 产品。\n6. 将最终值规范化为仅包含所选模式的参数对象列表。\n7. 从显式输入或已保存的 `DATAIFY_API_TOKEN` 中获取 Dataify token。\n9. 验证所选模式、URL、域名、SKU、关键词、数值、下拉值和文件名。\n10. 使用所选模式的 `spider_id` 提交 Builder 请求。\n11. 从 Builder 响应中读取 `data.task_id`，并在存在时读取 `data.status` 或 `status`。\n13. 告知用户前往 [Dataify](https://dashboard.dataify.com?utm_source=skill) 查看或管理结果。\n\n## 模式选择\n\n当用户调用此技能时，首先展示以下 Markdown 表格并要求选择一种模式：\n\n| 标签 | 值 |\n| --- | --- |\n| 通过产品 URL 采集 Walmart 产品 | `url` |\n| 通过类别 URL 采集 Walmart 产品 | `category-url` |\n| 通过 SKU 采集 Walmart 产品 | `sku` |\n| 通过关键词采集 Walmart 产品 | `keywords` |\n\n询问：\"您想使用哪种采集模式：`url`、`category-url`、`sku` 还是 `keywords`？\"\n\n在模式明确之前不要提交 Builder 请求。\n\n## 共享下拉选项\n\n`all_variations` 下拉选项：\n\n| 标签 | 值 |\n| --- | --- |\n| true | `true` |\n| false | `false` |\n\n## 产品 URL 模式参数\n\n仅当用户选择 `url` 时使用本节。\n\n| 字段 | 必填 | 默认值 | 位置 | 说明 |\n| --- | --- | --- | --- | --- |\n| `url` | 是 | `https://www.walmart.com/ip/HI-CHEW-Stand-Up-Pouch-Getaway-Mix-11-65oz/12284762931?athAsset=eyJhdGhjcGlkIjoiMTIyODQ3NjI5MzEiLCJhdGhzdGlkIjoiQ1MwNTV+Q1MwMDR+Q1MwOTgiLCJhdGhlZSI6eyJhIjoyNy44NCwiYiI6Mjk1MS40MSwidyI6MC4wMDk0MjcxMjc3OTA0NzcxMjMsImwiOjAuNX0sImF0aHBvc2IiOiI4IiwiYXRoYW5jaWQiOiIxMDE2NDUwNzU1IiwiYXRocmsiOjAuMH0%3D&athena=true&adsRedirect=true` | `spider_parameters` | Walmart 产品 URL。 |\n| `all_variations` | 否 | `false` | `spider_parameters` | 是否采集所有产品变体。 |\n| `file_name` | 否 | `{{TasksID}}` | Builder 表单字段 | 用户未更改时使用默认值。 |\n\n然后展示共享下拉选项中的 `all_variations` 下拉表格。\n\n\n同时询问：\"您是否需要采集多组 Walmart 产品 URL？如果是，请提供多组 `url` 和 `all_variations`。\"\n\n产品 URL 模式处理：\n\n- `url` 为必填项。如果用户未提供，询问该必填值；不要使用文档示例值代替用户输入。\n- `url` 必须以 `https://www.walmart.com/` 开头。\n- `all_variations` 必须为 `true` 或 `false`。\n- 提交 `spider_id=walmart_product_by-url`。\n- 将 `spider_parameters` 作为包含一个或多个对象的 JSON 字符串提交，格式如下：\n\n```json\n[{\"url\":\"https://www.walmart.com/ip/HI-CHEW-Stand-Up-Pouch-Getaway-Mix-11-65oz/12284762931?athAsset=eyJhdGhjcGlkIjoiMTIyODQ3NjI5MzEiLCJhdGhzdGlkIjoiQ1MwNTV+Q1MwMDR+Q1MwOTgiLCJhdGhlZSI6eyJhIjoyNy44NCwiYiI6Mjk1MS40MSwidyI6MC4wMDk0MjcxMjc3OTA0NzcxMjMsImwiOjAuNX0sImF0aHBvc2IiOiI4IiwiYXRoYW5jaWQiOiIxMDE2NDUwNzU1IiwiYXRocmsiOjAuMH0%3D&athena=true&adsRedirect=true\",\"all_variations\":\"true\"}]\n```\n\n## 类别 URL 模式参数\n\n仅当用户选择 `category-url` 时使用本节。\n\n| 字段 | 必填 | 默认值 | 位置 | 说明 |\n| --- | --- | --- | --- | --- |\n| `category_url` | 是 | `https://www.walmart.com/shop/deals/food/` | `spider_parameters` | Walmart 类别 URL。 |\n| `all_variations` | 是 | `false` | `spider_parameters` | 是否采集所有产品变体。 |\n| `page_turning` | 是 | `1` | `spider_parameters` | 页数限制。必须为大于或等于 `0` 的整数。 |\n| `file_name` | 否 | `{{TasksID}}` | Builder 表单字段 | 用户未更改时使用默认值。 |\n\n然后展示共享下拉选项中的 `all_variations` 下拉表格。\n\n\n同时询问：\"您是否需要采集多组 Walmart 类别 URL？如果是，请提供多组 `category_url`、`all_variations` 和 `page_turning`。\"\n\n类别 URL 模式处理：\n\n- `category_url` 为必填项。如果用户未提供，询问该必填值；不要使用文档示例值代替用户输入。\n- `category_url` 必须以 `https://www.walmart.com/` 开头。\n- `all_variations` 必须为 `true` 或 `false`。\n- `page_turning` 必须为大于或等于 `0` 的整数。\n- 提交 `spider_id=walmart_product_by-category-url`。\n- 将 `spider_parameters` 作为包含一个或多个对象的 JSON 字符串提交，格式如下：\n\n```json\n[{\"category_url\":\"https://www.walmart.com/shop/deals/food/\",\"all_variations\":\"false\",\"page_turning\":\"1\"}]\n```\n\n## SKU 模式参数\n\n仅当用户选择 `sku` 时使用本节。\n\n| 字段 | 必填 | 默认值 | 位置 | 说明 |\n| --- | --- | --- | --- | --- |\n| `sku` | 是 | `439179861` | `spider_parameters` | Walmart SKU 产品代码。 |\n| `all_variations` | 否 | `false` | `spider_parameters` | 是否采集所有产品变体。 |\n| `file_name` | 否 | `{{TasksID}}` | Builder 表单字段 | 用户未更改时使用默认值。 |\n\n然后展示共享下拉选项中的 `all_variations` 下拉表格。\n\n\n同时询问：\"您是否需要采集多组 Walmart SKU？如果是，请提供多组 `sku` 和 `all_variations`。\"\n\nSKU 模式处理：\n\n- `sku` 为必填项。如果用户未提供，询问该必填值；不要使用文档示例值代替用户输入。\n- 去除 `sku` 的前后空白字符。\n- `sku` 不能为空。\n- `all_variations` 必须为 `true` 或 `false`。\n- 提交 `spider_id=walmart_product_by-sku`。\n- 将 `spider_parameters` 作为包含一个或多个对象的 JSON 字符串提交，格式如下：\n\n```json\n[{\"sku\":\"439179861\",\"all_variations\":\"false\"}]\n```\n\n## 关键词模式参数\n\n仅当用户选择 `keywords` 时使用本节。\n\n| 字段 | 必填 | 默认值 | 位置 | 说明 |\n| --- | --- | --- | --- | --- |\n| `keyword` | 是 | `leggins` | `spider_parameters` | Walmart 搜索关键词。 |\n| `domain` | 是 | `https://www.walmart.com/` | `spider_parameters` | Walmart 主域名。 |\n| `all_variations` | 否 | `false` | `spider_parameters` | 是否采集所有产品变体。 |\n| `page_turning` | 否 | `2` | `spider_parameters` | 页数限制。必须为大于或等于 `0` 的整数。 |\n| `file_name` | 否 | `{{TasksID}}` | Builder 表单字段 | 用户未更改时使用默认值。 |\n\n然后展示共享下拉选项中的 `all_variations` 下拉表格。\n\n\n同时询问：\"您是否需要采集多组 Walmart 关键词？如果是，请提供多组 `keyword`、`domain`、`all_variations` 和 `page_turning`。\"\n\n关键词模式处理：\n\n- `keyword` 为必填项。如果用户未提供，询问该必填值；不要使用文档示例值代替用户输入。\n- `keyword` 不能为空。\n- `domain` 必须以 `https://www.walmart.com/` 开头。\n- `all_variations` 必须为 `true` 或 `false`。\n- `page_turning` 必须为大于或等于 `0` 的整数。\n- 提交 `spider_id=walmart_product_by-keywords`。\n- 将 `spider_parameters` 作为包含一个或多个对象的 JSON 字符串提交，格式如下：\n\n```json\n[{\"keyword\":\"leggins\",\"domain\":\"https://www.walmart.com/\",\"all_variations\":\"false\",\"page_turning\":\"2\"}]\n```\n\n## 共享文件名处理\n\n- `file_name` 默认为 `{{TasksID}}`。\n- 如果用户更改了 `file_name`，提交用户提供的值。\n- `file_name` 不能为空。\n- 将 `file_name` 作为 Builder 表单字段发送。\n\n## Dataify Builder 请求\n\n使用表单字段而非手动构建的 URL 编码字符串。\n\n- URL：`https://scraperapi.dataify.com/builder?platform=1`\n- 方法：`POST`\n- Authorization 请求头：`Bearer DATAIFY_API_TOKEN`\n- Content type：`application/x-www-form-urlencoded`\n- 固定字段：\n  - `spider_name=walmart.com`\n  - `spider_errors=true`\n- 模式特定字段：\n  - 产品 URL 模式：`spider_id=walmart_product_by-url`\n  - 类别 URL 模式：`spider_id=walmart_product_by-category-url`\n  - SKU 模式：`spider_id=walmart_product_by-sku`\n  - 关键词模式：`spider_id=walmart_product_by-keywords`\n- 默认字段：\n  - `file_name={{TasksID}}`\n- 动态字段：\n  - `spider_parameters` 必须为 JSON 字符串数组。\n\n## 脚本\n\n为确保稳定执行，优先使用 Python 3.6 或更新版本运行 `scripts/submit_dataify_walmart_products.py`，而非重写 Builder 流程。\n\n产品 URL 模式：\n\n```powershell\npython3 \".\\scripts\\submit_dataify_walmart_products.py\" --mode url --url \"https://www.walmart.com/ip/HI-CHEW-Stand-Up-Pouch-Getaway-Mix-11-65oz/12284762931?athAsset=eyJhdGhjcGlkIjoiMTIyODQ3NjI5MzEiLCJhdGhzdGlkIjoiQ1MwNTV+Q1MwMDR+Q1MwOTgiLCJhdGhlZSI6eyJhIjoyNy44NCwiYiI6Mjk1MS40MSwidyI6MC4wMDk0MjcxMjc3OTA0NzcxMjMsImwiOjAuNX0sImF0aHBvc2IiOiI4IiwiYXRoYW5jaWQiOiIxMDE2NDUwNzU1IiwiYXRocmsiOjAuMH0%3D&athena=true&adsRedirect=true\" --all-variations \"true\"\n```\n\n类别 URL 模式：\n\n```powershell\npython3 \".\\scripts\\submit_dataify_walmart_products.py\" --mode category-url --category-url \"https://www.walmart.com/shop/deals/food/\" --all-variations \"false\" --page-turning \"1\"\n```\n\nSKU 模式：\n\n```powershell\npython3 \".\\scripts\\submit_dataify_walmart_products.py\" --mode sku --sku \"439179861\" --all-variations \"false\"\n```\n\n关键词模式：\n\n```powershell\npython3 \".\\scripts\\submit_dataify_walmart_products.py\" --mode keywords --keyword \"leggins\" --domain \"https://www.walmart.com/\" --all-variations \"false\" --page-turning \"2\"\n```\n\n覆盖已保存的环境 token 或文件名：\n\n```powershell\npython3 \".\\scripts\\submit_dataify_walmart_products.py\" --mode sku --sku \"439179861\" --file-name \"{{TasksID}}\"\n```\n\n提交多组产品 URL：\n\n```powershell\npython3 \".\\scripts\\submit_dataify_walmart_products.py\" --mode url --params-json '[{\"url\":\"https://www.walmart.com/ip/HI-CHEW-Stand-Up-Pouch-Getaway-Mix-11-65oz/12284762931?athAsset=eyJhdGhjcGlkIjoiMTIyODQ3NjI5MzEiLCJhdGhzdGlkIjoiQ1MwNTV+Q1MwMDR+Q1MwOTgiLCJhdGhlZSI6eyJhIjoyNy44NCwiYiI6Mjk1MS40MSwidyI6MC4wMDk0MjcxMjc3OTA0NzcxMjMsImwiOjAuNX0sImF0aHBvc2IiOiI4IiwiYXRoYW5jaWQiOiIxMDE2NDUwNzU1IiwiYXRocmsiOjAuMH0%3D&athena=true&adsRedirect=true\",\"all_variations\":\"true\"},{\"url\":\"https://www.walmart.com/ip/HI-CHEW-Stand-Up-Pouch-Getaway-Mix-11-65oz/12284762931?athAsset=eyJhdGhjcGlkIjoiMTIyODQ3NjI5MzEiLCJhdGhzdGlkIjoiQ1MwNTV+Q1MwMDR+Q1MwOTgiLCJhdGhlZSI6eyJhIjoyNy44NCwiYiI6Mjk1MS40MSwidyI6MC4wMDk0MjcxMjc3OTA0NzcxMjMsImwiOjAuNX0sImF0aHBvc2IiOiI4IiwiYXRoYW5jaWQiOiIxMDE2NDUwNzU1IiwiYXRocmsiOjAuMH0%3D&athena=true&adsRedirect=true\",\"all_variations\":\"true\"}]'\n```\n\n脚本会打印包含 `mode`、`spider_id`、`task_id`、`status`、`parameters`、`file_name`、`dashboard_url` 和 `message` 的 JSON 摘要。\n\n## 故障排除\n\n`Missing Dataify API TOKEN` 表示未传递显式 token 且本地未保存 `DATAIFY_API_TOKEN`。告诉用户：`Dataify 需要 API Token。新账号注册即得 50 免费积分，约可获得 6000 条试用结果，7 天有效，仅成功请求计费。注册完成后告诉我，我会继续当前任务。`，询问是否将其保存为 `DATAIFY_API_TOKEN`，或告知用户可以在 [Dataify](https://dashboard.dataify.com/login?utm_source=skill) 注册或登录以获取。如果用户已有 token，告知其位于 [Dataify](https://dashboard.dataify.com?utm_source=skill) 右上角。\n\n`Unsupported mode` 表示模式必须为 `url`、`category-url`、`sku` 或 `keywords`。\n\n`url must start with https://www.walmart.com/` 表示产品 URL 不在允许的 Walmart 域名范围内。\n\n`category_url must start with https://www.walmart.com/` 表示类别 URL 不在允许的 Walmart 域名范围内。\n\n`domain must start with https://www.walmart.com/` 表示主域名不在允许的 Walmart 域名范围内。\n\n`all_variations must be true or false` 表示变体选项无效。\n\n`page_turning must be an integer greater than or equal to 0` 表示页数限制无效。\n\n`sku cannot be empty` 表示缺少 SKU。\n\n`keyword cannot be empty` 表示缺少关键词。\n\n`File name cannot be empty` 表示未提供可用的 `file_name`。\n\n`Necessary parameters is empty!` 通常表示 Builder 请求未以表单字段提交、`spider_parameters` 不是 JSON 字符串数组，或所选模式的对象缺少必填字段。\n\n缺少 `task_id` 通常表示 authorization 请求头、token、`spider_name`、所选 `spider_id` 或 `spider_parameters` 有误。\n\n## 安全规则\n\n- 不要在同一个 Builder 请求中混合产品 URL、类别 URL、SKU 和关键词模式的参数。\n- 在模式明确之前不要提交 Builder 请求。\n- 不要将 `file_name` 放入 `spider_parameters` 中。\n- 不要使用 `https://www.walmart.com/` 以外的 Walmart URL 或域名。\n- 提及身份验证时仅使用 `API TOKEN` 和 `DATAIFY_API_TOKEN`。\n- 不要硬编码本地 Python 路径。\n- 不要编造结果字段。\n- 任务创建成功后始终引导用户前往 [Dataify](https://dashboard.dataify.com?utm_source=skill)。\n\n## 参数交互策略\n\n- 当请求意图明确、只读、低风险且成本较低时，使用安全默认值直接执行。可以用一句话说明执行内容，但不要暂停等待确认。\n- 只在缺少必填输入、存在会明显改变结果的歧义、大批量或多页采集、媒体下载、会明显增加积分消耗、不可逆操作，或用户明确要求查看参数时询问。\n- 必须确认时，只展示会影响目标、范围、输出或成本的用户参数。优先使用一句简短说明；只有三个及以上关键值确实需要比较时才使用精简表格。\n- 不要展示固定字段、空的可选字段、未修改的默认值、凭据或内部实现参数，例如引擎选择、响应格式开关、偏移量、spider ID 和文件名模板。\n- 默认隐藏高级筛选项，除非用户主动询问或需要它们消除歧义。不得用文档示例值代替用户缺失的必填输入。\n- 先返回首个结果，再提供相关的细化选项，不要在首次执行前强迫用户决定所有可选项。\n\n## Account CTA policy\n\n- Show a prominent Dataify account CTA only when the API token is missing, rejected/invalid, or the account has insufficient credits.\n- For a missing token, offer https://dashboard.dataify.com/login?utm_source=skill and state: New accounts get 50 free credits, enough for about 6,000 trial results, valid for 7 days, and only successful requests are billed. Never ask the user to paste the token into chat.\n- Detect the current operating system and shell. Show only the matching session-scoped setup command first (`export` for macOS/Linux shells, `$env:` for Windows PowerShell, or `set` for Windows Command Prompt). Show other platforms or persistent setup only when detection is ambiguous or the user asks.\n- After the user says the token is configured, verify only whether `DATAIFY_API_TOKEN` is present; never print its value. If verification succeeds, continue the original task without asking the user to repeat it.\n- Explain that persistent shell changes may require a new terminal or restarting the agent application. Do not recommend a project `.env` unless the execution path explicitly loads it, and ensure `.env` is ignored by version control.\n- For an invalid token, direct the user to API-key management without implying that a new registration is required. For insufficient credits, direct the user to balance or recharge management.\n- During normal submission, processing, and successful completion, do not promote registration or the Dashboard. Never expose the token or include it in CTA attribution parameters.\n\nFile v1.3.1:agents/openai.yaml\n\ninterface:\n  display_name: \"Dataify Walmart Products\"\n  short_description: \"Collect Walmart Products data and return results\"\n  icon_small: \"./assets/dataify-walmart-products-small.svg\"\n  icon_large: \"./assets/dataify-walmart-products-large.svg\"\n  default_prompt: \"Use $dataify-walmart-products to complete the requested Dataify collection, wait for the asynchronous task, and return the final collected result. Stop at task submission only when I explicitly request no-wait behavior.\"\n\npolicy:\n  allow_implicit_invocation: true\n\nArchive v1.3.0: 9 files, 18293 bytes\n\nFiles: agents/openai.yaml (529b), assets/dataify-walmart-products-large.svg (892b), assets/dataify-walmart-products-small.svg (850b), references/modes-and-parameters.md (5616b), scripts/submit_dataify_walmart_products.py (11794b), skill-card.md (2365b), SKILL.md (11876b), SKILL.zh-CN.md (18359b), _meta.json (143b)\n\nFile v1.3.0:SKILL.md\n\n---\nname: dataify-walmart-products\ndescription: \"Collect Walmart product records by URL, category URL, SKU, or keyword. Do not use for Amazon, eBay, or general shopping-search results.\"\n---\n\n# Dataify Walmart Products\n\nSubmit Walmart product information collection jobs through Dataify Builder. This skill is a guided wrapper for four collection modes:\n\n| Mode | Collector ID | Use For |\n| --- | --- | --- |\n| Product URL | `walmart_product_by-url` | Collecting one or more Walmart products by product URL. |\n| Category URL | `walmart_product_by-category-url` | Collecting Walmart products by category URL. |\n| SKU | `walmart_product_by-sku` | Collecting one or more Walmart products by SKU. |\n| Keyword | `walmart_product_by-keywords` | Collecting Walmart products by search keyword and domain. |\n\nAfter submission, continue monitoring the returned `task_id` and return the final result by default.\n\n## API TOKEN Handling\n\nUse `DATAIFY_API_TOKEN` as the long-term saved token name.\n\n- If `DATAIFY_API_TOKEN` is saved locally, use it without asking the user to re-enter the token.\n- If the user does not have an API TOKEN, tell them they can register or log in at [Dataify](https://dashboard.dataify.com/login?utm_source=skill) to get one.\n- If the user wants to save it, give the appropriate command for their shell and ask them to run it; do not silently persist tokens without confirmation.\n- Do not call the Builder endpoint without a token.\n- Always call it `API TOKEN` in user-facing instructions. Prefer the environment variable name `DATAIFY_API_TOKEN` for saved local use.\n\nPowerShell examples for saving the token for the current session:\n\n```powershell\n$env:DATAIFY_API_TOKEN = \"YOUR_DATAIFY_API_TOKEN\"\n```\n\nFor a persistent user-level variable on Windows:\n\n```powershell\n[Environment]::SetEnvironmentVariable(\"DATAIFY_API_TOKEN\", \"YOUR_DATAIFY_API_TOKEN\", \"User\")\n```\n\n## Core Workflow\n\n1. First ask the user to choose a collection mode: `url`, `category-url`, `sku`, or `keywords`.\n2. After the user chooses a mode, show only that mode's parameter table and defaults.\n3. If the selected mode has dropdown fields, show the dropdown options as Markdown tables with `Label` and `Value` columns.\n4. Ask whether the user wants to change any value before running the task.\n5. Ask whether the user wants to collect multiple Walmart product groups for the selected mode.\n6. Normalize the final values into a list of parameter objects for the selected mode only.\n9. Validate the selected mode, URLs, domain, SKU, keyword, numeric values, dropdown values, and file name.\n10. Submit the Builder request with the selected mode's `spider_id`.\n11. Read `data.task_id` from the Builder response and read `data.status` or `status` when present.\n## Mode Selection\n\nWhen the user invokes this skill, first show this Markdown table and ask them to choose one mode:\n\n| Label | Value |\n| --- | --- |\n| Collect Walmart products by product URL | `url` |\n| Collect Walmart products by category URL | `category-url` |\n| Collect Walmart products by SKU | `sku` |\n| Collect Walmart products by keyword | `keywords` |\n\nAsk: \"Which collection mode do you want to use: `url`, `category-url`, `sku`, or `keywords`?\"\n\nDo not submit a Builder request until the mode is clear.\n\n## Shared File Name Handling\n\n- `file_name` defaults to `{{TasksID}}`.\n- If the user changes `file_name`, submit the user-provided value.\n- `file_name` cannot be empty.\n- Send `file_name` as a Builder form field.\n\nFor detailed mode schemas and advanced fields, read [references/modes-and-parameters.md](references/modes-and-parameters.md) only when needed.\n\n## Dataify Builder Request\n\nUse form fields rather than hand-built URL-encoded strings.\n\n- URL: `https://scraperapi.dataify.com/builder?platform=1`\n- Method: `POST`\n- Authorization header: `Bearer DATAIFY_API_TOKEN`\n- Content type: `application/x-www-form-urlencoded`\n- Fixed fields:\n  - `spider_name=walmart.com`\n  - `spider_errors=true`\n- Mode-specific field:\n  - Product URL mode: `spider_id=walmart_product_by-url`\n  - Category URL mode: `spider_id=walmart_product_by-category-url`\n  - SKU mode: `spider_id=walmart_product_by-sku`\n  - Keyword mode: `spider_id=walmart_product_by-keywords`\n- Default field:\n  - `file_name={{TasksID}}`\n- Dynamic field:\n  - `spider_parameters` must be a JSON string array.\n\n## Script\n\nFor stable execution, prefer `scripts/submit_dataify_walmart_products.py` with Python 3.6 or newer instead of rewriting the Builder flow.\n\nProduct URL mode:\n\n```powershell\npython3 \".\\scripts\\submit_dataify_walmart_products.py\" --mode url --url \"https://www.walmart.com/ip/HI-CHEW-Stand-Up-Pouch-Getaway-Mix-11-65oz/12284762931?athAsset=eyJhdGhjcGlkIjoiMTIyODQ3NjI5MzEiLCJhdGhzdGlkIjoiQ1MwNTV+Q1MwMDR+Q1MwOTgiLCJhdGhlZSI6eyJhIjoyNy44NCwiYiI6Mjk1MS40MSwidyI6MC4wMDk0MjcxMjc3OTA0NzcxMjMsImwiOjAuNX0sImF0aHBvc2IiOiI4IiwiYXRoYW5jaWQiOiIxMDE2NDUwNzU1IiwiYXRocmsiOjAuMH0%3D&athena=true&adsRedirect=true\" --all-variations \"true\"\n```\n\nCategory URL mode:\n\n```powershell\npython3 \".\\scripts\\submit_dataify_walmart_products.py\" --mode category-url --category-url \"https://www.walmart.com/shop/deals/food/\" --all-variations \"false\" --page-turning \"1\"\n```\n\nSKU mode:\n\n```powershell\npython3 \".\\scripts\\submit_dataify_walmart_products.py\" --mode sku --sku \"439179861\" --all-variations \"false\"\n```\n\nKeyword mode:\n\n```powershell\npython3 \".\\scripts\\submit_dataify_walmart_products.py\" --mode keywords --keyword \"leggins\" --domain \"https://www.walmart.com/\" --all-variations \"false\" --page-turning \"2\"\n```\n\nTo override the saved environment token or file name:\n\n```powershell\npython3 \".\\scripts\\submit_dataify_walmart_products.py\" --mode sku --sku \"439179861\" --file-name \"{{TasksID}}\"\n```\n\nTo submit multiple product URL groups:\n\n```powershell\npython3 \".\\scripts\\submit_dataify_walmart_products.py\" --mode url --params-json '[{\"url\":\"https://www.walmart.com/ip/HI-CHEW-Stand-Up-Pouch-Getaway-Mix-11-65oz/12284762931?athAsset=eyJhdGhjcGlkIjoiMTIyODQ3NjI5MzEiLCJhdGhzdGlkIjoiQ1MwNTV+Q1MwMDR+Q1MwOTgiLCJhdGhlZSI6eyJhIjoyNy44NCwiYiI6Mjk1MS40MSwidyI6MC4wMDk0MjcxMjc3OTA0NzcxMjMsImwiOjAuNX0sImF0aHBvc2IiOiI4IiwiYXRoYW5jaWQiOiIxMDE2NDUwNzU1IiwiYXRocmsiOjAuMH0%3D&athena=true&adsRedirect=true\",\"all_variations\":\"true\"},{\"url\":\"https://www.walmart.com/ip/HI-CHEW-Stand-Up-Pouch-Getaway-Mix-11-65oz/12284762931?athAsset=eyJhdGhjcGlkIjoiMTIyODQ3NjI5MzEiLCJhdGhzdGlkIjoiQ1MwNTV+Q1MwMDR+Q1MwOTgiLCJhdGhlZSI6eyJhIjoyNy44NCwiYiI6Mjk1MS40MSwidyI6MC4wMDk0MjcxMjc3OTA0NzcxMjMsImwiOjAuNX0sImF0aHBvc2IiOiI4IiwiYXRoYW5jaWQiOiIxMDE2NDUwNzU1IiwiYXRocmsiOjAuMH0%3D&athena=true&adsRedirect=true\",\"all_variations\":\"true\"}]'\n```\n\nThe script prints a JSON summary with `mode`, `spider_id`, `task_id`, `status`, `parameters`, `file_name` and `message`.\n\n## Troubleshooting\n\n`Unsupported mode` means the mode must be `url`, `category-url`, `sku`, or `keywords`.\n\n`url must start with https://www.walmart.com/` means the product URL is outside the allowed Walmart domain.\n\n`category_url must start with https://www.walmart.com/` means the category URL is outside the allowed Walmart domain.\n\n`domain must start with https://www.walmart.com/` means the main domain is outside the allowed Walmart domain.\n\n`all_variations must be true or false` means the variation option is invalid.\n\n`page_turning must be an integer greater than or equal to 0` means the page limit is invalid.\n\n`sku cannot be empty` means the SKU is missing.\n\n`keyword cannot be empty` means the keyword is missing.\n\n`File name cannot be empty` means no usable `file_name` was provided.\n\n`Necessary parameters is empty!` usually means the Builder request was not submitted as form fields, `spider_parameters` was not a JSON string array, or the selected mode's object is missing required fields.\n\nMissing `task_id` usually means the authorization header, token, `spider_name`, selected `spider_id`, or `spider_parameters` is wrong.\n\n## Guardrails\n\n- Do not mix Product URL, Category URL, SKU, and Keyword mode parameters in the same Builder request.\n- Do not submit a Builder request until the mode is clear.\n- Do not put `file_name` inside `spider_parameters`.\n- Do not use a Walmart URL or domain from outside `https://www.walmart.com/`.\n- Use only `API TOKEN` and `DATAIFY_API_TOKEN` when referring to authentication.\n- Do not hard-code local Python paths.\n- Do not invent result fields.\n\n## Default completion behavior\n\nThe default deliverable is the collected result, not only a `task_id`.\n\n1. Submit the Builder task once and capture its `task_id`.\n2. Immediately continue with `$dataify-task-operations` and monitor the same task ID.\n   - Use the default 600-second wait for ordinary collections.\n   - Use `--timeout 1800` for media downloads or clearly high-volume, multi-page, or multi-input collections.\n3. When the task succeeds, download and return the final JSON result. Summarize large payloads while preserving access to the raw result.\n4. If monitoring times out or is interrupted, return the task ID and a resume command. Do not resubmit the paid task.\n5. Stop after submission only when the user explicitly asks for submission only, a task ID, or `--no-wait` behavior.\n\n## Quick Start\n\n```bash\npython3 scripts/submit_dataify_walmart_products.py --help\n```\n\n## Parameter interaction policy\n\n- For a clear, low-risk, read-only, and low-cost request, apply safe defaults and execute immediately. A short execution summary is optional; do not pause for confirmation.\n- Ask only for a missing required input, a material ambiguity, a high-volume or multi-page scope, a media download, a choice that materially changes credit usage, an irreversible action, or an explicit user request to review parameters.\n- When confirmation is required, show only user-facing values that affect the target, scope, output, or cost. Prefer one concise sentence; use a compact table only when three or more consequential values are easier to compare.\n- Never show fixed fields, empty optional fields, unchanged defaults, credentials, or internal implementation parameters such as engine selectors, response-format flags, offsets, spider IDs, and file-name templates.\n- Keep advanced filters hidden unless the user asks for them or they are needed to resolve ambiguity. Never substitute documentation example values for missing required user input.\n- After returning results, offer relevant refinements instead of forcing all optional decisions before the first result.\n\n## Account CTA policy\n\n- Show a prominent Dataify account CTA only when the API token is missing, rejected/invalid, or the account has insufficient credits.\n- For a missing token, offer https://dashboard.dataify.com/login?utm_source=skill and state: New accounts receive 50 free credits. Never ask the user to paste the token into chat.\n- Detect the current operating system and shell. Show only the matching session-scoped setup command first (`export` for macOS/Linux shells, `$env:` for Windows PowerShell, or `set` for Windows Command Prompt). Show other platforms or persistent setup only when detection is ambiguous or the user asks.\n- After the user says the token is configured, verify only whether `DATAIFY_API_TOKEN` is present; never print its value. If verification succeeds, continue the original task without asking the user to repeat it.\n- Explain that persistent shell changes may require a new terminal or restarting the agent application. Do not recommend a project `.env` unless the execution path explicitly loads it, and ensure `.env` is ignored by version control.\n- For an invalid token, direct the user to API-key management without implying that a new registration is required. For insufficient credits, direct the user to balance or recharge management.\n- During normal submission, processing, and successful completion, do not promote registration or the Dashboard. Never expose the token or include it in CTA attribution parameters.\n\nFile v1.3.0:_meta.json\n\n{\n  \"ownerId\": \"kn74z5hmmwk21kw8tpphd9w21x86bkdf\",\n  \"slug\": \"dataify-walmart-products\",\n  \"version\": \"1.3.0\",\n  \"publishedAt\": 1788254143851\n}\n\nFile v1.3.0:references/modes-and-parameters.md\n\n# Modes and parameters\n\nRead this reference only when selecting a non-default mode or mapping advanced fields.\n\n## Shared Dropdown Options\n\nDropdown options for `all_variations`:\n\n| Label | Value |\n| --- | --- |\n| true | `true` |\n| false | `false` |\n\n## Product URL Mode Parameters\n\nUse this section only when the user chooses `url`.\n\n| Field | Required | Default | Location | Notes |\n| --- | --- | --- | --- | --- |\n| `url` | Yes | `https://www.walmart.com/ip/HI-CHEW-Stand-Up-Pouch-Getaway-Mix-11-65oz/12284762931?athAsset=eyJhdGhjcGlkIjoiMTIyODQ3NjI5MzEiLCJhdGhzdGlkIjoiQ1MwNTV+Q1MwMDR+Q1MwOTgiLCJhdGhlZSI6eyJhIjoyNy44NCwiYiI6Mjk1MS40MSwidyI6MC4wMDk0MjcxMjc3OTA0NzcxMjMsImwiOjAuNX0sImF0aHBvc2IiOiI4IiwiYXRoYW5jaWQiOiIxMDE2NDUwNzU1IiwiYXRocmsiOjAuMH0%3D&athena=true&adsRedirect=true` | `spider_parameters` | Walmart product URL. |\n| `all_variations` | No | `false` | `spider_parameters` | Whether to collect all product variations. |\n| `file_name` | No | `{{TasksID}}` | Builder form field | Use the default when the user does not change it. |\n\nThen show the `all_variations` dropdown table from Shared Dropdown Options.\n\n\nAlso ask: \"Do you want to collect multiple Walmart product URL groups? If yes, provide multiple groups with `url` and `all_variations`.\"\n\nProduct URL mode handling:\n\n- `url` must start with `https://www.walmart.com/`.\n- `all_variations` must be `true` or `false`.\n- Submit `spider_id=walmart_product_by-url`.\n- Submit `spider_parameters` as a JSON string containing one or more objects like:\n\n```json\n[{\"url\":\"https://www.walmart.com/ip/HI-CHEW-Stand-Up-Pouch-Getaway-Mix-11-65oz/12284762931?athAsset=eyJhdGhjcGlkIjoiMTIyODQ3NjI5MzEiLCJhdGhzdGlkIjoiQ1MwNTV+Q1MwMDR+Q1MwOTgiLCJhdGhlZSI6eyJhIjoyNy44NCwiYiI6Mjk1MS40MSwidyI6MC4wMDk0MjcxMjc3OTA0NzcxMjMsImwiOjAuNX0sImF0aHBvc2IiOiI4IiwiYXRoYW5jaWQiOiIxMDE2NDUwNzU1IiwiYXRocmsiOjAuMH0%3D&athena=true&adsRedirect=true\",\"all_variations\":\"true\"}]\n```\n\n## Category URL Mode Parameters\n\nUse this section only when the user chooses `category-url`.\n\n| Field | Required | Default | Location | Notes |\n| --- | --- | --- | --- | --- |\n| `category_url` | Yes | `https://www.walmart.com/shop/deals/food/` | `spider_parameters` | Walmart category URL. |\n| `all_variations` | Yes | `false` | `spider_parameters` | Whether to collect all product variations. |\n| `page_turning` | Yes | `1` | `spider_parameters` | Page limit. Must be an integer greater than or equal to `0`. |\n| `file_name` | No | `{{TasksID}}` | Builder form field | Use the default when the user does not change it. |\n\nThen show the `all_variations` dropdown table from Shared Dropdown Options.\n\n\nAlso ask: \"Do you want to collect multiple Walmart category URL groups? If yes, provide multiple groups with `category_url`, `all_variations`, and `page_turning`.\"\n\nCategory URL mode handling:\n\n- `category_url` must start with `https://www.walmart.com/`.\n- `all_variations` must be `true` or `false`.\n- `page_turning` must be an integer greater than or equal to `0`.\n- Submit `spider_id=walmart_product_by-category-url`.\n- Submit `spider_parameters` as a JSON string containing one or more objects like:\n\n```json\n[{\"category_url\":\"https://www.walmart.com/shop/deals/food/\",\"all_variations\":\"false\",\"page_turning\":\"1\"}]\n```\n\n## SKU Mode Parameters\n\nUse this section only when the user chooses `sku`.\n\n| Field | Required | Default | Location | Notes |\n| --- | --- | --- | --- | --- |\n| `sku` | Yes | `439179861` | `spider_parameters` | Walmart SKU product code. |\n| `all_variations` | No | `false` | `spider_parameters` | Whether to collect all product variations. |\n| `file_name` | No | `{{TasksID}}` | Builder form field | Use the default when the user does not change it. |\n\nThen show the `all_variations` dropdown table from Shared Dropdown Options.\n\n\nAlso ask: \"Do you want to collect multiple Walmart SKU groups? If yes, provide multiple groups with `sku` and `all_variations`.\"\n\nSKU mode handling:\n\n- Trim leading and trailing whitespace from `sku`.\n- `sku` cannot be empty.\n- `all_variations` must be `true` or `false`.\n- Submit `spider_id=walmart_product_by-sku`.\n- Submit `spider_parameters` as a JSON string containing one or more objects like:\n\n```json\n[{\"sku\":\"439179861\",\"all_variations\":\"false\"}]\n```\n\n## Keyword Mode Parameters\n\nUse this section only when the user chooses `keywords`.\n\n| Field | Required | Default | Location | Notes |\n| --- | --- | --- | --- | --- |\n| `keyword` | Yes | `leggins` | `spider_parameters` | Walmart search keyword. |\n| `domain` | Yes | `https://www.walmart.com/` | `spider_parameters` | Walmart main domain. |\n| `all_variations` | No | `false` | `spider_parameters` | Whether to collect all product variations. |\n| `page_turning` | No | `2` | `spider_parameters` | Page limit. Must be an integer greater than or equal to `0`. |\n| `file_name` | No | `{{TasksID}}` | Builder form field | Use the default when the user does not change it. |\n\nThen show the `all_variations` dropdown table from Shared Dropdown Options.\n\n\nAlso ask: \"Do you want to collect multiple Walmart keyword groups? If yes, provide multiple groups with `keyword`, `domain`, `all_variations`, and `page_turning`.\"\n\nKeyword mode handling:\n\n- `keyword` cannot be empty.\n- `domain` must start with `https://www.walmart.com/`.\n- `all_variations` must be `true` or `false`.\n- `page_turning` must be an integer greater than or equal to `0`.\n- Submit `spider_id=walmart_product_by-keywords`.\n- Submit `spider_parameters` as a JSON string containing one or more objects like:\n\n```json\n[{\"keyword\":\"leggins\",\"domain\":\"https://www.walmart.com/\",\"all_variations\":\"false\",\"page_turning\":\"2\"}]\n```\n\nFile v1.3.0:skill-card.md\n\n## Description:\n\nCollect Walmart product records by URL, category URL, SKU, or keyword. Do not use for Amazon, eBay, or general shopping-search results.\n\nThis skill is ready for commercial/non-commercial use.\n\n## Publisher:\n\n[dataify-server](https://clawhub.ai/user/dataify-server)\n\n### License/Terms of Use:\n\nMIT-0\n\n## Use Case:\n\nExternal users and developers use this skill to submit Walmart product collection jobs through Dataify Builder, monitor the asynchronous task, and return collected results. It supports product URL, category URL, SKU, and keyword collection modes.\n\n### Deployment Geography for Use:\n\nGlobal\n\n## Known Risks and Mitigations:\n\nRisk: The skill can use a saved Dataify API TOKEN for third-party Walmart data-collection tasks, which may consume account credits.\n\nMitigation: Use it only when you intend to send Walmart targets to Dataify, keep DATAIFY_API_TOKEN configured locally outside chat, and confirm multi-page or high-volume scopes before execution.\n\nRisk: Credential exposure is possible if a user pastes a Dataify token into a conversation.\n\nMitigation: Do not paste the token into chat; configure DATAIFY_API_TOKEN outside the conversation and verify only that it is present, not its value.\n\nRisk: Collection requests send Walmart URLs, SKUs, keywords, and related task parameters to Dataify.\n\nMitigation: Confirm that the collection targets and any resulting data transfer to Dataify are acceptable before running the task.\n\n## Reference(s):\n\n- [Modes and Parameters](references/modes-and-parameters.md)\n- [ClawHub Skill Page](https://clawhub.ai/dataify-server/skills/dataify-walmart-products)\n\n## Skill Output:\n\n**Output Type(s):** [text, markdown, json, shell commands, configuration, guidance]\n\n**Output Format:** [Markdown guidance with shell commands and JSON task or result payloads]\n\n**Output Parameters:** [1D]\n\n**Other Properties Related to Output:** [May wait for asynchronous Dataify task completion; large JSON result payloads may be summarized while preserving access to raw results.]\n\n## Skill Version(s):\n\n1.3.0 (source: server release evidence)\n\n## Ethical Considerations:\n\nUsers should evaluate whether this skill is appropriate for their environment, review any generated or modified files before relying on them, and apply their organization's safety, security, and compliance requirements before deployment.\n\nFile v1.3.0:SKILL.zh-CN.md\n\n---\nname: dataify-walmart-products\ndescription: \"提交 Dataify Walmart Product Information Builder 任务，支持四种 Walmart 商品采集模式。当用户需要 Walmart product information collection tool、采集/抓取/爬取 Walmart 商品信息或商品数据，按 URL、category URL、SKU、keyword 采集 Walmart products，创建 walmart_product_by-url、walmart_product_by-category-url、walmart_product_by-sku 或 walmart_product_by-keywords 任务，或表达 Walmart 产品信息采集/抓取、产品采集/抓取、产品 URL/类别 URL/SKU/关键词采集等含义时使用。也用于接收 task_id/status、配置 DATAIFY_API_TOKEN 或排查此 Dataify Builder 请求。\"\n---\n\n# Dataify Walmart Products\n\n通过 Dataify Builder 提交 Walmart 产品信息采集任务。本技能是四种采集模式的引导封装：\n\n| 模式 | 采集器 ID | 用途 |\n| --- | --- | --- |\n| 产品 URL | `walmart_product_by-url` | 通过产品 URL 采集一个或多个 Walmart 产品。 |\n| 类别 URL | `walmart_product_by-category-url` | 通过类别 URL 采集 Walmart 产品。 |\n| SKU | `walmart_product_by-sku` | 通过 SKU 采集一个或多个 Walmart 产品。 |\n| 关键词 | `walmart_product_by-keywords` | 通过搜索关键词和域名采集 Walmart 产品。 |\n\n提交成功后，向用户提供 `task_id`、返回的或推断的状态，并告知用户前往 [Dataify](https://dashboard.dataify.com?utm_source=skill) 查看结果。\n\n## API TOKEN 处理\n\n使用 `DATAIFY_API_TOKEN` 作为长期保存的 token 名称。\n\n- 如果用户在请求中提供了 token，则在本次运行中使用该 token。\n- 如果未提供 token，先检查环境中是否已在本地保存 `DATAIFY_API_TOKEN`。\n- 如果本地已保存 `DATAIFY_API_TOKEN`，则直接使用，无需要求用户重新输入。\n- 如果本地没有可用的 token，告知用户需要提供 Dataify API TOKEN。\n- 如果用户没有 API TOKEN，告知用户可以在 [Dataify](https://dashboard.dataify.com/login?utm_source=skill) 注册或登录以获取。\n- 如果用户已有 API TOKEN，告知用户可以在 [Dataify](https://dashboard.dataify.com?utm_source=skill) 右上角找到。\n- 用户提供 API TOKEN 后，如果本地未保存 `DATAIFY_API_TOKEN`，询问是否将其保存为 `DATAIFY_API_TOKEN` 以供后续使用。\n- 如果用户希望保存，提供适合其 shell 的命令并要求其执行；不要在未经确认的情况下静默保存 token。\n- 没有 token 不要调用 Builder 接口。\n- 在面向用户的说明中始终称其为 `API TOKEN`。保存到本地时优先使用环境变量名 `DATAIFY_API_TOKEN`。\n\nPowerShell 示例，为当前会话保存 token：\n\n```powershell\n$env:DATAIFY_API_TOKEN = \"YOUR_DATAIFY_API_TOKEN\"\n```\n\n在 Windows 上设置持久的用户级变量：\n\n```powershell\n[Environment]::SetEnvironmentVariable(\"DATAIFY_API_TOKEN\", \"YOUR_DATAIFY_API_TOKEN\", \"User\")\n```\n\n## 核心工作流程\n\n1. 首先询问用户选择采集模式：`url`、`category-url`、`sku` 或 `keywords`。\n2. 用户选择模式后，仅展示该模式的参数表格和默认值。\n3. 如果所选模式有下拉字段，以包含 `Label` 和 `Value` 列的 Markdown 表格展示下拉选项。\n4. 询问用户是否需要在运行任务前修改任何值。\n5. 询问用户是否需要为所选模式采集多组 Walmart 产品。\n6. 将最终值规范化为仅包含所选模式的参数对象列表。\n7. 从显式输入或已保存的 `DATAIFY_API_TOKEN` 中获取 Dataify token。\n8. 如果没有可用的 token，要求用户输入 API TOKEN 并询问是否将其保存为 `DATAIFY_API_TOKEN`。\n9. 验证所选模式、URL、域名、SKU、关键词、数值、下拉值和文件名。\n10. 使用所选模式的 `spider_id` 提交 Builder 请求。\n11. 从 Builder 响应中读取 `data.task_id`，并在存在时读取 `data.status` 或 `status`。\n13. 告知用户前往 [Dataify](https://dashboard.dataify.com?utm_source=skill) 查看或管理结果。\n\n## 模式选择\n\n当用户调用此技能时，首先展示以下 Markdown 表格并要求选择一种模式：\n\n| 标签 | 值 |\n| --- | --- |\n| 通过产品 URL 采集 Walmart 产品 | `url` |\n| 通过类别 URL 采集 Walmart 产品 | `category-url` |\n| 通过 SKU 采集 Walmart 产品 | `sku` |\n| 通过关键词采集 Walmart 产品 | `keywords` |\n\n询问：\"您想使用哪种采集模式：`url`、`category-url`、`sku` 还是 `keywords`？\"\n\n在模式明确之前不要提交 Builder 请求。\n\n## 共享下拉选项\n\n`all_variations` 下拉选项：\n\n| 标签 | 值 |\n| --- | --- |\n| true | `true` |\n| false | `false` |\n\n## 产品 URL 模式参数\n\n仅当用户选择 `url` 时使用本节。\n\n| 字段 | 必填 | 默认值 | 位置 | 说明 |\n| --- | --- | --- | --- | --- |\n| `url` | 是 | `https://www.walmart.com/ip/HI-CHEW-Stand-Up-Pouch-Getaway-Mix-11-65oz/12284762931?athAsset=eyJhdGhjcGlkIjoiMTIyODQ3NjI5MzEiLCJhdGhzdGlkIjoiQ1MwNTV+Q1MwMDR+Q1MwOTgiLCJhdGhlZSI6eyJhIjoyNy44NCwiYiI6Mjk1MS40MSwidyI6MC4wMDk0MjcxMjc3OTA0NzcxMjMsImwiOjAuNX0sImF0aHBvc2IiOiI4IiwiYXRoYW5jaWQiOiIxMDE2NDUwNzU1IiwiYXRocmsiOjAuMH0%3D&athena=true&adsRedirect=true` | `spider_parameters` | Walmart 产品 URL。 |\n| `all_variations` | 否 | `false` | `spider_parameters` | 是否采集所有产品变体。 |\n| `file_name` | 否 | `{{TasksID}}` | Builder 表单字段 | 用户未更改时使用默认值。 |\n\n然后展示共享下拉选项中的 `all_variations` 下拉表格。\n\n\n同时询问：\"您是否需要采集多组 Walmart 产品 URL？如果是，请提供多组 `url` 和 `all_variations`。\"\n\n产品 URL 模式处理：\n\n- `url` 为必填项。如果用户未提供，询问该必填值；不要使用文档示例值代替用户输入。\n- `url` 必须以 `https://www.walmart.com/` 开头。\n- `all_variations` 必须为 `true` 或 `false`。\n- 提交 `spider_id=walmart_product_by-url`。\n- 将 `spider_parameters` 作为包含一个或多个对象的 JSON 字符串提交，格式如下：\n\n```json\n[{\"url\":\"https://www.walmart.com/ip/HI-CHEW-Stand-Up-Pouch-Getaway-Mix-11-65oz/12284762931?athAsset=eyJhdGhjcGlkIjoiMTIyODQ3NjI5MzEiLCJhdGhzdGlkIjoiQ1MwNTV+Q1MwMDR+Q1MwOTgiLCJhdGhlZSI6eyJhIjoyNy44NCwiYiI6Mjk1MS40MSwidyI6MC4wMDk0MjcxMjc3OTA0NzcxMjMsImwiOjAuNX0sImF0aHBvc2IiOiI4IiwiYXRoYW5jaWQiOiIxMDE2NDUwNzU1IiwiYXRocmsiOjAuMH0%3D&athena=true&adsRedirect=true\",\"all_variations\":\"true\"}]\n```\n\n## 类别 URL 模式参数\n\n仅当用户选择 `category-url` 时使用本节。\n\n| 字段 | 必填 | 默认值 | 位置 | 说明 |\n| --- | --- | --- | --- | --- |\n| `category_url` | 是 | `https://www.walmart.com/shop/deals/food/` | `spider_parameters` | Walmart 类别 URL。 |\n| `all_variations` | 是 | `false` | `spider_parameters` | 是否采集所有产品变体。 |\n| `page_turning` | 是 | `1` | `spider_parameters` | 页数限制。必须为大于或等于 `0` 的整数。 |\n| `file_name` | 否 | `{{TasksID}}` | Builder 表单字段 | 用户未更改时使用默认值。 |\n\n然后展示共享下拉选项中的 `all_variations` 下拉表格。\n\n\n同时询问：\"您是否需要采集多组 Walmart 类别 URL？如果是，请提供多组 `category_url`、`all_variations` 和 `page_turning`。\"\n\n类别 URL 模式处理：\n\n- `category_url` 为必填项。如果用户未提供，询问该必填值；不要使用文档示例值代替用户输入。\n- `category_url` 必须以 `https://www.walmart.com/` 开头。\n- `all_variations` 必须为 `true` 或 `false`。\n- `page_turning` 必须为大于或等于 `0` 的整数。\n- 提交 `spider_id=walmart_product_by-category-url`。\n- 将 `spider_parameters` 作为包含一个或多个对象的 JSON 字符串提交，格式如下：\n\n```json\n[{\"category_url\":\"https://www.walmart.com/shop/deals/food/\",\"all_variations\":\"false\",\"page_turning\":\"1\"}]\n```\n\n## SKU 模式参数\n\n仅当用户选择 `sku` 时使用本节。\n\n| 字段 | 必填 | 默认值 | 位置 | 说明 |\n| --- | --- | --- | --- | --- |\n| `sku` | 是 | `439179861` | `spider_parameters` | Walmart SKU 产品代码。 |\n| `all_variations` | 否 | `false` | `spider_parameters` | 是否采集所有产品变体。 |\n| `file_name` | 否 | `{{TasksID}}` | Builder 表单字段 | 用户未更改时使用默认值。 |\n\n然后展示共享下拉选项中的 `all_variations` 下拉表格。\n\n\n同时询问：\"您是否需要采集多组 Walmart SKU？如果是，请提供多组 `sku` 和 `all_variations`。\"\n\nSKU 模式处理：\n\n- `sku` 为必填项。如果用户未提供，询问该必填值；不要使用文档示例值代替用户输入。\n- 去除 `sku` 的前后空白字符。\n- `sku` 不能为空。\n- `all_variations` 必须为 `true` 或 `false`。\n- 提交 `spider_id=walmart_product_by-sku`。\n- 将 `spider_parameters` 作为包含一个或多个对象的 JSON 字符串提交，格式如下：\n\n```json\n[{\"sku\":\"439179861\",\"all_variations\":\"false\"}]\n```\n\n## 关键词模式参数\n\n仅当用户选择 `keywords` 时使用本节。\n\n| 字段 | 必填 | 默认值 | 位置 | 说明 |\n| --- | --- | --- | --- | --- |\n| `keyword` | 是 | `leggins` | `spider_parameters` | Walmart 搜索关键词。 |\n| `domain` | 是 | `https://www.walmart.com/` | `spider_parameters` | Walmart 主域名。 |\n| `all_variations` | 否 | `false` | `spider_parameters` | 是否采集所有产品变体。 |\n| `page_turning` | 否 | `2` | `spider_parameters` | 页数限制。必须为大于或等于 `0` 的整数。 |\n| `file_name` | 否 | `{{TasksID}}` | Builder 表单字段 | 用户未更改时使用默认值。 |\n\n然后展示共享下拉选项中的 `all_variations` 下拉表格。\n\n\n同时询问：\"您是否需要采集多组 Walmart 关键词？如果是，请提供多组 `keyword`、`domain`、`all_variations` 和 `page_turning`。\"\n\n关键词模式处理：\n\n- `keyword` 为必填项。如果用户未提供，询问该必填值；不要使用文档示例值代替用户输入。\n- `keyword` 不能为空。\n- `domain` 必须以 `https://www.walmart.com/` 开头。\n- `all_variations` 必须为 `true` 或 `false`。\n- `page_turning` 必须为大于或等于 `0` 的整数。\n- 提交 `spider_id=walmart_product_by-keywords`。\n- 将 `spider_parameters` 作为包含一个或多个对象的 JSON 字符串提交，格式如下：\n\n```json\n[{\"keyword\":\"leggins\",\"domain\":\"https://www.walmart.com/\",\"all_variations\":\"false\",\"page_turning\":\"2\"}]\n```\n\n## 共享文件名处理\n\n- `file_name` 默认为 `{{TasksID}}`。\n- 如果用户更改了 `file_name`，提交用户提供的值。\n- `file_name` 不能为空。\n- 将 `file_name` 作为 Builder 表单字段发送。\n\n## Dataify Builder 请求\n\n使用表单字段而非手动构建的 URL 编码字符串。\n\n- URL：`https://scraperapi.dataify.com/builder?platform=1`\n- 方法：`POST`\n- Authorization 请求头：`Bearer DATAIFY_API_TOKEN`\n- Content type：`application/x-www-form-urlencoded`\n- 固定字段：\n  - `spider_name=walmart.com`\n  - `spider_errors=true`\n- 模式特定字段：\n  - 产品 URL 模式：`spider_id=walmart_product_by-url`\n  - 类别 URL 模式：`spider_id=walmart_product_by-category-url`\n  - SKU 模式：`spider_id=walmart_product_by-sku`\n  - 关键词模式：`spider_id=walmart_product_by-keywords`\n- 默认字段：\n  - `file_name={{TasksID}}`\n- 动态字段：\n  - `spider_parameters` 必须为 JSON 字符串数组。\n\n## 脚本\n\n为确保稳定执行，优先使用 Python 3.6 或更新版本运行 `scripts/submit_dataify_walmart_products.py`，而非重写 Builder 流程。\n\n产品 URL 模式：\n\n```powershell\npython3 \".\\scripts\\submit_dataify_walmart_products.py\" --mode url --url \"https://www.walmart.com/ip/HI-CHEW-Stand-Up-Pouch-Getaway-Mix-11-65oz/12284762931?athAsset=eyJhdGhjcGlkIjoiMTIyODQ3NjI5MzEiLCJhdGhzdGlkIjoiQ1MwNTV+Q1MwMDR+Q1MwOTgiLCJhdGhlZSI6eyJhIjoyNy44NCwiYiI6Mjk1MS40MSwidyI6MC4wMDk0MjcxMjc3OTA0NzcxMjMsImwiOjAuNX0sImF0aHBvc2IiOiI4IiwiYXRoYW5jaWQiOiIxMDE2NDUwNzU1IiwiYXRocmsiOjAuMH0%3D&athena=true&adsRedirect=true\" --all-variations \"true\"\n```\n\n类别 URL 模式：\n\n```powershell\npython3 \".\\scripts\\submit_dataify_walmart_products.py\" --mode category-url --category-url \"https://www.walmart.com/shop/deals/food/\" --all-variations \"false\" --page-turning \"1\"\n```\n\nSKU 模式：\n\n```powershell\npython3 \".\\scripts\\submit_dataify_walmart_products.py\" --mode sku --sku \"439179861\" --all-variations \"false\"\n```\n\n关键词模式：\n\n```powershell\npython3 \".\\scripts\\submit_dataify_walmart_products.py\" --mode keywords --keyword \"leggins\" --domain \"https://www.walmart.com/\" --all-variations \"false\" --page-turning \"2\"\n```\n\n覆盖已保存的环境 token 或文件名：\n\n```powershell\npython3 \".\\scripts\\submit_dataify_walmart_products.py\" --mode sku --sku \"439179861\" --file-name \"{{TasksID}}\"\n```\n\n提交多组产品 URL：\n\n```powershell\npython3 \".\\scripts\\submit_dataify_walmart_products.py\" --mode url --params-json '[{\"url\":\"https://www.walmart.com/ip/HI-CHEW-Stand-Up-Pouch-Getaway-Mix-11-65oz/12284762931?athAsset=eyJhdGhjcGlkIjoiMTIyODQ3NjI5MzEiLCJhdGhzdGlkIjoiQ1MwNTV+Q1MwMDR+Q1MwOTgiLCJhdGhlZSI6eyJhIjoyNy44NCwiYiI6Mjk1MS40MSwidyI6MC4wMDk0MjcxMjc3OTA0NzcxMjMsImwiOjAuNX0sImF0aHBvc2IiOiI4IiwiYXRoYW5jaWQiOiIxMDE2NDUwNzU1IiwiYXRocmsiOjAuMH0%3D&athena=true&adsRedirect=true\",\"all_variations\":\"true\"},{\"url\":\"https://www.walmart.com/ip/HI-CHEW-Stand-Up-Pouch-Getaway-Mix-11-65oz/12284762931?athAsset=eyJhdGhjcGlkIjoiMTIyODQ3NjI5MzEiLCJhdGhzdGlkIjoiQ1MwNTV+Q1MwMDR+Q1MwOTgiLCJhdGhlZSI6eyJhIjoyNy44NCwiYiI6Mjk1MS40MSwidyI6MC4wMDk0MjcxMjc3OTA0NzcxMjMsImwiOjAuNX0sImF0aHBvc2IiOiI4IiwiYXRoYW5jaWQiOiIxMDE2NDUwNzU1IiwiYXRocmsiOjAuMH0%3D&athena=true&adsRedirect=true\",\"all_variations\":\"true\"}]'\n```\n\n脚本会打印包含 `mode`、`spider_id`、`task_id`、`status`、`parameters`、`file_name`、`dashboard_url` 和 `message` 的 JSON 摘要。\n\n## 故障排除\n\n`Missing Dataify API TOKEN` 表示未传递显式 token 且本地未保存 `DATAIFY_API_TOKEN`。告知用户需要提供 Dataify API TOKEN，询问是否将其保存为 `DATAIFY_API_TOKEN`，或告知用户可以在 [Dataify](https://dashboard.dataify.com/login?utm_source=skill) 注册或登录以获取。如果用户已有 token，告知其位于 [Dataify](https://dashboard.dataify.com?utm_source=skill) 右上角。\n\n`Unsupported mode` 表示模式必须为 `url`、`category-url`、`sku` 或 `keywords`。\n\n`url must start with https://www.walmart.com/` 表示产品 URL 不在允许的 Walmart 域名范围内。\n\n`category_url must start with https://www.walmart.com/` 表示类别 URL 不在允许的 Walmart 域名范围内。\n\n`domain must start with https://www.walmart.com/` 表示主域名不在允许的 Walmart 域名范围内。\n\n`all_variations must be true or false` 表示变体选项无效。\n\n`page_turning must be an integer greater than or equal to 0` 表示页数限制无效。\n\n`sku cannot be empty` 表示缺少 SKU。\n\n`keyword cannot be empty` 表示缺少关键词。\n\n`File name cannot be empty` 表示未提供可用的 `file_name`。\n\n`Necessary parameters is empty!` 通常表示 Builder 请求未以表单字段提交、`spider_parameters` 不是 JSON 字符串数组，或所选模式的对象缺少必填字段。\n\n缺少 `task_id` 通常表示 authorization 请求头、token、`spider_name`、所选 `spider_id` 或 `spider_parameters` 有误。\n\n## 安全规则\n\n- 不要在同一个 Builder 请求中混合产品 URL、类别 URL、SKU 和关键词模式的参数。\n- 在模式明确之前不要提交 Builder 请求。\n- 不要将 `file_name` 放入 `spider_parameters` 中。\n- 不要使用 `https://www.walmart.com/` 以外的 Walmart URL 或域名。\n- 提及身份验证时仅使用 `API TOKEN` 和 `DATAIFY_API_TOKEN`。\n- 不要硬编码本地 Python 路径。\n- 不要编造结果字段。\n- 任务创建成功后始终引导用户前往 [Dataify](https://dashboard.dataify.com?utm_source=skill)。\n\n## 参数交互策略\n\n- 当请求意图明确、只读、低风险且成本较低时，使用安全默认值直接执行。可以用一句话说明执行内容，但不要暂停等待确认。\n- 只在缺少必填输入、存在会明显改变结果的歧义、大批量或多页采集、媒体下载、会明显增加积分消耗、不可逆操作，或用户明确要求查看参数时询问。\n- 必须确认时，只展示会影响目标、范围、输出或成本的用户参数。优先使用一句简短说明；只有三个及以上关键值确实需要比较时才使用精简表格。\n- 不要展示固定字段、空的可选字段、未修改的默认值、凭据或内部实现参数，例如引擎选择、响应格式开关、偏移量、spider ID 和文件名模板。\n- 默认隐藏高级筛选项，除非用户主动询问或需要它们消除歧义。不得用文档示例值代替用户缺失的必填输入。\n- 先返回首个结果，再提供相关的细化选项，不要在首次执行前强迫用户决定所有可选项。\n\n## Account CTA policy\n\n- Show a prominent Dataify account CTA only when the API token is missing, rejected/invalid, or the account has insufficient credits.\n- For a missing token, offer https://dashboard.dataify.com/login?utm_source=skill and state: New accounts receive 50 free credits. Never ask the user to paste the token into chat.\n- Detect the current operating system and shell. Show only the matching session-scoped setup command first (`export` for macOS/Linux shells, `$env:` for Windows PowerShell, or `set` for Windows Command Prompt). Show other platforms or persistent setup only when detection is ambiguous or the user asks.\n- After the user says the token is configured, verify only whether `DATAIFY_API_TOKEN` is present; never print its value. If verification succeeds, continue the original task without asking the user to repeat it.\n- Explain that persistent shell changes may require a new terminal or restarting the agent application. Do not recommend a project `.env` unless the execution path explicitly loads it, and ensure `.env` is ignored by version control.\n- For an invalid token, direct the user to API-key management without implying that a new registration is required. For insufficient credits, direct the user to balance or recharge management.\n- During normal submission, processing, and successful completion, do not promote registration or the Dashboard. Never expose the token or include it in CTA attribution parameters.\n\nFile v1.3.0:agents/openai.yaml\n\ninterface:\n  display_name: \"Dataify Walmart Products\"\n  short_description: \"Collect Walmart Products data and return results\"\n  icon_small: \"./assets/dataify-walmart-products-small.svg\"\n  icon_large: \"./assets/dataify-walmart-products-large.svg\"\n  default_prompt: \"Use $dataify-walmart-products to complete the requested Dataify collection, wait for the asynchronous task, and return the final collected result. Stop at task submission only when I explicitly request no-wait behavior.\"\n\npolicy:\n  allow_implicit_invocation: true\n\nArchive v1.2.0: 8 files, 15073 bytes\n\nFiles: agents/openai.yaml (494b), assets/dataify-walmart-products-large.svg (892b), assets/dataify-walmart-products-small.svg (850b), scripts/submit_dataify_walmart_products.py (11195b), skill-card.md (2209b), SKILL.md (17124b), SKILL.zh-CN.md (16204b), _meta.json (143b)\n\nFile v1.2.0:SKILL.md\n\n---\nname: dataify-walmart-products\ndescription: Submit Dataify Walmart Product Information Builder tasks for four Walmart product collection modes. Use when the user wants the Walmart product information collection tool, collect Walmart products, scrape Walmart product information, crawl Walmart product data, collect Walmart products by URL, collect Walmart products by category URL, collect Walmart products by SKU, collect Walmart products by keyword, create Dataify walmart_product_by-url, walmart_product_by-category-url, walmart_product_by-sku, or walmart_product_by-keywords tasks, or asks in Chinese with meanings like \"Walmart 产品信息采集\", \"Walmart 产品信息抓取\", \"Walmart产品采集\", \"Walmart产品抓取\", \"Walmart产品URL采集\", \"Walmart类别URL采集\", \"Walmart SKU采集\", \"Walmart关键词采集\", or similar Walmart product noun plus collection/scraping action wording. Also use when receiving task_id/status, configuring DATAIFY_API_TOKEN, or troubleshooting this Dataify Builder request.\n---\n\n# Dataify Walmart Products\n\nSubmit Walmart product information collection jobs through Dataify Builder. This skill is a guided wrapper for four collection modes:\n\n| Mode | Collector ID | Use For |\n| --- | --- | --- |\n| Product URL | `walmart_product_by-url` | Collecting one or more Walmart products by product URL. |\n| Category URL | `walmart_product_by-category-url` | Collecting Walmart products by category URL. |\n| SKU | `walmart_product_by-sku` | Collecting one or more Walmart products by SKU. |\n| Keyword | `walmart_product_by-keywords` | Collecting Walmart products by search keyword and domain. |\n\nAfter a successful submission, give the user the `task_id`, the returned or inferred status, and tell them to visit [Dataify](https://dashboard.dataify.com?utm_source=skill) to view results.\n\n## API TOKEN Handling\n\nUse `DATAIFY_API_TOKEN` as the long-term saved token name.\n\n- If the user provides a token in the request, use it for this run.\n- If no token is provided, first check whether `DATAIFY_API_TOKEN` is already saved locally in the environment.\n- If `DATAIFY_API_TOKEN` is saved locally, use it without asking the user to re-enter the token.\n- If no token is available locally, tell the user they need to provide a Dataify API TOKEN.\n- If the user does not have an API TOKEN, tell them they can register or log in at [Dataify](https://dashboard.dataify.com/login?utm_source=skill) to get one.\n- If the user already has an API TOKEN, tell them it is available in the top-right area of [Dataify](https://dashboard.dataify.com?utm_source=skill).\n- After the user provides an API TOKEN and no local `DATAIFY_API_TOKEN` is saved, ask whether they want to save it locally as `DATAIFY_API_TOKEN` for future use.\n- If the user wants to save it, give the appropriate command for their shell and ask them to run it; do not silently persist tokens without confirmation.\n- Do not call the Builder endpoint without a token.\n- Always call it `API TOKEN` in user-facing instructions. Prefer the environment variable name `DATAIFY_API_TOKEN` for saved local use.\n\nPowerShell examples for saving the token for the current session:\n\n```powershell\n$env:DATAIFY_API_TOKEN = \"YOUR_DATAIFY_API_TOKEN\"\n```\n\nFor a persistent user-level variable on Windows:\n\n```powershell\n[Environment]::SetEnvironmentVariable(\"DATAIFY_API_TOKEN\", \"YOUR_DATAIFY_API_TOKEN\", \"User\")\n```\n\n## Core Workflow\n\n1. First ask the user to choose a collection mode: `url`, `category-url`, `sku`, or `keywords`.\n2. After the user chooses a mode, show only that mode's parameter table and defaults.\n3. If the selected mode has dropdown fields, show the dropdown options as Markdown tables with `Label` and `Value` columns.\n4. Ask whether the user wants to change any value before running the task.\n5. Ask whether the user wants to collect multiple Walmart product groups for the selected mode.\n6. Normalize the final values into a list of parameter objects for the selected mode only.\n7. Resolve the Dataify token from explicit input or saved `DATAIFY_API_TOKEN`.\n8. If no token is available, ask the user to enter their API TOKEN and ask whether to save it as `DATAIFY_API_TOKEN`.\n9. Validate the selected mode, URLs, domain, SKU, keyword, numeric values, dropdown values, and file name.\n10. Submit the Builder request with the selected mode's `spider_id`.\n11. Read `data.task_id` from the Builder response and read `data.status` or `status` when present.\n12. Stop after Builder succeeds.\n13. Tell the user to visit [Dataify](https://dashboard.dataify.com?utm_source=skill) to view or manage results.\n\n## Mode Selection\n\nWhen the user invokes this skill, first show this Markdown table and ask them to choose one mode:\n\n| Label | Value |\n| --- | --- |\n| Collect Walmart products by product URL | `url` |\n| Collect Walmart products by category URL | `category-url` |\n| Collect Walmart products by SKU | `sku` |\n| Collect Walmart products by keyword | `keywords` |\n\nAsk: \"Which collection mode do you want to use: `url`, `category-url`, `sku`, or `keywords`?\"\n\nDo not submit a Builder request until the mode is clear.\n\n## Shared Dropdown Options\n\nDropdown options for `all_variations`:\n\n| Label | Value |\n| --- | --- |\n| true | `true` |\n| false | `false` |\n\n## Product URL Mode Parameters\n\nUse this section only when the user chooses `url`.\n\n| Field | Required | Default | Location | Notes |\n| --- | --- | --- | --- | --- |\n| `url` | Yes | `https://www.walmart.com/ip/HI-CHEW-Stand-Up-Pouch-Getaway-Mix-11-65oz/12284762931?athAsset=eyJhdGhjcGlkIjoiMTIyODQ3NjI5MzEiLCJhdGhzdGlkIjoiQ1MwNTV+Q1MwMDR+Q1MwOTgiLCJhdGhlZSI6eyJhIjoyNy44NCwiYiI6Mjk1MS40MSwidyI6MC4wMDk0MjcxMjc3OTA0NzcxMjMsImwiOjAuNX0sImF0aHBvc2IiOiI4IiwiYXRoYW5jaWQiOiIxMDE2NDUwNzU1IiwiYXRocmsiOjAuMH0%3D&athena=true&adsRedirect=true` | `spider_parameters` | Walmart product URL. |\n| `all_variations` | No | `false` | `spider_parameters` | Whether to collect all product variations. |\n| `file_name` | No | `{{TasksID}}` | Builder form field | Use the default when the user does not change it. |\n\nThen show the `all_variations` dropdown table from Shared Dropdown Options.\n\nThen ask: \"Do you want to change any of these values before I submit the task?\"\n\nAlso ask: \"Do you want to collect multiple Walmart product URL groups? If yes, provide multiple groups with `url` and `all_variations`.\"\n\nProduct URL mode handling:\n\n- `url` is required. If the user does not provide it, use the default only after showing it in the parameter confirmation table.\n- `url` must start with `https://www.walmart.com/`.\n- `all_variations` must be `true` or `false`.\n- Submit `spider_id=walmart_product_by-url`.\n- Submit `spider_parameters` as a JSON string containing one or more objects like:\n\n```json\n[{\"url\":\"https://www.walmart.com/ip/HI-CHEW-Stand-Up-Pouch-Getaway-Mix-11-65oz/12284762931?athAsset=eyJhdGhjcGlkIjoiMTIyODQ3NjI5MzEiLCJhdGhzdGlkIjoiQ1MwNTV+Q1MwMDR+Q1MwOTgiLCJhdGhlZSI6eyJhIjoyNy44NCwiYiI6Mjk1MS40MSwidyI6MC4wMDk0MjcxMjc3OTA0NzcxMjMsImwiOjAuNX0sImF0aHBvc2IiOiI4IiwiYXRoYW5jaWQiOiIxMDE2NDUwNzU1IiwiYXRocmsiOjAuMH0%3D&athena=true&adsRedirect=true\",\"all_variations\":\"true\"}]\n```\n\n## Category URL Mode Parameters\n\nUse this section only when the user chooses `category-url`.\n\n| Field | Required | Default | Location | Notes |\n| --- | --- | --- | --- | --- |\n| `category_url` | Yes | `https://www.walmart.com/shop/deals/food/` | `spider_parameters` | Walmart category URL. |\n| `all_variations` | Yes | `false` | `spider_parameters` | Whether to collect all product variations. |\n| `page_turning` | Yes | `1` | `spider_parameters` | Page limit. Must be an integer greater than or equal to `0`. |\n| `file_name` | No | `{{TasksID}}` | Builder form field | Use the default when the user does not change it. |\n\nThen show the `all_variations` dropdown table from Shared Dropdown Options.\n\nThen ask: \"Do you want to change any of these values before I submit the task?\"\n\nAlso ask: \"Do you want to collect multiple Walmart category URL groups? If yes, provide multiple groups with `category_url`, `all_variations`, and `page_turning`.\"\n\nCategory URL mode handling:\n\n- `category_url` is required. If the user does not provide it, use the default `https://www.walmart.com/shop/deals/food/` only after showing it in the parameter confirmation table.\n- `category_url` must start with `https://www.walmart.com/`.\n- `all_variations` must be `true` or `false`.\n- `page_turning` must be an integer greater than or equal to `0`.\n- Submit `spider_id=walmart_product_by-category-url`.\n- Submit `spider_parameters` as a JSON string containing one or more objects like:\n\n```json\n[{\"category_url\":\"https://www.walmart.com/shop/deals/food/\",\"all_variations\":\"false\",\"page_turning\":\"1\"}]\n```\n\n## SKU Mode Parameters\n\nUse this section only when the user chooses `sku`.\n\n| Field | Required | Default | Location | Notes |\n| --- | --- | --- | --- | --- |\n| `sku` | Yes | `439179861` | `spider_parameters` | Walmart SKU product code. |\n| `all_variations` | No | `false` | `spider_parameters` | Whether to collect all product variations. |\n| `file_name` | No | `{{TasksID}}` | Builder form field | Use the default when the user does not change it. |\n\nThen show the `all_variations` dropdown table from Shared Dropdown Options.\n\nThen ask: \"Do you want to change any of these values before I submit the task?\"\n\nAlso ask: \"Do you want to collect multiple Walmart SKU groups? If yes, provide multiple groups with `sku` and `all_variations`.\"\n\nSKU mode handling:\n\n- `sku` is required. If the user does not provide it, use the default `439179861` only after showing it in the parameter confirmation table.\n- Trim leading and trailing whitespace from `sku`.\n- `sku` cannot be empty.\n- `all_variations` must be `true` or `false`.\n- Submit `spider_id=walmart_product_by-sku`.\n- Submit `spider_parameters` as a JSON string containing one or more objects like:\n\n```json\n[{\"sku\":\"439179861\",\"all_variations\":\"false\"}]\n```\n\n## Keyword Mode Parameters\n\nUse this section only when the user chooses `keywords`.\n\n| Field | Required | Default | Location | Notes |\n| --- | --- | --- | --- | --- |\n| `keyword` | Yes | `leggins` | `spider_parameters` | Walmart search keyword. |\n| `domain` | Yes | `https://www.walmart.com/` | `spider_parameters` | Walmart main domain. |\n| `all_variations` | No | `false` | `spider_parameters` | Whether to collect all product variations. |\n| `page_turning` | No | `2` | `spider_parameters` | Page limit. Must be an integer greater than or equal to `0`. |\n| `file_name` | No | `{{TasksID}}` | Builder form field | Use the default when the user does not change it. |\n\nThen show the `all_variations` dropdown table from Shared Dropdown Options.\n\nThen ask: \"Do you want to change any of these values before I submit the task?\"\n\nAlso ask: \"Do you want to collect multiple Walmart keyword groups? If yes, provide multiple groups with `keyword`, `domain`, `all_variations`, and `page_turning`.\"\n\nKeyword mode handling:\n\n- `keyword` is required. If the user does not provide it, use the default `leggins` only after showing it in the parameter confirmation table.\n- `keyword` cannot be empty.\n- `domain` must start with `https://www.walmart.com/`.\n- `all_variations` must be `true` or `false`.\n- `page_turning` must be an integer greater than or equal to `0`.\n- Submit `spider_id=walmart_product_by-keywords`.\n- Submit `spider_parameters` as a JSON string containing one or more objects like:\n\n```json\n[{\"keyword\":\"leggins\",\"domain\":\"https://www.walmart.com/\",\"all_variations\":\"false\",\"page_turning\":\"2\"}]\n```\n\n## Shared File Name Handling\n\n- `file_name` defaults to `{{TasksID}}`.\n- If the user changes `file_name`, submit the user-provided value.\n- `file_name` cannot be empty.\n- Send `file_name` as a Builder form field.\n\n## Dataify Builder Request\n\nUse form fields rather than hand-built URL-encoded strings.\n\n- URL: `https://scraperapi.dataify.com/builder?platform=1`\n- Method: `POST`\n- Authorization header: `Bearer DATAIFY_API_TOKEN`\n- Content type: `application/x-www-form-urlencoded`\n- Fixed fields:\n  - `spider_name=walmart.com`\n  - `spider_errors=true`\n- Mode-specific field:\n  - Product URL mode: `spider_id=walmart_product_by-url`\n  - Category URL mode: `spider_id=walmart_product_by-category-url`\n  - SKU mode: `spider_id=walmart_product_by-sku`\n  - Keyword mode: `spider_id=walmart_product_by-keywords`\n- Default field:\n  - `file_name={{TasksID}}`\n- Dynamic field:\n  - `spider_parameters` must be a JSON string array.\n\n## Script\n\nFor stable execution, prefer `scripts/submit_dataify_walmart_products.py` with Python 3.6 or newer instead of rewriting the Builder flow.\n\nProduct URL mode:\n\n```powershell\npython3 \".\\scripts\\submit_dataify_walmart_products.py\" --mode url --url \"https://www.walmart.com/ip/HI-CHEW-Stand-Up-Pouch-Getaway-Mix-11-65oz/12284762931?athAsset=eyJhdGhjcGlkIjoiMTIyODQ3NjI5MzEiLCJhdGhzdGlkIjoiQ1MwNTV+Q1MwMDR+Q1MwOTgiLCJhdGhlZSI6eyJhIjoyNy44NCwiYiI6Mjk1MS40MSwidyI6MC4wMDk0MjcxMjc3OTA0NzcxMjMsImwiOjAuNX0sImF0aHBvc2IiOiI4IiwiYXRoYW5jaWQiOiIxMDE2NDUwNzU1IiwiYXRocmsiOjAuMH0%3D&athena=true&adsRedirect=true\" --all-variations \"true\"\n```\n\nCategory URL mode:\n\n```powershell\npython3 \".\\scripts\\submit_dataify_walmart_products.py\" --mode category-url --category-url \"https://www.walmart.com/shop/deals/food/\" --all-variations \"false\" --page-turning \"1\"\n```\n\nSKU mode:\n\n```powershell\npython3 \".\\scripts\\submit_dataify_walmart_products.py\" --mode sku --sku \"439179861\" --all-variations \"false\"\n```\n\nKeyword mode:\n\n```powershell\npython3 \".\\scripts\\submit_dataify_walmart_products.py\" --mode keywords --keyword \"leggins\" --domain \"https://www.walmart.com/\" --all-variations \"false\" --page-turning \"2\"\n```\n\nTo override the saved environment token or file name:\n\n```powershell\npython3 \".\\scripts\\submit_dataify_walmart_products.py\" --api-token \"YOUR_DATAIFY_API_TOKEN\" --mode sku --sku \"439179861\" --file-name \"{{TasksID}}\"\n```\n\nTo submit multiple product URL groups:\n\n```powershell\npython3 \".\\scripts\\submit_dataify_walmart_products.py\" --mode url --params-json '[{\"url\":\"https://www.walmart.com/ip/HI-CHEW-Stand-Up-Pouch-Getaway-Mix-11-65oz/12284762931?athAsset=eyJhdGhjcGlkIjoiMTIyODQ3NjI5MzEiLCJhdGhzdGlkIjoiQ1MwNTV+Q1MwMDR+Q1MwOTgiLCJhdGhlZSI6eyJhIjoyNy44NCwiYiI6Mjk1MS40MSwidyI6MC4wMDk0MjcxMjc3OTA0NzcxMjMsImwiOjAuNX0sImF0aHBvc2IiOiI4IiwiYXRoYW5jaWQiOiIxMDE2NDUwNzU1IiwiYXRocmsiOjAuMH0%3D&athena=true&adsRedirect=true\",\"all_variations\":\"true\"},{\"url\":\"https://www.walmart.com/ip/HI-CHEW-Stand-Up-Pouch-Getaway-Mix-11-65oz/12284762931?athAsset=eyJhdGhjcGlkIjoiMTIyODQ3NjI5MzEiLCJhdGhzdGlkIjoiQ1MwNTV+Q1MwMDR+Q1MwOTgiLCJhdGhlZSI6eyJhIjoyNy44NCwiYiI6Mjk1MS40MSwidyI6MC4wMDk0MjcxMjc3OTA0NzcxMjMsImwiOjAuNX0sImF0aHBvc2IiOiI4IiwiYXRoYW5jaWQiOiIxMDE2NDUwNzU1IiwiYXRocmsiOjAuMH0%3D&athena=true&adsRedirect=true\",\"all_variations\":\"true\"}]'\n```\n\nThe script prints a JSON summary with `mode`, `spider_id`, `task_id`, `status`, `parameters`, `file_name`, `dashboard_url`, and `message`.\n\n## Troubleshooting\n\n`Missing Dataify API TOKEN` means no explicit token was passed and `DATAIFY_API_TOKEN` is not saved locally. Tell the user they need to provide their Dataify API TOKEN, ask whether they want to save it as `DATAIFY_API_TOKEN`, or tell them they can register or log in at [Dataify](https://dashboard.dataify.com/login?utm_source=skill) to get one. If they already have a token, tell them it is in the top-right area of [Dataify](https://dashboard.dataify.com?utm_source=skill).\n\n`Unsupported mode` means the mode must be `url`, `category-url`, `sku`, or `keywords`.\n\n`url must start with https://www.walmart.com/` means the product URL is outside the allowed Walmart domain.\n\n`category_url must start with https://www.walmart.com/` means the category URL is outside the allowed Walmart domain.\n\n`domain must start with https://www.walmart.com/` means the main domain is outside the allowed Walmart domain.\n\n`all_variations must be true or false` means the variation option is invalid.\n\n`page_turning must be an integer greater than or equal to 0` means the page limit is invalid.\n\n`sku cannot be empty` means the SKU is missing.\n\n`keyword cannot be empty` means the keyword is missing.\n\n`File name cannot be empty` means no usable `file_name` was provided.\n\n`Necessary parameters is empty!` usually means the Builder request was not submitted as form fields, `spider_parameters` was not a JSON string array, or the selected mode's object is missing required fields.\n\nMissing `task_id` usually means the authorization header, token, `spider_name`, selected `spider_id`, or `spider_parameters` is wrong.\n\n## Guardrails\n\n- Do not mix Product URL, Category URL, SKU, and Keyword mode parameters in the same Builder request.\n- Do not submit a Builder request until the mode is clear.\n- Do not put `file_name` inside `spider_parameters`.\n- Do not use a Walmart URL or domain from outside `https://www.walmart.com/`.\n- Use only `API TOKEN` and `DATAIFY_API_TOKEN` when referring to authentication.\n- Do not hard-code local Python paths.\n- Do not invent result fields.\n- Always direct the user to [Dataify](https://dashboard.dataify.com?utm_source=skill) after successful task creation.\n\nFile v1.2.0:_meta.json\n\n{\n  \"ownerId\": \"kn74z5hmmwk21kw8tpphd9w21x86bkdf\",\n  \"slug\": \"dataify-walmart-products\",\n  \"version\": \"1.2.0\",\n  \"publishedAt\": 1784191145835\n}\n\nFile v1.2.0:skill-card.md\n\n## Description: <br>\nSubmit Dataify Walmart Product Information Builder tasks for product URL, category URL, SKU, or keyword collection modes. <br>\n\nThis skill is ready for commercial/non-commercial use. <br>\n\n## Publisher: <br>\n[dataify-server](https://clawhub.ai/user/dataify-server) <br>\n\n### License/Terms of Use: <br>\nMIT-0 <br>\n\n\n## Use Case: <br>\nExternal users and developers use this skill to create Dataify Walmart product collection jobs, validate mode-specific parameters, and receive the submitted task ID and status. <br>\n\n### Deployment Geography for Use: <br>\nGlobal <br>\n\n## Known Risks and Mitigations: <br>\nRisk: The skill may read DATAIFY_API_TOKEN from the local environment and use it to submit Dataify Builder requests. <br>\nMitigation: Install only when Dataify task creation is intended, review token use before running, and remove or rotate DATAIFY_API_TOKEN if future automatic use is not desired. <br>\nRisk: Broad invocation could submit Walmart collection jobs when the user intent or collection mode is unclear. <br>\nMitigation: Confirm the collection mode and mode-specific parameters before submitting a Builder request. <br>\n\n\n## Reference(s): <br>\n- [ClawHub skill page](https://clawhub.ai/dataify-server/skills/dataify-walmart-products) <br>\n- [Dataify dashboard](https://dashboard.dataify.com?utm_source=skill) <br>\n- [Dataify login](https://dashboard.dataify.com/login?utm_source=skill) <br>\n\n\n## Skill Output: <br>\n**Output Type(s):** [text, markdown, shell commands, configuration, API calls, guidance] <br>\n**Output Format:** [Markdown guidance with optional shell commands and JSON task summaries] <br>\n**Output Parameters:** [1D] <br>\n**Other Properties Related to Output:** [Returns task_id, status, selected mode, spider_id, parameters, file name, dashboard URL, and a short success message after submission.] <br>\n\n## Skill Version(s): <br>\n1.2.0 (source: evidence release metadata) <br>\n\n## Ethical Considerations: <br>\nUsers should evaluate whether this skill is appropriate for their environment, review any generated or modified files before relying on them, and apply their organization's safety, security, and compliance requirements before deployment. <br>\n\nFile v1.2.0:SKILL.zh-CN.md\n\n---\nname: dataify-walmart-products\ndescription: \"提交 Dataify Walmart Product Information Builder 任务，支持四种 Walmart 商品采集模式。当用户需要 Walmart product information collection tool、采集/抓取/爬取 Walmart 商品信息或商品数据，按 URL、category URL、SKU、keyword 采集 Walmart products，创建 walmart_product_by-url、walmart_product_by-category-url、walmart_product_by-sku 或 walmart_product_by-keywords 任务，或表达 Walmart 产品信息采集/抓取、产品采集/抓取、产品 URL/类别 URL/SKU/关键词采集等含义时使用。也用于接收 task_id/status、配置 DATAIFY_API_TOKEN 或排查此 Dataify Builder 请求。\"\n---\n\n# Dataify Walmart Products\n\n通过 Dataify Builder 提交 Walmart 产品信息采集任务。本技能是四种采集模式的引导封装：\n\n| 模式 | 采集器 ID | 用途 |\n| --- | --- | --- |\n| 产品 URL | `walmart_product_by-url` | 通过产品 URL 采集一个或多个 Walmart 产品。 |\n| 类别 URL | `walmart_product_by-category-url` | 通过类别 URL 采集 Walmart 产品。 |\n| SKU | `walmart_product_by-sku` | 通过 SKU 采集一个或多个 Walmart 产品。 |\n| 关键词 | `walmart_product_by-keywords` | 通过搜索关键词和域名采集 Walmart 产品。 |\n\n提交成功后，向用户提供 `task_id`、返回的或推断的状态，并告知用户前往 [Dataify](https://dashboard.dataify.com?utm_source=skill) 查看结果。\n\n## API TOKEN 处理\n\n使用 `DATAIFY_API_TOKEN` 作为长期保存的 token 名称。\n\n- 如果用户在请求中提供了 token，则在本次运行中使用该 token。\n- 如果未提供 token，先检查环境中是否已在本地保存 `DATAIFY_API_TOKEN`。\n- 如果本地已保存 `DATAIFY_API_TOKEN`，则直接使用，无需要求用户重新输入。\n- 如果本地没有可用的 token，告知用户需要提供 Dataify API TOKEN。\n- 如果用户没有 API TOKEN，告知用户可以在 [Dataify](https://dashboard.dataify.com/login?utm_source=skill) 注册或登录以获取。\n- 如果用户已有 API TOKEN，告知用户可以在 [Dataify](https://dashboard.dataify.com?utm_source=skill) 右上角找到。\n- 用户提供 API TOKEN 后，如果本地未保存 `DATAIFY_API_TOKEN`，询问是否将其保存为 `DATAIFY_API_TOKEN` 以供后续使用。\n- 如果用户希望保存，提供适合其 shell 的命令并要求其执行；不要在未经确认的情况下静默保存 token。\n- 没有 token 不要调用 Builder 接口。\n- 在面向用户的说明中始终称其为 `API TOKEN`。保存到本地时优先使用环境变量名 `DATAIFY_API_TOKEN`。\n\nPowerShell 示例，为当前会话保存 token：\n\n```powershell\n$env:DATAIFY_API_TOKEN = \"YOUR_DATAIFY_API_TOKEN\"\n```\n\n在 Windows 上设置持久的用户级变量：\n\n```powershell\n[Environment]::SetEnvironmentVariable(\"DATAIFY_API_TOKEN\", \"YOUR_DATAIFY_API_TOKEN\", \"User\")\n```\n\n## 核心工作流程\n\n1. 首先询问用户选择采集模式：`url`、`category-url`、`sku` 或 `keywords`。\n2. 用户选择模式后，仅展示该模式的参数表格和默认值。\n3. 如果所选模式有下拉字段，以包含 `Label` 和 `Value` 列的 Markdown 表格展示下拉选项。\n4. 询问用户是否需要在运行任务前修改任何值。\n5. 询问用户是否需要为所选模式采集多组 Walmart 产品。\n6. 将最终值规范化为仅包含所选模式的参数对象列表。\n7. 从显式输入或已保存的 `DATAIFY_API_TOKEN` 中获取 Dataify token。\n8. 如果没有可用的 token，要求用户输入 API TOKEN 并询问是否将其保存为 `DATAIFY_API_TOKEN`。\n9. 验证所选模式、URL、域名、SKU、关键词、数值、下拉值和文件名。\n10. 使用所选模式的 `spider_id` 提交 Builder 请求。\n11. 从 Builder 响应中读取 `data.task_id`，并在存在时读取 `data.status` 或 `status`。\n12. Builder 成功后停止。\n13. 告知用户前往 [Dataify](https://dashboard.dataify.com?utm_source=skill) 查看或管理结果。\n\n## 模式选择\n\n当用户调用此技能时，首先展示以下 Markdown 表格并要求选择一种模式：\n\n| 标签 | 值 |\n| --- | --- |\n| 通过产品 URL 采集 Walmart 产品 | `url` |\n| 通过类别 URL 采集 Walmart 产品 | `category-url` |\n| 通过 SKU 采集 Walmart 产品 | `sku` |\n| 通过关键词采集 Walmart 产品 | `keywords` |\n\n询问：\"您想使用哪种采集模式：`url`、`category-url`、`sku` 还是 `keywords`？\"\n\n在模式明确之前不要提交 Builder 请求。\n\n## 共享下拉选项\n\n`all_variations` 下拉选项：\n\n| 标签 | 值 |\n| --- | --- |\n| true | `true` |\n| false | `false` |\n\n## 产品 URL 模式参数\n\n仅当用户选择 `url` 时使用本节。\n\n| 字段 | 必填 | 默认值 | 位置 | 说明 |\n| --- | --- | --- | --- | --- |\n| `url` | 是 | `https://www.walmart.com/ip/HI-CHEW-Stand-Up-Pouch-Getaway-Mix-11-65oz/12284762931?athAsset=eyJhdGhjcGlkIjoiMTIyODQ3NjI5MzEiLCJhdGhzdGlkIjoiQ1MwNTV+Q1MwMDR+Q1MwOTgiLCJhdGhlZSI6eyJhIjoyNy44NCwiYiI6Mjk1MS40MSwidyI6MC4wMDk0MjcxMjc3OTA0NzcxMjMsImwiOjAuNX0sImF0aHBvc2IiOiI4IiwiYXRoYW5jaWQiOiIxMDE2NDUwNzU1IiwiYXRocmsiOjAuMH0%3D&athena=true&adsRedirect=true` | `spider_parameters` | Walmart 产品 URL。 |\n| `all_variations` | 否 | `false` | `spider_parameters` | 是否采集所有产品变体。 |\n| `file_name` | 否 | `{{TasksID}}` | Builder 表单字段 | 用户未更改时使用默认值。 |\n\n然后展示共享下拉选项中的 `all_variations` 下拉表格。\n\n然后询问：\"您是否需要在提交任务前修改这些值？\"\n\n同时询问：\"您是否需要采集多组 Walmart 产品 URL？如果是，请提供多组 `url` 和 `all_variations`。\"\n\n产品 URL 模式处理：\n\n- `url` 为必填项。如果用户未提供，仅在参数确认表格中展示后才使用默认值。\n- `url` 必须以 `https://www.walmart.com/` 开头。\n- `all_variations` 必须为 `true` 或 `false`。\n- 提交 `spider_id=walmart_product_by-url`。\n- 将 `spider_parameters` 作为包含一个或多个对象的 JSON 字符串提交，格式如下：\n\n```json\n[{\"url\":\"https://www.walmart.com/ip/HI-CHEW-Stand-Up-Pouch-Getaway-Mix-11-65oz/12284762931?athAsset=eyJhdGhjcGlkIjoiMTIyODQ3NjI5MzEiLCJhdGhzdGlkIjoiQ1MwNTV+Q1MwMDR+Q1MwOTgiLCJhdGhlZSI6eyJhIjoyNy44NCwiYiI6Mjk1MS40MSwidyI6MC4wMDk0MjcxMjc3OTA0NzcxMjMsImwiOjAuNX0sImF0aHBvc2IiOiI4IiwiYXRoYW5jaWQiOiIxMDE2NDUwNzU1IiwiYXRocmsiOjAuMH0%3D&athena=true&adsRedirect=true\",\"all_variations\":\"true\"}]\n```\n\n## 类别 URL 模式参数\n\n仅当用户选择 `category-url` 时使用本节。\n\n| 字段 | 必填 | 默认值 | 位置 | 说明 |\n| --- | --- | --- | --- | --- |\n| `category_url` | 是 | `https://www.walmart.com/shop/deals/food/` | `spider_parameters` | Walmart 类别 URL。 |\n| `all_variations` | 是 | `false` | `spider_parameters` | 是否采集所有产品变体。 |\n| `page_turning` | 是 | `1` | `spider_parameters` | 页数限制。必须为大于或等于 `0` 的整数。 |\n| `file_name` | 否 | `{{TasksID}}` | Builder 表单字段 | 用户未更改时使用默认值。 |\n\n然后展示共享下拉选项中的 `all_variations` 下拉表格。\n\n然后询问：\"您是否需要在提交任务前修改这些值？\"\n\n同时询问：\"您是否需要采集多组 Walmart 类别 URL？如果是，请提供多组 `category_url`、`all_variations` 和 `page_turning`。\"\n\n类别 URL 模式处理：\n\n- `category_url` 为必填项。如果用户未提供，仅在参数确认表格中展示后才使用默认值 `https://www.walmart.com/shop/deals/food/`。\n- `category_url` 必须以 `https://www.walmart.com/` 开头。\n- `all_variations` 必须为 `true` 或 `false`。\n- `page_turning` 必须为大于或等于 `0` 的整数。\n- 提交 `spider_id=walmart_product_by-category-url`。\n- 将 `spider_parameters` 作为包含一个或多个对象的 JSON 字符串提交，格式如下：\n\n```json\n[{\"category_url\":\"https://www.walmart.com/shop/deals/food/\",\"all_variations\":\"false\",\"page_turning\":\"1\"}]\n```\n\n## SKU 模式参数\n\n仅当用户选择 `sku` 时使用本节。\n\n| 字段 | 必填 | 默认值 | 位置 | 说明 |\n| --- | --- | --- | --- | --- |\n| `sku` | 是 | `439179861` | `spider_parameters` | Walmart SKU 产品代码。 |\n| `all_variations` | 否 | `false` | `spider_parameters` | 是否采集所有产品变体。 |\n| `file_name` | 否 | `{{TasksID}}` | Builder 表单字段 | 用户未更改时使用默认值。 |\n\n然后展示共享下拉选项中的 `all_variations` 下拉表格。\n\n然后询问：\"您是否需要在提交任务前修改这些值？\"\n\n同时询问：\"您是否需要采集多组 Walmart SKU？如果是，请提供多组 `sku` 和 `all_variations`。\"\n\nSKU 模式处理：\n\n- `sku` 为必填项。如果用户未提供，仅在参数确认表格中展示后才使用默认值 `439179861`。\n- 去除 `sku` 的前后空白字符。\n- `sku` 不能为空。\n- `all_variations` 必须为 `true` 或 `false`。\n- 提交 `spider_id=walmart_product_by-sku`。\n- 将 `spider_parameters` 作为包含一个或多个对象的 JSON 字符串提交，格式如下：\n\n```json\n[{\"sku\":\"439179861\",\"all_variations\":\"false\"}]\n```\n\n## 关键词模式参数\n\n仅当用户选择 `keywords` 时使用本节。\n\n| 字段 | 必填 | 默认值 | 位置 | 说明 |\n| --- | --- | --- | --- | --- |\n| `keyword` | 是 | `leggins` | `spider_parameters` | Walmart 搜索关键词。 |\n| `domain` | 是 | `https://www.walmart.com/` | `spider_parameters` | Walmart 主域名。 |\n| `all_variations` | 否 | `false` | `spider_parameters` | 是否采集所有产品变体。 |\n| `page_turning` | 否 | `2` | `spider_parameters` | 页数限制。必须为大于或等于 `0` 的整数。 |\n| `file_name` | 否 | `{{TasksID}}` | Builder 表单字段 | 用户未更改时使用默认值。 |\n\n然后展示共享下拉选项中的 `all_variations` 下拉表格。\n\n然后询问：\"您是否需要在提交任务前修改这些值？\"\n\n同时询问：\"您是否需要采集多组 Walmart 关键词？如果是，请提供多组 `keyword`、`domain`、`all_variations` 和 `page_turning`。\"\n\n关键词模式处理：\n\n- `keyword` 为必填项。如果用户未提供，仅在参数确认表格中展示后才使用默认值 `leggins`。\n- `keyword` 不能为空。\n- `domain` 必须以 `https://www.walmart.com/` 开头。\n- `all_variations` 必须为 `true` 或 `false`。\n- `page_turning` 必须为大于或等于 `0` 的整数。\n- 提交 `spider_id=walmart_product_by-keywords`。\n- 将 `spider_parameters` 作为包含一个或多个对象的 JSON 字符串提交，格式如下：\n\n```json\n[{\"keyword\":\"leggins\",\"domain\":\"https://www.walmart.com/\",\"all_variations\":\"false\",\"page_turning\":\"2\"}]\n```\n\n## 共享文件名处理\n\n- `file_name` 默认为 `{{TasksID}}`。\n- 如果用户更改了 `file_name`，提交用户提供的值。\n- `file_name` 不能为空。\n- 将 `file_name` 作为 Builder 表单字段发送。\n\n## Dataify Builder 请求\n\n使用表单字段而非手动构建的 URL 编码字符串。\n\n- URL：`https://scraperapi.dataify.com/builder?platform=1`\n- 方法：`POST`\n- Authorization 请求头：`Bearer DATAIFY_API_TOKEN`\n- Content type：`application/x-www-form-urlencoded`\n- 固定字段：\n  - `spider_name=walmart.com`\n  - `spider_errors=true`\n- 模式特定字段：\n  - 产品 URL 模式：`spider_id=walmart_product_by-url`\n  - 类别 URL 模式：`spider_id=walmart_product_by-category-url`\n  - SKU 模式：`spider_id=walmart_product_by-sku`\n  - 关键词模式：`spider_id=walmart_product_by-keywords`\n- 默认字段：\n  - `file_name={{TasksID}}`\n- 动态字段：\n  - `spider_parameters` 必须为 JSON 字符串数组。\n\n## 脚本\n\n为确保稳定执行，优先使用 Python 3.6 或更新版本运行 `scripts/submit_dataify_walmart_products.py`，而非重写 Builder 流程。\n\n产品 URL 模式：\n\n```powershell\npython3 \".\\scripts\\submit_dataify_walmart_products.py\" --mode url --url \"https://www.walmart.com/ip/HI-CHEW-Stand-Up-Pouch-Getaway-Mix-11-65oz/12284762931?athAsset=eyJhdGhjcGlkIjoiMTIyODQ3NjI5MzEiLCJhdGhzdGlkIjoiQ1MwNTV+Q1MwMDR+Q1MwOTgiLCJhdGhlZSI6eyJhIjoyNy44NCwiYiI6Mjk1MS40MSwidyI6MC4wMDk0MjcxMjc3OTA0NzcxMjMsImwiOjAuNX0sImF0aHBvc2IiOiI4IiwiYXRoYW5jaWQiOiIxMDE2NDUwNzU1IiwiYXRocmsiOjAuMH0%3D&athena=true&adsRedirect=true\" --all-variations \"true\"\n```\n\n类别 URL 模式：\n\n```powershell\npython3 \".\\scripts\\submit_dataify_walmart_products.py\" --mode category-url --category-url \"https://www.walmart.com/shop/deals/food/\" --all-variations \"false\" --page-turning \"1\"\n```\n\nSKU 模式：\n\n```powershell\npython3 \".\\scripts\\submit_dataify_walmart_products.py\" --mode sku --sku \"439179861\" --all-variations \"false\"\n```\n\n关键词模式：\n\n```powershell\npython3 \".\\scripts\\submit_dataify_walmart_products.py\" --mode keywords --keyword \"leggins\" --domain \"https://www.walmart.com/\" --all-variations \"false\" --page-turning \"2\"\n```\n\n覆盖已保存的环境 token 或文件名：\n\n```powershell\npython3 \".\\scripts\\submit_dataify_walmart_products.py\" --api-token \"YOUR_DATAIFY_API_TOKEN\" --mode sku --sku \"439179861\" --file-name \"{{TasksID}}\"\n```\n\n提交多组产品 URL：\n\n```powershell\npython3 \".\\scripts\\submit_dataify_walmart_products.py\" --mode url --params-json '[{\"url\":\"https://www.walmart.com/ip/HI-CHEW-Stand-Up-Pouch-Getaway-Mix-11-65oz/12284762931?athAsset=eyJhdGhjcGlkIjoiMTIyODQ3NjI5MzEiLCJhdGhzdGlkIjoiQ1MwNTV+Q1MwMDR+Q1MwOTgiLCJhdGhlZSI6eyJhIjoyNy44NCwiYiI6Mjk1MS40MSwidyI6MC4wMDk0MjcxMjc3OTA0NzcxMjMsImwiOjAuNX0sImF0aHBvc2IiOiI4IiwiYXRoYW5jaWQiOiIxMDE2NDUwNzU1IiwiYXRocmsiOjAuMH0%3D&athena=true&adsRedirect=true\",\"all_variations\":\"true\"},{\"url\":\"https://www.walmart.com/ip/HI-CHEW-Stand-Up-Pouch-Getaway-Mix-11-65oz/12284762931?athAsset=eyJhdGhjcGlkIjoiMTIyODQ3NjI5MzEiLCJhdGhzdGlkIjoiQ1MwNTV+Q1MwMDR+Q1MwOTgiLCJhdGhlZSI6eyJhIjoyNy44NCwiYiI6Mjk1MS40MSwidyI6MC4wMDk0MjcxMjc3OTA0NzcxMjMsImwiOjAuNX0sImF0aHBvc2IiOiI4IiwiYXRoYW5jaWQiOiIxMDE2NDUwNzU1IiwiYXRocmsiOjAuMH0%3D&athena=true&adsRedirect=true\",\"all_variations\":\"true\"}]'\n```\n\n脚本会打印包含 `mode`、`spider_id`、`task_id`、`status`、`parameters`、`file_name`、`dashboard_url` 和 `message` 的 JSON 摘要。\n\n## 故障排除\n\n`Missing Dataify API TOKEN` 表示未传递显式 token 且本地未保存 `DATAIFY_API_TOKEN`。告知用户需要提供 Dataify API TOKEN，询问是否将其保存为 `DATAIFY_API_TOKEN`，或告知用户可以在 [Dataify](https://dashboard.dataify.com/login?utm_source=skill) 注册或登录以获取。如果用户已有 token，告知其位于 [Dataify](https://dashboard.dataify.com?utm_source=skill) 右上角。\n\n`Unsupported mode` 表示模式必须为 `url`、`category-url`、`sku` 或 `keywords`。\n\n`url must start with https://www.walmart.com/` 表示产品 URL 不在允许的 Walmart 域名范围内。\n\n`category_url must start with https://www.walmart.com/` 表示类别 URL 不在允许的 Walmart 域名范围内。\n\n`domain must start with https://www.walmart.com/` 表示主域名不在允许的 Walmart 域名范围内。\n\n`all_variations must be true or false` 表示变体选项无效。\n\n`page_turning must be an integer greater than or equal to 0` 表示页数限制无效。\n\n`sku cannot be empty` 表示缺少 SKU。\n\n`keyword cannot be empty` 表示缺少关键词。\n\n`File name cannot be empty` 表示未提供可用的 `file_name`。\n\n`Necessary parameters is empty!` 通常表示 Builder 请求未以表单字段提交、`spider_parameters` 不是 JSON 字符串数组，或所选模式的对象缺少必填字段。\n\n缺少 `task_id` 通常表示 authorization 请求头、token、`spider_name`、所选 `spider_id` 或 `spider_parameters` 有误。\n\n## 安全规则\n\n- 不要在同一个 Builder 请求中混合产品 URL、类别 URL、SKU 和关键词模式的参数。\n- 在模式明确之前不要提交 Builder 请求。\n- 不要将 `file_name` 放入 `spider_parameters` 中。\n- 不要使用 `https://www.walmart.com/` 以外的 Walmart URL 或域名。\n- 提及身份验证时仅使用 `API TOKEN` 和 `DATAIFY_API_TOKEN`。\n- 不要硬编码本地 Python 路径。\n- 不要编造结果字段。\n- 任务创建成功后始终引导用户前往 [Dataify](https://dashboard.dataify.com?utm_source=skill)。\n\nFile v1.2.0:agents/openai.yaml\n\ninterface:\n  display_name: \"Dataify Walmart Products\"\n  short_description: \"Submit Dataify Walmart product tasks by URL, category URL, SKU, or keyword\"\n  icon_small: \"./assets/dataify-walmart-products-small.svg\"\n  icon_large: \"./assets/dataify-walmart-products-large.svg\"\n  default_prompt: \"Use $dataify-walmart-products to submit Walmart product Builder tasks by URL, category URL, SKU, or keyword through Dataify and return the task_id and status.\"\n\npolicy:\n  allow_implicit_invocation: true\n\nArchive v1.1.0: 8 files, 15210 bytes\n\nFiles: agents/openai.yaml (494b), assets/dataify-walmart-products-large.svg (892b), assets/dataify-walmart-products-small.svg (850b), scripts/submit_dataify_walmart_products.py (11195b), skill-card.md (2545b), SKILL.md (17124b), SKILL.zh-CN.md (16204b), _meta.json (143b)\n\nFile v1.1.0:SKILL.md\n\n---\nname: dataify-walmart-products\ndescription: Submit Dataify Walmart Product Information Builder tasks for four Walmart product collection modes. Use when the user wants the Walmart product information collection tool, collect Walmart products, scrape Walmart product information, crawl Walmart product data, collect Walmart products by URL, collect Walmart products by category URL, collect Walmart products by SKU, collect Walmart products by keyword, create Dataify walmart_product_by-url, walmart_product_by-category-url, walmart_product_by-sku, or walmart_product_by-keywords tasks, or asks in Chinese with meanings like \"Walmart 产品信息采集\", \"Walmart 产品信息抓取\", \"Walmart产品采集\", \"Walmart产品抓取\", \"Walmart产品URL采集\", \"Walmart类别URL采集\", \"Walmart SKU采集\", \"Walmart关键词采集\", or similar Walmart product noun plus collection/scraping action wording. Also use when receiving task_id/status, configuring DATAIFY_API_TOKEN, or troubleshooting this Dataify Builder request.\n---\n\n# Dataify Walmart Products\n\nSubmit Walmart product information collection jobs through Dataify Builder. This skill is a guided wrapper for four collection modes:\n\n| Mode | Collector ID | Use For |\n| --- | --- | --- |\n| Product URL | `walmart_product_by-url` | Collecting one or more Walmart products by product URL. |\n| Category URL | `walmart_product_by-category-url` | Collecting Walmart products by category URL. |\n| SKU | `walmart_product_by-sku` | Collecting one or more Walmart products by SKU. |\n| Keyword | `walmart_product_by-keywords` | Collecting Walmart products by search keyword and domain. |\n\nAfter a successful submission, give the user the `task_id`, the returned or inferred status, and tell them to visit [Dataify](https://dashboard.dataify.com?utm_source=skill) to view results.\n\n## API TOKEN Handling\n\nUse `DATAIFY_API_TOKEN` as the long-term saved token name.\n\n- If the user provides a token in the request, use it for this run.\n- If no token is provided, first check whether `DATAIFY_API_TOKEN` is already saved locally in the environment.\n- If `DATAIFY_API_TOKEN` is saved locally, use it without asking the user to re-enter the token.\n- If no token is available locally, tell the user they need to provide a Dataify API TOKEN.\n- If the user does not have an API TOKEN, tell them they can register or log in at [Dataify](https://dashboard.dataify.com/login?utm_source=skill) to get one.\n- If the user already has an API TOKEN, tell them it is available in the top-right area of [Dataify](https://dashboard.dataify.com?utm_source=skill).\n- After the user provides an API TOKEN and no local `DATAIFY_API_TOKEN` is saved, ask whether they want to save it locally as `DATAIFY_API_TOKEN` for future use.\n- If the user wants to save it, give the appropriate command for their shell and ask them to run it; do not silently persist tokens without confirmation.\n- Do not call the Builder endpoint without a token.\n- Always call it `API TOKEN` in user-facing instructions. Prefer the environment variable name `DATAIFY_API_TOKEN` for saved local use.\n\nPowerShell examples for saving the token for the current session:\n\n```powershell\n$env:DATAIFY_API_TOKEN = \"YOUR_DATAIFY_API_TOKEN\"\n```\n\nFor a persistent user-level variable on Windows:\n\n```powershell\n[Environment]::SetEnvironmentVariable(\"DATAIFY_API_TOKEN\", \"YOUR_DATAIFY_API_TOKEN\", \"User\")\n```\n\n## Core Workflow\n\n1. First ask the user to choose a collection mode: `url`, `category-url`, `sku`, or `keywords`.\n2. After the user chooses a mode, show only that mode's parameter table and defaults.\n3. If the selected mode has dropdown fields, show the dropdown options as Markdown tables with `Label` and `Value` columns.\n4. Ask whether the user wants to change any value before running the task.\n5. Ask whether the user wants to collect multiple Walmart product groups for the selected mode.\n6. Normalize the final values into a list of parameter objects for the selected mode only.\n7. Resolve the Dataify token from explicit input or saved `DATAIFY_API_TOKEN`.\n8. If no token is available, ask the user to enter their API TOKEN and ask whether to save it as `DATAIFY_API_TOKEN`.\n9. Validate the selected mode, URLs, domain, SKU, keyword, numeric values, dropdown values, and file name.\n10. Submit the Builder request with the selected mode's `spider_id`.\n11. Read `data.task_id` from the Builder response and read `data.status` or `status` when present.\n12. Stop after Builder succeeds.\n13. Tell the user to visit [Dataify](https://dashboard.dataify.com?utm_source=skill) to view or manage results.\n\n## Mode Selection\n\nWhen the user invokes this skill, first show this Markdown table and ask them to choose one mode:\n\n| Label | Value |\n| --- | --- |\n| Collect Walmart products by product URL | `url` |\n| Collect Walmart products by category URL | `category-url` |\n| Collect Walmart products by SKU | `sku` |\n| Collect Walmart products by keyword | `keywords` |\n\nAsk: \"Which collection mode do you want to use: `url`, `category-url`, `sku`, or `keywords`?\"\n\nDo not submit a Builder request until the mode is clear.\n\n## Shared Dropdown Options\n\nDropdown options for `all_variations`:\n\n| Label | Value |\n| --- | --- |\n| true | `true` |\n| false | `false` |\n\n## Product URL Mode Parameters\n\nUse this section only when the user chooses `url`.\n\n| Field | Required | Default | Location | Notes |\n| --- | --- | --- | --- | --- |\n| `url` | Yes | `https://www.walmart.com/ip/HI-CHEW-Stand-Up-Pouch-Getaway-Mix-11-65oz/12284762931?athAsset=eyJhdGhjcGlkIjoiMTIyODQ3NjI5MzEiLCJhdGhzdGlkIjoiQ1MwNTV+Q1MwMDR+Q1MwOTgiLCJhdGhlZSI6eyJhIjoyNy44NCwiYiI6Mjk1MS40MSwidyI6MC4wMDk0MjcxMjc3OTA0NzcxMjMsImwiOjAuNX0sImF0aHBvc2IiOiI4IiwiYXRoYW5jaWQiOiIxMDE2NDUwNzU1IiwiYXRocmsiOjAuMH0%3D&athena=true&adsRedirect=true` | `spider_parameters` | Walmart product URL. |\n| `all_variations` | No | `false` | `spider_parameters` | Whether to collect all product variations. |\n| `file_name` | No | `{{TasksID}}` | Builder form field | Use the default when the user does not change it. |\n\nThen show the `all_variations` dropdown table from Shared Dropdown Options.\n\nThen ask: \"Do you want to change any of these values before I submit the task?\"\n\nAlso ask: \"Do you want to collect multiple Walmart product URL groups? If yes, provide multiple groups with `url` and `all_variations`.\"\n\nProduct URL mode handling:\n\n- `url` is required. If the user does not provide it, use the default only after showing it in the parameter confirmation table.\n- `url` must start with `https://www.walmart.com/`.\n- `all_variations` must be `true` or `false`.\n- Submit `spider_id=walmart_product_by-url`.\n- Submit `spider_parameters` as a JSON string containing one or more objects like:\n\n```json\n[{\"url\":\"https://www.walmart.com/ip/HI-CHEW-Stand-Up-Pouch-Getaway-Mix-11-65oz/12284762931?athAsset=eyJhdGhjcGlkIjoiMTIyODQ3NjI5MzEiLCJhdGhzdGlkIjoiQ1MwNTV+Q1MwMDR+Q1MwOTgiLCJhdGhlZSI6eyJhIjoyNy44NCwiYiI6Mjk1MS40MSwidyI6MC4wMDk0MjcxMjc3OTA0NzcxMjMsImwiOjAuNX0sImF0aHBvc2IiOiI4IiwiYXRoYW5jaWQiOiIxMDE2NDUwNzU1IiwiYXRocmsiOjAuMH0%3D&athena=true&adsRedirect=true\",\"all_variations\":\"true\"}]\n```\n\n## Category URL Mode Parameters\n\nUse this section only when the user chooses `category-url`.\n\n| Field | Required | Default | Location | Notes |\n| --- | --- | --- | --- | --- |\n| `category_url` | Yes | `https://www.walmart.com/shop/deals/food/` | `spider_parameters` | Walmart category URL. |\n| `all_variations` | Yes | `false` | `spider_parameters` | Whether to collect all product variations. |\n| `page_turning` | Yes | `1` | `spider_parameters` | Page limit. Must be an integer greater than or equal to `0`. |\n| `file_name` | No | `{{TasksID}}` | Builder form field | Use the default when the user does not change it. |\n\nThen show the `all_variations` dropdown table from Shared Dropdown Options.\n\nThen ask: \"Do you want to change any of these values before I submit the task?\"\n\nAlso ask: \"Do you want to collect multiple Walmart category URL groups? If yes, provide multiple groups with `category_url`, `all_variations`, and `page_turning`.\"\n\nCategory URL mode handling:\n\n- `category_url` is required. If the user does not provide it, use the default `https://www.walmart.com/shop/deals/food/` only after showing it in the parameter confirmation table.\n- `category_url` must start with `https://www.walmart.com/`.\n- `all_variations` must be `true` or `false`.\n- `page_turning` must be an integer greater than or equal to `0`.\n- Submit `spider_id=walmart_product_by-category-url`.\n- Submit `spider_parameters` as a JSON string containing one or more objects like:\n\n```json\n[{\"category_url\":\"https://www.walmart.com/shop/deals/food/\",\"all_variations\":\"false\",\"page_turning\":\"1\"}]\n```\n\n## SKU Mode Parameters\n\nUse this section only when the user chooses `sku`.\n\n| Field | Required | Default | Location | Notes |\n| --- | --- | --- | --- | --- |\n| `sku` | Yes | `439179861` | `spider_parameters` | Walmart SKU product code. |\n| `all_variations` | No | `false` | `spider_parameters` | Whether to collect all product variations. |\n| `file_name` | No | `{{TasksID}}` | Builder form field | Use the default when the user does not change it. |\n\nThen show the `all_variations` dropdown table from Shared Dropdown Options.\n\nThen ask: \"Do you want to change any of these values before I submit the task?\"\n\nAlso ask: \"Do you want to collect multiple Walmart SKU groups? If yes, provide multiple groups with `sku` and `all_variations`.\"\n\nSKU mode handling:\n\n- `sku` is required. If the user does not provide it, use the default `439179861` only after showing it in the parameter confirmation table.\n- Trim leading and trailing whitespace from `sku`.\n- `sku` cannot be empty.\n- `all_variations` must be `true` or `false`.\n- Submit `spider_id=walmart_product_by-sku`.\n- Submit `spider_parameters` as a JSON string containing one or more objects like:\n\n```json\n[{\"sku\":\"439179861\",\"all_variations\":\"false\"}]\n```\n\n## Keyword Mode Parameters\n\nUse this section only when the user chooses `keywords`.\n\n| Field | Required | Default | Location | Notes |\n| --- | --- | --- | --- | --- |\n| `keyword` | Yes | `leggins` | `spider_parameters` | Walmart search keyword. |\n| `domain` | Yes | `https://www.walmart.com/` | `spider_parameters` | Walmart main domain. |\n| `all_variations` | No | `false` | `spider_parameters` | Whether to collect all product variations. |\n| `page_turning` | No | `2` | `spider_parameters` | Page limit. Must be an integer greater than or equal to `0`. |\n| `file_name` | No | `{{TasksID}}` | Builder form field | Use the default when the user does not change it. |\n\nThen show the `all_variations` dropdown table from Shared Dropdown Options.\n\nThen ask: \"Do you want to change any of these values before I submit the task?\"\n\nAlso ask: \"Do you want to collect multiple Walmart keyword groups? If yes, provide multiple groups with `keyword`, `domain`, `all_variations`, and `page_turning`.\"\n\nKeyword mode handling:\n\n- `keyword` is required. If the user does not provide it, use the default `leggins` only after showing it in the parameter confirmation table.\n- `keyword` cannot be empty.\n- `domain` must start with `https://www.walmart.com/`.\n- `all_variations` must be `true` or `false`.\n- `page_turning` must be an integer greater than or equal to `0`.\n- Submit `spider_id=walmart_product_by-keywords`.\n- Submit `spider_parameters` as a JSON string containing one or more objects like:\n\n```json\n[{\"keyword\":\"leggins\",\"domain\":\"https://www.walmart.com/\",\"all_variations\":\"false\",\"page_turning\":\"2\"}]\n```\n\n## Shared File Name Handling\n\n- `file_name` defaults to `{{TasksID}}`.\n- If the user changes `file_name`, submit the user-provided value.\n- `file_name` cannot be empty.\n- Send `file_name` as a Builder form field.\n\n## Dataify Builder Request\n\nUse form fields rather than hand-built URL-encoded strings.\n\n- URL: `https://scraperapi.dataify.com/builder?platform=1`\n- Method: `POST`\n- Authorization header: `Bearer DATAIFY_API_TOKEN`\n- Content type: `application/x-www-form-urlencoded`\n- Fixed fields:\n  - `spider_name=walmart.com`\n  - `spider_errors=true`\n- Mode-specific field:\n  - Product URL mode: `spider_id=walmart_product_by-url`\n  - Category URL mode: `spider_id=walmart_product_by-category-url`\n  - SKU mode: `spider_id=walmart_product_by-sku`\n  - Keyword mode: `spider_id=walmart_product_by-keywords`\n- Default field:\n  - `file_name={{TasksID}}`\n- Dynamic field:\n  - `spider_parameters` must be a JSON string array.\n\n## Script\n\nFor stable execution, prefer `scripts/submit_dataify_walmart_products.py` with Python 3.6 or newer instead of rewriting the Builder flow.\n\nProduct URL mode:\n\n```powershell\npython3 \".\\scripts\\submit_dataify_walmart_products.py\" --mode url --url \"https://www.walmart.com/ip/HI-CHEW-Stand-Up-Pouch-Getaway-Mix-11-65oz/12284762931?athAsset=eyJhdGhjcGlkIjoiMTIyODQ3NjI5MzEiLCJhdGhzdGlkIjoiQ1MwNTV+Q1MwMDR+Q1MwOTgiLCJhdGhlZSI6eyJhIjoyNy44NCwiYiI6Mjk1MS40MSwidyI6MC4wMDk0MjcxMjc3OTA0NzcxMjMsImwiOjAuNX0sImF0aHBvc2IiOiI4IiwiYXRoYW5jaWQiOiIxMDE2NDUwNzU1IiwiYXRocmsiOjAuMH0%3D&athena=true&adsRedirect=true\" --all-variations \"true\"\n```\n\nCategory URL mode:\n\n```powershell\npython3 \".\\scripts\\submit_dataify_walmart_products.py\" --mode category-url --category-url \"https://www.walmart.com/shop/deals/food/\" --all-variations \"false\" --page-turning \"1\"\n```\n\nSKU mode:\n\n```powershell\npython3 \".\\scripts\\submit_dataify_walmart_products.py\" --mode sku --sku \"439179861\" --all-variations \"false\"\n```\n\nKeyword mode:\n\n```powershell\npython3 \".\\scripts\\submit_dataify_walmart_products.py\" --mode keywords --keyword \"leggins\" --domain \"https://www.walmart.com/\" --all-variations \"false\" --page-turning \"2\"\n```\n\nTo override the saved environment token or file name:\n\n```powershell\npython3 \".\\scripts\\submit_dataify_walmart_products.py\" --api-token \"YOUR_DATAIFY_API_TOKEN\" --mode sku --sku \"439179861\" --file-name \"{{TasksID}}\"\n```\n\nTo submit multiple product URL groups:\n\n```powershell\npython3 \".\\scripts\\submit_dataify_walmart_products.py\" --mode url --params-json '[{\"url\":\"https://www.walmart.com/ip/HI-CHEW-Stand-Up-Pouch-Getaway-Mix-11-65oz/12284762931?athAsset=eyJhdGhjcGlkIjoiMTIyODQ3NjI5MzEiLCJhdGhzdGlkIjoiQ1MwNTV+Q1MwMDR+Q1MwOTgiLCJhdGhlZSI6eyJhIjoyNy44NCwiYiI6Mjk1MS40MSwidyI6MC4wMDk0MjcxMjc3OTA0NzcxMjMsImwiOjAuNX0sImF0aHBvc2IiOiI4IiwiYXRoYW5jaWQiOiIxMDE2NDUwNzU1IiwiYXRocmsiOjAuMH0%3D&athena=true&adsRedirect=true\",\"all_variations\":\"true\"},{\"url\":\"https://www.walmart.com/ip/HI-CHEW-Stand-Up-Pouch-Getaway-Mix-11-65oz/12284762931?athAsset=eyJhdGhjcGlkIjoiMTIyODQ3NjI5MzEiLCJhdGhzdGlkIjoiQ1MwNTV+Q1MwMDR+Q1MwOTgiLCJhdGhlZSI6eyJhIjoyNy44NCwiYiI6Mjk1MS40MSwidyI6MC4wMDk0MjcxMjc3OTA0NzcxMjMsImwiOjAuNX0sImF0aHBvc2IiOiI4IiwiYXRoYW5jaWQiOiIxMDE2NDUwNzU1IiwiYXRocmsiOjAuMH0%3D&athena=true&adsRedirect=true\",\"all_variations\":\"true\"}]'\n```\n\nThe script prints a JSON summary with `mode`, `spider_id`, `task_id`, `status`, `parameters`, `file_name`, `dashboard_url`, and `message`.\n\n## Troubleshooting\n\n`Missing Dataify API TOKEN` means no explicit token was passed and `DATAIFY_API_TOKEN` is not saved locally. Tell the user they need to provide their Dataify API TOKEN, ask whether they want to save it as `DATAIFY_API_TOKEN`, or tell them they can register or log in at [Dataify](https://dashboard.dataify.com/login?utm_source=skill) to get one. If they already have a token, tell them it is in the top-right area of [Dataify](https://dashboard.dataify.com?utm_source=skill).\n\n`Unsupported mode` means the mode must be `url`, `category-url`, `sku`, or `keywords`.\n\n`url must start with https://www.walmart.com/` means the product URL is outside the allowed Walmart domain.\n\n`category_url must start with https://www.walmart.com/` means the category URL is outside the allowed Walmart domain.\n\n`domain must start with https://www.walmart.com/` means the main domain is outside the allowed Walmart domain.\n\n`all_variations must be true or false` means the variation option is invalid.\n\n`page_turning must be an integer greater than or equal to 0` means the page limit is invalid.\n\n`sku cannot be empty` means the SKU is missing.\n\n`keyword cannot be empty` means the keyword is missing.\n\n`File name cannot be empty` means no usable `file_name` was provided.\n\n`Necessary parameters is empty!` usually means the Builder request was not submitted as form fields, `spider_parameters` was not a JSON string array, or the selected mode's object is missing required fields.\n\nMissing `task_id` usually means the authorization header, token, `spider_name`, selected `spider_id`, or `spider_parameters` is wrong.\n\n## Guardrails\n\n- Do not mix Product URL, Category URL, SKU, and Keyword mode parameters in the same Builder request.\n- Do not submit a Builder request until the mode is clear.\n- Do not put `file_name` inside `spider_parameters`.\n- Do not use a Walmart URL or domain from outside `https://www.walmart.com/`.\n- Use only `API TOKEN` and `DATAIFY_API_TOKEN` when referring to authentication.\n- Do not hard-code local Python paths.\n- Do not invent result fields.\n- Always direct the user to [Dataify](https://dashboard.dataify.com?utm_source=skill) after successful task creation.\n\nFile v1.1.0:_meta.json\n\n{\n  \"ownerId\": \"kn74z5hmmwk21kw8tpphd9w21x86bkdf\",\n  \"slug\": \"dataify-walmart-products\",\n  \"version\": \"1.1.0\",\n  \"publishedAt\": 1780884467903\n}\n\nFile v1.1.0:skill-card.md\n\n## Description: <br>\nSubmits Dataify Walmart Product Information Builder tasks for product collection by URL, category URL, SKU, or keyword. <br>\n\nThis skill is ready for commercial/non-commercial use. <br>\n\n## Publisher: <br>\n[dataify-server](https://clawhub.ai/user/dataify-server) <br>\n\n### License/Terms of Use: <br>\nMIT-0 <br>\n\n\n## Use Case: <br>\nExternal users and developers use this skill to configure and submit Walmart product collection jobs through Dataify, then receive the resulting task ID and status. <br>\n\n### Deployment Geography for Use: <br>\nGlobal <br>\n\n## Known Risks and Mitigations: <br>\nRisk: The skill submits Walmart collection tasks to Dataify and may consume quota or send unintended URLs, SKUs, or keywords if triggered too broadly. <br>\nMitigation: Review the exact collection mode and parameters with the user and require clear confirmation before creating a Builder task. <br>\nRisk: Dataify API tokens are required for submission and could be exposed if handled casually. <br>\nMitigation: Keep API tokens private, prefer the DATAIFY_API_TOKEN environment variable for local reuse, and do not persist tokens without explicit user confirmation. <br>\nRisk: Inputs outside the intended Walmart domain or empty required values can create failed or unintended collection tasks. <br>\nMitigation: Validate Walmart URLs, domain, mode, SKU, keyword, page limits, variation flags, and file name before submission. <br>\n\n\n## Reference(s): <br>\n- [ClawHub skill page](https://clawhub.ai/dataify-server/dataify-walmart-products) <br>\n- [Dataify dashboard](https://dashboard.dataify.com?utm_source=skill) <br>\n- [Dataify login](https://dashboard.dataify.com/login?utm_source=skill) <br>\n- [Dataify Builder endpoint](https://scraperapi.dataify.com/builder?platform=1) <br>\n\n\n## Skill Output: <br>\n**Output Type(s):** [text, markdown, code, shell commands, configuration, guidance] <br>\n**Output Format:** [Markdown guidance with optional shell commands and JSON task-submission results] <br>\n**Output Parameters:** [1D] <br>\n**Other Properties Related to Output:** [Successful submissions return a Dataify task_id, status, parameters, file_name, dashboard_url, and message.] <br>\n\n## Skill Version(s): <br>\n1.1.0 (source: server release evidence) <br>\n\n## Ethical Considerations: <br>\nUsers should evaluate whether this skill is appropriate for their environment, review any generated or modified files before relying on them, and apply their organization's safety, security, and compliance requirements before deployment. <br>\n\nFile v1.1.0:SKILL.zh-CN.md\n\n---\nname: dataify-walmart-products\ndescription: \"提交 Dataify Walmart Product Information Builder 任务，支持四种 Walmart 商品采集模式。当用户需要 Walmart product information collection tool、采集/抓取/爬取 Walmart 商品信息或商品数据，按 URL、category URL、SKU、keyword 采集 Walmart products，创建 walmart_product_by-url、walmart_product_by-category-url、walmart_product_by-sku 或 walmart_product_by-keywords 任务，或表达 Walmart 产品信息采集/抓取、产品采集/抓取、产品 URL/类别 URL/SKU/关键词采集等含义时使用。也用于接收 task_id/status、配置 DATAIFY_API_TOKEN 或排查此 Dataify Builder 请求。\"\n---\n\n# Dataify Walmart Products\n\n通过 Dataify Builder 提交 Walmart 产品信息采集任务。本技能是四种采集模式的引导封装：\n\n| 模式 | 采集器 ID | 用途 |\n| --- | --- | --- |\n| 产品 URL | `walmart_product_by-url` | 通过产品 URL 采集一个或多个 Walmart 产品。 |\n| 类别 URL | `walmart_product_by-category-url` | 通过类别 URL 采集 Walmart 产品。 |\n| SKU | `walmart_product_by-sku` | 通过 SKU 采集一个或多个 Walmart 产品。 |\n| 关键词 | `walmart_product_by-keywords` | 通过搜索关键词和域名采集 Walmart 产品。 |\n\n提交成功后，向用户提供 `task_id`、返回的或推断的状态，并告知用户前往 [Dataify](https://dashboard.dataify.com?utm_source=skill) 查看结果。\n\n## API TOKEN 处理\n\n使用 `DATAIFY_API_TOKEN` 作为长期保存的 token 名称。\n\n- 如果用户在请求中提供了 token，则在本次运行中使用该 token。\n- 如果未提供 token，先检查环境中是否已在本地保存 `DATAIFY_API_TOKEN`。\n- 如果本地已保存 `DATAIFY_API_TOKEN`，则直接使用，无需要求用户重新输入。\n- 如果本地没有可用的 token，告知用户需要提供 Dataify API TOKEN。\n- 如果用户没有 API TOKEN，告知用户可以在 [Dataify](https://dashboard.dataify.com/login?utm_source=skill) 注册或登录以获取。\n- 如果用户已有 API TOKEN，告知用户可以在 [Dataify](https://dashboard.dataify.com?utm_source=skill) 右上角找到。\n- 用户提供 API TOKEN 后，如果本地未保存 `DATAIFY_API_TOKEN`，询问是否将其保存为 `DATAIFY_API_TOKEN` 以供后续使用。\n- 如果用户希望保存，提供适合其 shell 的命令并要求其执行；不要在未经确认的情况下静默保存 token。\n- 没有 token 不要调用 Builder 接口。\n- 在面向用户的说明中始终称其为 `API TOKEN`。保存到本地时优先使用环境变量名 `DATAIFY_API_TOKEN`。\n\nPowerShell 示例，为当前会话保存 token：\n\n```powershell\n$env:DATAIFY_API_TOKEN = \"YOUR_DATAIFY_API_TOKEN\"\n```\n\n在 Windows 上设置持久的用户级变量：\n\n```powershell\n[Environment]::SetEnvironmentVariable(\"DATAIFY_API_TOKEN\", \"YOUR_DATAIFY_API_TOKEN\", \"User\")\n```\n\n## 核心工作流程\n\n1. 首先询问用户选择采集模式：`url`、`category-url`、`sku` 或 `keywords`。\n2. 用户选择模式后，仅展示该模式的参数表格和默认值。\n3. 如果所选模式有下拉字段，以包含 `Label` 和 `Value` 列的 Markdown 表格展示下拉选项。\n4. 询问用户是否需要在运行任务前修改任何值。\n5. 询问用户是否需要为所选模式采集多组 Walmart 产品。\n6. 将最终值规范化为仅包含所选模式的参数对象列表。\n7. 从显式输入或已保存的 `DATAIFY_API_TOKEN` 中获取 Dataify token。\n8. 如果没有可用的 token，要求用户输入 API TOKEN 并询问是否将其保存为 `DATAIFY_API_TOKEN`。\n9. 验证所选模式、URL、域名、SKU、关键词、数值、下拉值和文件名。\n10. 使用所选模式的 `spider_id` 提交 Builder 请求。\n11. 从 Builder 响应中读取 `data.task_id`，并在存在时读取 `data.status` 或 `status`。\n12. Builder 成功后停止。\n13. 告知用户前往 [Dataify](https://dashboard.dataify.com?utm_source=skill) 查看或管理结果。\n\n## 模式选择\n\n当用户调用此技能时，首先展示以下 Markdown 表格并要求选择一种模式：\n\n| 标签 | 值 |\n| --- | --- |\n| 通过产品 URL 采集 Walmart 产品 | `url` |\n| 通过类别 URL 采集 Walmart 产品 | `category-url` |\n| 通过 SKU 采集 Walmart 产品 | `sku` |\n| 通过关键词采集 Walmart 产品 | `keywords` |\n\n询问：\"您想使用哪种采集模式：`url`、`category-url`、`sku` 还是 `keywords`？\"\n\n在模式明确之前不要提交 Builder 请求。\n\n## 共享下拉选项\n\n`all_variations` 下拉选项：\n\n| 标签 | 值 |\n| --- | --- |\n| true | `true` |\n| false | `false` |\n\n## 产品 URL 模式参数\n\n仅当用户选择 `url` 时使用本节。\n\n| 字段 | 必填 | 默认值 | 位置 | 说明 |\n| --- | --- | --- | --- | --- |\n| `url` | 是 | `https://www.walmart.com/ip/HI-CHEW-Stand-Up-Pouch-Getaway-Mix-11-65oz/12284762931?athAsset=eyJhdGhjcGlkIjoiMTIyODQ3NjI5MzEiLCJhdGhzdGlkIjoiQ1MwNTV+Q1MwMDR+Q1MwOTgiLCJhdGhlZSI6eyJhIjoyNy44NCwiYiI6Mjk1MS40MSwidyI6MC4wMDk0MjcxMjc3OTA0NzcxMjMsImwiOjAuNX0sImF0aHBvc2IiOiI4IiwiYXRoYW5jaWQiOiIxMDE2NDUwNzU1IiwiYXRocmsiOjAuMH0%3D&athena=true&adsRedirect=true` | `spider_parameters` | Walmart 产品 URL。 |\n| `all_variations` | 否 | `false` | `spider_parameters` | 是否采集所有产品变体。 |\n| `file_name` | 否 | `{{TasksID}}` | Builder 表单字段 | 用户未更改时使用默认值。 |\n\n然后展示共享下拉选项中的 `all_variations` 下拉表格。\n\n然后询问：\"您是否需要在提交任务前修改这些值？\"\n\n同时询问：\"您是否需要采集多组 Walmart 产品 URL？如果是，请提供多组 `url` 和 `all_variations`。\"\n\n产品 URL 模式处理：\n\n- `url` 为必填项。如果用户未提供，仅在参数确认表格中展示后才使用默认值。\n- `url` 必须以 `https://www.walmart.com/` 开头。\n- `all_variations` 必须为 `true` 或 `false`。\n- 提交 `spider_id=walmart_product_by-url`。\n- 将 `spider_parameters` 作为包含一个或多个对象的 JSON 字符串提交，格式如下：\n\n```json\n[{\"url\":\"https://www.walmart.com/ip/HI-CHEW-Stand-Up-Pouch-Getaway-Mix-11-65oz/12284762931?athAsset=eyJhdGhjcGlkIjoiMTIyODQ3NjI5MzEiLCJhdGhzdGlkIjoiQ1MwNTV+Q1MwMDR+Q1MwOTgiLCJhdGhlZSI6eyJhIjoyNy44NCwiYiI6Mjk1MS40MSwidyI6MC4wMDk0MjcxMjc3OTA0NzcxMjMsImwiOjAuNX0sImF0aHBvc2IiOiI4IiwiYXRoYW5jaWQiOiIxMDE2NDUwNzU1IiwiYXRocmsiOjAuMH0%3D&athena=true&adsRedirect=true\",\"all_variations\":\"true\"}]\n```\n\n## 类别 URL 模式参数\n\n仅当用户选择 `category-url` 时使用本节。\n\n| 字段 | 必填 | 默认值 | 位置 | 说明 |\n| --- | --- | --- | --- | --- |\n| `category_url` | 是 | `https://www.walmart.com/shop/deals/food/` | `spider_parameters` | Walmart 类别 URL。 |\n| `all_variations` | 是 | `false` | `spider_parameters` | 是否采集所有产品变体。 |\n| `page_turning` | 是 | `1` | `spider_parameters` | 页数限制。必须为大于或等于 `0` 的整数。 |\n| `file_name` | 否 | `{{TasksID}}` | Builder 表单字段 | 用户未更改时使用默认值。 |\n\n然后展示共享下拉选项中的 `all_variations` 下拉表格。\n\n然后询问：\"您是否需要在提交任务前修改这些值？\"\n\n同时询问：\"您是否需要采集多组 Walmart 类别 URL？如果是，请提供多组 `category_url`、`all_variations` 和 `page_turning`。\"\n\n类别 URL 模式处理：\n\n- `category_url` 为必填项。如果用户未提供，仅在参数确认表格中展示后才使用默认值 `https://www.walmart.com/shop/deals/food/`。\n- `category_url` 必须以 `https://www.walmart.com/` 开头。\n- `all_variations` 必须为 `true` 或 `false`。\n- `page_turning` 必须为大于或等于 `0` 的整数。\n- 提交 `spider_id=walmart_product_by-category-url`。\n- 将 `spider_parameters` 作为包含一个或多个对象的 JSON 字符串提交，格式如下：\n\n```json\n[{\"category_url\":\"https://www.walmart.com/shop/deals/food/\",\"all_variations\":\"false\",\"page_turning\":\"1\"}]\n```\n\n## SKU 模式参数\n\n仅当用户选择 `sku` 时使用本节。\n\n| 字段 | 必填 | 默认值 | 位置 | 说明 |\n| --- | --- | --- | --- | --- |\n| `sku` | 是 | `439179861` | `spider_parameters` | Walmart SKU 产品代码。 |\n| `all_variations` | 否 | `false` | `spider_parameters` | 是否采集所有产品变体。 |\n| `file_name` | 否 | `{{TasksID}}` | Builder 表单字段 | 用户未更改时使用默认值。 |\n\n然后展示共享下拉选项中的 `all_variations` 下拉表格。\n\n然后询问：\"您是否需要在提交任务前修改这些值？\"\n\n同时询问：\"您是否需要采集多组 Walmart SKU？如果是，请提供多组 `sku` 和 `all_variations`。\"\n\nSKU 模式处理：\n\n- `sku` 为必填项。如果用户未提供，仅在参数确认表格中展示后才使用默认值 `439179861`。\n- 去除 `sku` 的前后空白字符。\n- `sku` 不能为空。\n- `all_variations` 必须为 `true` 或 `false`。\n- 提交 `spider_id=walmart_product_by-sku`。\n- 将 `spider_parameters` 作为包含一个或多个对象的 JSON 字符串提交，格式如下：\n\n```json\n[{\"sku\":\"439179861\",\"all_variations\":\"false\"}]\n```\n\n## 关键词模式参数\n\n仅当用户选择 `keywords` 时使用本节。\n\n| 字段 | 必填 | 默认值 | 位置 | 说明 |\n| --- | --- | --- | --- | --- |\n| `keyword` | 是 | `leggins` | `spider_parameters` | Walmart 搜索关键词。 |\n| `domain` | 是 | `https://www.walmart.com/` | `spider_parameters` | Walmart 主域名。 |\n| `all_variations` | 否 | `false` | `spider_parameters` | 是否采集所有产品变体。 |\n| `page_turning` | 否 | `2` | `spider_parameters` | 页数限制。必须为大于或等于 `0` 的整数。 |\n| `file_name` | 否 | `{{TasksID}}` | Builder 表单字段 | 用户未更改时使用默认值。 |\n\n然后展示共享下拉选项中的 `all_variations` 下拉表格。\n\n然后询问：\"您是否需要在提交任务前修改这些值？\"\n\n同时询问：\"您是否需要采集多组 Walmart 关键词？如果是，请提供多组 `keyword`、`domain`、`all_variations` 和 `page_turning`。\"\n\n关键词模式处理：\n\n- `keyword` 为必填项。如果用户未提供，仅在参数确认表格中展示后才使用默认值 `leggins`。\n- `keyword` 不能为空。\n- `domain` 必须以 `https://www.walmart.com/` 开头。\n- `all_variations` 必须为 `true` 或 `false`。\n- `page_turning` 必须为大于或等于 `0` 的整数。\n- 提交 `spider_id=walmart_product_by-keywords`。\n- 将 `spider_parameters` 作为包含一个或多个对象的 JSON 字符串提交，格式如下：\n\n```json\n[{\"keyword\":\"leggins\",\"domain\":\"https://www.walmart.com/\",\"all_variations\":\"false\",\"page_turning\":\"2\"}]\n```\n\n## 共享文件名处理\n\n- `file_name` 默认为 `{{TasksID}}`。\n- 如果用户更改了 `file_name`，提交用户提供的值。\n- `file_name` 不能为空。\n- 将 `file_name` 作为 Builder 表单字段发送。\n\n## Dataify Builder 请求\n\n使用表单字段而非手动构建的 URL 编码字符串。\n\n- URL：`https://scraperapi.dataify.com/builder?platform=1`\n- 方法：`POST`\n- Authorization 请求头：`Bearer DATAIFY_API_TOKEN`\n- Content type：`application/x-www-form-urlencoded`\n- 固定字段：\n  - `spider_name=walmart.com`\n  - `spider_errors=true`\n- 模式特定字段：\n  - 产品 URL 模式：`spider_id=walmart_product_by-url`\n  - 类别 URL 模式：`spider_id=walmart_product_by-category-url`\n  - SKU 模式：`spider_id=walmart_product_by-sku`\n  - 关键词模式：`spider_id=walmart_product_by-keywords`\n- 默认字段：\n  - `file_name={{TasksID}}`\n- 动态字段：\n  - `spider_parameters` 必须为 JSON 字符串数组。\n\n## 脚本\n\n为确保稳定执行，优先使用 Python 3.6 或更新版本运行 `scripts/submit_dataify_walmart_products.py`，而非重写 Builder 流程。\n\n产品 URL 模式：\n\n```powershell\npython3 \".\\scripts\\submit_dataify_walmart_products.py\" --mode url --url \"https://www.walmart.com/ip/HI-CHEW-Stand-Up-Pouch-Getaway-Mix-11-65oz/12284762931?athAsset=eyJhdGhjcGlkIjoiMTIyODQ3NjI5MzEiLCJhdGhzdGlkIjoiQ1MwNTV+Q1MwMDR+Q1MwOTgiLCJhdGhlZSI6eyJhIjoyNy44NCwiYiI6Mjk1MS40MSwidyI6MC4wMDk0MjcxMjc3OTA0NzcxMjMsImwiOjAuNX0sImF0aHBvc2IiOiI4IiwiYXRoYW5jaWQiOiIxMDE2NDUwNzU1IiwiYXRocmsiOjAuMH0%3D&athena=true&adsRedirect=true\" --all-variations \"true\"\n```\n\n类别 URL 模式：\n\n```powershell\npython3 \".\\scripts\\submit_dataify_walmart_products.py\" --mode category-url --category-url \"https://www.walmart.com/shop/deals/food/\" --all-variations \"false\" --page-turning \"1\"\n```\n\nSKU 模式：\n\n```powershell\npython3 \".\\scripts\\submit_dataify_walmart_products.py\" --mode sku --sku \"439179861\" --all-variations \"false\"\n```\n\n关键词模式：\n\n```powershell\npython3 \".\\scripts\\submit_dataify_walmart_products.py\" --mode keywords --keyword \"leggins\" --domain \"https://www.walmart.com/\" --all-variations \"false\" --page-turning \"2\"\n```\n\n覆盖已保存的环境 token 或文件名：\n\n```powershell\npython3 \".\\scripts\\submit_dataify_walmart_products.py\" --api-token \"YOUR_DATAIFY_API_TOKEN\" --mode sku --sku \"439179861\" --file-name \"{{TasksID}}\"\n```\n\n提交多组产品 URL：\n\n```powershell\npython3 \".\\scripts\\submit_dataify_walmart_products.py\" --mode url --params-json '[{\"url\":\"https://www.walmart.com/ip/HI-CHEW-Stand-Up-Pouch-Getaway-Mix-11-65oz/12284762931?athAsset=eyJhdGhjcGlkIjoiMTIyODQ3NjI5MzEiLCJhdGhzdGlkIjoiQ1MwNTV+Q1MwMDR+Q1MwOTgiLCJhdGhlZSI6eyJhIjoyNy44NCwiYiI6Mjk1MS40MSwidyI6MC4wMDk0MjcxMjc3OTA0NzcxMjMsImwiOjAuNX0sImF0aHBvc2IiOiI4IiwiYXRoYW5jaWQiOiIxMDE2NDUwNzU1IiwiYXRocmsiOjAuMH0%3D&athena=true&adsRedirect=true\",\"all_variations\":\"true\"},{\"url\":\"https://www.walmart.com/ip/HI-CHEW-Stand-Up-Pouch-Getaway-Mix-11-65oz/12284762931?athAsset=eyJhdGhjcGlkIjoiMTIyODQ3NjI5MzEiLCJhdGhzdGlkIjoiQ1MwNTV+Q1MwMDR+Q1MwOTgiLCJhdGhlZSI6eyJhIjoyNy44NCwiYiI6Mjk1MS40MSwidyI6MC4wMDk0MjcxMjc3OTA0NzcxMjMsImwiOjAuNX0sImF0aHBvc2IiOiI4IiwiYXRoYW5jaWQiOiIxMDE2NDUwNzU1IiwiYXRocmsiOjAuMH0%3D&athena=true&adsRedirect=true\",\"all_variations\":\"true\"}]'\n```\n\n脚本会打印包含 `mode`、`spider_id`、`task_id`、`status`、`parameters`、`file_name`、`dashboard_url` 和 `message` 的 JSON 摘要。\n\n## 故障排除\n\n`Missing Dataify API TOKEN` 表示未传递显式 token 且本地未保存 `DATAIFY_API_TOKEN`。告知用户需要提供 Dataify API TOKEN，询问是否将其保存为 `DATAIFY_API_TOKEN`，或告知用户可以在 [Dataify](https://dashboard.dataify.com/login?utm_source=skill) 注册或登录以获取。如果用户已有 token，告知其位于 [Dataify](https://dashboard.dataify.com?utm_source=skill) 右上角。\n\n`Unsupported mode` 表示模式必须为 `url`、`category-url`、`sku` 或 `keywords`。\n\n`url must start with https://www.walmart.com/` 表示产品 URL 不在允许的 Walmart 域名范围内。\n\n`category_url must start with https://www.walmart.com/` 表示类别 URL 不在允许的 Walmart 域名范围内。\n\n`domain must start with https://www.walmart.com/` 表示主域名不在允许的 Walmart 域名范围内。\n\n`all_variations must be true or false` 表示变体选项无效。\n\n`page_turning must be an integer greater than or equal to 0` 表示页数限制无效。\n\n`sku cannot be empty` 表示缺少 SKU。\n\n`keyword cannot be empty` 表示缺少关键词。\n\n`File name cannot be empty` 表示未提供可用的 `file_name`。\n\n`Necessary parameters is empty!` 通常表示 Builder 请求未以表单字段提交、`spider_parameters` 不是 JSON 字符串数组，或所选模式的对象缺少必填字段。\n\n缺少 `task_id` 通常表示 authorization 请求头、token、`spider_name`、所选 `spider_id` 或 `spider_parameters` 有误。\n\n## 安全规则\n\n- 不要在同一个 Builder 请求中混合产品 URL、类别 URL、SKU 和关键词模式的参数。\n- 在模式明确之前不要提交 Builder 请求。\n- 不要将 `file_name` 放入 `spider_parameters` 中。\n- 不要使用 `https://www.walmart.com/` 以外的 Walmart URL 或域名。\n- 提及身份验证时仅使用 `API TOKEN` 和 `DATAIFY_API_TOKEN`。\n- 不要硬编码本地 Python 路径。\n- 不要编造结果字段。\n- 任务创建成功后始终引导用户前往 [Dataify](https://dashboard.dataify.com?utm_source=skill)。\n\nFile v1.1.0:agents/openai.yaml\n\ninterface:\n  display_name: \"Dataify Walmart Products\"\n  short_description: \"Submit Dataify Walmart product tasks by URL, category URL, SKU, or keyword\"\n  icon_small: \"./assets/dataify-walmart-products-small.svg\"\n  icon_large: \"./assets/dataify-walmart-products-large.svg\"\n  default_prompt: \"Use $dataify-walmart-products to submit Walmart product Builder tasks by URL, category URL, SKU, or keyword through Dataify and return the task_id and status.\"\n\npolicy:\n  allow_implicit_invocation: true\n\nArchive v1.0.0: 7 files, 10509 bytes\n\nFiles: agents/openai.yaml (494b), assets/dataify-walmart-products-large.svg (892b), assets/dataify-walmart-products-small.svg (850b), scripts/submit_dataify_walmart_products.py (11152b), skill-card.md (2252b), SKILL.md (16927b), _meta.json (143b)\n\nFile v1.0.0:SKILL.md\n\n---\nname: dataify-walmart-products\ndescription: Submit Dataify Walmart Product Information Builder tasks for four Walmart product collection modes. Use when the user wants the Walmart product information collection tool, collect Walmart products, scrape Walmart product information, crawl Walmart product data, collect Walmart products by URL, collect Walmart products by category URL, collect Walmart products by SKU, collect Walmart products by keyword, create Dataify walmart_product_by-url, walmart_product_by-category-url, walmart_product_by-sku, or walmart_product_by-keywords tasks, or asks in Chinese with meanings like \"Walmart 产品信息采集\", \"Walmart 产品信息抓取\", \"Walmart产品采集\", \"Walmart产品抓取\", \"Walmart产品URL采集\", \"Walmart类别URL采集\", \"Walmart SKU采集\", \"Walmart关键词采集\", or similar Walmart product noun plus collection/scraping action wording. Also use when receiving task_id/status, configuring DATAIFY_API_TOKEN, or troubleshooting this Dataify Builder request.\n---\n\n# Dataify Walmart Products\n\nSubmit Walmart product information collection jobs through Dataify Builder. This skill is a guided wrapper for four collection modes:\n\n| Mode | Collector ID | Use For |\n| --- | --- | --- |\n| Product URL | `walmart_product_by-url` | Collecting one or more Walmart products by product URL. |\n| Category URL | `walmart_product_by-category-url` | Collecting Walmart products by category URL. |\n| SKU | `walmart_product_by-sku` | Collecting one or more Walmart products by SKU. |\n| Keyword | `walmart_product_by-keywords` | Collecting Walmart products by search keyword and domain. |\n\nAfter a successful submission, give the user the `task_id`, the returned or inferred status, and tell them to visit `https://dataify.com/dashboard/` to view results.\n\n## API TOKEN Handling\n\nUse `DATAIFY_API_TOKEN` as the long-term saved token name.\n\n- If the user provides a token in the request, use it for this run.\n- If no token is provided, first check whether `DATAIFY_API_TOKEN` is already saved locally in the environment.\n- If `DATAIFY_API_TOKEN` is saved locally, use it without asking the user to re-enter the token.\n- If no token is available locally, tell the user they need to provide a Dataify API TOKEN.\n- If the user does not have an API TOKEN, tell them they can register or log in at `https://dataify.com/login` to get one.\n- If the user already has an API TOKEN, tell them it is available in the top-right area of `https://dataify.com/dashboard/`.\n- After the user provides an API TOKEN and no local `DATAIFY_API_TOKEN` is saved, ask whether they want to save it locally as `DATAIFY_API_TOKEN` for future use.\n- If the user wants to save it, give the appropriate command for their shell and ask them to run it; do not silently persist tokens without confirmation.\n- Do not call the Builder endpoint without a token.\n- Always call it `API TOKEN` in user-facing instructions. Prefer the environment variable name `DATAIFY_API_TOKEN` for saved local use.\n\nPowerShell examples for saving the token for the current session:\n\n```powershell\n$env:DATAIFY_API_TOKEN = \"YOUR_DATAIFY_API_TOKEN\"\n```\n\nFor a persistent user-level variable on Windows:\n\n```powershell\n[Environment]::SetEnvironmentVariable(\"DATAIFY_API_TOKEN\", \"YOUR_DATAIFY_API_TOKEN\", \"User\")\n```\n\n## Core Workflow\n\n1. First ask the user to choose a collection mode: `url`, `category-url`, `sku`, or `keywords`.\n2. After the user chooses a mode, show only that mode's parameter table and defaults.\n3. If the selected mode has dropdown fields, show the dropdown options as Markdown tables with `Label` and `Value` columns.\n4. Ask whether the user wants to change any value before running the task.\n5. Ask whether the user wants to collect multiple Walmart product groups for the selected mode.\n6. Normalize the final values into a list of parameter objects for the selected mode only.\n7. Resolve the Dataify token from explicit input or saved `DATAIFY_API_TOKEN`.\n8. If no token is available, ask the user to enter their API TOKEN and ask whether to save it as `DATAIFY_API_TOKEN`.\n9. Validate the selected mode, URLs, domain, SKU, keyword, numeric values, dropdown values, and file name.\n10. Submit the Builder request with the selected mode's `spider_id`.\n11. Read `data.task_id` from the Builder response and read `data.status` or `status` when present.\n12. Stop after Builder succeeds.\n13. Tell the user to visit `https://dataify.com/dashboard/` to view or manage results.\n\n## Mode Selection\n\nWhen the user invokes this skill, first show this Markdown table and ask them to choose one mode:\n\n| Label | Value |\n| --- | --- |\n| Collect Walmart products by product URL | `url` |\n| Collect Walmart products by category URL | `category-url` |\n| Collect Walmart products by SKU | `sku` |\n| Collect Walmart products by keyword | `keywords` |\n\nAsk: \"Which collection mode do you want to use: `url`, `category-url`, `sku`, or `keywords`?\"\n\nDo not submit a Builder request until the mode is clear.\n\n## Shared Dropdown Options\n\nDropdown options for `all_variations`:\n\n| Label | Value |\n| --- | --- |\n| true | `true` |\n| false | `false` |\n\n## Product URL Mode Parameters\n\nUse this section only when the user chooses `url`.\n\n| Field | Required | Default | Location | Notes |\n| --- | --- | --- | --- | --- |\n| `url` | Yes | `https://www.walmart.com/ip/HI-CHEW-Stand-Up-Pouch-Getaway-Mix-11-65oz/12284762931?athAsset=eyJhdGhjcGlkIjoiMTIyODQ3NjI5MzEiLCJhdGhzdGlkIjoiQ1MwNTV+Q1MwMDR+Q1MwOTgiLCJhdGhlZSI6eyJhIjoyNy44NCwiYiI6Mjk1MS40MSwidyI6MC4wMDk0MjcxMjc3OTA0NzcxMjMsImwiOjAuNX0sImF0aHBvc2IiOiI4IiwiYXRoYW5jaWQiOiIxMDE2NDUwNzU1IiwiYXRocmsiOjAuMH0%3D&athena=true&adsRedirect=true` | `spider_parameters` | Walmart product URL. |\n| `all_variations` | No | `false` | `spider_parameters` | Whether to collect all product variations. |\n| `file_name` | No | `{{TasksID}}` | Builder form field | Use the default when the user does not change it. |\n\nThen show the `all_variations` dropdown table from Shared Dropdown Options.\n\nThen ask: \"Do you want to change any of these values before I submit the task?\"\n\nAlso ask: \"Do you want to collect multiple Walmart product URL groups? If yes, provide multiple groups with `url` and `all_variations`.\"\n\nProduct URL mode handling:\n\n- `url` is required. If the user does not provide it, use the default only after showing it in the parameter confirmation table.\n- `url` must start with `https://www.walmart.com/`.\n- `all_variations` must be `true` or `false`.\n- Submit `spider_id=walmart_product_by-url`.\n- Submit `spider_parameters` as a JSON string containing one or more objects like:\n\n```json\n[{\"url\":\"https://www.walmart.com/ip/HI-CHEW-Stand-Up-Pouch-Getaway-Mix-11-65oz/12284762931?athAsset=eyJhdGhjcGlkIjoiMTIyODQ3NjI5MzEiLCJhdGhzdGlkIjoiQ1MwNTV+Q1MwMDR+Q1MwOTgiLCJhdGhlZSI6eyJhIjoyNy44NCwiYiI6Mjk1MS40MSwidyI6MC4wMDk0MjcxMjc3OTA0NzcxMjMsImwiOjAuNX0sImF0aHBvc2IiOiI4IiwiYXRoYW5jaWQiOiIxMDE2NDUwNzU1IiwiYXRocmsiOjAuMH0%3D&athena=true&adsRedirect=true\",\"all_variations\":\"true\"}]\n```\n\n## Category URL Mode Parameters\n\nUse this section only when the user chooses `category-url`.\n\n| Field | Required | Default | Location | Notes |\n| --- | --- | --- | --- | --- |\n| `category_url` | Yes | `https://www.walmart.com/shop/deals/food/` | `spider_parameters` | Walmart category URL. |\n| `all_variations` | Yes | `false` | `spider_parameters` | Whether to collect all product variations. |\n| `page_turning` | Yes | `1` | `spider_parameters` | Page limit. Must be an integer greater than or equal to `0`. |\n| `file_name` | No | `{{TasksID}}` | Builder form field | Use the default when the user does not change it. |\n\nThen show the `all_variations` dropdown table from Shared Dropdown Options.\n\nThen ask: \"Do you want to change any of these values before I submit the task?\"\n\nAlso ask: \"Do you want to collect multiple Walmart category URL groups? If yes, provide multiple groups with `category_url`, `all_variations`, and `page_turning`.\"\n\nCategory URL mode handling:\n\n- `category_url` is required. If the user does not provide it, use the default `https://www.walmart.com/shop/deals/food/` only after showing it in the parameter confirmation table.\n- `category_url` must start with `https://www.walmart.com/`.\n- `all_variations` must be `true` or `false`.\n- `page_turning` must be an integer greater than or equal to `0`.\n- Submit `spider_id=walmart_product_by-category-url`.\n- Submit `spider_parameters` as a JSON string containing one or more objects like:\n\n```json\n[{\"category_url\":\"https://www.walmart.com/shop/deals/food/\",\"all_variations\":\"false\",\"page_turning\":\"1\"}]\n```\n\n## SKU Mode Parameters\n\nUse this section only when the user chooses `sku`.\n\n| Field | Required | Default | Location | Notes |\n| --- | --- | --- | --- | --- |\n| `sku` | Yes | `439179861` | `spider_parameters` | Walmart SKU product code. |\n| `all_variations` | No | `false` | `spider_parameters` | Whether to collect all product variations. |\n| `file_name` | No | `{{TasksID}}` | Builder form field | Use the default when the user does not change it. |\n\nThen show the `all_variations` dropdown table from Shared Dropdown Options.\n\nThen ask: \"Do you want to change any of these values before I submit the task?\"\n\nAlso ask: \"Do you want to collect multiple Walmart SKU groups? If yes, provide multiple groups with `sku` and `all_variations`.\"\n\nSKU mode handling:\n\n- `sku` is required. If the user does not provide it, use the default `439179861` only after","readmeExcerpt":"Skill: Scraper Walmart Products Owner: dataify-server Summary: Collect Walmart Products data and return results Tags: latest:1.3.1 Version history: v1.3.1 | 2026-09-08T07:47:32.690Z | user Fix Walmart CLI defaults: all_variations now defaults to false and keyword searches default to walmart.com, matching documented behavior. Adds four-mode regression coverage. v1.3.0 | 2026-09-01T09:15:43.851Z | user 默认返回最终采集结果，完善异步等","codeSnippets":[],"executableExamples":[{"language":"powershell","snippet":"$env:DATAIFY_API_TOKEN = \"YOUR_DATAIFY_API_TOKEN\""},{"language":"powershell","snippet":"[Environment]::SetEnvironmentVariable(\"DATAIFY_API_TOKEN\", \"YOUR_DATAIFY_API_TOKEN\", \"User\")"},{"language":"powershell","snippet":"python3 \".\\scripts\\submit_dataify_walmart_products.py\" --mode url --url \"https://www.walmart.com/ip/HI-CHEW-Stand-Up-Pouch-Getaway-Mix-11-65oz/12284762931?athAsset=eyJhdGhjcGlkIjoiMTIyODQ3NjI5MzEiLCJhdGhzdGlkIjoiQ1MwNTV+Q1MwMDR+Q1MwOTgiLCJhdGhlZSI6eyJhIjoyNy44NCwiYiI6Mjk1MS40MSwidyI6MC4wMDk0MjcxMjc3OTA0NzcxMjMsImwiOjAuNX0sImF0aHBvc2IiOiI4IiwiYXRoYW5jaWQiOiIxMDE2NDUwNzU1IiwiYXRocmsiOjAuMH0%3D&athena=true&adsRedirect=true\" --all-variations \"true\""},{"language":"powershell","snippet":"python3 \".\\scripts\\submit_dataify_walmart_products.py\" --mode category-url --category-url \"https://www.walmart.com/shop/deals/food/\" --all-variations \"false\" --page-turning \"1\""},{"language":"powershell","snippet":"python3 \".\\scripts\\submit_dataify_walmart_products.py\" --mode sku --sku \"439179861\" --all-variations \"false\""},{"language":"powershell","snippet":"python3 \".\\scripts\\submit_dataify_walmart_products.py\" --mode keywords --keyword \"leggins\" --domain \"https://www.walmart.com/\" --all-variations \"false\" --page-turning \"2\""}],"parameters":null,"dependencies":[],"permissions":[],"extractedFiles":[{"path":"SKILL.md","content":"---\nname: dataify-walmart-products\ndescription: \"Collect Walmart product records by URL, category URL, SKU, or keyword. Do not use for Amazon, eBay, or general shopping-search results.\"\n---\n\n# Dataify Walmart Products\n\nSubmit Walmart product information collection jobs through Dataify Builder. This skill is a guided wrapper for four collection modes:\n\n| Mode | Collector ID | Use For |\n| --- | --- | --- |\n| Product URL | `walmart_product_by-url` | Collecting one or more Walmart products by product URL. |\n| Category URL | `walmart_product_by-category-url` | Collecting Walmart products by category URL. |\n| SKU | `walmart_product_by-sku` | Collecting one or more Walmart products by SKU. |\n| Keyword | `walmart_product_by-keywords` | Collecting Walmart products by search keyword and domain. |\n\nAfter submission, continue monitoring the returned `task_id` and return the final result by default.\n\n## API TOKEN Handling\n\nUse `DATAIFY_API_TOKEN` as the long-term saved token name.\n\n- If `DATAIFY_API_TOKEN` is saved locally, use it without asking the user to re-enter the token.\n- If the user does not have an API TOKEN, tell them they can register or log in at [Dataify](https://dashboard.dataify.com/login?utm_source=skill) to get one.\n- If the user wants to save it, give the appropriate command for their shell and ask them to run it; do not silently persist tokens without confirmation.\n- Do not call the Builder endpoint without a token.\n- Always call it `API TOKEN` in user-facing instructions. Prefer the environment variable name `DATAIFY_API_TOKEN` for saved local use.\n\nPowerShell examples for saving the token for the current session:\n\n```powershell\n$env:DATAIFY_API_TOKEN = \"YOUR_DATAIFY_API_TOKEN\"\n```\n\nFor a persistent user-level variable on Windows:\n\n```powershell\n[Environment]::SetEnvironmentVariable(\"DATAIFY_API_TOKEN\", \"YOUR_DATAIFY_API_TOKEN\", \"User\")\n```\n\n## Core Workflow\n\n1. First ask the user to choose a collection mode: `url`, `category-url`, `sku`, or `keywords`.\n2. After the user chooses a mode, show only that mode's parameter table and defaults.\n3. If the selected mode has dropdown fields, show the dropdown options as Markdown tables with `Label` and `Value` columns.\n4. Ask whether the user wants to change any value before running the task.\n5. Ask whether the user wants to collect multiple Walmart product groups for the selected mode.\n6. Normalize the final values into a list of parameter objects for the selected mode only.\n9. Validate the selected mode, URLs, domain, SKU, keyword, numeric values, dropdown values, and file name.\n10. Submit the Builder request with the selected mode's `spider_id`.\n11. Read `data.task_id` from the Builder response and read `data.status` or `status` when present.\n## Mode Selection\n\nWhen the user invokes this skill, first show this Markdown table and ask them to choose one mode:\n\n| Label | Value |\n| --- | --- |\n| Collect Walmart products by product URL | `url` |\n| Collect Walmart products by category URL | `category-u"},{"path":"_meta.json","content":"{\n  \"ownerId\": \"kn74z5hmmwk21kw8tpphd9w21x86bkdf\",\n  \"slug\": \"dataify-walmart-products\",\n  \"version\": \"1.3.1\",\n  \"publishedAt\": 1788853652690\n}"},{"path":"references/modes-and-parameters.md","content":"# Modes and parameters\n\nRead this reference only when selecting a non-default mode or mapping advanced fields.\n\n## Shared Dropdown Options\n\nDropdown options for `all_variations`:\n\n| Label | Value |\n| --- | --- |\n| true | `true` |\n| false | `false` |\n\n## Product URL Mode Parameters\n\nUse this section only when the user chooses `url`.\n\n| Field | Required | Default | Location | Notes |\n| --- | --- | --- | --- | --- |\n| `url` | Yes | `https://www.walmart.com/ip/HI-CHEW-Stand-Up-Pouch-Getaway-Mix-11-65oz/12284762931?athAsset=eyJhdGhjcGlkIjoiMTIyODQ3NjI5MzEiLCJhdGhzdGlkIjoiQ1MwNTV+Q1MwMDR+Q1MwOTgiLCJhdGhlZSI6eyJhIjoyNy44NCwiYiI6Mjk1MS40MSwidyI6MC4wMDk0MjcxMjc3OTA0NzcxMjMsImwiOjAuNX0sImF0aHBvc2IiOiI4IiwiYXRoYW5jaWQiOiIxMDE2NDUwNzU1IiwiYXRocmsiOjAuMH0%3D&athena=true&adsRedirect=true` | `spider_parameters` | Walmart product URL. |\n| `all_variations` | No | `false` | `spider_parameters` | Whether to collect all product variations. |\n| `file_name` | No | `{{TasksID}}` | Builder form field | Use the default when the user does not change it. |\n\nThen show the `all_variations` dropdown table from Shared Dropdown Options.\n\n\nAlso ask: \"Do you want to collect multiple Walmart product URL groups? If yes, provide multiple groups with `url` and `all_variations`.\"\n\nProduct URL mode handling:\n\n- `url` must start with `https://www.walmart.com/`.\n- `all_variations` must be `true` or `false`.\n- Submit `spider_id=walmart_product_by-url`.\n- Submit `spider_parameters` as a JSON string containing one or more objects like:\n\n```json\n[{\"url\":\"https://www.walmart.com/ip/HI-CHEW-Stand-Up-Pouch-Getaway-Mix-11-65oz/12284762931?athAsset=eyJhdGhjcGlkIjoiMTIyODQ3NjI5MzEiLCJhdGhzdGlkIjoiQ1MwNTV+Q1MwMDR+Q1MwOTgiLCJhdGhlZSI6eyJhIjoyNy44NCwiYiI6Mjk1MS40MSwidyI6MC4wMDk0MjcxMjc3OTA0NzcxMjMsImwiOjAuNX0sImF0aHBvc2IiOiI4IiwiYXRoYW5jaWQiOiIxMDE2NDUwNzU1IiwiYXRocmsiOjAuMH0%3D&athena=true&adsRedirect=true\",\"all_variations\":\"true\"}]\n```\n\n## Category URL Mode Parameters\n\nUse this section only when the user chooses `category-url`.\n\n| Field | Required | Default | Location | Notes |\n| --- | --- | --- | --- | --- |\n| `category_url` | Yes | `https://www.walmart.com/shop/deals/food/` | `spider_parameters` | Walmart category URL. |\n| `all_variations` | Yes | `false` | `spider_parameters` | Whether to collect all product variations. |\n| `page_turning` | Yes | `1` | `spider_parameters` | Page limit. Must be an integer greater than or equal to `0`. |\n| `file_name` | No | `{{TasksID}}` | Builder form field | Use the default when the user does not change it. |\n\nThen show the `all_variations` dropdown table from Shared Dropdown Options.\n\n\nAlso ask: \"Do you want to collect multiple Walmart category URL groups? If yes, provide multiple groups with `category_url`, `all_variations`, and `page_turning`.\"\n\nCategory URL mode handling:\n\n- `category_url` must start with `https://www.walmart.com/`.\n- `all_variations` must be `true` or `false`.\n- `page_turning` must be an integer greater than or equal to `0`.\n- Submit `spid"},{"path":"skill-card.md","content":"## Description:\n\nCollect Walmart product records by URL, category URL, SKU, or keyword.\n\nThis skill is ready for commercial/non-commercial use.\n\n## Publisher:\n\n[dataify-server](https://clawhub.ai/user/dataify-server)\n\n### License/Terms of Use:\n\nMIT-0\n\n## Use Case:\n\nExternal users and developers use this skill to submit Dataify Builder jobs for Walmart product data collection and to monitor the task until final JSON results are available.\n\n### Deployment Geography for Use:\n\nGlobal\n\n## Known Risks and Mitigations:\n\nRisk: Unsafe credential handling can expose the Dataify API token.\n\nMitigation: Do not paste API tokens into chat, use the skill only in a contained environment, and rotate the token if it may have been exposed.\n\nRisk: Task status and download authentication place the token in URLs.\n\nMitigation: Avoid running the bundled scripts until task-status and download authentication no longer put the token in URLs.\n\nRisk: A script import path can run unreviewed local code.\n\nMitigation: Avoid running the bundled scripts until the external sys.path import is removed or the imported code path is reviewed.\n\n## Reference(s):\n\n- [Modes and Parameters](references/modes-and-parameters.md)\n- [ClawHub Skill Page](https://clawhub.ai/dataify-server/skills/dataify-walmart-products)\n- [Publisher Profile](https://clawhub.ai/user/dataify-server)\n\n## Skill Output:\n\n**Output Type(s):** [text, markdown, shell commands, configuration, JSON]\n\n**Output Format:** [Markdown guidance with shell commands and JSON task/result payloads]\n\n**Output Parameters:** [1D]\n\n**Other Properties Related to Output:** [Requires DATAIFY_API_TOKEN; default behavior waits for final Dataify task results unless no-wait behavior is requested.]\n\n## Skill Version(s):\n\n1.3.1 (source: server release evidence)\n\n## Ethical Considerations:\n\nUsers should evaluate whether this skill is appropriate for their environment, review any generated or modified files before relying on them, and apply their organization's safety, security, and compliance requirements before deployment."},{"path":"SKILL.zh-CN.md","content":"---\nname: dataify-walmart-products\ndescription: \"提交 Dataify Walmart Product Information Builder 任务，支持四种 Walmart 商品采集模式。当用户需要 Walmart product information collection tool、采集/抓取/爬取 Walmart 商品信息或商品数据，按 URL、category URL、SKU、keyword 采集 Walmart products，创建 walmart_product_by-url、walmart_product_by-category-url、walmart_product_by-sku 或 walmart_product_by-keywords 任务，或表达 Walmart 产品信息采集/抓取、产品采集/抓取、产品 URL/类别 URL/SKU/关键词采集等含义时使用。也用于接收 task_id/status、配置 DATAIFY_API_TOKEN 或排查此 Dataify Builder 请求。\"\n---\n\n# Dataify Walmart Products\n\n通过 Dataify Builder 提交 Walmart 产品信息采集任务。本技能是四种采集模式的引导封装：\n\n| 模式 | 采集器 ID | 用途 |\n| --- | --- | --- |\n| 产品 URL | `walmart_product_by-url` | 通过产品 URL 采集一个或多个 Walmart 产品。 |\n| 类别 URL | `walmart_product_by-category-url` | 通过类别 URL 采集 Walmart 产品。 |\n| SKU | `walmart_product_by-sku` | 通过 SKU 采集一个或多个 Walmart 产品。 |\n| 关键词 | `walmart_product_by-keywords` | 通过搜索关键词和域名采集 Walmart 产品。 |\n\n提交成功后，向用户提供 `task_id`、返回的或推断的状态，并告知用户前往 [Dataify](https://dashboard.dataify.com?utm_source=skill) 查看结果。\n\n## API TOKEN 处理\n\n使用 `DATAIFY_API_TOKEN` 作为长期保存的 token 名称。\n\n- 如果用户在请求中提供了 token，则在本次运行中使用该 token。\n- 如果未提供 token，先检查环境中是否已在本地保存 `DATAIFY_API_TOKEN`。\n- 如果本地已保存 `DATAIFY_API_TOKEN`，则直接使用，无需要求用户重新输入。\n- 如果本地没有可用的 token，告诉用户：`Dataify 需要 API Token。新账号注册即得 50 免费积分，约可获得 6000 条试用结果，7 天有效，仅成功请求计费。注册完成后告诉我，我会继续当前任务。`。\n- 如果用户没有 API TOKEN，告知用户可以在 [Dataify](https://dashboard.dataify.com/login?utm_source=skill) 注册或登录以获取。\n- 如果用户已有 API TOKEN，告知用户可以在 [Dataify](https://dashboard.dataify.com?utm_source=skill) 右上角找到。\n- 用户提供 API TOKEN 后，如果本地未保存 `DATAIFY_API_TOKEN`，询问是否将其保存为 `DATAIFY_API_TOKEN` 以供后续使用。\n- 如果用户希望保存，提供适合其 shell 的命令并要求其执行；不要在未经确认的情况下静默保存 token。\n- 没有 token 不要调用 Builder 接口。\n- 在面向用户的说明中始终称其为 `API TOKEN`。保存到本地时优先使用环境变量名 `DATAIFY_API_TOKEN`。\n\nPowerShell 示例，为当前会话保存 token：\n\n```powershell\n$env:DATAIFY_API_TOKEN = \"YOUR_DATAIFY_API_TOKEN\"\n```\n\n在 Windows 上设置持久的用户级变量：\n\n```powershell\n[Environment]::SetEnvironmentVariable(\"DATAIFY_API_TOKEN\", \"YOUR_DATAIFY_API_TOKEN\", \"User\")\n```\n\n## 核心工作流程\n\n1. 首先询问用户选择采集模式：`url`、`category-url`、`sku` 或 `keywords`。\n2. 用户选择模式后，仅展示该模式的参数表格和默认值。\n3. 如果所选模式有下拉字段，以包含 `Label` 和 `Value` 列的 Markdown 表格展示下拉选项。\n4. 询问用户是否需要在运行任务前修改任何值。\n5. 询问用户是否需要为所选模式采集多组 Walmart 产品。\n6. 将最终值规范化为仅包含所选模式的参数对象列表。\n7. 从显式输入或已保存的 `DATAIFY_API_TOKEN` 中获取 Dataify token。\n9. 验证所选模式、URL、域名、SKU、关键词、数值、下拉值和文件名。\n10. 使用所选模式的 `spider_id` 提交 Builder 请求。\n11. 从 Builder 响应中读取 `data.task_id`，并在存在时读取 `data.status` 或 `status`。\n13. 告知用户前往 [Dataify](https://dashboard.dataify.com?utm_source=skill) 查看或管理结果。\n\n## 模式选择\n\n当用户调用此技能时，首先展示以下 Markdown 表格并要求选择一种模式：\n\n| 标签 | 值 |\n| --- | --- |\n| 通过产品 URL 采集 Walmart 产品 | `url` |\n| 通过类别 URL 采集 Walmart 产品 | `category-url` |\n| 通过 SKU 采集 Walmart 产品 | `sku` |\n| 通过关键词采集 Walmart 产品 | `keywords` |\n\n询问：\"您想使用哪种采集模式：`url`、`category-url`、`sku` 还是 `keywords`？\"\n\n在模式明确之前不要提交 Builder 请求。\n\n## 共享下拉选项\n\n`all_variations` 下拉选项：\n\n| 标签 | 值 |\n| --- | --- |\n| true | `true` |\n| false | `false` |\n\n## 产品 URL 模式参数\n\n仅当用户选择 `url` 时使用本节。\n\n| 字段 | 必填 | 默认值 | 位置 | 说明 |\n| --- | --- | --- | --- | --- |\n| `url` | 是"}],"languages":[],"docsSourceLabel":"CLAWHUB","editorialOverview":null,"editorialQuality":{"score":100,"threshold":65,"status":"thin","wordCount":1723,"uniquenessScore":35,"reasons":["uniqueness-below-45"]}},"media":{"evidence":{"source":"no-media","verified":false,"confidence":"low","updatedAt":"2026-10-12T01:28:22.862Z","emptyReason":"No screenshots, media assets, or demo links are available."},"primaryImageUrl":null,"mediaAssetCount":0,"assets":[],"demoUrl":null},"ownerResources":{"evidence":{"source":"unclaimed","verified":false,"confidence":"low","updatedAt":"2026-10-12T01:28:22.862Z","emptyReason":"This page has not been claimed by the agent owner."},"hasCustomPage":false,"customPageUpdatedAt":null,"customLinks":[],"structuredLinks":{"docsUrl":null,"demoUrl":null,"supportUrl":null,"pricingUrl":null,"statusUrl":null},"customPage":null},"relatedAgents":{"evidence":{"source":"protocol-neighbors","verified":false,"confidence":"medium","updatedAt":"2026-10-14T15:57:00.031Z","emptyReason":null},"items":[{"id":"8ebccd8e-3863-4187-8355-c3f14e1f9edf","entityType":"agent","canonicalPath":"/agent/iofficeai-aionui","slug":"iofficeai-aionui","name":"AionUi","description":"Free, local, open-source 24/7 Cowork app and OpenClaw for Gemini CLI, Claude Code, Codex, OpenCode, Qwen Code, Goose CLI, Auggie, and more | 🌟 Star if you like it!","url":"https://github.com/iOfficeAI/AionUi","homepage":"https://www.aionui.com","source":"GITHUB_REPOS","protocols":["MCP","OPENCLAW"],"capabilities":[],"safetyScore":100,"overallRank":70,"updatedAt":"2026-10-09T19:11:12.944Z","createdAt":"2026-02-25T03:38:16.584Z","downloads":null},{"id":"b917f68a-ebff-438e-84f8-3f4b2494c0bc","entityType":"agent","canonicalPath":"/agent/activepieces-activepieces","slug":"activepieces-activepieces","name":"activepieces","description":"AI Agents & MCPs & AI Workflow Automation • (~400 MCP servers for AI agents) • AI Automation / AI Agent with MCPs • AI Workflows & AI Agents • MCPs for AI Agents","url":"https://github.com/activepieces/activepieces","homepage":"https://www.activepieces.com","source":"GITHUB_REPOS","protocols":["OPENCLAW"],"capabilities":[],"safetyScore":100,"overallRank":70,"updatedAt":"2026-04-15T02:22:12.426Z","createdAt":"2026-02-25T03:38:12.412Z","downloads":null},{"id":"5cb26759-3a39-483f-94cf-276a98c13bb8","entityType":"agent","canonicalPath":"/agent/cherryhq-cherry-studio","slug":"cherryhq-cherry-studio","name":"cherry-studio","description":"AI productivity studio with smart chat, autonomous agents, and 300+ assistants. Unified access to frontier LLMs","url":"https://github.com/CherryHQ/cherry-studio","homepage":"https://cherry-ai.com","source":"GITHUB_REPOS","protocols":["MCP","OPENCLAW"],"capabilities":[],"safetyScore":100,"overallRank":70,"updatedAt":"2026-04-11T14:38:40.986Z","createdAt":"2026-02-25T03:38:19.379Z","downloads":null},{"id":"6f6582d0-5d76-4f0f-b81d-86520247950b","entityType":"agent","canonicalPath":"/agent/copilotkit-copilotkit","slug":"copilotkit-copilotkit","name":"CopilotKit","description":"The Frontend for Agents & Generative UI. React + Angular","url":"https://github.com/CopilotKit/CopilotKit","homepage":"https://docs.copilotkit.ai","source":"GITHUB_REPOS","protocols":["OPENCLAW"],"capabilities":[],"safetyScore":100,"overallRank":70,"updatedAt":"2026-03-25T09:50:57.846Z","createdAt":"2026-02-25T03:39:14.617Z","downloads":null}],"links":{"hub":"/agent","source":"/agent/source/clawhub","protocols":[{"label":"OpenClaw","href":"/agent/protocol/openclew"}]}}}