data-importer
Transforms external product data into Saleor config.yml format. Use whenever importing, migrating, or converting data from CSV, Excel, Shopify, or any external source. Not for manual config editing (use configurator-schema).
What this skill does
# Data Importer
## Overview
This skill helps you convert product data from external sources (CSV files, spreadsheets, Shopify exports) into Saleor's `config.yml` format. It walks through format detection, column mapping, and validation before generating output.
## When to Use
- "I need to import products from a CSV"
- "How do I convert my spreadsheet to config.yml?"
- "I'm migrating from Shopify"
- "I have product data in Excel"
- "How do I bulk import products?"
- When NOT writing config.yml from scratch -- use `configurator-schema` instead
- When NOT designing product types -- use `product-modeling` first
## Core Workflow
1. **Detect format** -- CSV, Excel, JSON, or unknown
2. **Extract columns** -- read headers and sample data
3. **Map interactively** -- you confirm field mappings
4. **Transform** -- convert to Saleor schema
5. **Validate** -- check for issues before output
## File Handling
### Excel (.xlsx)
Excel files need conversion. Export as CSV from Excel/Sheets, or:
```bash
python3 -c "import pandas as pd; pd.read_excel('$FILE').to_csv('${FILE%.xlsx}.csv', index=False)"
```
### CSV
Read directly to inspect headers and sample rows.
## Field Mapping
**Don't assume column names.** The importer will:
1. Show you all columns with sample values
2. Ask which column maps to each Saleor field
3. Mark unmapped columns as potential attributes
### Required Fields
| Saleor Field | Typical Source Columns |
|--------------|----------------------|
| `product.name` | "name", "title", or any descriptive column |
| `product.slug` | Generated from name, or "handle"/"ID" column |
| `variant.sku` | "SKU", "External ID", "Code" |
| `productType` | "type" column or you specify it |
### Optional Fields
| Field | Notes |
|-------|-------|
| `price` | If missing, imports as catalog-only |
| `quantity` | If missing, skips stock tracking |
| `category` | From category/region column |
| `description` | If present in source data |
| Other columns | Become product attributes |
## Output Structure
```yaml
productTypes:
- name: "[from type column or your input]"
productAttributes: [unmapped columns become attributes]
categories:
- name: "[from category column]"
slug: "[generated]"
products:
- name: "[from name column]"
slug: "[generated or from ID]"
productType: "[reference]"
variants:
- sku: "[from SKU column]"
channelListings: [if price exists]
stocks: [if quantity exists]
```
## Special Cases
- **No price column** -- imports as catalog-only; add pricing later
- **No SKU column** -- generates from name or uses any unique ID column
- **Unknown columns** -- presented to you as potential attributes
- **Multiple rows with same product** -- grouped as variants of one product
## Common Mistakes
| Mistake | Fix |
|---------|-----|
| Assuming column names without checking | Always inspect headers first -- column names vary wildly between sources |
| Not handling missing SKUs | Generate SKUs from product name + variant attributes, or use a unique ID column |
| Importing without validating first | Review the generated YAML before deploying -- check for duplicates and missing fields |
| Duplicate products from multi-row variants | Ensure rows sharing a product name are grouped as variants, not separate products |
| Forgetting to create product types first | Design your product types before importing -- use `product-modeling` skill |
## Validation Checklist
Before generating output, verify:
- All products have names
- All variants have unique SKUs
- Product type references are valid
- No duplicate slugs
## Reference Files
- **`references/csv-patterns.md`** -- CSV/Excel parsing techniques
- **`references/field-mapping.md`** -- Mapping strategies for various data shapes
- **`references/shopify-format.md`** -- Shopify-specific handling
- **`references/transformations.md`** -- Data transformation rules
## See Also
### Related Skills
- **`configurator-schema`** - Config.yml structure and field requirements
- **`product-modeling`** - Product type design before importing
- **`saleor-domain`** - Entity relationships and identifier rules
Related in Data & Analytics
clawarr-suite
IncludedComprehensive management for self-hosted media stacks (Sonarr, Radarr, Lidarr, Readarr, Prowlarr, Bazarr, Overseerr, Plex, Tautulli, SABnzbd, Recyclarr, Unpackerr, Notifiarr, Maintainerr, Kometa, FlareSolverr). Deep library exploration, analytics, dashboard generation, content management, request handling, subtitle management, indexer control, download monitoring, quality profile sync, library cleanup automation, notification routing, collection/overlay management, and media tracker integration (Trakt, Letterboxd, Simkl).
querying-soql
IncludedSOQL query generation, optimization, and analysis with 100-point scoring. Use this skill when the user needs SOQL/SOSL authoring or optimization: natural-language-to-query generation, relationship queries, aggregates, query-plan analysis, and performance or safety improvements for Salesforce queries. TRIGGER when: user writes, optimizes, or debugs SOQL/SOSL queries, touches .soql files, or asks about relationship queries, aggregates, or query performance. DO NOT TRIGGER when: bulk data operations (use handling-sf-data), Apex DML logic (use generating-apex), or report/dashboard queries.
app-store-optimization
IncludedApp Store Optimization (ASO) toolkit for researching keywords, analyzing competitor rankings, generating metadata suggestions, and improving app visibility on Apple App Store and Google Play Store. Use when the user asks about ASO, app store rankings, app metadata, app titles and descriptions, app store listings, app visibility, or mobile app marketing on iOS or Android. Supports keyword research and scoring, competitor keyword analysis, metadata optimization, A/B test planning, launch checklists, and tracking ranking changes.
habit-flow
IncludedAI-powered atomic habit tracker with natural language logging, streak tracking, smart reminders, and coaching. Use for creating habits, logging completions naturally ("I meditated today"), viewing progress, and getting personalized coaching.
app-store-optimization
IncludedApp Store Optimization (ASO) toolkit for researching keywords, analyzing competitor rankings, generating metadata suggestions, and improving app visibility on Apple App Store and Google Play Store. Use when the user asks about ASO, app store rankings, app metadata, app titles and descriptions, app store listings, app visibility, or mobile app marketing on iOS or Android. Supports keyword research and scoring, competitor keyword analysis, metadata optimization, A/B test planning, launch checklists, and tracking ranking changes.
visualizing-data
IncludedBuilds dashboards, reports, and data-driven interfaces requiring charts, graphs, or visual analytics. Provides systematic framework for selecting appropriate visualizations based on data characteristics and analytical purpose. Includes 24+ visualization types organized by purpose (trends, comparisons, distributions, relationships, flows, hierarchies, geospatial), accessibility patterns (WCAG 2.1 AA compliance), colorblind-safe palettes, and performance optimization strategies. Use when creating visualizations, choosing chart types, displaying data graphically, or designing data interfaces.