PhoenixKit.Modules.Shop.ImportConfig (phoenix_kit v1.7.38)

Copy Markdown View Source

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
  }
]

Summary

Functions

Changeset for creating/updating an import config.

Returns default required columns for CSV validation.

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

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

Builds a "no filter" config that imports everything.

Types

t()

@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(),
  id: 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()
}

Functions

changeset(config \\ %__MODULE__{}, attrs)

Changeset for creating/updating an import config.

default_required_columns()

Returns default required columns for CSV validation.

from_legacy_defaults()

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

from_prom_ua_defaults()

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

no_filter_config()

Builds a "no filter" config that imports everything.