{
  "name": "EnkiLife CN Master Catalog Feed (8 sheets)",
  "generated_at_utc": "2026-03-20T06:37:33Z",
  "source_file": "结构化数据Product List_EnkiLife（国内更新） 20250825-杜.xlsx",
  "item_count": 24015,
  "duplicates_removed": 67,
  "skipped": {
    "missing_product_url": 599,
    "missing_required_field": 0
  },
  "per_sheet_counts": [
    {
      "sheet": "蛋白",
      "category": "Protein",
      "records_total": 2404,
      "records_kept": 2404,
      "skipped_missing_url": 0,
      "skipped_missing_required_field": 0
    },
    {
      "sheet": "GMP蛋白",
      "category": "GMP Protein",
      "records_total": 60,
      "records_kept": 60,
      "skipped_missing_url": 0,
      "skipped_missing_required_field": 0
    },
    {
      "sheet": "一抗",
      "category": "Antibody",
      "records_total": 19810,
      "records_kept": 19203,
      "skipped_missing_url": 548,
      "skipped_missing_required_field": 0
    },
    {
      "sheet": "内参&标签抗体",
      "category": "Tag & Control Antibody",
      "records_total": 32,
      "records_kept": 22,
      "skipped_missing_url": 10,
      "skipped_missing_required_field": 0
    },
    {
      "sheet": "细胞系",
      "category": "Cell Line",
      "records_total": 724,
      "records_kept": 694,
      "skipped_missing_url": 28,
      "skipped_missing_required_field": 0
    },
    {
      "sheet": "原代及原代永生化细胞",
      "category": "Primary / Immortalized Primary Cell",
      "records_total": 1475,
      "records_kept": 1464,
      "skipped_missing_url": 10,
      "skipped_missing_required_field": 0
    },
    {
      "sheet": "基础培养基",
      "category": "Basal Medium",
      "records_total": 86,
      "records_kept": 81,
      "skipped_missing_url": 0,
      "skipped_missing_required_field": 0
    },
    {
      "sheet": "生化试剂盒",
      "category": "Biochemical Assay Kit",
      "records_total": 90,
      "records_kept": 87,
      "skipped_missing_url": 3,
      "skipped_missing_required_field": 0
    }
  ],
  "formats": {
    "jsonl_gz": {
      "path": "/feeds/catalog_full.jsonl.gz",
      "filename": "catalog_full.jsonl.gz",
      "sha256": "061da7de364fd0b35f7afb3df2a91ce6b0277afde169c0c12ad3bc9cff8fa4cb",
      "bytes": 8989091,
      "content_type": "application/jsonl",
      "content_encoding": "gzip"
    }
  },
  "notes": [
    "This feed was generated from the uploaded domestic EnkiLife workbook with flexible per-sheet field mapping.",
    "Rows missing a canonical product URL were skipped because AI crawlers need a resolvable product page URL.",
    "availability is set to in_stock for all included rows because no inventory/status column was provided.",
    "currency is set to CNY when a numeric price is present; if a row has no price, currency is omitted.",
    "For sheets with multiple size/price columns, offers[] is included and price is set to the minimum offer price.",
    "attributes retains the original sheet fields (mostly Chinese column names) plus datasheet_url when available."
  ],
  "core_fields": [
    "id",
    "sku",
    "title",
    "url",
    "image_urls",
    "brand",
    "category",
    "price",
    "currency",
    "availability",
    "condition",
    "updated_at",
    "offers",
    "attributes"
  ],
  "files": {
    "catalog_full.csv.gz": {
      "path": "/feeds/catalog_full.csv.gz",
      "format": "csv+gzip",
      "sha256": "7bae94265a2e8178f9035d03e5f6bc042953f1aae853965b54b215efc677e3bd",
      "bytes": 8573232,
      "description": "Flat CSV export of the product catalog for systems that prefer tabular ingestion."
    }
  },
  "csv_download": "/feeds/catalog_full.csv.gz"
}