コンテンツにスキップ

バルク編集

React Dashboard の /bulk-edit から、対象一覧の現在値を CSV で出力し、値を編集した CSV を upload して dry-run preview 後に適用する運用機能。

CSV 形式

バルク編集 CSV は 2 行 header を正本にする。後方互換は持たない。

sku,productName,variantName,stockOnHand
商品番号,商品名,バリアント名,在庫数
80000060,サンプル商品,通常,0
  • 1 行目: machine key。import が照合する正本。
  • 2 行目: 人間用 label。Dashboard / Excel 上の視認性のためだけに使う。
  • 3 行目以降: data row。
  • productName / variantName のような参照列は、対象確認のために export するが更新対象にはしない。

複数列の場合も同じ。

sku,productName,variantName,stockOnHand,price
商品番号,商品名,バリアント名,在庫数,標準価格(最小通貨単位)
80000060,サンプル商品,通常,0,-100

Key と Label

identifier は target の識別子 key を使う。

対象 代表 identifier key label
ProductVariant sku 商品番号
Product slug スラッグ
Customer customerCode 顧客コード

更新列は target descriptor の field key を使う。

対象 代表 field key label
ProductVariant stockOnHand 在庫数
ProductVariant price 標準価格(最小通貨単位)
ProductVariant enabled 有効
ProductVariant trackInventory 在庫追跡
Product enabled 有効
Customer lastName
Customer firstName
Customer emailAddress メールアドレス
custom field customFields.<key> custom field の表示名

Export

bulkEditCurrentValuesExport(input) は Dashboard の operation 定義から CSV を生成する。

  • 1 行目には identifierKey、参照列 key、columnMappings[].fieldKey を出力する。
  • 2 行目には identifierColumn、参照列 label、columnMappings[].csvColumn を出力する。
  • ProductVariant は対象確認用に productName(商品名)と variantName(バリアント名)を参照列として出力する。
  • boolean は true / false、enum は value、date は ISO、null は空欄にする。
  • BULK_EDIT_EXPORT_MAX_ROWS = 10000 を超える場合はエラーにし、フィルタを絞らせる。

Import / Preview

previewBulkEdit(file, operation) は 1 行目の machine key を正本にする。

  • identifier は operation.identifierKey の列から読む。
  • 更新列は upload 後に Dashboard で選択した列だけを operation.columnMappings[].fieldKey として渡し、その列だけを差分判定する。
  • CSV に含まれる参照列や未選択の編集候補列は preview / apply で無視する。
  • 2 行目の label row は data として扱わない。
  • 空セルは「変更しない」。値のクリアは v1 対象外。
  • preview は dry-run のみで、applyBulkEditRun を実行するまで Vendure の値は更新しない。

旧 1 行 header 形式や日本語 header だけの CSV は受け付けない。