Chuyển tới nội dung chính

Hướng dẫn tích hợp Instant Mart

Tài liệu này giới thiệu quy trình đăng sản phẩm, quản lý đơn hàng, báo cáo doanh thu và luồng tích hợp/kiểm thử OpenAPI trên Instant Mart.

Giới thiệu về dự án Instant Mart

Bối cảnh:

Instant Mart là cấu trúc shop đặc biệt được thiết kế để hỗ trợ các nhà bán lẻ vận hành cả quản lý trung tâm và hoạt động ở cấp chi nhánh. Theo mô hình này:

  • Mỗi Mart Shop (Cửa hàng chính thức) hoạt động như trụ sở, chịu trách nhiệm quản lý SKU toàn cầu, tạo sản phẩm và xem báo cáo tài chính.
  • Nhiều Outlet (Cửa hàng chi nhánh) tồn tại dưới mart, đại diện cho các địa điểm shop riêng lẻ. Outlet chịu trách nhiệm xử lý hoạt động hàng ngày như quản lý đơn hàng, duy trì tồn kho và đóng gói kiện hàng cho tài xế lấy hàng.

Với tích hợp Open API, nhà bán lẻ Mart có thể chọn quản lý SKU ở cấp merchant (dùng chung cho tất cả outlet) hoặc ở cấp outlet (độc lập cho từng chi nhánh).

Trước khi tích hợp với Open API, nhà bán lẻ phải onboard cả merchant mart và các shop outlet trong cổng BDC, đảm bảo chúng được đăng ký là Instant Mart Shops. Thiết lập này cho phép các nhà phát triển xây dựng giải pháp API hỗ trợ toàn bộ luồng hoạt động của nhà bán lẻ Instant Mart.

1. Thiết lập tài khoản kiểm thử Sandbox

1.1 Tạo tài khoản kiểm thử Sandbox

Bạn có thể bắt đầu bằng cách truy cập trang Tài khoản kiểm thử trên Shopee Open Platform Console > Chọn module Mart&Outlet shops để tạo shop kiểm thử.

Lưu ý: Kiểm thử sandbox Instant Mart yêu cầu whitelist hai bước: Sandbox V2 phải được bật trước danh sách whitelist Mart & Outlet Shop.

2. Cấp ủy quyền

2.1 Ủy quyền shop

Tìm Partner_id kiểm thử trên trang App List:

Nhấp Authorize → đăng nhập bằng tài khoản Mart để hoàn tất ủy quyền cho cả Mart và Outlet shop cùng lúc.

Tham khảo bài viết Ủy quyền và xác thực để biết thêm thông tin.

3. Quy trình kiểm thử

3.1 Kiểm thử Open API

Sử dụng Công cụ kiểm thử API hoặc Postman để kiểm thử Open API.

3.2 Các chức năng Open API chính

Các chức năng API chính cần thiết cho dự án ID Mart:

PhầnPhần phụ
Sản phẩmChuẩn bị cho SKU mới
Tạo SKU mới
Cập nhật SKU hiện có
Tạo biến thể SKU
Quản lý tồn kho & giá
Quản lý SKU chung
Đơn hàngLấy danh sách & chi tiết đơn hàng
Hủy đơn hàng
Yêu cầu vận chuyển
Tạo mã theo dõi
Tạo vận đơn
Trả hàng & Hoàn tiềnLấy danh sách & chi tiết trả hàng
Chấp nhận trả hàng/hoàn tiền
Tranh chấp trả hàng/hoàn tiền
Tài chínhLấy chi tiết escrow
Lấy giao dịch ví
Tạo báo cáo doanh thu
Tạo báo cáo thu nhập
Cài đặt shopCập nhật hồ sơ shop
Giờ hoạt động shop

3.2.1 Quan hệ giữa Mart & Outlet shop

Kiểm tra quan hệ: v2.shop.get_shop_info
Với mart_shop_id → trả về tất cả outlet shop ID dưới Mart.
Với outlet_shop_id → trả về mart shop ID tương ứng.

3.2.1.1 Sử dụng v2.shop.get_shop_info với Mart Shop

Khi gọi v2.shop.get_shop_info với mart_shop_id, nó sẽ trả về danh sách tất cả Outlet shop ID dưới mart shop đó.

Ví dụ phản hồi:

{

"auth_time": 1755082218,

"error": "",

"expire_time": 1786636799,

"is_cb": false,

"is_direct_shop": false,

"is_main_shop": false,

"is_mart_shop": true,

"is_one_awb": false,

"is_outlet_shop": false,

"is_sip": false,

"is_upgraded_cbsc": false,

"linked_direct_shop_list": [],

"linked_main_shop_id": 0,

"merchant_id": null,

"message": "",

"outlet_shop_info_list": [

   \{

"outlet\_shop\_id": 225622030

\},

\{

"outlet\_shop\_id": 225622031

\},

\{

"outlet\_shop\_id": 225622032

\},

\{

"outlet\_shop\_id": 225622033

\},

\{

"outlet\_shop\_id": 225622034

\}

],

"region": "TH",

"request_id": "e3e3e7f33c4e6283bc127a54263d8c01",

"shop_fulfillment_flag": "Others",

"shop_name": "op_64564962416254514c64",

"status": "NORMAL"

}

3.2.1.2 Sử dụng v2.shop.get_shop_info với Outlet Shop

Khi gọi v2.shop.get_shop_info với outlet_shop_id, nó sẽ trả về mart shop ID tương ứng.

Ví dụ phản hồi:

{

"auth_time": 1755158035,

"error": "",

"expire_time": 1786723199,

"is_cb": false,

"is_direct_shop": false,

"is_main_shop": false,

"is_mart_shop": false,

"is_one_awb": false,

"is_outlet_shop": true,

"is_sip": false,

"is_upgraded_cbsc": false,

"linked_direct_shop_list": [],

"linked_main_shop_id": 0,

"mart_shop_id": 225621997,

"merchant_id": null,

"message": "",

"region": "TH",

"request_id": "e3e3e7f33c4e97dc9f31cfda55db5101",

"shop_fulfillment_flag": "Others",

"shop_name": "op_51505343495178456857",

"status": "NORMAL"

}

3.2.2 Quản lý sản phẩm

Các trường phân biệt giữa Mart SKU và Outlet SKU

ModuleTrườngQuản lý MART SKUQuản lý Outlet SKU
Thông tin cơ bảntitleKhông
videoKhông
imageKhông
status
categoryKhông
Thông số kỹ thuậtbrandKhông
attributeKhông
size chartKhông
Thông số kỹ thuậtvariation nameKhông
variation optionKhông
variation imageKhông
priceKhông
purchase limitKhông
wholesalesKhông
stockKhông
model status
module seller SKUKhông
weightKhông
dimensionKhông
Vận chuyểnlogistics channelKhông
installation channelKhông
KhácDTSKhông
seller SKUKhông
conditionKhông

Các thao tác chính bao gồm:

  1. Thêm Mart SKU → v2.product.add_item
  2. Cập nhật tồn kho/giá SKU → v2.product.update_stock, v2.product.update_price (chỉ ở cấp outlet)
  3. Xuất bản Outlet SKU → v2.product.publish_item_to_outlet_shop
  4. Đồng bộ Mart SKU lên Outlet SKU → v2.product.update_item

3.2.2.1 Thêm Mart SKU

Thêm mart SKU bằng cách gọi v2.product.add_item sử dụng mart shop_id.

Tham khảo bài viết Tạo sản phẩm để biết thêm thông tin.

Ví dụ lệnh gọi:

{

  "original\_price": 123.3,

"description": "rachel add item from openapi 002",

"weight": 1.1,

"item\_name": "rachel add item from openapi item 001",

"item\_status": "NORMAL",

"dimension": \{

"package\_height": 2,

"package\_length": 3,

"package\_width": 4

\},

"category\_id": 400091,

"logistic\_info": [\{

"size\_id": 0,

"shipping\_fee": 2.5,

"enabled": true,

"logistic\_id": 80018,

"is\_free": false

\},

\{

"size\_id": 0,

"shipping\_fee": 2.5,

"enabled": true,

"logistic\_id": 81014,

"is\_free": false

\}],

"image": \{

"image\_id\_list": ["c54265d475b85e00ffb2404585e32b6f", "6fb33d484f232510b5f9b169f2758322", "591ab15ea954b9879374765854595600", "00a2258551b5a2f0a7c283f877330f93", "abf02b19b42e4aa964ef0725491ca9e3", "730f45972377cd4eb9813c6e53e60e9a"]

\},

"pre\_order": \{

"is\_pre\_order": false,

"days\_to\_ship": 2

\},

"item\_sku": "item sku 001",

"condition": "NEW",

"brand": \{

"brand\_id": 0,

"original\_brand\_name": "no brand"

\},

"item\_dangerous": 0,

"description\_info": \{

"extended\_description": \{

"field\_list": [\{

"field\_type": "text",

"text": "rachel add item from openapi 001",

"image\_info": \{

"image\_id": "-"

\}

\},

\{

"field\_type": "image",

"text": "-",

"image\_info": \{

"image\_id": "c54265d475b85e00ffb2404585e32b6f"

\}

\}]

\}

\},

"description\_type": "extended",

"seller\_stock": [\{

"location\_id": "IDZ",

"stock": 555

\}]

}

3.2.2.2 Cập nhật tồn kho/giá Mart SKU

Cập nhật tồn kho và giá Mart SKU bằng cách gọi v2.product.update_stock hoặc v2.product.update_price.

Tham khảo bài viết Quản lý tồn kho & giá để biết thêm thông tin.

Lưu ý: Tồn kho và giá chỉ có thể được quản lý ở cấp outlet shop. Bạn phải cung cấp shop_id của outlet shop khi gọi API để cập nhật tồn kho hoặc giá.

3.2.2.3 Xuất bản Outlet SKU

Gọi v2.product.publish_item_to_outlet_shop để xuất bản outlet SKU.

Ví dụ lệnh gọi:

{

"mart_item_id": 1234,

"outlet_shop_id": 2345,

"publish_item": {

  "model": [

\{

"relate\_mart\_model\_id": 1234,

"original\_price": 123,

"seller\_stock": [

\{

"location\_id": "IDZ",

"stock": 100

\}

],

"pre\_order": \{

"is\_pre\_order": false,

"days\_to\_ship": 3

\}

\}

],

"logistic\_info": [

\{

"logistic\_id": 12345,

"enabled": true,

"shipping\_fee": 3.45,

"size\_id": 0,

"is\_free": false

\}

]

}

}

Gọi v2.product.get_item_base_info để kiểm tra xem thông tin outlet item có đồng bộ đúng không.

Tham khảo bài viết Quản lý thông tin cơ bản sản phẩm để kiểm tra thông tin sản phẩm.

3.2.2.4 Lấy thông tin ánh xạ sản phẩm

Khi mart SKU có outlet SKU đã xuất bản, gọi v2.get_mart_item_mapping_by_id để lấy thông tin ánh xạ sản phẩm.

Ví dụ lệnh gọi:

{

"mart_item_id": 844087076,

"outlet_shop_id_list": [

  225034791

]

}

3.2.2.5 Đồng bộ Mart SKU lên Outlet SKU

Đồng bộ trường mart sku lên outlet sku.

  1. Gọi v2.product.update_item để cập nhật trường mart item.

  2. Gọi v2.product.get_item_base_info / vào seller center outlet để kiểm tra thông tin outlet item có đồng bộ đúng không.

Lưu ý: Chỉ các trường được quản lý bởi mart sku mới có thể đồng bộ lên outlet sku.

3.2.3 Phụ thuộc kênh Instant tại ID

3.2.3.1 Tổng quan cấu trúc kênh

Kênh MaskKênh Logistics
8000 - Instant80012 - GoSend Instant 80019 - GrabExpress Instant 80044 - SPX Instant
8008 - Instant 2 giờ80054 - SPX Instant - 2 Jam80061- GrabExpress Instant - 2 Jam80063- GoSend Instant - 2 Jam
8007 - Instant 4 giờ80053 -SPX Instant - 4 Jam80062- GrabExpress Instant - 4 Jam80064-GoSend Instant - 4 Jam

*Nhà phát triển cần biết rằng người bán được whitelist riêng cho các kênh này.

3.2.3.2 Tóm tắt giới hạn về kênh Instant tại ID

Instant 2 giờ (8008) và Instant 4 giờ (8007) phải luôn được bật/tắt cùng nhau.

Trường hợpĐiều kiện hiện tạiHành độngLỗi
18000 Instant: BẬT - 80044 SPX Instant: BẬT - 80012 GoSend Instant: TẮT - 80019 GrabExpress Instant: TẮT 8008 Instant 2 giờ: TẮT - 80054- SPX Instant - 2 Jam: TẮT - 80061-GrabExpress Instant - 2 Jam:TẮT - 80063-GoSend Instant - 2 Jam:TẮT 8007 Instant 4 giờ: TẮT - 80053-SPX Instant - 4 Jam: TẮT - 80062-GrabExpress Instant - 4 Jam: TẮT - 80064-Gosend Instant - 4 Jam: TẮTTắt 80044SPX Instant không thể tắt. Vui lòng bật ít nhất 1 kênh sau: {GoSend Instant, GrabExpress Instant, SPX Instant - 2 Jam, GrabExpress Instant - 2 Jam,GoSend Instant - 2 Jam,SPX Instant - 4 Jam,GrabExpress Instant - 4 Jam,GoSend Instant - 4 Jam}
28000 Instant: TẮT - 80044 SPX Instant: TẮT - 80012 GoSend Instant: TẮT - 80019 GrabExpress Instant: TẮT 8008 Instant 2 giờ: BẬT - 80054- SPX Instant - 2 Jam: BẬT - 80061-GrabExpress Instant - 2 Jam:TẮT - 80063-GoSend Instant - 2 Jam:TẮT 8007 Instant 4 giờ: BẬT - 80053- SPX Instant - 4 Jam: BẬT - 80062-GrabExpress Instant - 4 Jam: TẮT - 80064-Gosend Instant - 4 Jam: TẮTTắt 80054Kênh SPX Instant - 2 Jam không thể tắt. Vui lòng bật ít nhất 1 kênh sau. {SPX Instant, GoSend Instant, GrabExpress Instant, GrabExpress Instant - 2 Jam, GrabExpress Instant - 4 Jam, GoSend Instant - 2 Jam, GoSend Instant - 4 Jam}
38000 Instant: TẮT - 80044 SPX Instant: TẮT - 80012 GoSend Instant: TẮT - 80019 GrabExpress Instant: TẮT 8008 Instant 2 giờ: BẬT - 80054-SPX Instant - 2 Jam : BẬT - 80061-GrabExpress Instant - 2 Jam:TẮT - 80063-GoSend Instant - 2 Jam:TẮT 8007 Instant 4 giờ: BẬT - 80053-SPX Instant - 4 Jam: BẬT - 80062-GrabExpress Instant - 4 Jam: TẮT - 80064-Gosend Instant - 4 Jam: TẮTTắt 80053Kênh SPX Instant - 4 Jam không thể tắt. Vui lòng bật ít nhất 1 kênh sau. {SPX Instant, GoSend Instant, GrabExpress Instant, GrabExpress Instant - 2 Jam, GrabExpress Instant - 4 Jam, GoSend Instant - 2 Jam, GoSend Instant - 4 Jam,SPX Instant - 2 Jam}
4Người bán chỉ được whitelist cho kênh trong 8000 Instant 8000 Instant: BẬT - 80044 SPX Instant: BẬT - 80012 GoSend Instant: TẮT - 80019 GrabExpress Instant: TẮTTắt 80044Kênh SPX Instant không thể tắt. Vui lòng bật các kênh sau. GoSend Instant, GrabExpress Instant

3.2.4 Phụ thuộc kênh Instant tại TH

3.2.4.1 Tổng quan cấu trúc kênh

Kênh MaskKênh Logistics
070124-Instant Delivery - ส่งทันที (แพ็ก 30 นาที)
070125-Instant Delivery - ส่งทันที (แพ็ก 10 นาทีจากสาขา)

3.2.5 Phụ thuộc kênh Instant tại VN

3.2.5.1 Tổng quan cấu trúc kênh

Kênh MaskKênh Logistics
511550040-SPX Instant - Hỏa Tốc - Ưu Tiên

3.2.6 Quản lý đơn hàng

Để tạo đơn hàng kiểm thử, truy cập trang Đơn hàng kiểm thử trên Shopee Open Platform Console và chọn Tạo đơn hàng kiểm thử.

Chọn shop, sản phẩm và tùy chọn vận chuyển, sau đó nhấp Tạo để tạo đơn hàng.

Thông tin đơn hàng bao gồm Order SN, Item ID, Trạng thái, Thời gian cập nhật và Shop ID. Bạn cũng có thể lấy hàng, giao hàng hoặc xóa đơn hàng từ trang này.

Tham khảo bài viết Quản lý đơn hàng để biết thêm thông tin về các bước tiếp theo.

3.2.7 Quản lý trả hàng & hoàn tiền

Tham khảo bài viết Quản lý trả hàng & hoàn tiền để biết thêm thông tin.

3.2.8 Tài chính: Lấy doanh thu và giao dịch ví

Bạn có thể tạo và truy xuất báo cáo thu nhập, báo cáo doanh thu hoặc giao dịch ví bằng cách gọi các API với mart shop_id. Khi sử dụng mart shop_id, phản hồi sẽ trả về tài liệu tổng hợp bao gồm tất cả outlet shop dưới mart shop.

Chức năngOpen APIGhi chú
Tạo báo cáo doanh thuv2.payment.generate_income_reportTham số yêu cầu: release_time_from và release_time_to.
Lấy báo cáo doanh thuv2.payment.get_income_reportĐể truy vấn trạng thái báo cáo doanh thu và cung cấp liên kết tệp bằng cách truyền income_report_id.
Tạo báo cáo thu nhậpv2.payment.generate_income_statementTham số yêu cầu: statement_type=1 nghĩa là báo cáo theo tuần; statement_type=2 nghĩa là báo cáo theo tháng
Lấy báo cáo thu nhậpv2.payment.get_income_statementĐể truy vấn trạng thái báo cáo thu nhập và cung cấp liên kết tệp bằng cách truyền income_statement_id
Lấy giao dịch vív2.payment.get_wallet_transaction_listLấy lịch sử giao dịch của ví.

3.2.9 Cài đặt shop

  1. Bạn có thể cập nhật tên shop, logo và mô tả bằng cách gọi v2.shop.update_profile.
  2. Bạn có thể cập nhật giờ hoạt động bằng cách gọi v2.logistics.update_operating_hours.
    Lưu ý:
  • Các giá trị cung cấp phải tuân theo các hạn chế được lấy từ v2.logistics.get_operating_hour_restrictions.
  • API này thực hiện cập nhật ghi đè. Khi cập nhật giờ hoạt động lấy hàng, bạn phải bao gồm tất cả các đoạn, kể cả những đoạn không thay đổi.

4.

Cơ chế push là từ điển các thông báo hệ thống từ Shopee, bao gồm cập nhật về sản phẩm, đơn hàng, trả hàng, marketing, ổn định và cập nhật thị trường chung.

Đối với Instant Mart, chúng tôi khuyến nghị kết nối với order_status_push. Để biết thêm chi tiết, vui lòng tham khảo bài viết order_status_push.

5. FAQ & Hỗ trợ

Để biết các câu hỏi thường gặp, vui lòng tham khảo FAQ.

Nếu bạn gặp bất kỳ vấn đề nào liên quan đến Instant Mart API (ví dụ: onboarding, cấu hình kênh logistics, đồng bộ đơn hàng, v.v.), vui lòng gửi ticket đến nhóm hỗ trợ sản phẩm Shopee tại đây.

Khi gửi ticket, vui lòng chọn: L1 Question Category → Instant Mart

Chọn đúng danh mục giúp chúng tôi xác định và ưu tiên yêu cầu của bạn hiệu quả hơn.