Theo dõi độ sẵn có SKU trên TikTok Shop và những thay đổi về hàng tồn kho
Lead Scraping Automation Engineer
TL;DR:
- Theo dõi hàng tồn kho của TikTok Shop thuộc cấp SKU. Sẵn có hàng hóa và biến thể trên cấp sản phẩm trả lời các câu hỏi khác nhau.
- Một sự kiện tồn kho cần hai quan sát hợp lệ. Các trường thiếu và yêu cầu không thành công vẫn không rõ ràng thay vì trở thành bản ghi hết hàng.
- Chìa khóa so sánh bao gồm bối cảnh thị trường. Giữ ID sản phẩm, khu vực trả về, ID SKU và giá trị tùy chọn cùng nhau.
- SKU mới, không có sẵn và vắng mặt là các trạng thái khác nhau. Một biến thể thiếu trong một phản hồi nên được xem xét thay vì bị đánh dấu là ngừng cung cấp.
- Hình ảnh sản phẩm công khai không phải là sổ cái kho. Chúng không thay thế hàng tồn kho đã xác nhận, đặt trước hoặc hoàn thành của người bán.
- Miễn phí để bắt đầu. Tài khoản Scrapeless mới bao gồm tín dụng miễn phí thông qua Bảng điều khiển Scrapeless.
Giới thiệu: một sản phẩm có thể chứa nhiều trạng thái sẵn có
Một trang sản phẩm có thể có sẵn trong khi một kích thước hoặc màu sắc nào đó thì không. Việc chỉ theo dõi đối tượng hàng tồn kho tổng hợp che giấu biến thể chính xác mà người mua có thể chọn.
Hướng dẫn này mở rộng mảng skus được trả về bởi tác nhân TikTok Shop Scrapeless, lưu trữ một hàng cho mỗi biến thể và quan sát, và tạo ra các sự kiện hết hàng và có hàng trở lại. Nó cũng giữ các trường thiếu, lỗi yêu cầu và các SKU tạm thời vắng mặt ra khỏi dòng sự kiện hàng tồn kho chắc chắn.
Hướng dẫn TikTok Shop scraper giải thích các lớp phản hồi sản phẩm và SKU được sử dụng ở đây.
Quy trình tổng quan
| Giai đoạn | Hành động | Đầu ra |
|---|---|---|
| Theo dõi | Cung cấp ID sản phẩm và cặp khu vực | Danh sách theo dõi sản phẩm |
| Lấy | Yêu cầu mỗi trang sản phẩm công khai | Hình ảnh sản phẩm thô |
| Mở rộng | Tạo một hàng cho mỗi SKU | Bảng hình ảnh biến thể |
| So sánh | Kết hợp mỗi SKU với hàng hợp lệ trước đó | Thay đổi sẵn có |
| Xem xét | Tách biệt các bản ghi vắng mặt và không rõ ràng | Hàng đợi chất lượng dữ liệu |
Quy trình báo cáo các trường hình ảnh sản phẩm phía người mua. Nó không phải là một hệ thống hàng tồn kho kho hoàn chỉnh.
Điều kiện tiên quyết
- Một tài khoản Scrapeless và mã API từ Bảng điều khiển Scrapeless
- Python 3 với thư viện tiêu chuẩn và SQLite
- Một danh sách theo dõi các ID sản phẩm công khai và khu vực của TikTok Shop đã biết
- Một lịch trình quan sát và chính sách xem xét xác định
- Một
SCRAPELESS_API_KEYtrực tiếp cho ví dụ API
Khối thu thập là một khoảng cách điều kiện tiên quyết vì một chứng chỉ và danh sách theo dõi thực tế được cung cấp bởi độc giả. Các quy tắc chuẩn hóa theo phản hồi của Shop được ghi chép mà không trình bày đầu ra trực tiếp tưởng tượng.
Giai đoạn 1: Yêu cầu một sản phẩm đã biết trong một khu vực cố định
Gọi scraper.tiktok.shop.page với product_id và region. Kết quả có thể chứa region đã được giải quyết, stock cấp sản phẩm, options và skus. Mỗi SKU có thể bao gồm sku_id, các cặp tùy chọn của nó, dữ liệu giá lồng nhau, available_quantity, in_stock và một URL hình ảnh.
Giữ khu vực trả về, ngay cả khi nó khác biệt về chữ hoa so với yêu cầu. Khu vực thuộc về mỗi chìa khóa so sánh bởi vì tính sẵn có của sản phẩm có thể khác nhau theo thị trường.
T tài liệu tìm kiếm kho chính thức của TikTok Shop tách biệt các truy vấn ID sản phẩm và ID SKU. Sự phân biệt đó cũng thuộc về mô hình hình ảnh công khai.
Giai đoạn 2: Mở rộng hàng tồn kho sản phẩm và SKU một cách riêng biệt
Đối tượng hàng tồn kho cấp sản phẩm có thể bao gồm số lượng SKU, số lượng có thể sử dụng tổng hợp và một cờ có sẵn. Những trường này tóm tắt phản hồi sản phẩm. Chúng không nên ghi đè lên các hàng biến thể.
Một hàng SKU đã được chuẩn hóa nên chứa:
| Trường | Mục đích |
|---|---|
collected_at |
Xác định quan sát |
product_id |
Liên kết biến thể với sản phẩm của nó |
region |
Ngăn chặn so sánh qua thị trường |
sku_id |
Chìa khóa so sánh biến thể ổn định |
option_signature |
Cặp tùy chọn có thể đọc được cho con người, màu sắc, kích thước hoặc khác |
available_quantity |
Số lượng trả về cho SKU đó, có thể là null |
in_stock |
Cờ có sẵn trả về, có thể là null |
collection_status |
Tách biệt thành công khỏi thu thập thất bại |
Không suy diễn in_stock = false khi available_quantity bị thiếu. Bảo tồn cả hai trường vì phản hồi có thể tiết lộ một trường mà không có đủ bằng chứng để suy ra trường khác.
Bắt đầu thu thập dữ liệu với Scrapeless
Khởi động quy trình thu thập dữ liệu web và tự động hóa của bạn với Scrapeless!
Đăng ký hôm nay và nhận $5 tín dụng miễn phí — không cần thẻ tín dụng.Nhận tín dụng miễn phí của bạn ngay bây giờ trong Bảng điều khiển Scrapeless.
Giai đoạn 3: Lưu trữ hình ảnh biến thể trong SQLite
Một bảng chỉ ghi bổ sung giữ trạng thái quan sát. Tài liệu CREATE TABLE của SQLite xác định ràng buộc khóa chính được sử dụng ở đây.
Lưu ý: Mã dưới đây yêu cầu mã thông báo API Scrapeless trực tiếp tại
SCRAPELESS_API_KEY, cùng vớiTIKTOK_SHOP_PRODUCT_IDvàTIKTOK_SHOP_REGIONdo người đọc cung cấp.
python
import json
import os
import sqlite3
from datetime import datetime, timezone
from urllib.request import Request, urlopen
ENDPOINT = "https://api.scrapeless.com/api/v1/scraper/request"
def fetch_product(product_id, region):
payload = json.dumps({
"actor": "scraper.tiktok.shop.page",
"input": {"product_id": str(product_id), "region": region},
}).encode()
request = Request(
ENDPOINT,
data=payload,
headers={
"x-api-token": os.environ["SCRAPELESS_API_KEY"],
"content-type": "application/json",
},
method="POST",
)
with urlopen(request, timeout=60) as response:
return json.load(response)
raw = fetch_product(
os.environ["TIKTOK_SHOP_PRODUCT_ID"],
os.environ["TIKTOK_SHOP_REGION"],
)
collected_at = datetime.now(timezone.utc).isoformat()
product_id = str(raw.get("product_id") or "")
region = str(raw.get("region") or "")
database = sqlite3.connect("tiktok-shop-inventory.sqlite3")
database.execute("""
CREATE TABLE IF NOT EXISTS sku_snapshots (
collected_at TEXT NOT NULL,
product_id TEXT NOT NULL,
region TEXT NOT NULL,
sku_id TEXT NOT NULL,
option_signature TEXT,
available_quantity INTEGER,
in_stock INTEGER,
PRIMARY KEY (collected_at, product_id, region, sku_id)
)
""")
for sku in raw.get("skus") or []:
options = sku.get("options") or []
signature = " | ".join(
f"{option.get('name', '')}={option.get('value', '')}"
for option in options
)
database.execute(
"INSERT INTO sku_snapshots VALUES (?, ?, ?, ?, ?, ?, ?)",
(
collected_at, product_id, region, str(sku.get("sku_id") or ""),
signature, sku.get("available_quantity"), sku.get("in_stock"),
),
)
database.commit()
database.close()
with open("tiktok-shop-product-raw.json", "w", encoding="utf-8") as output:
json.dump(raw, output, ensure_ascii=False, indent=2)
Lưu trữ các định danh dưới dạng văn bản và giữ lại JSON thô bên cạnh bảng đã chuẩn hóa. Điều này giúp các thay đổi nhãn tùy chọn hoặc sơ đồ có thể xem xét lại sau này.
Giai đoạn 4: Phân loại các thay đổi hàng hóa một cách thận trọng
Một sự kiện khả dụng hợp lệ so sánh cùng một ID sản phẩm, khu vực đã trả về và ID SKU qua hai quan sát thành công.
| Trạng thái trước | Trạng thái hiện tại | Sự kiện |
|---|---|---|
true |
false |
out_of_stock |
false |
true |
back_in_stock |
| số lượng thay đổi, cờ bằng nhau | thay đổi số lượng | quantity_changed |
| không có hàng trước | hiện tại | new_sku_observed |
| hiện tại trước đó, không có hiện tại | không được trả về | sku_absent_review |
| hàng trước hợp lệ, yêu cầu thất bại | không xác định | collection_gap |
Đừng biến sku_absent_review thành hàng tồn kho ngừng sản xuất từ một quan sát. Tùy chọn sản phẩm có thể thay đổi, các trường có thể vắng mặt và một yêu cầu thất bại không chứa bằng chứng khả dụng hợp lệ.
TikTok Shop tài liệu các sự kiện thay đổi hàng tồn kho từ phía người bán với số lượng như hàng có sẵn, đã cam kết và hàng bị khóa trong chiến dịch trong quy định webhook hàng tồn kho. Những kích thước từ phía người bán đó khác với ảnh chụp trang Shop công khai được sử dụng ở đây.
Giai đoạn 5: Tạo báo cáo khả dụng
Báo cáo nên bao gồm tên sản phẩm, khu vực, ID SKU, chữ ký tùy chọn, thời gian quan sát trước và hiện tại, cờ trước và hiện tại, số lượng trước và hiện tại, và loại sự kiện. Giữ khoảng trống trong bộ sưu tập ở một phần chất lượng riêng.
Nhóm đầu ra thành ba hàng đợi:
- Thay đổi khả dụng đã xác nhận
- Các biến thể mới được quan sát hoặc tạm thời vắng mặt
- Các trường thiếu và các bộ sưu tập thất bại cần xem xét
Sự tách biệt này giữ cho đội ngũ vận hành không hành động trên một giá trị mà người thu thập chưa bao giờ quan sát.
Xử lý dữ liệu sản phẩm một cách có trách nhiệm
Chỉ thu thập các trường sản phẩm và SKU cần thiết cho quyết định hàng tồn kho. Tránh sao chép tài liệu sản phẩm khi lưu trữ URL nguồn là đủ, và hạn chế truy cập vào danh sách theo dõi nội bộ hoặc ngưỡng cảnh báo. Khuôn khổ Bảo mật NIST cung cấp các biện pháp kiểm soát chung cho việc giảm thiểu và lưu giữ dữ liệu.
Scrapeless cung cấp tác nhân Shop thông qua Scraping API. Xem lại trang giá hiện tại trước khi thiết lập kích thước và lịch theo dõi.
Kết luận: bảo tồn sự không chắc chắn trong mô hình sự kiện
Theo dõi hàng tồn kho TikTok Shop trở nên đáng tin cậy khi sự tồn kho sản phẩm và khả dụng SKU vẫn riêng biệt. So sánh các khóa biến thể chính xác qua các ảnh chụp hợp lệ, bảo tồn dữ liệu thiếu hụt như không xác định và chuyển hướng các SKU vắng mặt đến xem xét trước khi công bố một sự kiện hàng tồn kho.
Sẵn sàng theo dõi các biến thể TikTok Shop?
Tham gia Scrapeless Discord hoặc cộng đồng Telegram để thảo luận về các sơ đồ lịch sử biến thể. Tạo một tài khoản trong Bảng điều khiển Scrapeless khi danh sách theo dõi sản phẩm đã sẵn sàng.
Câu hỏi thường gặp
H: Một trình theo dõi hàng tồn kho TikTok Shop nên theo dõi những gì?
Một trình theo dõi hàng tồn kho TikTok Shop nên bảo tồn tồn kho cấp sản phẩm và khả dụng SKU riêng biệt như những quan sát khác nhau.
H: Một SKU thiếu có tự động có nghĩa là hết hàng không?
Một SKU thiếu không tự động có nghĩa là hết hàng. Đánh dấu nó để xem xét trừ khi một phản hồi hợp lệ hiện tại xác lập rõ trạng thái không khả dụng.
H: Khóa nào xác định một ảnh chụp SKU tương đương?
Sử dụng ID sản phẩm, khu vực đã trả về và ID SKU. Lưu trữ nhãn tùy chọn để xem xét mà không sử dụng chúng làm khóa duy nhất.
H: Hàng hóa Shop công cộng có bằng với hàng tồn kho của kho không?
Hàng hóa Shop công cộng không bằng với một sổ cái kho hoàn chỉnh. Các hệ thống từ phía người bán có thể chứa các trạng thái đã đặt chỗ, đã cam kết, vị trí và thực hiện không được công khai bởi ảnh chụp sản phẩm công khai.
H: Tôi có cần quản lý proxy hoặc bộ chọn trang Shop không?
Tác nhân xử lý bề mặt thu thập của nó phía sau yêu cầu API. Người gọi quản lý danh sách theo dõi, dấu thời gian, lưu trữ, so sánh và thông báo.
H: Theo dõi khả dụng công khai của TikTok Shop có hợp pháp không?
Tính hợp pháp phụ thuộc vào quyền tài phán, thị trường, mục đích, phương thức truy cập và các điều khoản áp dụng. Sử dụng dữ liệu công khai cho một mục đích cho phép và nhận tư vấn pháp lý cho quy trình làm việc dự kiến.
Tại Scrapless, chúng tôi chỉ truy cập dữ liệu có sẵn công khai trong khi tuân thủ nghiêm ngặt các luật, quy định và chính sách bảo mật trang web hiện hành. Nội dung trong blog này chỉ nhằm mục đích trình diễn và không liên quan đến bất kỳ hoạt động bất hợp pháp hoặc vi phạm nào. Chúng tôi không đảm bảo và từ chối mọi trách nhiệm đối với việc sử dụng thông tin từ blog này hoặc các liên kết của bên thứ ba. Trước khi tham gia vào bất kỳ hoạt động cạo nào, hãy tham khảo ý kiến cố vấn pháp lý của bạn và xem xét các điều khoản dịch vụ của trang web mục tiêu hoặc có được các quyền cần thiết.


