Bản nháp
Cho khách tự đặt tên, chọn hoạ tiết, chọn màu ngay trên trang sản phẩm — rồi khi đơn về, bạn nhận được file in sẵn sàng đưa xưởng, không phải một dòng ghi chú bảo bạn tự dựng lại.
Đây là phần phức tạp nhất trong bảng điều khiển, vì nó không mô tả "sản phẩm này cho phép nhập tên" mà mô tả cái gì in ở đâu, và điều khiển nào đổi lớp nào. Chương này đi theo đúng thứ tự bạn phải dựng.
Mô hình: hai phép nhân
Toàn bộ tính năng gói trong hai dòng:
product base × design = template
template × option set = ràng buộc vào một sản phẩm
| Khái niệm | Là gì |
|---|---|
| Product base | Ảnh sản phẩm (mockup) + vùng in trên ảnh đó |
| Design | Các lớp có vị trí: chữ, chữ cong, ô ảnh |
| Template | Một base ghép với một design — thứ thật sự được in |
| Option set | Những gì khách nhìn thấy: các tuỳ chọn, giá trị, và giá cộng thêm |
| Library | Bản sao của một bộ hoạ tiết cho một "phiên bản" (vàng/bạc…) |
Lý do tách làm hai phép nhân là tái sử dụng: một design dùng lại được trên nhiều base (áo trước, áo sau, túi), và một option set dùng lại được trên nhiều template. Bạn không phải dựng lại từ đầu cho mỗi sản phẩm.

Năm tab này không bookmark được từng cái. Khác với Settings → Checkout, tab ở đây không nằm trên URL, nên mở lại trang là quay về tab Designs.
Function: thứ nối điều khiển với lớp
Đây là khái niệm quyết định, và nó ở trong giá trị của tuỳ chọn, không phải ở tuỳ chọn.
Mỗi giá trị mang một hoặc vài Function, mỗi Function nói đúng một câu: đổi thuộc tính X của lớp Y thành Z.

Màn hình in thẳng chúng ra:
set text of name to "{{input}}"set image of emblem to "…/emblem-wave.png"set font_color of name to "#1b3a5c"
Ba dòng đó là ba loại Function khác nhau — chữ, ảnh, màu — và cả ba đều trỏ
vào một lớp trong design bằng tên lớp (name, emblem).
Còn một loại nữa đáng biết vì nó làm được thứ các loại kia không làm được:
visible. Nó không đổi nội dung mà bật/tắt hẳn một lớp — giá trị false
là ẩn, mọi giá trị khác là hiện. Đây là cách một điều khiển kiểu "in mấy con
thú?" bật đúng một cách bố trí và tắt những cách còn lại, thay vì bạn phải dựng
mỗi bố trí thành một design riêng.
{{input}}là cách một ô nhập chữ hoạt độngTuỳ chọn kiểu text vẫn phải có đúng một giá trị, và điều đó trông vô lý cho tới khi bạn thấy Function của nó:
set text of name to "{{input}}". Giá trị đó là khuôn, và{{input}}là chỗ chữ khách gõ được thay vào.Không có khuôn thì ô nhập không biết phải đổ chữ vào lớp nào.
Sai tên lớp là kiểu lỗi tệ nhất trong tính năng này, vì nó không báo lỗi: khi in, một Function trỏ vào lớp không tồn tại bị bỏ qua — kết quả là file gửi xưởng thiếu một lớp, và không ai biết. Vì vậy màn hình này hiện cảnh báo "— not in the reference template" ngay cạnh Function sai, và ô Reference template ở đầu trang tồn tại chỉ để làm việc đó: chọn một template để nó biết design nào mà đối chiếu. Ô đó không được lưu vào option set — một option set dùng chung cho nhiều template.
Thứ tự dựng
Năm tab xếp theo đúng thứ tự phụ thuộc, nên cứ đi từ trái sang phải:
1. Product base — tạo base, tải ảnh mockup lên, rồi kéo vùng in lên đúng chỗ trên ảnh. Vùng in là hình chữ nhật mà thiết kế sẽ nằm gọn trong đó.
2. Design — đặt khung vẽ (ví dụ 1200×1000), rồi thêm các lớp. Mỗi lớp có
tên lớp — đây chính là cái mà Function sẽ gọi tên, nên đặt tên dễ đọc
(name, emblem) chứ đừng để mặc định.
3. Template — ghép base với design, chọn PPI (300 là chuẩn in) và định dạng xuất (PNG hoặc JPG).
4. Option set — thêm tuỳ chọn, thêm giá trị, và với mỗi giá trị thêm Function. Chọn Reference template trước để hệ thống kiểm tên lớp giúp bạn.
5. Ràng buộc vào sản phẩm — bước này không ở đây: nó ở trình sửa sản phẩm, trong khối Personalization, nơi bạn chọn template + option set cho sản phẩm đó.
Bước 5 cũng là chốt kiểm tra: đó là lúc mọi tên lớp trong option set được đối chiếu với một design có thật, nên lỗi gõ sai bị chặn ở đây chứ không phải biến thành một lớp thiếu trong file in vài tháng sau.
Giá
Ba cách cộng tiền, cộng dồn với nhau:
| Cách | Đặt ở đâu |
|---|---|
| Theo giá trị | Mỗi giá trị có ô giá cộng thêm — hoạ tiết này +$3, hoạ tiết kia miễn phí |
| Theo ký tự | Trên tuỳ chọn kiểu text: mỗi ký tự khách gõ cộng thêm bao nhiêu |
| Theo màu / theo lớp | Trên template: bao nhiêu màu (hoặc lớp) là miễn phí, vượt quá thì mỗi cái thêm bao nhiêu |
Có thêm bậc số lượng trên template: mua từ N cái thì thay toàn bộ phụ phí bằng một mức cố định mỗi cái — dùng cho đơn sỉ.
Phụ phí được tính lại từ đầu mỗi lần đọc giỏ hàng, không lưu sẵn. Nên sửa giá một giá trị là mọi giỏ hàng đang mở được tính lại theo giá mới, không có giỏ nào mắc kẹt ở giá cũ.
Kiểm tra chữ khách nhập
Tuỳ chọn kiểu text đặt được: số ký tự tối đa, số dòng, ký tự mỗi dòng, và lớp ký tự — bất kỳ · chỉ số · chỉ chữ · hoặc một biểu thức chặn.
Biểu thức là danh sách cấm, không phải khuôn bắt buộc: nó từ chối chuỗi khớp. Đó là chỗ để chặn từ bậy, không phải chỗ để ép định dạng.
Quy tắc chạy ở máy chủ, không chỉ trong trình duyệt. Khách gõ quá dài thì trang báo ngay, nhưng kể cả có ai đó gọi thẳng API cũng bị từ chối với đúng câu đó — "must be 12 characters or fewer", "letters only".
Công tắc của nền tảng
Tính năng này có công tắc cấp nền tảng, và mặc định là tắt. Cửa hàng chưa được mở sẽ thấy một dải cảnh báo ngay đầu trang: bạn vẫn dựng được design, base và option set, nhưng khách không thấy gì cả.
Nếu bạn dựng xong xuôi mà trang sản phẩm không hiện phần cá nhân hoá, kiểm hai thứ theo thứ tự: dải cảnh báo đó, rồi khối Personalization trong trình sửa sản phẩm.
Bảng tra cứu
| Tab | Nội dung | Ghi chú |
|---|---|---|
| Designs | Khung vẽ + các lớp | Tên lớp là cái Function gọi tới |
| Product bases | Ảnh mockup + vùng in | Một base nhiều mockup được |
| Templates | base × design | PPI 300 để in; PNG hoặc JPG |
| Option sets | Tuỳ chọn, giá trị, Function | Reference template chỉ để kiểm, không lưu |
| Libraries | Bộ hoạ tiết theo phiên bản | Cho sản phẩm có nhiều "finish" |
| Khái niệm | Điểm cần nhớ |
|---|---|
| Function | set <thuộc tính> of <lớp> to <giá trị> |
{{input}} |
Chỗ chữ khách gõ được thay vào, trong giá trị khuôn của ô text |
| Tên lớp sai | Bị bỏ qua khi in, không báo lỗi — chốt kiểm là lúc ràng buộc sản phẩm |
| Ràng buộc | Nằm ở trình sửa sản phẩm, không ở đây |
| Công tắc nền tảng | Mặc định tắt; tắt thì khách không thấy gì |
Tiếp theo: quay lại trang chỉ mục để xem các chương khác.
Đối chiếu với bản 9eab6cc1c222 · 2026-08-29