PhoenixKit.Modules.Shop.Import.CSVAnalyzer (phoenix_kit v1.7.43)

Copy Markdown View Source

Analyze Shopify CSV files to extract option metadata.

Extracts all Option1..Option10 names and unique values from CSV for use in the import mapping UI.

Usage

CSVAnalyzer.analyze_options("/path/to/products.csv")
# => %{
#   options: [
#     %{name: "Size", position: 1, values: ["Small", "Medium", "Large"]},
#     %{name: "Color", position: 2, values: ["Red", "Blue", "Green"]}
#   ],
#   total_products: 150,
#   total_variants: 450
# }

Summary

Functions

Quick analysis - only extracts option names without values.

Analyzes a CSV file and extracts option metadata.

Compares CSV option values with global option values.

Functions

analyze_option_names(file_path)

Quick analysis - only extracts option names without values.

Faster than full analysis, useful for initial UI display.

analyze_options(file_path, config \\ nil)

Analyzes a CSV file and extracts option metadata.

Returns a map with:

  • options - List of option definitions with name, position, and unique values
  • total_products - Number of unique product handles
  • total_variants - Total number of variant rows

Examples

CSVAnalyzer.analyze_options("/tmp/products.csv")
# => %{
#   options: [
#     %{name: "Size", position: 1, values: ["S", "M", "L", "XL"]},
#     %{name: "Cup Color", position: 2, values: ["Red", "Blue"]},
#     %{name: "Liquid Color", position: 3, values: ["Clear", "Amber"]}
#   ],
#   total_products: 50,
#   total_variants: 200
# }

compare_with_global_option(csv_values, global_option)

Compares CSV option values with global option values.

Returns a map showing which values are new (not in global option).

Examples

CSVAnalyzer.compare_with_global_option(csv_values, global_option)
# => %{
#   existing: ["Red", "Blue"],
#   new: ["Yellow", "Purple"]
# }