GS1 等條碼規格中,標準定義了什麼、實務運用上要注意什麼 - GTIN · AI · GS1-128 · GS1 DataMatrix 的整理
· 小村 豪 · GS1, 條碼, GTIN, GS1-128, GS1 DataMatrix, 庫存管理
在條碼相關的討論中,常常會發生 想打上 JAN、想改成 GS1-128、想做成 QR 被當成同一個層級的問題一起混在一起。
實際上,有幾件事應該先分開來思考。
- 想要識別的是什麼
- 想讓它帶哪些屬性資訊
- 要用哪一種符號來表示
- 讀完之後,上位系統要怎麼解讀
GS1 就是把這四個層次接起來的標準。換句話說,GS1 不只是「怎麼編號」的問題,還包含資料的意義、條碼的容器、配置與品質,以及讀取後的處理等一整套契約。1
以下是以 2026 年 4 月時點可以確認的 GS1 / GS1 Japan / 厚生勞動省資料為前提所做的整理。
1. 先講結論
關於 GS1 周邊的實務,先要掌握的是下面這 5 點。
-
GTIN 和條碼的種類是兩回事。
GTIN 是商品識別碼,而 EAN/UPC、ITF、GS1-128、GS1 DataMatrix、GS1 QR Code 則是表達它的方式。若把這一層混在一起,設計很容易崩掉。23 -
只有 GTIN 不夠用的場景很多。
如果要處理批號、有效期限、序號,就必須用 GS1 應用識別碼(AI)把屬性另外帶進來。4 -
POS、物流、追溯適合的符號各不相同。
面向消費者的 POS 以 GTIN 為中心,物流則是 GTIN-14 或 SSCC,追溯與法規相關領域則以 GTIN 再加上批號、期限、序號為基本形。25 -
實務上的事故,多半發生在接收端,而不是在印刷端。
若沒有把 FNC1、可變長度 AI 的分隔、掃描器設定、符號體系識別碼、上位系統的 Parser、商品主檔的更新規則都先訂好,就算讀得到也沒辦法用。43 -
零售的 2D 轉型正在進行,但目前仍是轉型期。
GS1 的零售用 2D 指南中,明確把「在 POS 充分支援 2D 之前,除了 2D 之外也要並列 POS 用的一維條碼」作為前提。67
總之,比起從「條碼怎麼產生」開始討論,先決定 誰、在哪裡、讀什麼、用在什麼業務上,比較不會出包。
2. GS1 中被規格化的層次
2.1 識別碼
GS1 首先有針對「要識別什麼」而設計的識別鍵。
識別商品的代表就是 GTIN。GTIN 有 GTIN-8 / 12 / 13 / 14,日本則以 GTIN-13 和 GTIN-8 作為 JAN 碼被廣泛使用。GTIN-13 用於單品或最小交易單位,GTIN-14 則用於箱、捆等集合包裝。2
識別物流單位的代表是 SSCC。把 SSCC 貼在棧板、紙箱等包裝上,並把它和出貨資料綁在一起,藉此簡化收貨驗收——這是很典型的 GS1 用法。5
這裡重要的是,GTIN 是用來表示「哪一個商品」的鍵,不是用來兼當批號或期限的。批號與期限要在另一層來承載。
2.2 由 AI 定義屬性資訊的意義
要附加在 GTIN 上的屬性,以 GS1 應用識別碼(AI)來定義。AI 是 2 到 4 位的數字,用來決定後面接上的資料代表什麼意義、什麼格式。43
列幾個代表性的例子:
(01)GTIN(00)SSCC(10)批號 / Lot(17)有效期限(21)序號
在 GS1 中,重要的不是「能讀得到數字串」,而是 能把那個數字串以相同意義解讀。因為有 AI,即使把多筆資料塞在同一支條碼裡,接收端也比較不會誤解意思。4
2.3 作為資料載體的條碼符號
接下來是「用什麼來表示那些資料」,也就是資料載體。這在 GS1 的世界裡也要分開來看。18
若只要表示 GTIN,EAN/UPC(在日本是 JAN 符號)或 ITF 到現在仍然被廣泛使用。反之,若還要包含日期、批號等附加屬性,GS1-128、GS1 DataMatrix、GS1 QR Code 才是候選者。3
這裡常見的誤解是,GS1-128 並不是「Code 128 本身」。同樣地,GS1 DataMatrix 是 Data Matrix 的子集,GS1 QR Code 是 QR Code 的 GS1 用子集。為了表示遵循 GS1 規則,需要使用 FNC1,並以 AI 的語法排列資料。83
換句話說,能做出 Code 128 和 能正確做出 GS1-128 不是同一件事。
2.4 配置、尺寸、品質與 HRI
GS1 的總體規範除了識別碼與 AI 之外,還涵蓋符號的尺寸、X 尺寸、靜區、配置、品質評估,以及 Human Readable Interpretation(HRI)。1
因此條碼並不是可以像設計元素那樣隨便縮放的東西。尤其是物流用或高速 POS 用途中,印刷品質和配置直接決定讀取率。零售用 2D 指南也提到,配置與多條條碼的運用,會直接影響 POS 的處理速度能否維持。6
3. 實務上應先分開看的用途
3.1 面向消費者的 POS
在收銀檯高速讀取的用途下,首要的仍然是讓 GTIN 穩定地被讀到。雖然想加進額外屬性的需求越來越多,但目前仍是轉型期,除了 2D 以外,有時仍需要並列一維條碼。67
因此,「未來是 QR 的時代,所以全部改成 2D」這種決定方式很危險。除了 POS 掃描器能不能讀之外,還必須確認 主機 POS 會拿到什麼、能用到什麼。67
3.2 物流、進出貨、SCM 標籤
物流以紙箱或棧板單位的識別、收貨驗收、與出貨資料的比對為中心。在這個情境下,GTIN-14 或 SSCC 與 GS1-128 的組合到現在仍然相當有競爭力。25
換句話說,在物流中,比起「裝了什麼」,更重要的是「哪一個單位、要和哪一筆資料綁在一起」。最自然的設計方式不是單靠條碼,而是把 ASN 或出貨實績資料一起納進來規劃。
3.3 追溯與法規領域
在醫療、食品、安全管理、期限管理中,只有 GTIN 常常不夠用。需要在 GTIN 上加上批號、有效期限、序號,才能做到個品或批次層級的追蹤。49
GS1 DataMatrix 的指南中也指出,GS1 DataMatrix 主要設計用於開放系統的應用,以交易對象能用相同意義讀取相同資料為前提。8
在這裡,能印得出來 並不是重點,能在交易對象與法規單位之間以相同意義流通 才是關鍵。
4. GS1 中訂定的代表性規則
4.1 GTIN 不是可以任意重複使用的號碼
在 GTIN 的編號中,「是否可以沿用和前一個商品相同的號碼」很重要。GS1 Japan 針對新商品或既有商品變更時需要採用新 GTIN 的原則,提出下列 3 點:10
- 消費者或交易對象想要把它和先前商品區分開來
- 有法規或責任揭露上的要求
- 出貨、保管、收貨等供應鏈相關面向有重要變更
實務上,尺寸、容量、包裝形式、銷售單位、標示責任相關的變更 最容易讓人猶豫。如果只用業務判斷來決定,後續在 EC、訂單、庫存、主檔連動上就會慢慢出現歪斜。
此外,日本自 2019 年起,原則上禁止再利用已使用過的 GTIN。11
這點相當重要。如果把 GTIN 當成「空出來就可以回收再用的內部編號」,它會和舊商品資訊、EC 上的歷史紀錄撞在一起。包含商品主檔與對外公開資料,最好把 GTIN 視為長期必須保持意義一致的鍵。
4.2 AI 有固定長度與可變長度之分
GS1 的 AI 中,後面接的資料有固定長度與可變長度之別。在非固定長度 AI 後面接其他要素時,需要透過 FNC1 作為分隔。GS1 的語法字典中,對於已定義長度的 AI 會加註 *,代表不需要 FNC1。4
舉例來說,批號的 AI (10) 是可變長度。若要在它後面接其他 AI,接收端必須能判斷 (10) 的資料到哪裡結束。若這一段實作得粗糙,就會出現 看起來像樣,但實際無法解析的條碼。
實務上,把固定長度的要素放在前、可變長度的要素放在後,分隔會大幅減少,整體會穩定許多。12
4.3 FNC1 不是字元,而是控制符號
FNC1 並不是「插入一個叫 FNC1 的字元」的意思。GS1 Japan 的基礎指南中也整理到,FNC1 是在 GS1 標準條碼中使用的控制符號,可用於表示符號起始為 GS1 資料,或作為資料分隔符。3
而且,表示方式在不同條碼種類下並不一致。例如在 GS1 QR Code 中,模式指示子或資料分隔符的處理方式,和 1D 並不相同。3
簡單說,不要把內部表示、掃描器輸出、HRI 顯示當成同一串字串。
4.4 掃描器回傳的字串,也應視為規格的一部分
現場整合中常被忽略的,是掃描器在解碼後會附加的符號體系識別碼。GS1 Japan 的資料中舉例,GS1-128 會以 ]C1、GS1 DataMatrix 會以 ]d2、GS1 QR Code 會以 ]Q3 通知上位系統。3
這不是被直接印在條碼上的內容,而是 掃描器把「自己讀到的是哪種符號」這個資訊附加後傳給上位系統。也就是說,接收端必須先選一條路:
- 收下符號體系識別碼後再分支處理
- 在掃描器端抑制 / 轉換,應用端只接正規化後的字串
如果還沒決定就先做 UI 或 DB,那麼一旦更換驗貨終端,比對判斷就會整個崩潰。
4.5 把 2D 貼上去不代表馬上就能取代
GS1 的零售用 2D 指南中提到,2D 條碼雖是未來的中心候選,但當下仍屬轉型期,在 POS 對 2D 的支援普及之前,除了 2D 以外還需要並列一維條碼。6
此外,即使同樣是 2D,GS1 DataMatrix 相對容易讀取,但使用 GS1 Digital Link 的 QR / Data Matrix,其處理會受限於是否為最新或已更新的相機式掃描器,以及主機端的支援情況。67
「有掃描器可以讀」和「自家的 POS / WMS / ERP 能在業務上使用它」是兩回事。
5. 實務中容易踩到的重點
5.1 在沒有版本管理下直接覆寫 GTIN
如果把 GTIN 的意義中途改掉,或把舊的 GTIN 指派給不同的商品,EC、訂單、庫存、分析、報表、資料庫登錄都會慢慢出問題。1011
實務上,負責 GTIN 編號的人、負責更新商品主檔的人、負責印標籤的人,常常是分開的。因此除了 編號規則 以外,連 變更申請與歷史管理的流程 都先做好,才比較安全。
5.2 把「帶括號的字串」直接當成輸入規格
在 GS1 的說明資料或 HRI 中,AI 常以 (01)、(17) 這種帶括號的形式表示。這是為了讓人眼看時更容易區分意義。6
但在掃描器輸出或內部解析時,表示方式會變成包含 FNC1 或符號體系識別碼等不同形式。
所以,把顯示用字串與機械處理用字串分開,是比較安全的做法。
5.3 不能只因為「讀得到」就驗收
GS1 中也定義了無效的 AI 組合,以及某些 AI 一定要搭配的其他 AI。43
因此光是印刷測試讀得到一次,還不夠。至少想分成以下幾項來確認:
- 能否作為符號被讀取
- 能否收到預期的字串
- AI 的分隔與長度是否正確
- 上位系統能否依業務規則正確解讀
- 是否與商品主檔 / 出貨資料 / DB 保持一致
掃描成功 ≠ 業務成功。
5.4 不要單靠螢幕上的外觀判斷印刷品質
GS1 的總體規範中,定義了 X 尺寸、靜區、品質評估的規則。在物流用途下,GS1-128 與 2D 所要求的尺寸與留白也不同。1
實際運用時,下列這些看似瑣碎的因素,會讓讀取率突然變差:
- 標籤印表機的解析度與熱轉印條件
- 紙箱或薄膜上的暈染
- 光澤面或反射
- 在曲面上印刷
- 設計調整時自行縮放
- 為了美觀而把留白縮掉的排版變更
所以,應該以 在實際印刷物上、以實際距離、角度和掃描器讀取 作為判斷基準,而不是以 Illustrator 或 PDF 上看起來沒問題 作為判斷基準。
5.5 把多支條碼隨便擺在一起
零售用 2D 指南中明確指出,多條條碼的配置規則會影響 POS 的處理速度。6
實務上,以下組合很容易出事:
- 把行銷用 QR 擺在 POS 用 JAN 附近
- 一維條碼和 2D 條碼擺得太近
- 把期限、批號的 HRI 塞到不容易讀的位置
- 背面、側面、吊牌等掃描方向沒有對齊
換言之,多條條碼要考量的不是「放不放得下」,而是 想讓哪一支被優先讀到,這部分也需要設計。
5.6 沒確認哪些 AI 在現場真的會被用到
GS1 的零售 2D 指南中也提到,並不是所有零售業者都能使用所有 AI,能用哪些 AI 會依讀取地點而異。13
舉例來說,製造商想在 GTIN 外再加上有效期限、批號,但若收貨方只用 GTIN,這些價值只會出現在上游。反之,如果現場打算使用期限資訊,那麼 WMS / 盤點 / 報廢判斷也都得跟著配合。
要塞進去的資料 和 實際會用到的資料,分開確認之後,導入會更順利。
6. 法規或產業要求較強的例子
6.1 零售端的 2D 轉型
GS1 已就零售 POS 用 2D 條碼的標準化與轉型指南進行整備,未來方向是走向以 2D 為中心。不過現階段仍在轉型期,在 POS 端的讀取與處理能力普及之前,與一維條碼並列才是較現實的做法。67
因此在 B2C 商品上放 2D 時,至少建議分別確認:
- 掃描器能不能讀
- 主機 POS 能不能解析
- 是否還要保留一維條碼
- HRI 與配置能否承受收銀現場的運用
6.2 日本的醫療器材等
在日本的醫療器材、體外診斷用醫藥品等領域,針對各包裝單位的商品碼與製造識別碼的顯示、條碼符號體系採用 GS1-128 或 GS1 DataMatrix 等,厚生勞動省的通知已提出相當具體的運用規範。9
這裡重要的是,GS1 並不只是「民間方便用的規則」。
實際上,法規、通知、產業指引、資料庫登錄、醫院或流通端的運用 都是以 GS1 為前提堆疊起來的。
所以在這種領域中,光說「內部讀得到就 OK」是不夠的,必須以 配合制度、交易對象與現場運用來使用 GS1 的思維去規劃。
7. 建議的導入順序
如果希望條碼導入比較不容易壞掉,大致依下列順序來整理會比較順利:
-
決定業務使用情境
是 POS?是進出貨驗收?還是追溯? -
決定識別鍵
是 GTIN?GTIN-14?還是 SSCC?有需要時也要納入 GLN 等。 -
決定必要的屬性
批號、有效期限、序號、重量、價格等,以 AI 為單位決定。 -
決定符號
EAN/UPC、ITF、GS1-128、GS1 DataMatrix、GS1 QR Code 哪個最自然。 -
決定掃描器輸出規格
要不要收符號體系識別碼?FNC1 要怎麼正規化?主機要接到什麼? -
決定商品主檔與變更規則
把 GTIN 的新增、變更、停用、不可再利用、歷史管理明文化。 -
用實物進行印刷驗證
用實際的標籤、實際的包材、實際的掃描器、實際的距離做確認。 -
進行到業務測試
不是只看「讀得到」,而是要看「盤點、驗貨、出貨、期限管理整個流程能跑」。
換句話說,比起挑選標籤製作軟體,先把接收端的規格定清楚 才是近路。
8. 結語
GS1 等條碼規格中,最先要抓住的重點是,
把編號、屬性、符號、讀取後的處理分開來思考。
- GTIN 是識別商品的鍵
- AI 是資料的意義與格式
- GS1-128 / GS1 DataMatrix / GS1 QR Code 是表達手段
- 連同品質、配置、FNC1、掃描器輸出、商品主檔運用一起,才算完整實作
把這些分開設計後,條碼就能從「只是可以印出來」的東西,變成可以和交易對象、現場共享的業務介面。
反過來說,若讓這些層級混在一起繼續推下去,
就算條碼讀得到,庫存、驗貨、追溯也會一點一點崩掉。
使用 GS1 時,
比起 要貼哪種碼,更應該先決定 誰會讀什麼、在哪個系統上用在什麼用途,這樣才是實務的做法。
9. 參考資料
-
GS1 / GS1 Japan, GS1 General Specifications, GS1 Japan 公開 PDF ↩ ↩2 ↩3 ↩4
-
GS1, GS1 Application Identifiers, GS1 Barcode Syntax Resource User Guide ↩ ↩2 ↩3 ↩4 ↩5 ↩6 ↩7
-
GS1 Japan, GS1-128 符號, SSCC(出貨包裝序列號) ↩ ↩2 ↩3
-
GS1, 2D Barcodes at Retail Point-of-Sale Implementation Guideline ↩ ↩2 ↩3 ↩4 ↩5 ↩6 ↩7 ↩8 ↩9
-
GS1 Support, What 2D barcodes can be read at Point-of-Sale scanners today? ↩ ↩2 ↩3 ↩4 ↩5
-
GS1 / GS1 Japan, GS1 DataMatrix Guideline, GS1 DataMatrix 指南(日文 PDF) ↩ ↩2 ↩3
-
日本厚生勞動省, 醫療器材特定用識別碼在容器上標示之相關通知 ↩ ↩2
-
GS1 Japan, 需要更換 GTIN 的 10 個判斷基準, GTIN 設定指南 ↩ ↩2
-
GS1 Japan, 關於停止重複使用 GTIN ↩ ↩2
-
GS1, GSCN 16-154 - pre-defined length element strings should appear before variable length element strings ↩
-
GS1, 2D Barcodes at Retail Point-of-Sale Implementation Guideline - 共通 AI 的支援狀況依零售業者 / 使用情境而異 ↩
相關文章
共用相同標籤的最新文章。能以相近的主題延伸理解。
整理 Windows 的字元編碼與換行符 - Shift_JIS / UTF-8 / UTF-16、亂碼、CRLF / LF,為何混亂
本文整理 Windows 上字元編碼與換行符容易混亂的核心:bytes、UTF-8 與 CP932、UTF-16LE、BOM、CRLF 與 LF 是不同軸的概念,亂碼源於以錯誤前提 decode,且誤儲存後無法還原。讀完即可在規格中寫出明確的 encoding 與換行約定,...
偽隨機數與真正隨機數的差異 - 如何區分的整理
本文整理偽隨機數與真正的隨機數差異,重點不在輸出外觀而在產生器結構:一般 PRNG 重視可重現性、CSPRNG / DRBG 主打不可預測性、NRBG 則以物理熵源為基礎。文中說明 seed 與 reseed、health test 的角色,並給出資安、模擬、抽籤等用途的選...
開發 COM 元件、OCX/ActiveX 時常見的坑 - 整理 Visual Studio 的 32bit/64bit、註冊、管理員權限
整理開發 COM、OCX、ActiveX 元件時最容易卡關的四個面向:宿主行程的 32bit/64bit、Visual Studio 2022 變成 64bit 後的設計時整合、regsvr32 與 Regasm 的註冊位置、以及管理員權限與 HKCU/HKLM 的關係,協...
應該在哪裡 `catch` 例外並輸出日誌、進行錯誤處理 - 以實務向整理呼叫階層的邊界與職責
本文整理在呼叫階層中應該於哪一層 catch 例外、輸出主日誌與進行錯誤處理的實務判斷標準。深層 helper 不寬泛接捕,外部 I/O 邊界負責翻譯例外,UseCase 把預期內失敗結果化,UI 與請求邊界輸出 1 次主日誌並決定回應,未處理例外處理器只承擔最終記錄與終止...
ClickOnce 是什麼 - 以實務視角整理機制、更新、適合場面・不適合場面
本文以實務視角整理 ClickOnce 是什麼,從 manifest、快取、更新、簽章的構造,到適合公司內部 .NET 桌面業務應用程式的案件與不適合 machine-wide 或 service、driver 等深度 OS 整合的案件,幫助讀者判斷是否採用並掌握 depl...
相關主題
與本文相近的主題頁面。以本文為起點,可進一步連到相關服務與其他文章。
Windows 技術主題
彙整 KomuraSoft LLC 關於 Windows 開發、故障調查與既有資產活用文章的主題中心。
作者檔案
本文作者的個人檔案頁面。
Go Komura
小村軟體有限公司 代表
以 Windows 軟體開發、技術諮詢與故障調查為中心,在難以重現的故障調查與既有資產仍在運作的專案上具有優勢。