Skip to content

Configuration

Two layers of settings:

  1. Global config — plugin defaults, edited under Settings ▸ Extensions ▸ Fujin Shuttle (config domain FlyokaiFujinShuttle.config).
  2. Per-run options — set on an import profile or as CLI flags; these override the global defaults for that run.

Global configuration

Defined in Resources/config/config.xml, in two cards.

Card — Fujin Shuttle

Field Type Default Description
dbDriver select async Connection pool: async (non-blocking pooled mysqli — faster on networked DBs) or sync (Shopware PDO).
concurrency int 8 Max batches in flight against the pool (async driver; independent profiles only).
syncRowThreshold int 1000 Imports up to this many rows run synchronously in the request; larger imports are queued to the messenger worker.

Card — Import defaults

Field Type Default Description
autoCreateCategories bool true Create missing categories referenced by a full category path.
autoCreateCustomFields bool true Create missing custom fields (under the fujin_import set) referenced by custom_<name> columns.
autoCreatePropertyOptions bool true Create missing property groups/options referenced by properties / variant_options.
autoCreateManufacturers bool false Reserved — not yet implemented. Missing manufacturers are skipped with a warning regardless.
autoCreateVariantParents bool false When a variant references an unknown parent_product_number, create a stub parent instead of skipping the row.
categoryPathDelimiter text > Separator between segments of a category path (Home > Furniture > Chairs).
listDelimiter text \| Separator between entries in multi-value columns (categories, visibility, properties, media, advanced_prices).
mediaDownload bool true Download/import images referenced by the media column and link them.
mediaImportMode select filesaver Media strategy: filesaver | raw | worker. See Media import.
mediaThumbnails select queued Thumbnail generation: queued | sync | none. See Media import.
mediaWorkers int 8 Parallel subprocesses for the worker media strategy.

Defaults are backfilled on update

On install/activate Shopware seeds these defaults into system_config. The plugin also backfills on update (without overwriting values you've set), so config keys added in a newer release appear in the form automatically.

Per-run options & overrides

A run takes its settings from the global config, then applies any profile option or CLI flag on top. The common overrides:

Setting CLI flag (fujin:shuttle:run) Profile option Global default
Batch size --batch-size batch size 500 (CLI default)
Concurrency --concurrency concurrency concurrency (8)
Reindex mode --reindex reindex mode auto (CLI default)
Media strategy --media-mode mediaImportMode
Media workers --media-workers mediaWorkers
Parent category --parent-category parent category storefront root
Dry run --dry-run dry run off

Reindex modes

Mode Behaviour
auto Reindex the touched products/entities after the run (default).
full Trigger a full reindex.
none Skip reindexing — run bin/console dal:refresh:index yourself afterwards. Best for large cold loads.

Synchronous vs queued

syncRowThreshold decides whether an admin-triggered import runs inline or is queued:

  • ≤ threshold → runs in the HTTP request, returns final stats. (Exports always run inline.)
  • > threshold → dispatches a RunProfileMessage; a messenger:consume async worker does the work while the admin polls job status.

Raise the threshold if you want larger imports to stay synchronous; lower it to push more work onto the worker. See Admin UI → sync vs queued.