# `PhoenixKit.Modules.Shop.ImportConfig`
[🔗](https://github.com/BeamLabEU/phoenix_kit/blob/v1.7.63/lib/modules/shop/schemas/import_config.ex#L1)

ImportConfig schema for configurable CSV import filtering.

Allows defining custom filtering rules per import type instead of
using hardcoded keywords.

## Fields

- `name` - Config name (e.g., "decor_3d", "general")
- `include_keywords` - Keywords that must be present for inclusion
- `exclude_keywords` - Keywords that cause exclusion
- `exclude_phrases` - Phrases that cause exclusion
- `skip_filter` - If true, skip all filtering (import everything)
- `category_rules` - List of maps: `[%{keywords: [...], slug: "category-slug"}]`
- `default_category_slug` - Fallback category when no rules match
- `required_columns` - CSV columns that must be present
- `is_default` - Use this config when none specified
- `active` - Config is available for use
- `option_mappings` - Mappings from CSV option columns to global options

## Example Category Rules

    [
      %{"keywords" => ["shelf"], "slug" => "shelves"},
      %{"keywords" => ["mask"], "slug" => "masks"},
      %{"keywords" => ["vase", "planter"], "slug" => "vases-planters"}
    ]

## Example Option Mappings

    [
      %{
        "csv_name" => "Cup Color",
        "slot_key" => "cup_color",
        "source_key" => "color",
        "auto_add" => true,
        "label" => %{"en" => "Cup Color", "ru" => "Цвет чашки"}
      },
      %{
        "csv_name" => "Liquid Color",
        "slot_key" => "liquid_color",
        "source_key" => "color",
        "auto_add" => true
      }
    ]

# `t`
[🔗](https://github.com/BeamLabEU/phoenix_kit/blob/v1.7.63/lib/modules/shop/schemas/import_config.ex#L52)

```elixir
@type t() :: %PhoenixKit.Modules.Shop.ImportConfig{
  __meta__: term(),
  active: term(),
  category_rules: term(),
  default_category_slug: term(),
  download_images: term(),
  exclude_keywords: term(),
  exclude_phrases: term(),
  include_keywords: term(),
  inserted_at: term(),
  is_default: term(),
  name: term(),
  option_mappings: term(),
  required_columns: term(),
  skip_filter: term(),
  updated_at: term(),
  uuid: term()
}
```

# `changeset`
[🔗](https://github.com/BeamLabEU/phoenix_kit/blob/v1.7.63/lib/modules/shop/schemas/import_config.ex#L90)

Changeset for creating/updating an import config.

# `default_required_columns`
[🔗](https://github.com/BeamLabEU/phoenix_kit/blob/v1.7.63/lib/modules/shop/schemas/import_config.ex#L177)

Returns default required columns for CSV validation.

# `from_legacy_defaults`
[🔗](https://github.com/BeamLabEU/phoenix_kit/blob/v1.7.63/lib/modules/shop/schemas/import_config.ex#L182)

Builds a config struct from legacy hardcoded values (for backward compatibility).

# `from_prom_ua_defaults`
[🔗](https://github.com/BeamLabEU/phoenix_kit/blob/v1.7.63/lib/modules/shop/schemas/import_config.ex#L208)

Builds a default config for Prom.ua imports (no filtering, import everything).

# `no_filter_config`
[🔗](https://github.com/BeamLabEU/phoenix_kit/blob/v1.7.63/lib/modules/shop/schemas/import_config.ex#L226)

Builds a "no filter" config that imports everything.

---

*Consult [api-reference.md](api-reference.md) for complete listing*
