arkennemasis Store Export (WooCommerce variation CSV)
From 'a folder of images' to 'the variations are live' — the WooCommerce CSV
- csv_path
- report
- row_count
The variation pipeline ends where the client's actual objective begins. Nobody buys a folder of rendered product images - they buy "the variations are live on the store." ArkStoreExport emits the completed store-import CSV: every variation row carrying its attribute values and its image, formatted so a WooCommerce import turns a job directory into a live product. It's the last node in the arkennemasis variation pipeline and the one that converts your QC'd output into something the client can act on.
How it works
Three required inputs: intake_json, jobs_dir (where the run's job records live, default variation/jobs), and out_dir (default variation/review). The node reads each job's record - its axes, its status, its delivered image - and writes a CSV with one row per variation.
The defaults are tuned for WooCommerce and you should check them against your target store:
attribute_prefix- defaultmeta:attribute_pa_. WooCommerce mapsmeta:-prefixed columns to post meta, and a variation stores its selection underattribute_pa_{taxonomy}. Change this for a different platform.image_column- defaultImages, WooCommerce's variation image column. The tooltip is appropriately cautious: "Verify this against the Product CSV Import Schema for the target store before a real import - the exact header is importer-version specific."url_prefix- the public base URL the delivered images will live at. The image column becomes<prefix>/<filename>. Blank writes the local path, which is fine for a dry run but is not importable. This is the input to get right before anyone actually imports.only_status- defaultdelivered,approved, comma-separated. Shipping a flagged cell to a live product page is the failure this guards against.source_sheet- optional path to the client's original sheet. A copy is written beside the generated CSV "so the input and the output sit in one folder and can be diffed without hunting for the original - which is the first thing anyone asks for when a delivered row looks wrong."enabled- off writes no store import file at all.
Outputs: csv_path (where the file landed), report, and row_count - the number of variations that made it into the import, so you can sanity-check it against cell_count from intake.
The design point worth taking
The only_status default is the node's thesis in miniature: the pipeline does the QC so the export doesn't have to. Rows that failed or are still pending are excluded from the import file by default, because the one thing an automated pipeline can't be is the thing that puts a bad cell on a live product page. If you're building any "generate → verify → deliver" pipeline, that guard belongs in your export step too.
Install
ArkStoreExport is one of the 61 nodes in the comfyui-arkennemasis pack, in arkennemasis/Variation:
cd ComfyUI/custom_nodes
git clone https://github.com/Hishamahmer/comfyui-arkennemasis
pip install -r comfyui-arkennemasis/requirements.txt # then restart ComfyUI
Or ComfyUI Manager → Install via Git URL with the repo URL. Local CSV generation - no API, no models. If your store isn't WooCommerce, the attribute_prefix and image_column inputs are how you adapt it; the hard part (mapping your platform's importer schema) is the same work you'd do for any import, just with the structure already handled.
Inputs (9)
| Name | Type | Default | Description |
|---|---|---|---|
| intake_json | STRING | {} | — |
| jobs_dir | STRING | variation/jobs | — |
| out_dir | STRING | variation/review | — |
| url_prefixopt | STRING | Public base URL the delivered images will live at. The image column becomes <prefix>/<filename>. Blank writes the local path, which is fine for a dry run but is not importable. | |
| image_columnopt | STRING | Images | WooCommerce's variation image column. Verify this against the Product CSV Import Schema for the target store before a real import — the exact header is importer-version specific. |
| attribute_prefixopt | STRING | meta:attribute_pa_ | WooCommerce maps meta:-prefixed columns to post meta, and a variation stores its selection under attribute_pa_{taxonomy}. Change it for a different platform. |
| source_sheetopt | STRING | Path to the client's original sheet. A copy is written beside the generated CSV so the input and the output sit in one folder and can be diffed without hunting for the original - which is the first thing anyone asks for when a delivered row looks wrong. | |
| enabledopt | BOOLEAN | true | Off: write no store import file. |
| only_statusopt | STRING | delivered,approved | Comma-separated statuses to include. Shipping a flagged cell to a live product page is the failure this guards. |
Outputs (3)
| Name | Type | Description |
|---|---|---|
| csv_path | STRING | — |
| report | STRING | — |
| row_count | INT | — |