{
  "title": "SKU naming generator",
  "human_url": "https://happytails.ai/en/data-tools/sku-naming-generator/",
  "agent_url": "https://happytails.ai/agents/en/data-tools/sku-naming-generator/",
  "language": "en",
  "markdown_url": "https://happytails.ai/en/data-tools/sku-naming-generator.md",
  "content": "SKU naming generator\nCreate SKU strings from CSV attributes, exact templates and abbreviation maps, with collision and ambiguity reports.\nHow to use SKU naming generator\nPaste attribute CSV with a unique header.\nSet placeholders, exact abbreviation dictionaries, separator, sequence padding and maximum SKU length.\nReview every generated code and the findings report before exporting CSV and JSON.\nHow can we improve this tool?\nReport a problem or share an idea.\nPlease leave out private information. Your message and the tool name go to our team via PostHog.\nUseful next steps\nGTIN check digit calculator\nProduct feed validator\nProduct variant matrix generator\nDetect ambiguous naming rules\nEvery record sharing a generated SKU appears in the collision report. The JSON report identifies many-to-one abbreviation dictionaries, and the findings CSV identifies attributes omitted from a template. Unmapped abbreviation values remain literal.\nLocal processing and exports\nProcessing runs on your device. CSV downloads quote every cell and protect formula prefixes by default. JSON preserves original strings and includes the report and result tables. Spreadsheet import settings can still change identifiers; import them as text.",
  "content_format": "text/plain",
  "visibility": "public",
  "links": [
    {
      "name": "GTIN check digit calculator",
      "url": "https://happytails.ai/en/data-tools/gtin-check-digit-calculator/"
    },
    {
      "name": "Product feed validator",
      "url": "https://happytails.ai/en/data-tools/product-feed-validator/"
    },
    {
      "name": "Product variant matrix generator",
      "url": "https://happytails.ai/en/data-tools/product-variant-matrix-generator/"
    }
  ],
  "tool": {
    "id": "sku-naming-generator",
    "category": "data-tools",
    "built": true,
    "requirements": "No value is silently overwritten, truncated or renamed. Padding applies to {n}; attribute strings and leading zeros are preserved. n, sep, sku and source_record are reserved headers. Maximum 1,000,000 input characters, 10,000 records and 100,000 result cells. CSV output is bounded to 4,000,000 characters.",
    "implementation": {
      "fields": [
        {
          "key": "delimiter",
          "label": "Input CSV separator",
          "value": ",",
          "type": "select",
          "values": [
            ",",
            ";",
            "\t"
          ]
        },
        {
          "key": "template",
          "label": "SKU template",
          "value": "{brand}{sep}{colour}{sep}{n}",
          "type": "text",
          "help": "Exact CSV headers in braces; {sep} inserts the separator and {n} the one-based sequence. Column names n, sep, sku and source_record are reserved."
        },
        {
          "key": "abbreviations",
          "label": "Attribute abbreviations",
          "value": "{}",
          "type": "textarea",
          "help": "JSON object mapping column names to exact replacements, for example {\"colour\":{\"Red\":\"RD\",\"Blue\":\"BL\"}}. Unmapped values remain unchanged. Many-to-one abbreviations are reported as ambiguous."
        },
        {
          "key": "separator",
          "label": "SKU separator",
          "value": "-",
          "type": "text"
        },
        {
          "key": "padding",
          "label": "Sequence zero padding",
          "value": 3,
          "type": "number",
          "min": 0,
          "max": 12,
          "step": 1
        },
        {
          "key": "maxLength",
          "label": "Maximum SKU length",
          "value": 100,
          "type": "number",
          "min": 1,
          "max": 500,
          "step": 1
        },
        {
          "key": "exportMode",
          "label": "Spreadsheet formula handling",
          "value": "Protect formulas",
          "type": "select",
          "values": [
            "Protect formulas",
            "Preserve original cells"
          ]
        }
      ],
      "live": true,
      "background": true,
      "presentation": "metrics",
      "note": "Paste CSV attribute rows with a unique header. Up to 1,000,000 characters, 10,000 records and 100,000 cells including added columns. Values and leading zeros are preserved. Padding applies to the sequence placeholder only. Empty, oversized and colliding codes are reported without overwrites, truncation or automatic suffixes. Omitted attributes and ambiguous abbreviation dictionaries are visible in reports. Runs on your device.",
      "experience": {
        "automatic": true,
        "single": false,
        "inputMaxLength": 1000000,
        "inputMode": "text",
        "label": "Product attributes",
        "placeholder": "CSV with a header",
        "help": "Template placeholders must match exact attribute headers. {sep} is the separator and {n} is the sequence. Results update as you type. Up to 1,000,000 characters.",
        "action": null
      },
      "mode": "automatic",
      "interactive": false
    },
    "execution": "Browser interface",
    "api": null,
    "browser_agent": {
      "supported": true,
      "name": "run_current_tool",
      "discovery": "WebMCP on the human page in a supporting browser",
      "verification": "See audit/API-AUDIT.md; availability is not verification"
    }
  },
  "markdown": "# SKU naming generator\n\n- Human page: https://happytails.ai/en/data-tools/sku-naming-generator/\n- Markdown: https://happytails.ai/en/data-tools/sku-naming-generator.md\n- Structured JSON: https://happytails.ai/agents/en/data-tools/sku-naming-generator/index.json\n- Visibility: public\n\n## Tool capabilities\n\n| Property | Value |\n| --- | --- |\n| Tool ID | `sku-naming-generator` |\n| Category | data-tools |\n| Implementation | Registered implementation. Registration alone is not a production-quality guarantee. |\n| Browser execution | Automatic updates after valid input or file selection. |\n| Browser processing | Browser; see tool notes for network behavior. |\n| HTTP API | Not callable through HTTP. |\n| Browser-agent interface | run_current_tool |\n\n### Implementation notes\n\nPaste CSV attribute rows with a unique header. Up to 1,000,000 characters, 10,000 records and 100,000 cells including added columns. Values and leading zeros are preserved. Padding applies to the sequence placeholder only. Empty, oversized and colliding codes are reported without overwrites, truncation or automatic suffixes. Omitted attributes and ambiguous abbreviation dictionaries are visible in reports. Runs on your device.\n\n### Inputs and settings\n\nText input: Product attributes.\n\nExample or placeholder shown in the interface (not a validated fixture):\n\n```text\nCSV with a header\n```\n\nTemplate placeholders must match exact attribute headers. {sep} is the separator and {n} is the sequence. Results update as you type. Up to 1,000,000 characters.\n\n| Setting | Meaning | Control type | Default | Constraints |\n| --- | --- | --- | --- | --- |\n| `delimiter` | Input CSV separator | select | \",\" | Allowed: ,, ;, \t |\n| `template` | SKU template | text | \"{brand}{sep}{colour}{sep}{n}\" |  |\n| `abbreviations` | Attribute abbreviations | textarea | \"{}\" |  |\n| `separator` | SKU separator | text | \"-\" |  |\n| `padding` | Sequence zero padding | number | 3 | min=0 max=12 step=1 |\n| `maxLength` | Maximum SKU length | number | 100 | min=1 max=500 step=1 |\n| `exportMode` | Spreadsheet formula handling | select | \"Protect formulas\" | Allowed: Protect formulas, Preserve original cells |\n\n### Browser-agent workflow\n\n1. Open the human page in a browser that supports WebMCP.\n2. Discover the interface exposed by that page; use its actual schema.\n3. Select files on the page first when the tool requires files.\n4. Call `run_current_tool` with valid input and settings.\n5. Inspect the returned result or error and the displayed output. Retrieve files from the displayed download links.\n\nCalls do not automatically copy or download results. Browser permissions still apply. Interface availability alone is not proof of successful execution.\n\n### Planning specification\n\nNo value is silently overwritten, truncated or renamed. Padding applies to {n}; attribute strings and leading zeros are preserved. n, sep, sku and source_record are reserved headers. Maximum 1,000,000 input characters, 10,000 records and 100,000 result cells. CSV output is bounded to 4,000,000 characters.\n\nThis describes intended requirements. Use the implementation notes, interface schema and observed output to determine current support.\n\n### Complete machine-readable capability record\n\n```json\n{\n  \"id\": \"sku-naming-generator\",\n  \"category\": \"data-tools\",\n  \"built\": true,\n  \"requirements\": \"No value is silently overwritten, truncated or renamed. Padding applies to {n}; attribute strings and leading zeros are preserved. n, sep, sku and source_record are reserved headers. Maximum 1,000,000 input characters, 10,000 records and 100,000 result cells. CSV output is bounded to 4,000,000 characters.\",\n  \"implementation\": {\n    \"fields\": [\n      {\n        \"key\": \"delimiter\",\n        \"label\": \"Input CSV separator\",\n        \"value\": \",\",\n        \"type\": \"select\",\n        \"values\": [\n          \",\",\n          \";\",\n          \"\\t\"\n        ]\n      },\n      {\n        \"key\": \"template\",\n        \"label\": \"SKU template\",\n        \"value\": \"{brand}{sep}{colour}{sep}{n}\",\n        \"type\": \"text\",\n        \"help\": \"Exact CSV headers in braces; {sep} inserts the separator and {n} the one-based sequence. Column names n, sep, sku and source_record are reserved.\"\n      },\n      {\n        \"key\": \"abbreviations\",\n        \"label\": \"Attribute abbreviations\",\n        \"value\": \"{}\",\n        \"type\": \"textarea\",\n        \"help\": \"JSON object mapping column names to exact replacements, for example {\\\"colour\\\":{\\\"Red\\\":\\\"RD\\\",\\\"Blue\\\":\\\"BL\\\"}}. Unmapped values remain unchanged. Many-to-one abbreviations are reported as ambiguous.\"\n      },\n      {\n        \"key\": \"separator\",\n        \"label\": \"SKU separator\",\n        \"value\": \"-\",\n        \"type\": \"text\"\n      },\n      {\n        \"key\": \"padding\",\n        \"label\": \"Sequence zero padding\",\n        \"value\": 3,\n        \"type\": \"number\",\n        \"min\": 0,\n        \"max\": 12,\n        \"step\": 1\n      },\n      {\n        \"key\": \"maxLength\",\n        \"label\": \"Maximum SKU length\",\n        \"value\": 100,\n        \"type\": \"number\",\n        \"min\": 1,\n        \"max\": 500,\n        \"step\": 1\n      },\n      {\n        \"key\": \"exportMode\",\n        \"label\": \"Spreadsheet formula handling\",\n        \"value\": \"Protect formulas\",\n        \"type\": \"select\",\n        \"values\": [\n          \"Protect formulas\",\n          \"Preserve original cells\"\n        ]\n      }\n    ],\n    \"live\": true,\n    \"background\": true,\n    \"presentation\": \"metrics\",\n    \"note\": \"Paste CSV attribute rows with a unique header. Up to 1,000,000 characters, 10,000 records and 100,000 cells including added columns. Values and leading zeros are preserved. Padding applies to the sequence placeholder only. Empty, oversized and colliding codes are reported without overwrites, truncation or automatic suffixes. Omitted attributes and ambiguous abbreviation dictionaries are visible in reports. Runs on your device.\",\n    \"experience\": {\n      \"automatic\": true,\n      \"single\": false,\n      \"inputMaxLength\": 1000000,\n      \"inputMode\": \"text\",\n      \"label\": \"Product attributes\",\n      \"placeholder\": \"CSV with a header\",\n      \"help\": \"Template placeholders must match exact attribute headers. {sep} is the separator and {n} is the sequence. Results update as you type. Up to 1,000,000 characters.\",\n      \"action\": null\n    },\n    \"mode\": \"automatic\",\n    \"interactive\": false\n  },\n  \"execution\": \"Browser interface\",\n  \"api\": null,\n  \"browser_agent\": {\n    \"supported\": true,\n    \"name\": \"run_current_tool\",\n    \"discovery\": \"WebMCP on the human page in a supporting browser\",\n    \"verification\": \"See audit/API-AUDIT.md; availability is not verification\"\n  }\n}\n```\n\n## Page guide\n\nCreate SKU strings from CSV attributes, exact templates and abbreviation maps, with collision and ambiguity reports.\n\n### How to use SKU naming generator\n\n1. Paste attribute CSV with a unique header.\n2. Set placeholders, exact abbreviation dictionaries, separator, sequence padding and maximum SKU length.\n3. Review every generated code and the findings report before exporting CSV and JSON.\n\nHow can we improve this tool?\n\nReport a problem or share an idea.\n\nPlease leave out private information. Your message and the tool name go to our team via PostHog.\n\n## Useful next steps\n\n- [GTIN check digit calculator](https://happytails.ai/en/data-tools/gtin-check-digit-calculator/) ([Markdown](https://happytails.ai/en/data-tools/gtin-check-digit-calculator.md))\n\n- [Product feed validator](https://happytails.ai/en/data-tools/product-feed-validator/) ([Markdown](https://happytails.ai/en/data-tools/product-feed-validator.md))\n\n- [Product variant matrix generator](https://happytails.ai/en/data-tools/product-variant-matrix-generator/) ([Markdown](https://happytails.ai/en/data-tools/product-variant-matrix-generator.md))\n\n## Detect ambiguous naming rules\n\nEvery record sharing a generated SKU appears in the collision report. The JSON report identifies many-to-one abbreviation dictionaries, and the findings CSV identifies attributes omitted from a template. Unmapped abbreviation values remain literal.\n\n### Local processing and exports\n\nProcessing runs on your device. CSV downloads quote every cell and protect formula prefixes by default. JSON preserves original strings and includes the report and result tables. Spreadsheet import settings can still change identifiers; import them as text.\n"
}