FibreTrace — Flow giải thích dễ hiểu

Bản viết lại cho người đọc không quen thuật ngữ. Đọc theo thứ tự: tóm tắt → từ điển → câu chuyện ví dụ → 12 bước → các luật. Bản markdown cùng nội dung: flow-explained.md.

Tóm tắt 4 câu. FibreTrace trộn một loại "bột đánh dấu" (pigment) vào sợi bông ngay từ nhà máy cán bông. Dọc đường sợi đi qua chuỗi (kéo sợi → dệt vải → may áo → brand), mỗi nhà máy dùng máy quét xác nhận "sợi thật" và khai số vận đơn mỗi lần giao hàng — hệ thống tự nối các lần quét thành chuỗi hành trình. Cuối chuỗi, brand (vd Target) làm một "tuyên bố nhập khẩu" (claim): "tôi đã nhập 10 tấn sợi được trace" — hệ thống chặn không cho tuyên bố quá số sợi thật đã sản xuất. Kết quả: một giấy chứng nhận có QR code nộp hải quan, ai quét QR cũng tự xác minh được.

Từ điển thuật ngữ — đọc trước

Pigmentbột đánh dấu
Bột đặc biệt (vô hại, mắt thường không thấy) trộn vào sợi. Máy scanner đọc được — giống mực chống giả trên tờ tiền.
Scan / Verification / Sessionlần quét kiểm chứng
Nhân viên quét lô hàng, máy báo "có pigment thật", hệ thống lưu 1 bản ghi. Ba từ gần như là một: scan = hành động, verification/session = bản ghi.
Ginnhà máy cán bông
Nơi tách xơ bông khỏi hạt sau thu hoạch. FibreTrace bắt đầu từ đây, không xuống tận nông trại.
Tiertầng chuỗi cung ứng
Đánh số NGƯỢC: Tier 0 = brand bán lẻ · 1 = xưởng may · 2 = dệt/nhuộm vải · 3 = kéo sợi · 4 = nguồn sợi thô (gin). Mỗi công ty TỰ KHAI tier trong Settings → Company.
Fibre Programmechương trình sợi = kho credit
Gin sản xuất sợi có pigment → nạp số tấn vào kho; brand tham gia → rút từ kho bằng claim. Kho có người quản riêng (Programme Owner).
Ceilingtrần sản lượng
Mỗi gin chỉ được nạp tối đa X tấn vào chương trình.
Reservationđặt chỗ
Brand giữ trước quyền rút X tấn từ kho — chưa rút, chỉ xí chỗ. Trang "Claim Position" hiển thị cái này.
Purchase Order (PO)đơn đặt hàng
"May cho tôi X sản phẩm với giá Y." PO là con số TIỀN/sản phẩm — KHÔNG phải số tấn sợi.
Waybill / Shipping docvận đơn
Số chứng từ của mỗi chuyến giao hàng (vd vận đơn DHL).
Chain of custodychuỗi hành trình
Bằng chứng hàng đã đi qua tay những ai, theo thứ tự nào.
Mass balancecân bằng khối lượng
Chứng minh theo TỔNG lượng ("50 tấn sợi đánh dấu vào chuỗi, 10 tấn về Target") — không truy vết từng kiện bông thành từng cái áo.
Claimtuyên bố nhập khẩu
Lời khẳng định chính thức "công ty tôi đã xử lý X tấn sợi được trace" — thứ đem nộp hải quan.
Evidence packbộ hồ sơ bằng chứng
Cùng dữ liệu claim, đóng gói theo từng người đọc: hải quan (trade/regulator), sustainability, procurement, risk.
Claim certificategiấy chứng nhận
Bản PDF của claim, có QR code — hải quan quét QR mở trang web public xác nhận số liệu.
Retirekhoá sổ
Lần quét đã dùng cho 1 claim thì bị khoá, không dùng lại cho claim khác — chống đếm 2 lần.
Partnerđối tác
Hai công ty đã kết nối trên platform. Chưa là partner thì không khai gửi/nhận hàng cho nhau được.
Owner / Participant / Producer / Manufacturercác vai
Owner = quản chương trình (vd Danny @ FibreTrace). Participant = brand (Target). Producer = gin. Manufacturer = mọi nhà máy ở giữa (Tier 1–3).
Nudge / Escalatenhắc / báo lên CS
Brand "nhắc" xưởng may đang chậm khai bằng chứng; nhắc rồi mới được báo lên đội chăm sóc khách hàng.

Câu chuyện ví dụ — dùng xuyên suốt 12 bước

Sundown Gin (Úc, Tier 4) tham gia chương trình sợi "Good Earth Cotton". Sợi đi qua ACME Spinning (Tier 3, kéo sợi) → ACME Fabrics (Tier 2, dệt vải) → ACME Apparel (Việt Nam, Tier 1, may áo) → Target (Mỹ, Tier 0). Target cần chứng minh với hải quan Mỹ rằng lô áo nhập có 10 tấn sợi bông được trace.

Chuỗi cung ứng — ai đứng ở đâu

Tier 4 — nguồn
Sundown Gin
Cán bông, phun pigment, quét. Điểm FibreTrace bắt đầu (Tier 5 = nông trại thì không phủ).
giao hàng
+ vận đơn
Tier 3
ACME Spinning
Kéo sợi.
giao hàng
+ vận đơn
Tier 2
ACME Fabrics
Dệt / nhuộm vải.
giao hàng
+ vận đơn
Tier 1
ACME Apparel
May thành phẩm. Đối tác trực tiếp của brand.
share bản ghi quét
+ nhận PO
Tier 0 — điểm neo
Target
Brand bán lẻ. Đặt chỗ, đặt hàng, duyệt claim, nộp hải quan.

Mỗi lần giao hàng tạo một cặp bản ghi quét: bên gửi quét "hàng đi" (outbound), bên nhận quét "hàng đến" (inbound), nối với nhau bằng số vận đơn. Tier 0 và Tier 4 luôn hiện sẵn (vì đã đăng ký trong chương trình); Tier 1–3 được hệ thống tự suy ra từ chính các cặp vận đơn này — không ai phải khai báo chuỗi trước.

Programme Owner (quản kho) Gin (Tier 4) Nhà máy giữa chuỗi (Tier 3–1) Brand (Tier 0) Hải quan / công chúng Chốt chặn tự động của hệ thống

Flow 12 bước

Phase 1 — Dựng chương trình

Người quản (Programme Owner) mở "kho credit".

Danny — OwnerBước 1

Tạo chương trình "Good Earth Cotton"

Gán Sundown Gin với trần 100 tấn, mời Target vào làm participant. Upload logo, câu chữ (wording), chứng chỉ của chương trình — những thứ này về sau tự động xuất hiện trên bộ hồ sơ bằng chứng của brand. Admin FibreTrace có quyền sửa đè nếu Owner up nhầm.

fibre_programmes programme_producers programme_participants

Phase 2 — Nạp kho credit

Sợi thật sản xuất ra bao nhiêu, kho có bấy nhiêu.

Sundown GinBước 2

Phun pigment vào bông + quét tại nhà máy

Mỗi đợt quét tự động cộng sản lượng vào kho của chương trình (không vượt được trần 100 tấn). Nhà sản xuất polyester thì nhập liệu kiểu khác (không có thiết bị SDU) — kết quả như nhau.

sessions programme_facility_scans production_records

Phase 3 — Hàng đi + tự dựng chuỗi hành trình

Điểm mới quan trọng nhất của bản này: mỗi lần quét giờ khai thêm thông tin GIAO HÀNG.

Bên gửiBước 3

Quét "hàng đi" (outbound) — khai gửi cho ai

Ví dụ ACME Fabrics gửi vải cho ACME Apparel: quét lô vải, chọn đối tác nhận, nhập hãng vận chuyển + số vận đơn. Quét càng nhiều lần, điểm tin cậy (confidence) càng cao.

Luật cứng: chỉ chọn được công ty đã là partner trên platform. Chưa kết nối thì phải mời họ lên platform trước — không có ngoại lệ.

Bên nhậnBước 4

Quét "hàng đến" (inbound) — khớp vận đơn

ACME Apparel nhận vải: quét, chọn đối tác gửi, nhập vận đơn. Hệ thống dò khớp với chiều "hàng đi" của đối tác.

Khớp → thành 1 mắt xích chuỗi hành trình. Gõ sai số → hệ thống gợi ý: "có lô từ đối tác đó số gần giống, phải lô này không?"
Bỏ trống / không khớp → vẫn hợp lệ, chỉ đánh dấu "chưa xác nhận"; admin bổ sung vận đơn sau được. Triết lý: không bắt ai setup trước — chuỗi được "ngầm suy ra" từ dữ liệu có gì dùng nấy.
Hệ thốngBước 5

Trang Supply Chain tự vẽ bản đồ chuỗi

Từ các mắt xích vận đơn, hệ thống tự kết luận: "ACME Fabrics đã gửi hàng cho ACME Apparel, ACME Apparel gửi cho Target trong chương trình này" — và vẽ thành bản đồ theo tầng, kèm số lần quét, số nhà máy.

Quy tắc riêng tư: công ty là partner của bạn → thấy tên + địa điểm. KHÔNG phải partner → chỉ thấy thành phố + quốc gia, không thấy tên công ty.

ACME ApparelBước 6

Share bản ghi quét cuối chuỗi cho Target

Điểm neo để Target nhìn thấy chuỗi cung ứng của chính mình trên dashboard.

session_shares

Phase 4 — Brand đặt chỗ + đặt hàng

Target chuẩn bị quyền claim và phát lệnh sản xuất.

TargetBước 7

Đặt chỗ (reservation) 20 tấn từ kho chương trình

Giống đặt cọc suất: chưa rút, nhưng giữ quyền rút sau.

Chốt chặn: tổng đặt chỗ của MỌI brand không được vượt tổng trần của các gin trong chương trình.

TargetBước 8

Tạo đơn đặt hàng (PO) gửi ACME Apparel

"May cho tôi 1 triệu áo + 1 triệu khăn, quý 1." ACME nhận thông báo trên platform. Nhớ: PO là số tiền/sản phẩm — số TẤN SỢI chưa ai khai ở bước này, vì brand không biết bao nhiêu sợi sẽ đi vào hàng.

purchase_orders

Phase 5 — Xưởng may khai bằng chứng, brand duyệt

Vòng "đề xuất – phê duyệt" giữa Tier 1 và Tier 0.

ACME ApparelBước 9

Chọn các lần quét + KHAI SỐ TẤN SỢI → gửi lại brand

ACME mở PO, chọn các lần quét thuộc lô áo và khai: "lô này dùng 10 tấn sợi" — con số này do XƯỞNG MAY khai vì chỉ họ biết lượng sợi thật đã dùng (ví dụ: ship áo trước, khăn sau → đợt đầu chỉ khai phần áo). Đính kèm chứng chỉ nếu có. Nếu ACME chậm: Target bấm nhắc (nudge), nhắc rồi mới được báo lên CS (escalate).

Điểm dễ bất ngờ (cố ý, không phải bug): ACME được chọn BẤT KỲ lần quét nào làm tại nhà máy mình — kể cả lô từng khai gửi công ty khác. Lý do: có case nhập khẩu diễn ra ở tầng dưới còn thành phẩm may trong nước. Hệ thống sẽ hiện thêm "gửi cho ai / nhận từ ai" để người thao tác tự phân biệt.

purchase_order_verifications production_claims (proposed)

TargetBước 10

Duyệt: Confirm hoặc Reject

Confirm → claim thành công: sinh bộ hồ sơ bằng chứng; các lần quét ACME đã chọn bị khoá sổ (không dùng cho claim khác); PO ghi nhận đã claim một phần (25/50 tấn) hay toàn bộ. Đã confirm thì không ai sửa được danh sách quét nữa.
Reject → trả về để ACME chọn lại lần quét và khai lại. Muốn gỡ link sau khi đã link: Target phải huỷ claim.

2 chốt chặn tự động (chạy trong database, không né được): số tấn claim ≤ phần đặt chỗ còn lại của Target, VÀ ≤ phần kho còn lại (sản xuất thật trừ đã claim). Không qua chốt = không có claim.

production_claims (confirmed/rejected) purchase_order_evidence_packs production_claim_sessions

Phase 6 — Hồ sơ bằng chứng + kiểm chứng công khai

Đầu ra cuối cùng của cả flow.

TargetBước 11

Mở evidence pack, xuất giấy chứng nhận (certificate)

Cùng một bộ dữ liệu (ai tham gia, bao nhiêu lần quét, nhà máy nào đóng góp, câu chữ từ Programme Owner) nhưng nhiều "bản in" cho từng người đọc: hải quan (trade/regulator), sustainability, procurement, risk. Bản in có thể xuất PDF = claim certificate có QR code. Pack KHÔNG hiện trạng thái claim từng phần — thứ đó chỉ hiện trong danh sách nội bộ.

/claims/:id/evidence/:packType

Hải quan MỹBước 12

Quét QR → trang web public xác nhận

Trang hiện chương trình, số tấn, ngày, đơn vị phát hành — không cần đăng nhập. Target bật/tắt được từng link public. Lưu ý: "webhook" hiện mới là 1 trang JSON để xem, chưa phải webhook bắn tự động (đang chờ Malcolm chốt).

/v/:token /c/:token

10 luật phải nhớ

Chứng minh dòng chảy, không truy từng kiện
Hệ thống nói được "10 tấn sợi đánh dấu từ chuỗi này về Target" và xuất xứ quốc gia. KHÔNG nói được "kiện bông này thành đúng cái áo này" — đó không phải mục tiêu (mass balance). "We're proving the movement of fibre."
Thiếu vận đơn vẫn chạy
Không nhập / không khớp vận đơn → mắt xích "chưa xác nhận", bổ sung sau — không chặn ai. Chuỗi hành trình là "ngầm suy ra", không phải khai báo bắt buộc.
Phải là partner mới khai gửi/nhận
Chưa kết nối trên platform thì không chọn nhau được trong lúc quét. Không có ngoại lệ.
App chỉ cho ngành may + chuỗi FibreTrace
Cố ý hardcode (Canvas cũ trace được mọi thứ nhưng bắt customer tự setup nhiều). Đổi hướng tương lai = viết lại phần lớn. Đổi lại: người dùng gần như không phải setup gì.
Xưởng may khai số tấn — không phải brand
PO chỉ là số tiền; chỉ Tier 1 biết lượng sợi thật đã dùng. Và 1 claim không bao giờ đến từ 2 xưởng (2 supplier = 2 PO riêng).
Khoá sổ có phạm vi
Chỉ các lần quét Tier 1 đã chọn vào claim bị khoá. Quét của tầng dưới (Tier 2, 3) không bao giờ khoá — 1 nhà máy vải phục vụ nhiều khách, không thể biết lần quét đó còn phục vụ ai. Claim chỉ ghi "có một Tier 2 tham gia" ở mức tầng, không kéo mã quét của họ vào.
Chọn scan vào claim: cố ý không hạn chế
Xưởng may attach được scan bất kỳ của chính mình, kể cả lô gửi công ty khác. "You can send a scan to somebody else and put that on a claim certificate." Use case cần lưu tâm, không phải lỗi.
Claim từng phần được, không claim vượt
PO 50 tấn claim 25 tấn trước, phần còn lại claim sau bằng cách gửi lại chính PO đó. Hệ thống chặn vượt tổng. "Không quản tồn kho — chỉ đếm đã claim bao nhiêu." (Đang buggy, sẽ sửa.)
Đã confirm là khoá vĩnh viễn
Reject → xưởng chọn lại. Muốn gỡ link → brand huỷ claim. Đã Confirm → không khách hàng nào sửa được danh sách quét.
2 chốt chặn chống rút quá kho
Chạy tự động trong database: tổng đặt chỗ ≤ tổng trần các gin; số claim ≤ đặt chỗ còn lại VÀ ≤ kho còn lại. Credit không bao giờ vượt sợi thật.