---
title: "Thêm sản phẩm"
description: "Thêm in-app purchase hoặc gói đăng ký vào Adapty và liên kết chúng với danh sách sản phẩm trên App Store, Google Play, Stripe, Paddle hoặc cửa hàng tùy chỉnh."
---

:::tip
Đang thiết lập Adapty theo phương thức lập trình? Bạn có thể hoàn thành bước này bằng [Developer CLI](developer-cli-quickstart).
:::

Trước khi sử dụng các tính năng cốt lõi của Adapty, bạn cần thêm từng sản phẩm đang bán và liên kết chúng với mọi cửa hàng hoặc nền tảng thanh toán mà bạn hỗ trợ. Việc thiết lập này cho phép bạn phân phối sản phẩm đến thiết bị của người dùng và theo dõi chúng trong phân tích sau này.

Trong Adapty, mọi thứ ứng dụng của bạn bán đều là một **sản phẩm**. Nếu cùng một mặt hàng tồn tại trên App Store, Google Play hoặc Stripe, bạn có thể gộp chúng thành một sản phẩm duy nhất trong Adapty. Thiết lập một lần và quản lý trên tất cả các nền tảng từ một nơi.

Hãy thêm sản phẩm đầu tiên của bạn.

<Tabs groupId="products" queryString>

<TabItem value="no-products" label="Chưa có sản phẩm trong cửa hàng" default>

<div style={{
  maxWidth: '560px',
  margin: '0 auto 2rem',
  position: 'relative',
  aspectRatio: '16/9',
  width: '100%'
}}>
  <iframe
    style={{
      position: 'absolute',
      top: 0,
      left: 0,
      width: '100%',
      height: '100%'
    }}
    src="https://www.youtube.com/embed/qUpC2XG-r5E?si=7Komyv4_PUQ4FaEH"
    title="YouTube video player"
    frameBorder="0"
    allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share"
    referrerPolicy="strict-origin-when-cross-origin"
    allowFullScreen
  />
</div>

</TabItem>

<TabItem value="products-in-stores" label="Đã có sản phẩm trong cửa hàng">

<div style={{
    maxWidth: '560px',
    margin: '0 auto 2rem',
    position: 'relative',
    aspectRatio: '16/9',
    width: '100%'
}}>
    <iframe
        style={{
            position: 'absolute',
            top: 0,
            left: 0,
            width: '100%',
            height: '100%'
        }}
        src="https://www.youtube.com/embed/nlkdKCF0SwY?si=VVigzHcpv3waKJmI"
        title="YouTube video player"
        frameBorder="0"
        allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share"
        referrerPolicy="strict-origin-when-cross-origin"
        allowFullScreen
    />
</div>

</TabItem>
</Tabs>

## Thêm sản phẩm đầu tiên \{#add-your-first-product\}

:::tip
Hướng dẫn nhanh này bao gồm những điều cơ bản bạn cần để tạo sản phẩm. Để biết thêm chi tiết, xem hướng dẫn về [tạo sản phẩm](create-product).
:::

Giả sử bạn muốn thêm một gói đăng ký hàng tháng làm sản phẩm.

1. Vào [Products](https://app.adapty.io/products) từ menu chính của Adapty.
2. Nhấn **Create product** ở góc trên bên phải.

    <img src={require('./img/products-tab.webp').default}
         style={{
             border: '1px solid #727272', /* border width and color */
             width: '700px', /* image width */
             display: 'block', /* for alignment */
             margin: '0 auto' /* center alignment */
         }}
    />

:::important
**Các bước tiếp theo phụ thuộc vào việc bạn đã có sản phẩm trên App Store và/hoặc Google Play chưa:**
:::

<Tabs groupId="products" queryString>

    <TabItem value="no-products" label="Chưa có sản phẩm trong cửa hàng" default>

        :::important
        Trước khi bắt đầu, hãy đảm bảo bạn đã cấu hình tích hợp với [App Store](initial_ios) và/hoặc [Google Play](initial-android). Đối với App Store, hãy đảm bảo bạn đã [thêm App Store Connect API key](app-store-connection-configuration#step-6-add-app-store-connect-api-key) để Adapty có thể đẩy sản phẩm lên.
        :::

        3. Chọn **Create a new product and push to stores**.

        4. Điền thông tin sản phẩm:
        - **Product name**: Tên chỉ hiển thị với bạn trong toàn bộ Adapty dashboard.
        - **Access Level**: Định danh duy nhất xác định tính năng nào được mở khóa sau khi mua. Nếu tất cả người dùng trả phí trong ứng dụng của bạn đều truy cập vào các tính năng giống nhau, bạn có thể sử dụng mức độ truy cập mặc định: `premium`. Với các thiết lập phức tạp hơn, hãy tạo thêm [mức độ truy cập](access-level).
        - **Subscription duration**: Chọn thời hạn của gói đăng ký từ danh sách.
        - **Weekly/Monthly/2 Months/3 Months/6 Months/Annual**: Thời hạn gói đăng ký.
        - **Lifetime**: Sử dụng thời hạn trọn đời cho các sản phẩm mở khóa tính năng cao cấp của ứng dụng mãi mãi.
        - **Non-Subscriptions**: Đối với các sản phẩm không phải gói đăng ký và do đó không có thời hạn, hãy sử dụng non-subscriptions. Chúng có thể được dùng để mở khóa tính năng bổ sung, sản phẩm consumable, v.v.
        - **Consumables**: Các mặt hàng consumable có thể được mua nhiều lần. Chúng có thể được sử dụng hết trong vòng đời của ứng dụng. Ví dụ là tiền tệ trong game và các vật phẩm thêm. Lưu ý rằng sản phẩm consumable không ảnh hưởng đến mức độ truy cập.
        - **Price (USD)**: Giá sản phẩm bằng USD. Mức giá này sẽ được dùng làm cơ sở để tự động tính toán và thiết lập giá trên tất cả các quốc gia. Bạn có thể [tùy chỉnh giá cho từng quốc gia và khu vực](edit-product#set-country-specific-prices) sau.

        
            <img src={require('./img/create-product-push.webp').default}
                 style={{
                     border: '1px solid #727272', /* border width and color */
                     width: '400px', /* image width */
                     display: 'block', /* for alignment */
                     margin: '0 auto' /* center alignment */
                 }}
            />
        

        5. Nhấn **Save & Continue** và chuyển sang tab **App Store** hoặc **Google Play** để điền thông tin sản phẩm cho cửa hàng.

        <Tabs>
            <TabItem value="App Store" label="App Store" default>

                - **Product ID**: Tạo một ID duy nhất và vĩnh viễn cho sản phẩm.
                - **Product group**: Chọn nhóm sản phẩm hiện có mà bạn đã tạo trong App Store Connect hoặc nhấn **Create new Product Group** và đặt tên cùng ID cho nhóm. Sau khi Adapty tạo xong, bạn có thể chọn từ danh sách thả xuống.
                - **Screenshot**: Tải lên ảnh chụp màn hình của in-app purchase hiển thị rõ mặt hàng hoặc dịch vụ được cung cấp. Ảnh chụp màn hình này chỉ dùng cho việc xét duyệt App Store và không hiển thị trên App Store. Xem yêu cầu về kích thước và định dạng ảnh chụp màn hình [tại đây](https://developer.apple.com/help/app-store-connect/reference/app-information/screenshot-specifications/).

                :::warning
                Nếu đây là sản phẩm đầu tiên của ứng dụng này, bạn phải tự tay gửi để xét duyệt trong App Store Connect. Điều này sẽ không cần thiết về sau. Sau khi xét duyệt xong, trạng thái sản phẩm trong Adapty sẽ tự động cập nhật.
                :::

            </TabItem>

            <TabItem value="Google Play" label="Google Play" default>

                - **Base Product ID**: Tạo một ID duy nhất và vĩnh viễn cho sản phẩm.
                - **Subscription**: Chọn nhóm gói đăng ký hiện có mà bạn đã tạo trong Google Play Console hoặc nhấn **Create new Product Group** và đặt tên cùng ID. Sau khi Adapty tạo xong, bạn có thể chọn từ danh sách thả xuống.

            </TabItem>
        </Tabs>

        6. Đối với iOS, hãy cấu hình ưu đãi giới thiệu – dùng thử miễn phí – bằng cách chọn **Free duration** từ danh sách thả xuống. Trong thiết lập ban đầu này, bạn có thể thêm bản dùng thử miễn phí giới thiệu. Sau khi sản phẩm chính được cửa hàng phê duyệt, bạn có thể [thêm các ưu đãi khác](offers) (ví dụ: ưu đãi, ưu đãi thu hút khách hàng cũ) bằng cách liên kết ID hiện có từ bảng điều khiển cửa hàng của bạn.

           :::important
           Ưu đãi giới thiệu không tự động đồng bộ với Google Play. Không giống App Store, Google Play không có loại "ưu đãi giới thiệu" riêng — các bản dùng thử miễn phí và ưu đãi giảm giá đều được cấu hình dưới dạng **offers** trên base plan. [Tạo ưu đãi trong Google Play Console và liên kết với sản phẩm Adapty của bạn](google-play-offers).
           :::

    </TabItem>

    <TabItem value="products-in-stores" label="Đã có sản phẩm trong cửa hàng">

        3. Chọn **Connect an existing store product**.
        4. Điền thông tin sản phẩm:
        - **Product name**: Tên chỉ hiển thị với bạn trong toàn bộ Adapty dashboard.
        - **Access level ID**: Định danh duy nhất xác định tính năng nào được mở khóa sau khi mua. Nếu tất cả người dùng trả phí trong ứng dụng của bạn đều truy cập vào các tính năng giống nhau, bạn có thể sử dụng mức độ truy cập mặc định: `premium`. Với các thiết lập phức tạp hơn, hãy tạo thêm [mức độ truy cập](access-level).
        - **Subscription duration**: Chọn thời hạn của gói đăng ký từ danh sách.
        - **Weekly/Monthly/2 Months/3 Months/6 Months/Annual**: Thời hạn gói đăng ký.
        - **Lifetime**: Sử dụng thời hạn trọn đời cho các sản phẩm mở khóa tính năng cao cấp của ứng dụng mãi mãi.
        - **Non-Subscriptions**: Đối với các sản phẩm không phải gói đăng ký và do đó không có thời hạn, hãy sử dụng non-subscriptions. Chúng có thể được dùng để mở khóa tính năng bổ sung, sản phẩm consumable, v.v.
        - **Consumables**: Các mặt hàng consumable có thể được mua nhiều lần. Chúng có thể được sử dụng hết trong vòng đời của ứng dụng. Ví dụ là tiền tệ trong game và các vật phẩm thêm. Lưu ý rằng sản phẩm consumable không ảnh hưởng đến mức độ truy cập.
        - **Price (USD)**: Giá sản phẩm bằng USD. Nếu sản phẩm của bạn đã có trong cửa hàng, giá trị này sẽ không ảnh hưởng đến giá thực tế trong cửa hàng; bạn có thể chọn bất kỳ giá trị nào từ danh sách. Sau đó, bạn có thể [tùy chỉnh giá cho từng khu vực](edit-product#set-country-specific-prices) ngay trong Adapty dashboard.

        
            <img src={require('./img/product-info.webp').default}
                 style={{
                     border: '1px solid #727272', /* border width and color */
                     width: '700px', /* image width */
                     display: 'block', /* for alignment */
                     margin: '0 auto' /* center alignment */
                 }}
            />
        

        <br />

        5. Thêm thông tin cửa hàng. Chọn cửa hàng của bạn:

        <Tabs>
            <TabItem value="App Store" label="App Store" default>

                - **App Store Product ID**: Định danh duy nhất dùng để truy cập sản phẩm của bạn trên các thiết bị. Nếu không tìm thấy, hãy đảm bảo ID chính xác và thuộc đúng ứng dụng.

            </TabItem>

            <TabItem value="Google Play" label="Google Play" default>

                - **Google Play Product ID**: Định danh sản phẩm từ Play Store. Chọn từ danh sách các ID sản phẩm hiện có. Nếu không tìm thấy, hãy đảm bảo ID chính xác và thuộc đúng ứng dụng.
                - **Base plan ID**: ID xác định base plan cho sản phẩm trong Play Store.
                - **Legacy fallback product**: Sản phẩm dự phòng này chỉ được dùng cho các ứng dụng sử dụng phiên bản SDK Adapty cũ hơn (phiên bản 2.5 trở xuống). Chỉ định giá trị theo định dạng `<subscription_id>:<base_plan_id>`.

                :::important
                Ưu đãi giới thiệu không tự động đồng bộ với Google Play. Không giống App Store, Google Play không có loại "ưu đãi giới thiệu" riêng — các bản dùng thử miễn phí và ưu đãi giảm giá đều được cấu hình dưới dạng **offers** trên base plan. [Tạo ưu đãi trong Google Play Console và liên kết với sản phẩm Adapty của bạn](google-play-offers).
                :::

                <details>
                    <summary>Nhấn vào đây để biết cách tìm Google Play Product ID và Base plan ID.</summary>

                    1. Vào **Monetize with Play > Products > Subscriptions** trong tài khoản [Google Play Console](https://play.google.com/console/developers/android/app) của bạn.
                    2. Mở **Subscription** cho giao dịch mua.
                    3. Bạn sẽ thấy Product ID trong phần **Subscription details** và Base plan ID trong cột **ID and duration** của phần **Base plans and offers**.

                    
                        <img src={require('./img/play-store-id.png').default}
                             style={{
                                 border: '1px solid #727272', /* border width and color */
                                 width: '700px', /* image width */
                                 display: 'block', /* for alignment */
                                 margin: '0 auto' /* center alignment */
                             }}
                        />
                    

                </details>

            </TabItem>

            <TabItem value="Stripe" label="Stripe" default>

                - **Stripe Product ID**: Định danh sản phẩm duy nhất từ Stripe.
                - **Stripe Price ID**: Định danh duy nhất từ Stripe cho mức giá liên kết với sản phẩm.

                <details>
                    <summary>Nhấn vào đây để biết cách tìm Stripe Product ID và Price ID.</summary>

                    1. Vào [Product Catalog](https://dashboard.stripe.com/products?active=true) trong Stripe của bạn.
                    2. Mở sản phẩm bạn cần.
                    3. Bạn sẽ thấy:
                    - Stripe Product ID (có dạng `prod_...`) ở góc trên bên phải.
                    - Stripe Price ID (có dạng `price_...`) trong cột **API ID** của phần **Pricing**.

                    
                        <img src={require('./img/product-stripe.png').default}
                             style={{
                                 border: '1px solid #727272', /* border width and color */
                                 width: '700px', /* image width */
                                 display: 'block', /* for alignment */
                                 margin: '0 auto' /* center alignment */
                             }}
                        />
                    

                </details>

            </TabItem>

            <TabItem value="Paddle" label="Paddle" default>

                - **Paddle Product ID**: Định danh sản phẩm duy nhất từ Paddle.
                - **Paddle Price ID**: Định danh duy nhất từ Paddle cho mức giá liên kết với sản phẩm.

                <details>
                    <summary>Nhấn vào đây để biết cách tìm Paddle Product ID và Price ID.</summary>

                    1. Vào [Product Catalog](https://vendors.paddle.com/products-v2) trong Paddle của bạn.
                    2. Mở sản phẩm bạn cần.
                    3. Bạn sẽ thấy:
                    - Paddle Product ID (có dạng `pro_...`) trong phần **Additional details**.
                    - Paddle Price ID (có dạng `pri_...`) trong cột **ID** của phần **Prices**.

                    
                        <img src={require('./img/paddle-product-price.webp').default}
                             style={{
                                 border: 'none', /* border width and color */
                                 width: '700px', /* image width */
                                 display: 'block', /* for alignment */
                                 margin: '0 auto' /* center alignment */
                             }}
                        />
                    

                </details>

            </TabItem>

            <TabItem value="Custom" label="Custom store" default>

                Bạn có thể chọn một cửa hàng tùy chỉnh hiện có hoặc thêm mới và liên kết sản phẩm với nó.

Lưu ý rằng Adapty chỉ theo dõi các giao dịch từ App Store, Google Play và Stripe. Đối với cửa hàng tùy chỉnh, bạn cần gửi giao dịch bằng Adapty server-side API [Set transaction method](api-adapty/operations/setTransaction).

            </TabItem>

        </Tabs>

        6. Bạn có thể [tạo ưu đãi](create-offer) cho sản phẩm nếu cần. Để thêm ưu đãi, nhấn **Yes, add offers**. Nếu không, nhấn **No, thanks**.

        Sản phẩm của bạn sẽ xuất hiện trong danh sách sản phẩm.

        
            <img src={require('./img/created-product.png').default}
                 style={{
                     border: '1px solid #727272', /* border width and color */
                     width: '700px', /* image width */
                     display: 'block', /* for alignment */
                     margin: '0 auto' /* center alignment */
                 }}
            />
        

    </TabItem>
</Tabs>

## Các bước tiếp theo \{#next-steps\}

Sau khi đã thêm sản phẩm vào Adapty, bạn có thể tiến hành [thiết lập paywall](quickstart-paywalls) vì đây là cách duy nhất để bắt đầu bán chúng.