> ## Documentation Index
> Fetch the complete documentation index at: https://docs.dodopayments.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Products

> Create one-time, subscription, or usage-based products in minutes. Manage pricing, media, fields, and automated entitlements - all in one place.

<Info>
  Products are the foundation of Dodo Payments. Whether you sell a one‑time download, a recurring subscription, or usage‑based access, you start by creating a product. Each product defines how it’s priced, presented at checkout, and fulfilled after purchase.
</Info>

<CardGroup cols={3}>
  <Card title="One‑Time" icon="credit-card" href="/features/one-time-payment-products">
    Charge once for lifetime access or a single deliverable.
  </Card>

  <Card title="Subscriptions" icon="repeat" href="/features/subscription">
    Bill on a schedule with trials, proration, and add‑ons.
  </Card>

  <Card title="Usage‑Based" icon="arrow-trend-up" href="/features/usage-based-billing/introduction">
    मीटर खपत और बिल वास्तविक उपयोग के अनुसार।
  </Card>
</CardGroup>

## Create a product

You can create products from the dashboard or via API. Choose the pricing model up‑front, One‑Time, Subscription, or Usage‑Based and then configure details. The pricing model can’t be changed later; create a new product if you need a different model.

<Steps>
  <Step title="Name & description">
    Provide a clear title and a concise value‑oriented description. Markdown is supported in descriptions.

    <Tip>
      Keep the first sentence customer‑facing and outcome‑oriented; it appears prominently in checkout.
    </Tip>

    <Frame>
      <img src="https://mintcdn.com/dodopayments/r-ndtvzx3WhKqwER/images/products.png?fit=max&auto=format&n=r-ndtvzx3WhKqwER&q=85&s=fb41221c4f2af4de0155e71de1ac6904" alt="प्रोडक्ट्स" style={{ maxHeight: '500px', width: 'auto' }} width="1911" height="927" data-path="images/products.png" />
    </Frame>
  </Step>

  <Step title="Pricing model & price">
    Select the pricing model:

    * **One‑Time**: Fixed price paid once.
    * **Subscription**: Recurring price with interval and optional trial.
    * **Usage‑Based**: Price derived from metered events.

    Then set pricing:

    * **मूल्य**: आधार राशि और मुद्रा।
    * **छूट (%)**: चेकआउट और इनवॉइस में दिखाई देने वाली वैकल्पिक इनलाइन छूट।
    * सब्सक्रिप्शन के लिए, **हर बार दोहराएं** सेट करें (जैसे, 1 महीना या 1 वर्ष) और आवश्यक हो तो **परीक्षण दिन**। सब्सक्रिप्शन मूल्य कम से कम **\$1** (या आपकी चुनी गई मुद्रा के समकक्ष) होना चाहिए; इस न्यूनतम से नीचे की राशि समर्थित नहीं है और सब्सक्रिप्शन काम नहीं करेगा।

    <Tip>
      क्या आप एक निश्चित मुद्रा या देश की कीमत चाहते हैं बजाय कि लाइव FX रूपांतरण के? उत्पाद पर एक `pricing_mode` सेट करें और [Localized Pricing](/features/localized-pricing) नियम संलग्न करें — जैसे कि €9.99 यूरो में या ₹999 भारत में।
    </Tip>

    <Warning>
      मूल्य बदलने से केवल नई खरीदारी पर प्रभाव पड़ता है। मौजूदा सदस्यता योजना‑बदलाव नियमों का पालन करती है।
    </Warning>
  </Step>

  <Step title="Product media">
    उत्पाद को चेकआउट और इनवॉइस पर प्रदर्शित करने के लिए छवियाँ अपलोड करें। 3 एमबी तक के PNG/JPG/WebP समर्थित हैं। कभी भी पुनः क्रमित करें या प्रतिस्थापित करें।
  </Step>

  <Step title="Automated entitlements (Under Advanced Settings)">
    स्वतः भुगतान के बाद सक्रिय होने वाली पूर्ति संलग्न करें:

    * **लाइसेंस कुंजियाँ**: अद्वितीय कुंजियों को जारी करें और मान्य करें
    * **फाइल डाउनलोड्स**: सुरक्षित फाइल पहुँच प्रदान करें
    * **कस्टम**: वेबहुक्स के माध्यम से अपने स्वयं के अधिकारिक तर्क को ट्रिगर करें

    जैसे-जैसे आपका प्रस्ताव विकसित होता है, लाभ जोड़ें या हटाएं। मौजूदा ग्राहक उस अनुसार पहुँच प्राप्त करते हैं या खो देते हैं।
  </Step>
</Steps>

## वैरिएंट्स और मूल्य निर्धारण विकल्प

एक उत्पाद के तहत वैरिएंट्स के बजाय, प्रत्येक मूल्य निर्धारण विकल्प के लिए अलग-अलग उत्पाद बनाएँ (उदाहरण के लिए, मासिक और वार्षिक)। फिर उन्हें एक **उत्पाद संग्रह** में समूहित करें ताकि सभी विकल्पों को एकल चेकआउट में प्रदर्शित किया जा सके और ग्राहक पोर्टल में योजना स्विच करने को सक्षम किया जा सके।

<Frame>
  <img src="https://mintcdn.com/dodopayments/2YrxTqbaYgAm54C_/images/product-collection/checkout-page.png?fit=max&auto=format&n=2YrxTqbaYgAm54C_&q=85&s=1890932384bc32c8126c7993f3581855" alt="उत्पाद संग्रह" style={{ maxHeight: '500px', width: 'auto' }} width="1440" height="960" data-path="images/product-collection/checkout-page.png" />
</Frame>

### यह दृष्टिकोण क्यों?

* **स्पष्ट मूल्य निर्धारण मॉडल**: प्रत्येक उत्पाद का एकल, स्पष्ट रूप से परिभाषित मूल्य निर्धारण मॉडल होता है (एक बार, सदस्यता, या उपयोग पर आधारित)
* **पूर्वानुमेय API**: सरल एकीकरण बिना नेस्टेड वैरिएंट तर्क के
* **आसान रिपोर्टिंग**: उत्पाद प्रति राजस्व और मीट्रिक्स को ट्रैक करें बिना वैरिएंट एकत्रीकरण के
* **लचीला चेकआउट**: ग्राहकों को तुलना करने और चुनने के लिए साइड-बाय-साइड में बहु उत्पाद प्रदर्शित करें

### उत्पाद संग्रह कैसे काम करते हैं

1. **उत्पाद बनाएं**: प्रत्येक प्लान के लिए व्यक्तिगत उत्पाद सेट करें ( उदाहरण के लिए, स्टार्टर मासिक, स्टार्टर वार्षिक, प्रो मासिक, प्रो वार्षिक)
2. **संग्रह में समूहित करें**: संबंधित उत्पादों को एक उत्पाद संग्रह में जोड़ें
3. **यूनिफाइड चेकआउट**: ग्राहक सभी विकल्पों को एक चेकआउट में देखते हैं और अपनी पसंदीदा योजना चुनते हैं
4. **योजना स्विचिंग**: ग्राहक ग्राहक पोर्टल के माध्यम से एक ही संग्रह में उत्पादों के बीच अपग्रेड या डाउनग्रेड कर सकते हैं

<Card title="Product Collections" icon="layer-group" href="/features/product-collections">
  सांझा चेकआउट अनुभव और सहज अपग्रेड/डाउनग्रेड पथों के लिए संबंधित उत्पादों को एक साथ समूहित करें।
</Card>

## उत्पाद प्रबंधन

आप उत्पादों को डैशबोर्ड के माध्यम से या प्रोग्रामेटिकली API के माध्यम से प्रबंधित कर सकते हैं। API उत्पाद निर्माण, अद्यतन, पुनः प्राप्ति, छवि अपलोड और आर्काइविंग पर पूर्ण नियंत्रण प्रदान करता है।

### डैशबोर्ड प्रबंधन

* **अद्यतन**: किसी भी समय नाम, विवरण, छवियाँ, मूल्य, फ़ील्ड और लाभ संपादित करें (मूल्य निर्धारण मॉडल अपरिवर्तनीय है)।
* **आर्काइव**: मौजूदा ग्राहकों को बिना बाधित किए नई खरीद से उत्पाद को छिपाएं। आप बाद में अनआर्काइव कर सकते हैं।

### API प्रबंधन

निम्नलिखित निर्देश आपको उत्पादों को बनाने, अद्यतन करने, प्रबंधित करने और पुनः प्राप्त करने की अनुमति देते हैं, जिसमें चित्र अपलोड करना शामिल है।

<AccordionGroup>
  <Accordion title="Creating a Product">
    एक उत्पाद एक बार की वस्तु या एक सदस्यता आधारित सेवा हो सकता है। एक नया उत्पाद बनाने के लिए, नाम, विवरण, मूल्य, मुद्रा, और यह एक आवर्ती उत्पाद है या नहीं जैसे विवरण के साथ `POST` अनुरोध को `/products` एपीआई असीमांकित बिंदु पर भेजें।

    आवर्ती उत्पादों के लिए, `price` ऑब्जेक्ट को एक आवर्ती मूल्य (`type: recurring_price`) पर सेट करें और उनके संबंधित गणितों के साथ `payment_frequency_interval` और `subscription_period_interval` (`Day`, `Week`, `Month`, या `Year`) निर्दिष्ट करें।

    <Card title="Create Product API" icon="code" href="/api-reference/products/post-products">
      उत्पाद API दस्तावेज़ में विस्तृत अनुरोध और प्रतिक्रिया संरचना देखें।
    </Card>
  </Accordion>

  <Accordion title="Updating a Product">
    मौजूद उत्पाद को संशोधित करने के लिए, `PATCH` अनुरोध को `/products/{product_id}` एपीआई असीमांकित बिंदु पर भेजें। आप नाम, मूल्य, और विवरण जैसे गुण अपडेट कर सकते हैं जबकि अन्य विवरण अपरिवर्तित रहते हैं।

    सुनिश्चित करें कि असीमांकित बिंदु में `product_id` एक मौजूदा उत्पाद से मेल खाता है।

    <Card title="Update Product API" icon="code" href="/api-reference/products/patch-products">
      उत्पाद अद्यतन API दस्तावेज़ में विस्तृत अनुरोध और प्रतिक्रिया संरचना देखें।
    </Card>
  </Accordion>

  <Accordion title="Retrieving Products">
    आप अपने खाते में संग्रहीत उत्पादों की सूची को प्राप्त करने के लिए `GET` अनुरोध को `/products` एपीआई असीमांकित बिंदु पर भेज सकते हैं। यह आपको सक्रिय और संग्रहित उत्पादों सहित उत्पाद विवरण पुनः प्राप्त करने की अनुमति देता है।

    <Card title="Retrieve Products API" icon="code" href="/api-reference/products/get-products">
      उत्पाद पुनः प्राप्त API दस्तावेज़ में विस्तृत अनुरोध और प्रतिक्रिया संरचना देखें।
    </Card>
  </Accordion>

  <Accordion title="Uploading Product Images">
    आप किसी उत्पाद के साथ छवि को एसोसिएट कर सकते हैं उसे AWS S3 पर अपलोड करके जिसका एक प्री-साइन यूआरएल एपीआई द्वारा प्रदान किया जाता है। पहले, `/products/{product_id}/images` एपीआई असीमांकित बिंदु से इमेज अपलोड यूआरएल का अनुरोध करें, फिर प्रदान की गई यूआरएल का उपयोग करें छवि को 60 सेकंड के भीतर अपलोड करने के लिए।

    <Warning>
      प्री-साइन यूआरएल 60 सेकंड में समाप्त हो जाता है, इसलिए छवि को इस समय-सीमा के भीतर अपलोड करना होगा।
    </Warning>

    एपीआई से प्राप्त प्री-साइन URL के साथ, `PUT` विधि का उपयोग करके छवि अपलोड करें। यह छवि अपलोड करने के लिए AWS S3 पर सुरक्षित और अस्थायी पहुँच सुनिश्चित करता है।

    **S3 पर अपलोड के लिए समर्थित पुस्तकालय:**

    * **Node.js**: `axios`, `node-fetch`
    * **Python**: `requests`, `boto3`
    * **Go**: `net/http`
    * **PHP**: `GuzzleHttp`
    * **Ruby**: `rest-client`

    यदि अपलोड सफल होता है, तो AWS S3 एक `200 OK` स्थिति लौटा देगा, जिसका अर्थ है कि छवि सफलतापूर्वक संग्रहीत हो गई है।

    <Card title="Upload Product Image API" icon="code" href="/api-reference/products/put-products-images">
      उत्पाद छवि अपलोड API दस्तावेज़ में विस्तृत अनुरोध और प्रतिक्रिया संरचना देखें।
    </Card>
  </Accordion>

  <Accordion title="Archiving a Product">
    यदि आप किसी उत्पाद को प्रदर्शित करने या उपयोग करने की इच्छा नहीं रखते हैं, तो आप इसे संग्रहित कर सकते हैं एक `DELETE` अनुरोध को `/products/{id}` एपीआई असीमांकित बिंदु पर भेजकर। यह कार्रवाई उत्पाद को छिपा देती है लेकिन इसे स्थायी रूप से हटाती नहीं है।

    <Card title="Archive Product API" icon="code" href="/api-reference/products/archive-product">
      उत्पाद आर्काइव API दस्तावेज़ में विस्तृत अनुरोध और प्रतिक्रिया संरचना देखें।
    </Card>
  </Accordion>

  <Accordion title="Unarchiving a Product">
    यदि आपको एक संग्रहित उत्पाद को पुनर्स्थापित करने की आवश्यकता है, तो `POST` अनुरोध को `/products/{product_id}/unarchive` एपीआई असीमांकित बिंदु पर भेजें। यह उत्पाद को फिर से सक्रिय करेगा और इसे उपयोग के लिए उपलब्ध कर देगा।

    <Card title="Unarchive Product API" icon="code" href="/api-reference/products/unarchive-product">
      उत्पाद अनआर्काइव API दस्तावेज़ में विस्तृत अनुरोध और प्रतिक्रिया संरचना देखें।
    </Card>
  </Accordion>

  <Accordion title="Checkout & fulfillment">
    उत्पादों से भुगतान या सदस्यता प्रवाह बनाएँ, और स्वचालित रूप से लाभों और वेबहुक्स के माध्यम से पूर्ण करें।

    <CardGroup cols={3}>
      <Card title="Checkout Sessions" icon="code" href="/developer-resources/checkout-session">
        एक बार या सदस्यता खरीद के लिए चेकआउट सत्र बनाएं।
      </Card>

      <Card title="Payment Webhooks" icon="code" href="/developer-resources/webhooks/intents/payment">
        भुगतान जीवनचक्र घटनाओं पर प्रतिक्रिया दें।
      </Card>

      <Card title="Subscription Webhooks" icon="code" href="/developer-resources/webhooks/intents/subscription">
        सदस्यता बनाई गई, नवीनीकृत, और रद्द की गई घटनाओं का प्रबंधन करें।
      </Card>
    </CardGroup>
  </Accordion>
</AccordionGroup>

## सर्वोत्तम प्रथाएँ

* **स्पष्टता से शुरू करें**: प्रत्येक मूल्य निर्धारण विकल्प के लिए अलग उत्पाद (मासिक बनाम वार्षिक)
* **ट्रायल को विचारपूर्वक उपयोग करें**: ट्रायल के साथ ऑनबोर्डिंग जोड़ें ताकि एक्टिवेशन को बढ़ावा मिले
* **पूर्ति को स्वचालित करें**: त्वरित वितरण के लिए लाभ और वेबहुक्स का उपयोग करें
* **मेटाडेटा के साथ टैग करें**: अपने सिस्टम आईडी को समायोजन के लिए सहेजें

<Check>
  आप उत्पाद बनाने और बेचने के लिए तैयार हैं - एक बार, आवर्ती, या उपयोग के आधार पर।
</Check>

## संबंधित

<CardGroup cols={2}>
  <Card title="Product Analytics" icon="chart-mixed" href="/features/analytics-and-reporting#product-level-analytics">
    प्रत्येक व्यक्तिगत उत्पाद के लिए राजस्व, ग्राहक, संधारण, सब्सक्राइबर, और MRR को ट्रैक करें।
  </Card>

  <Card title="Localized Pricing" icon="earth-americas" href="/features/localized-pricing">
    लाइव विनिमय दरों पर निर्भर रहने के बजाय किसी उत्पाद पर निश्चित प्रति-मुद्रा या प्रति-देश मूल्य निर्धारित करें।
  </Card>
</CardGroup>
