{
    "display_name": "EC LEDライト受注（099973）",
    "description": "ECサイト Shopify LEDライト商品の受注データインポート（GTフォーマット）",
    "processor_class": "App\\Services\\Logic\\User\\CsvImport\\Processors\\EcOrderProcessor",
    "business_key_field": "受注番号",
    "header_table": "order_headers",
    "detail_table": "order_details",
    "file_type": "xlsx",
    "ec_pattern": "ec_orders_led",
    "has_header": true,
    "headers": [
        "店舗名称", "伝票番号", "受注番号", "支払方法",
        "送り先名", "送り先郵便番号", "都道府県", "送り先住所", "送り先住所2",
        "送り先電話番号", "配達希望日", "時間指定",
        "商品コード", "商品名", "受注数",
        "売単価（税込み）", "税抜き単価",
        "発送代", "手数料",
        "店舗発行クーポン利用（自社負担）", "モール発行クーポン利用額",
        "使用ポイント（自社負担）", "使用ポイント（モール負担）",
        "小計金額", "総合計", "税金", "消費税率",
        "商品OP", "備考"
    ],
    "header_fields": {
        "受注番号": {
            "label": "受注番号",
            "csv_column": 2,
            "type": "string",
            "required": true,
            "description": "グルーピングキー（business_key）として使用"
        },
        "送り先名": {
            "label": "送り先名",
            "csv_column": 4,
            "type": "string",
            "required": true,
            "description": "配送先名称"
        },
        "送り先郵便番号": {
            "label": "送り先郵便番号",
            "csv_column": 5,
            "type": "string",
            "required": false,
            "description": "配送先郵便番号"
        },
        "都道府県": {
            "label": "都道府県",
            "csv_column": 6,
            "type": "string",
            "required": false,
            "description": "配送先都道府県"
        },
        "送り先住所": {
            "label": "送り先住所",
            "csv_column": 7,
            "type": "string",
            "required": false,
            "description": "配送先住所1"
        },
        "送り先住所2": {
            "label": "送り先住所2",
            "csv_column": 8,
            "type": "string",
            "required": false,
            "description": "配送先住所2"
        },
        "送り先電話番号": {
            "label": "送り先電話番号",
            "csv_column": 9,
            "type": "string",
            "required": false,
            "description": "配送先電話番号（先頭0補完対象）"
        },
        "配達希望日": {
            "label": "配達希望日",
            "csv_column": 10,
            "type": "date",
            "required": false,
            "description": "配達希望日"
        },
        "時間指定": {
            "label": "時間指定",
            "csv_column": 11,
            "type": "string",
            "required": false,
            "description": "配達時間指定"
        },
        "支払方法": {
            "label": "支払方法",
            "csv_column": 3,
            "type": "string",
            "required": false,
            "description": "支払方法"
        },
        "備考": {
            "label": "備考",
            "csv_column": 28,
            "type": "string",
            "required": false,
            "description": "備考"
        },
        "店舗名称": {
            "label": "店舗名称",
            "csv_column": 0,
            "type": "string",
            "required": false,
            "description": "店舗名称"
        },
        "伝票番号": {
            "label": "伝票番号",
            "csv_column": 1,
            "type": "string",
            "required": false,
            "description": "伝票番号"
        }
    },
    "detail_fields": {
        "商品コード": {
            "label": "商品コード",
            "csv_column": 12,
            "type": "string",
            "required": true,
            "description": "商品コード（商品マスタから商品ID特定）"
        },
        "商品名": {
            "label": "商品名",
            "csv_column": 13,
            "type": "string",
            "required": false,
            "description": "商品名（参照用）"
        },
        "受注数": {
            "label": "受注数",
            "csv_column": 14,
            "type": "integer",
            "required": true,
            "description": "受注数量"
        },
        "税抜き単価": {
            "label": "税抜き単価",
            "csv_column": 16,
            "type": "decimal",
            "required": true,
            "description": "税抜き単価（GTフォーマットQ列相当）"
        },
        "店舗発行クーポン利用（自社負担）": {
            "label": "店舗発行クーポン利用（自社負担）",
            "csv_column": 19,
            "type": "decimal",
            "required": false,
            "description": "クーポン利用額（マイナス値、値引処理対象）"
        },
        "売単価（税込み）": {
            "label": "売単価（税込み）",
            "csv_column": 15,
            "type": "decimal",
            "required": false,
            "description": "税込み売単価"
        },
        "発送代": {
            "label": "発送代",
            "csv_column": 17,
            "type": "decimal",
            "required": false,
            "description": "発送代"
        },
        "手数料": {
            "label": "手数料",
            "csv_column": 18,
            "type": "decimal",
            "required": false,
            "description": "手数料"
        },
        "モール発行クーポン利用額": {
            "label": "モール発行クーポン利用額",
            "csv_column": 20,
            "type": "decimal",
            "required": false,
            "description": "モール発行クーポン利用額"
        },
        "使用ポイント（自社負担）": {
            "label": "使用ポイント（自社負担）",
            "csv_column": 21,
            "type": "decimal",
            "required": false,
            "description": "使用ポイント（自社負担）"
        },
        "使用ポイント（モール負担）": {
            "label": "使用ポイント（モール負担）",
            "csv_column": 22,
            "type": "decimal",
            "required": false,
            "description": "使用ポイント（モール負担）"
        },
        "小計金額": {
            "label": "小計金額",
            "csv_column": 23,
            "type": "decimal",
            "required": false,
            "description": "小計金額"
        },
        "総合計": {
            "label": "総合計",
            "csv_column": 24,
            "type": "decimal",
            "required": false,
            "description": "総合計金額"
        },
        "税金": {
            "label": "税金",
            "csv_column": 25,
            "type": "decimal",
            "required": false,
            "description": "税金"
        },
        "消費税率": {
            "label": "消費税率",
            "csv_column": 26,
            "type": "string",
            "required": false,
            "description": "消費税率"
        },
        "商品OP": {
            "label": "商品OP",
            "csv_column": 27,
            "type": "string",
            "required": false,
            "description": "商品オプション"
        }
    },
    "code_padding": {
        "商品コード": 8
    },
    "business_rules": {
        "product_code_resolution": {
            "rule": "resolve_by_product_code",
            "description": "商品コードから商品IDを解決。is_active=1の商品を検索",
            "on_not_found": "validation_error"
        },
        "coupon_discount": {
            "rule": "aggregate_coupon_discount",
            "description": "クーポン利用額を受注番号単位で集約し、値引明細として注入"
        },
        "phone_normalization": {
            "rule": "normalize_phone_leading_zero",
            "description": "送り先電話番号の先頭0補完"
        }
    },
    "csv_format_example": {
        "description": "GTフォーマット（ECライト/LED&BE共通）",
        "headers": [
            "店舗名称", "伝票番号", "受注番号", "支払方法",
            "送り先名", "送り先郵便番号", "都道府県", "送り先住所", "送り先住所2",
            "送り先電話番号", "配達希望日", "時間指定",
            "商品コード", "商品名", "受注数",
            "売単価（税込み）", "税抜き単価",
            "発送代", "手数料",
            "店舗発行クーポン利用（自社負担）", "モール発行クーポン利用額",
            "使用ポイント（自社負担）", "使用ポイント（モール負担）",
            "小計金額", "総合計", "税金", "消費税率",
            "商品OP", "備考"
        ]
    }
}
