'店铺名称', 'c_900902' => '线上单号', 'c_900903' => '内部单号', 'c_900972' => '发货时间', 'c_900966' => '订单类型', 'c_900933' => '标签', 'c_900905' => '订单销售数量(扣退)', 'c_900015' => '订单销售金额(扣退)', 'c_900208' => '订单销售成本(扣退)', 'c_900952' => '分类单销售数量(扣退)', 'c_900014' => '分类单销售金额(扣退)', 'c_900207' => '分类单销售成本(扣退)', 'c_900953' => '销售数量(扣退)', 'c_900099' => '销售金额(扣退)', 'c_900299' => '销售成本(扣退)', 'c_900019' => '其中:手动调整收入', 'c_900008' => '其中:其他调整收入', 'c_900210' => '其中:手动调整成本', 'c_900203' => '其中:其他调整成本', 'c_900301' => '毛利额', 'c_900302' => '毛利率', 'c_900499' => '订单费用', 'c_900498' => '费用占比', 'c_900497' => '其中:推广费', 'c_900501' => '经营利润', 'c_900502' => '经营利润率', 'c_900940' => '商品数量', 'c_900001' => '商品金额', 'c_900201' => '商品成本', 'c_900209' => '其中:红冲订单成本', 'c_900007' => '商家优惠', 'c_900003' => '运费收入', 'c_900002' => '付款金额', 'c_900006' => '其中:平台优惠', 'c_900016' => '其中:红冲订单金额', 'c_900949' => '实发金额', 'c_900925' => '实发数量', 'c_900950' => '实发成本', 'c_900954' => '退款数量合计', 'c_900012' => '退款金额合计', 'c_900018' => '其中:退平台补贴', 'c_900202' => '退款成本合计', 'c_900941' => '发货前-申请数量', 'c_900943' => '发货前-申请金额', 'c_900942' => '发货前-申请成本', 'c_900926' => '发货前-退回数量', 'c_900928' => '发货前-退回金额', 'c_900929' => '发货前-退回成本', 'c_900930' => '发货前-退款金额', 'c_900984' => '发货前-退款类型', 'c_900944' => '发货前-退平台补贴', 'c_900945' => '发货后-申请数量', 'c_900947' => '发货后-申请金额', 'c_900946' => '发货后-申请成本', 'c_900927' => '发货后-退回数量', 'c_900931' => '发货后-退回金额', 'c_900932' => '发货后-退回成本', 'c_900935' => '发货后-退款金额', 'c_900985' => '发货后-退货类型', 'c_900948' => '发货后-退平台补贴', 'c_900409' => '包材费(自动匹配)', 'c_900407' => '快递费(自动匹配)', 'c_900412' => '账单费用(自动匹配)', 'c_900413' => '分类单成本生成费用', 'c_900414' => '商品成本生成费用', 'c_900415' => '人工维护', 'c_900951' => '发货仓库', 'c_9001013' => '运营云仓', 'c_900989' => '供销商', 'c_9001015' => '业务员', 'c_9002022' => '线下客户', 'c_9002010' => '省', 'c_9002011' => '市', 'c_9002014' => '订单卖家备注', 'c_900967' => '胜算订单号', 'c_9001062' => '确认收货状态', 'c_9002013' => '商品总体积(扣退)', ]; /** * @param array $payload * @param list> $headers * @return list */ public static function fields(array $payload, array $headers = []): array { $titles = self::ORDER_TITLES; $codes = []; foreach ($headers as $header) { $code = trim((string) ($header['fld'] ?? '')); if ($code === '') { continue; } $titles[$code] = trim((string) ($header['title'] ?? '')) ?: ($titles[$code] ?? $code); $codes[$code] = true; } foreach (array_keys($payload) as $code) { $codes[(string) $code] = true; } $fields = []; foreach (array_keys($codes) as $code) { $fields[] = [ 'code' => $code, 'title' => $titles[$code] ?? $code, 'value' => self::value($payload[$code] ?? null), ]; } return $fields; } public static function value(mixed $value): string { if ($value === null) { return '-'; } if (is_bool($value)) { return $value ? '是' : '否'; } if (is_array($value) || is_object($value)) { return json_encode($value, JSON_UNESCAPED_UNICODE | JSON_UNESCAPED_SLASHES) ?: '-'; } $text = trim((string) $value); return $text === '' ? '-' : $text; } }