# `PhoenixKitCatalogue.Import.Source.Pro100`
[🔗](https://github.com/BeamLabEU/phoenix_kit_catalogue/blob/v0.19.1/lib/phoenix_kit_catalogue/import/source/pro100.ex#L1)

PRO100 import source: fixed-layout # Parts / # Materials, update-by-id.

# `analyze`

```elixir
@spec analyze(
  binary(),
  :furniture | :materials,
  [PhoenixKitCatalogue.Schemas.Item.t()],
  String.t() | nil
) :: {:ok, map()} | {:error, term()}
```

Parse + match + plan against the selected catalogue's items.

`catalogue_name` is what rows are checked against for group membership: a
PRO100 export can span several groups ("Andi Karkass / …", "Andi Töötasapind /
…") while the sync targets one catalogue, and rows from the other groups must
not be offered for creation here.

Note for future sources: `handle_sync_file` dispatches this call on whichever
module the operator picked, so every `flow() == :sync` source must keep the
same arity. PRO100 is the only one today.

---

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