मुख्य सामग्री पर जाएं
सदस्यताएँ आपको स्वचालित नवीनीकरण के साथ निरंतर पहुंच बेचने देती हैं। प्रत्येक ग्राहक के लिए मूल्य निर्धारण को अनुकूलित करने के लिए लचीले बिलिंग चक्र, मुफ्त परीक्षण, योजना परिवर्तन और ऐड-ऑन का उपयोग करें।

सदस्यताएँ क्या हैं?

सदस्यताएँ आवर्ती उत्पाद हैं जिन्हें ग्राहक एक कार्यक्रम पर खरीदते हैं। ये निम्नलिखित के लिए आदर्श हैं:
  • SaaS लाइसेंस: ऐप्स, APIs, या प्लेटफ़ॉर्म पहुंच
  • सदस्यताएँ: समुदाय, कार्यक्रम, या क्लब
  • डिजिटल सामग्री: पाठ्यक्रम, मीडिया, या प्रीमियम सामग्री
  • समर्थन योजनाएँ: SLA, सफलता पैकेज, या रखरखाव

प्रमुख लाभ

  • पूर्वानुमानित राजस्व: स्वचालित नवीनीकरण के साथ आवर्ती बिलिंग
  • लचीले चक्र: मासिक, वार्षिक, कस्टम अंतराल, और परीक्षण
  • योजना चपलता: अपग्रेड और डाउनग्रेड के लिए प्रोरशन
  • ऐड-ऑन और सीटें: वैकल्पिक, मात्रात्मक अपग्रेड संलग्न करें
  • सहज चेकआउट: होस्टेड चेकआउट और ग्राहक पोर्टल
  • डेवलपर-प्रथम: निर्माण, परिवर्तन, और उपयोग ट्रैकिंग के लिए स्पष्ट APIs

सदस्यताएँ बनाना

अपने डोडो पेमेंट्स डैशबोर्ड में सदस्यता उत्पाद बनाएं, फिर उन्हें चेकआउट या अपने API के माध्यम से बेचें। सक्रिय सदस्यताओं से उत्पादों को अलग करना आपको मूल्य निर्धारण को संस्करणित करने, ऐड-ऑन संलग्न करने, और प्रदर्शन को स्वतंत्र रूप से ट्रैक करने की अनुमति देता है।

सदस्यता उत्पाद निर्माण

डैशबोर्ड में फ़ील्ड कॉन्फ़िगर करें ताकि यह परिभाषित किया जा सके कि आपकी सदस्यता कैसे बेची जाती है, नवीनीकरण होती है, और बिल की जाती है। नीचे के अनुभाग सीधे निर्माण फ़ॉर्म में जो आप देखते हैं, से मेल खाते हैं।

उत्पाद विवरण

  • उत्पाद नाम (आवश्यक): चेकआउट, ग्राहक पोर्टल, और चालानों में प्रदर्शित नाम।
  • उत्पाद विवरण (आवश्यक): एक स्पष्ट मूल्य वक्तव्य जो चेकआउट और चालानों में दिखाई देता है।
  • उत्पाद छवि (आवश्यक): PNG/JPG/WebP 3 MB तक। चेकआउट और चालानों पर उपयोग किया जाता है।
  • ब्रांड: थीमिंग और ईमेल के लिए उत्पाद को एक विशिष्ट ब्रांड से जोड़ें।
  • कर श्रेणी (आवश्यक): कर नियम निर्धारित करने के लिए श्रेणी चुनें (उदाहरण के लिए, SaaS)।
सुनिश्चित करें कि सही कर संग्रह के लिए सबसे सटीक कर श्रेणी का चयन करें।

मूल्य निर्धारण

  • मूल्य निर्धारण प्रकार: सदस्यता (यह गाइड)। विकल्प एकल भुगतान और उपयोग आधारित बिलिंग हैं।
  • मूल्य (आवश्यक): मुद्रा के साथ आधार आवर्ती मूल्य।
  • छूट लागू (%): आधार मूल्य पर लागू वैकल्पिक प्रतिशत छूट; चेकआउट और चालानों में दर्शाई गई।
  • हर बार पुनरावृत्ति भुगतान (आवश्यक): नवीनीकरण के लिए अंतराल, जैसे, हर 1 माह। ताल (महीने या वर्ष) और मात्रा चुनें।
  • सदस्यता अवधि (आवश्यक): कुल अवधि जिसके लिए सदस्यता सक्रिय रहती है (जैसे, 10 वर्ष)। इस अवधि के समाप्त होने के बाद, नवीनीकरण रुक जाते हैं जब तक कि इसे बढ़ाया न जाए।
  • परीक्षण अवधि दिन (आवश्यक): दिनों में परीक्षण की लंबाई सेट करें। परीक्षणों को अक्षम करने के लिए 0 का उपयोग करें। पहली चार्ज स्वचालित रूप से तब होती है जब परीक्षण समाप्त होता है।
  • ऐड-ऑन चुनें: आधार योजना के साथ खरीदने के लिए 3 तक के ऐड-ऑन संलग्न करें।
एक सक्रिय उत्पाद पर मूल्य परिवर्तन नए खरीद पर प्रभाव डालता है। मौजूदा सदस्यताएँ आपकी योजना-परिवर्तन और प्रोरशन सेटिंग्स का पालन करती हैं।
ऐड-ऑन ऐसे मात्रात्मक अतिरिक्त के लिए आदर्श हैं जैसे सीटें या भंडारण। आप ग्राहकों द्वारा उन्हें बदलने पर अनुमत मात्राओं और प्रोरशन व्यवहार को नियंत्रित कर सकते हैं।

उन्नत सेटिंग्स

  • कर समावेशी मूल्य निर्धारण: लागू करों सहित मूल्य प्रदर्शित करें। अंतिम कर गणना अभी भी ग्राहक के स्थान के अनुसार भिन्न होती है।
  • लाइसेंस कुंजी उत्पन्न करें: प्रत्येक ग्राहक को खरीद के बाद एक अद्वितीय कुंजी जारी करें। लाइसेंस कुंजी गाइड देखें।
  • डिजिटल उत्पाद वितरण: खरीद के बाद फ़ाइलें या सामग्री स्वचालित रूप से वितरित करें। डिजिटल उत्पाद वितरण में और जानें।
  • मेटाडेटा: आंतरिक टैगिंग या क्लाइंट एकीकरण के लिए कस्टम कुंजी-मूल्य जोड़े। मेटाडेटा देखें।
अपने सिस्टम से पहचानकर्ताओं (जैसे, accountId) को स्टोर करने के लिए मेटाडेटा का उपयोग करें ताकि आप बाद में घटनाओं और चालानों का मिलान कर सकें।

सदस्यता परीक्षण

परीक्षण ग्राहकों को बिना तत्काल भुगतान के सदस्यताओं तक पहुंच प्रदान करते हैं। पहली चार्ज स्वचालित रूप से तब होती है जब परीक्षण समाप्त होता है।

परीक्षण कॉन्फ़िगर करना

उत्पाद मूल्य निर्धारण अनुभाग में परीक्षण अवधि दिन सेट करें (अक्षम करने के लिए 0 का उपयोग करें)। आप सदस्यताएँ बनाते समय इसे ओवरराइड कर सकते हैं:
// Via subscription creation
const subscription = await client.subscriptions.create({
  customer_id: 'cus_123',
  product_id: 'prod_monthly',
  trial_period_days: 14  // Overrides product's trial period
});

// Via checkout session
const session = await client.checkoutSessions.create({
  product_cart: [{ product_id: 'prod_monthly', quantity: 1 }],
  subscription_data: { trial_period_days: 14 }
});
trial_period_days मान 0 और 10,000 दिनों के बीच होना चाहिए।

परीक्षण स्थिति का पता लगाना

वर्तमान में, परीक्षण स्थिति का पता लगाने के लिए कोई सीधा फ़ील्ड नहीं है। निम्नलिखित एक वर्कअराउंड है जिसे भुगतान को क्वेरी करने की आवश्यकता है, जो अप्रभावी है। हम एक अधिक प्रभावी समाधान पर काम कर रहे हैं।
यह निर्धारित करने के लिए कि क्या सदस्यता परीक्षण में है, सदस्यता के लिए भुगतान की सूची प्राप्त करें। यदि एक ही भुगतान है जिसकी राशि 0 है, तो सदस्यता परीक्षण अवधि में है:
const subscription = await client.subscriptions.retrieve('sub_123');
const payments = await client.payments.list({
  subscription_id: subscription.subscription_id
});

// Check if subscription is in trial
const isInTrial = payments.items.length === 1 && 
                  payments.items[0].total_amount === 0;

परीक्षण अवधि को अपडेट करना

next_billing_date को अपडेट करके परीक्षण को बढ़ाएँ:
await client.subscriptions.update('sub_123', {
  next_billing_date: '2025-02-15T00:00:00Z'  // New trial end date
});
आप next_billing_date को अतीत के समय पर सेट नहीं कर सकते। तारीख भविष्य में होनी चाहिए।

सदस्यता योजना परिवर्तन

योजना परिवर्तन आपको सदस्यताओं को अपग्रेड या डाउनग्रेड करने, मात्राएँ समायोजित करने, या विभिन्न उत्पादों में माइग्रेट करने की अनुमति देते हैं। प्रत्येक परिवर्तन आपके द्वारा चुने गए प्रोरशन मोड के आधार पर तत्काल शुल्क को ट्रिगर करता है।

प्रोरशन मोड

योजनाओं को बदलते समय ग्राहकों को कैसे बिल किया जाता है, यह चुनें:

prorated_immediately

शुल्क वर्तमान बिलिंग चक्र में शेष समय के आधार पर प्रोरटेड राशि।unused समय के लिए उचित बिलिंग के लिए सबसे अच्छा।
await client.subscriptions.changePlan('sub_123', {
  product_id: 'prod_pro',
  quantity: 1,
  proration_billing_mode: 'prorated_immediately'
});

difference_immediately

तुरंत मूल्य अंतर (अपग्रेड) या भविष्य के नवीनीकरण के लिए क्रेडिट जोड़ता है (डाउनग्रेड)। सरल अपग्रेड/डाउनग्रेड परिदृश्यों के लिए सबसे अच्छा।
// Upgrade: charges $50 (difference between $30 and $80)
// Downgrade: credits remaining value, auto-applied to renewals
await client.subscriptions.changePlan('sub_123', {
  product_id: 'prod_pro',
  quantity: 1,
  proration_billing_mode: 'difference_immediately'
});
difference_immediately का उपयोग करके डाउनग्रेड से प्राप्त क्रेडिट सदस्यता-स्कोप वाले होते हैं और भविष्य के नवीनीकरण पर स्वचालित रूप से लागू होते हैं। ये ग्राहक क्रेडिट से भिन्न हैं।

full_immediately

पूर्ण नए योजना की राशि तुरंत चार्ज करता है, शेष समय की अनदेखी करता है। बिलिंग चक्रों को रीसेट करने के लिए सबसे अच्छा।
await client.subscriptions.changePlan('sub_123', {
  product_id: 'prod_monthly',
  quantity: 1,
  proration_billing_mode: 'full_immediately'
});

ऐड-ऑन के साथ योजनाएँ बदलना

योजनाओं को बदलते समय ऐड-ऑन को संशोधित करें। ऐड-ऑन प्रोरशन गणनाओं में शामिल होते हैं:
await client.subscriptions.changePlan('sub_123', {
  product_id: 'prod_pro',
  quantity: 1,
  proration_billing_mode: 'difference_immediately',
  addons: [{ addon_id: 'addon_extra_seats', quantity: 2 }]  // Add add-ons
  // addons: []  // Empty array removes all existing add-ons
});
योजना परिवर्तन तत्काल शुल्क को ट्रिगर करते हैं। असफल शुल्क सदस्यता को on_hold स्थिति में ले जा सकते हैं। subscription.plan_changed वेबहुक घटनाओं के माध्यम से परिवर्तनों को ट्रैक करें।

योजना परिवर्तनों का पूर्वावलोकन

योजना परिवर्तन के लिए प्रतिबद्ध होने से पहले, सटीक शुल्क और परिणामस्वरूप सदस्यता का पूर्वावलोकन करें:
const preview = await client.subscriptions.previewChangePlan('sub_123', {
  product_id: 'prod_pro',
  quantity: 1,
  proration_billing_mode: 'prorated_immediately'
});

// Show customer the charge before confirming
console.log('You will be charged:', preview.immediate_charge.summary);

योजना परिवर्तन पूर्वावलोकन API

योजना परिवर्तनों का पूर्वावलोकन करें इससे पहले कि आप उन्हें प्रतिबद्ध करें।

सदस्यता राज्य

सदस्यताएँ उनके जीवन चक्र के दौरान विभिन्न राज्यों में हो सकती हैं:
  • active: सदस्यता सक्रिय है और स्वचालित रूप से नवीनीकरण होगा
  • on_hold: सदस्यता असफल भुगतान के कारण निलंबित है। पुनः सक्रिय करने के लिए भुगतान विधि अपडेट की आवश्यकता है
  • cancelled: सदस्यता रद्द कर दी गई है और नवीनीकरण नहीं होगा
  • expired: सदस्यता ने अपनी समाप्ति तिथि तक पहुँच गई है
  • pending: सदस्यता बनाई जा रही है या संसाधित की जा रही है

होल्ड स्थिति

एक सदस्यता on_hold स्थिति में प्रवेश करती है जब:
  • एक नवीनीकरण भुगतान विफल होता है (अपर्याप्त धन, समाप्त कार्ड, आदि)
  • एक योजना परिवर्तन शुल्क विफल होता है
  • भुगतान विधि प्राधिकरण विफल होता है
जब एक सदस्यता on_hold स्थिति में होती है, तो यह स्वचालित रूप से नवीनीकरण नहीं होगा। आपको सदस्यता को पुनः सक्रिय करने के लिए भुगतान विधि को अपडेट करना होगा।

होल्ड से पुनः सक्रिय करना

on_hold स्थिति से सदस्यता को पुनः सक्रिय करने के लिए, भुगतान विधि को अपडेट करें। यह स्वचालित रूप से:
  1. शेष बकाया के लिए एक शुल्क बनाता है
  2. एक चालान उत्पन्न करता है
  3. नए भुगतान विधि का उपयोग करके भुगतान संसाधित करता है
  4. सफल भुगतान पर सदस्यता को active स्थिति में पुनः सक्रिय करता है
// Reactivate subscription from on_hold
const response = await client.subscriptions.updatePaymentMethod('sub_123', {
  type: 'new',
  return_url: 'https://example.com/return'
});

// For on_hold subscriptions, a charge is automatically created
if (response.payment_id) {
  console.log('Charge created:', response.payment_id);
  // Redirect customer to response.payment_link to complete payment
  // Monitor webhooks for payment.succeeded and subscription.active
}
on_hold सदस्यता के लिए भुगतान विधि को सफलतापूर्वक अपडेट करने के बाद, आपको payment.succeeded के बाद subscription.active वेबहुक घटनाएँ प्राप्त होंगी।

API प्रबंधन

POST /subscriptions का उपयोग करके उत्पादों से प्रोग्रामेटिक रूप से सदस्यताएँ बनाएं, वैकल्पिक परीक्षणों और ऐड-ऑन के साथ।

API संदर्भ

सदस्यता बनाने के API को देखें।
PATCH /subscriptions/{id} का उपयोग करके मात्राएँ अपडेट करें, अवधि के अंत में रद्द करें, या मेटाडेटा को संशोधित करें।

API संदर्भ

सदस्यता विवरण अपडेट करने के तरीके के बारे में जानें।
प्रोरशन नियंत्रण के साथ सक्रिय उत्पाद और मात्राएँ बदलें।

API संदर्भ

योजना परिवर्तन विकल्पों की समीक्षा करें।
डिमांड पर सदस्यताओं के लिए, विशिष्ट राशि पर मांग पर शुल्क लें।

API संदर्भ

डिमांड पर सदस्यता पर शुल्क लें।
GET /subscriptions का उपयोग करके सभी सदस्यताओं की सूची बनाएं और GET /subscriptions/{id} को पुनः प्राप्त करें।

API संदर्भ

सूची और पुनः प्राप्त करने वाले APIs ब्राउज़ करें।
मापी गई या हाइब्रिड मूल्य निर्धारण मॉडलों के लिए रिकॉर्ड किए गए उपयोग को लाएँ।

API संदर्भ

उपयोग इतिहास API देखें।
एक सदस्यता के लिए भुगतान विधि को अपडेट करें। सक्रिय सदस्यताओं के लिए, यह भविष्य के नवीनीकरण के लिए भुगतान विधि को अपडेट करता है। on_hold स्थिति में सदस्यताओं के लिए, यह शेष बकाया के लिए शुल्क बनाकर सदस्यता को पुनः सक्रिय करता है।

API संदर्भ

भुगतान विधियों को अपडेट करने और सदस्यताओं को पुनः सक्रिय करने के तरीके के बारे में जानें।

सामान्य उपयोग के मामले

  • SaaS और APIs: सीटों या उपयोग के लिए ऐड-ऑन के साथ स्तरित पहुंच
  • सामग्री और मीडिया: परिचयात्मक परीक्षणों के साथ मासिक पहुंच
  • B2B समर्थन योजनाएँ: प्रीमियम समर्थन ऐड-ऑन के साथ वार्षिक अनुबंध
  • उपकरण और प्लगइन्स: लाइसेंस कुंजी और संस्करणित रिलीज़

एकीकरण उदाहरण

चेकआउट सत्र (सदस्यताएँ)

चेकआउट सत्र बनाते समय, अपनी सदस्यता उत्पाद और वैकल्पिक ऐड-ऑन शामिल करें:
const session = await client.checkoutSessions.create({
  product_cart: [
    {
      product_id: 'prod_subscription',
      quantity: 1
    }
  ]
});

प्रोरशन के साथ योजना परिवर्तन

एक सदस्यता को अपग्रेड या डाउनग्रेड करें और प्रोरशन व्यवहार को नियंत्रित करें:
await client.subscriptions.changePlan('sub_123', {
  product_id: 'prod_new',
  quantity: 1,
  proration_billing_mode: 'difference_immediately'
});

अवधि के अंत में रद्द करें

एक रद्दीकरण को शेड्यूल करें बिना पहुंच के तत्काल समाप्ति:
await client.subscriptions.update('sub_123', {
  cancel_at_period_end: true
});

डिमांड पर सदस्यताएँ

एक डिमांड पर सदस्यता बनाएं और आवश्यकता अनुसार बाद में शुल्क लें:
const onDemand = await client.subscriptions.create({
  customer_id: 'cus_123',
  product_id: 'prod_on_demand',
  on_demand: true
});

await client.subscriptions.createCharge(onDemand.id, {
  amount: 4900,
  currency: 'USD',
  description: 'Extra usage for September'
});

सक्रिय सदस्यता के लिए भुगतान विधि अपडेट करें

एक सक्रिय सदस्यता के लिए भुगतान विधि को अपडेट करें:
// Update with new payment method
const response = await client.subscriptions.updatePaymentMethod('sub_123', {
  type: 'new',
  return_url: 'https://example.com/return'
});

// Or use existing payment method
await client.subscriptions.updatePaymentMethod('sub_123', {
  type: 'existing',
  payment_method_id: 'pm_abc123'
});

होल्ड से सदस्यता पुनः सक्रिय करें

एक सदस्यता को पुनः सक्रिय करें जो असफल भुगतान के कारण होल्ड पर चली गई थी:
// Update payment method - automatically creates charge for remaining dues
const response = await client.subscriptions.updatePaymentMethod('sub_123', {
  type: 'new',
  return_url: 'https://example.com/return'
});

if (response.payment_id) {
  // Charge created for remaining dues
  // Redirect customer to response.payment_link
  // Monitor webhooks: payment.succeeded → subscription.active
}

RBI-अनुरूप जनादेश के साथ सदस्यताएँ

UPI और भारतीय कार्ड सदस्यताएँ RBI (भारतीय रिजर्व बैंक) नियमों के तहत विशिष्ट जनादेश आवश्यकताओं के साथ संचालित होती हैं:

जनादेश सीमाएँ

जनादेश प्रकार और राशि आपकी सदस्यता के आवर्ती शुल्क पर निर्भर करती है:
  • रु 15,000 से कम शुल्क: हम रु 15,000 INR के लिए एक डिमांड जनादेश बनाते हैं। सदस्यता राशि आपकी सदस्यता आवृत्ति के अनुसार समय-समय पर चार्ज की जाती है, जनादेश सीमा तक।
  • रु 15,000 या उससे अधिक शुल्क: हम सटीक सदस्यता राशि के लिए एक सदस्यता जनादेश (या डिमांड जनादेश) बनाते हैं।

अपग्रेड और डाउनग्रेड पर विचार

महत्वपूर्ण: सदस्यताओं को अपग्रेड या डाउनग्रेड करते समय, जनादेश सीमाओं पर ध्यान से विचार करें:
  • यदि एक अपग्रेड/डाउनग्रेड का परिणाम एक शुल्क राशि में होता है जो रु 15,000 से अधिक है और मौजूदा डिमांड भुगतान सीमा से परे है, तो लेनदेन शुल्क विफल हो सकता है।
  • ऐसे मामलों में, ग्राहक को अपनी भुगतान विधि को अपडेट करने या सही सीमा के साथ नए जनादेश को स्थापित करने के लिए सदस्यता को फिर से बदलने की आवश्यकता हो सकती है।

उच्च-मूल्य शुल्क के लिए प्राधिकरण

रु 15,000 या उससे अधिक के सदस्यता शुल्क के लिए:
  • ग्राहक को लेनदेन को अधिकृत करने के लिए अपने बैंक द्वारा प्रेरित किया जाएगा।
  • यदि ग्राहक लेनदेन को अधिकृत करने में विफल रहता है, तो लेनदेन विफल हो जाएगा और सदस्यता होल्ड पर रखी जाएगी।

48-घंटे की प्रसंस्करण देरी

प्रसंस्करण समयरेखा: भारतीय कार्ड और UPI सदस्यताओं पर आवर्ती शुल्क एक अद्वितीय प्रसंस्करण पैटर्न का पालन करते हैं:
  • शुल्क आपकी सदस्यता आवृत्ति के अनुसार निर्धारित तिथि पर आरंभ होते हैं।
  • ग्राहक के खाते से वास्तविक कटौती केवल भुगतान आरंभ होने के 48 घंटे बाद होती है।
  • यह 48-घंटे की विंडो बैंक API प्रतिक्रियाओं के आधार पर 2-3 अतिरिक्त घंटे तक बढ़ सकती है।

जनादेश रद्दीकरण विंडो

48-घंटे की प्रसंस्करण विंडो के दौरान:
  • ग्राहक अपने बैंकिंग ऐप के माध्यम से जनादेश रद्द कर सकते हैं।
  • यदि ग्राहक इस अवधि के दौरान जनादेश रद्द करता है, तो सदस्यता सक्रिय रहेगी (यह भारतीय कार्ड और UPI ऑटो-पे सदस्यताओं के लिए विशिष्ट एक किनारे का मामला है)।
  • हालाँकि, वास्तविक कटौती विफल हो सकती है, और उस मामले में, हम सदस्यता को होल्ड पर रख देंगे।
किनारे के मामले का प्रबंधन: यदि आप शुल्क आरंभ होने पर ग्राहकों को लाभ, क्रेडिट, या सदस्यता उपयोग तुरंत प्रदान करते हैं, तो आपको अपने आवेदन में इस 48-घंटे की विंडो को उचित रूप से संभालना होगा। विचार करें:
  • भुगतान पुष्टि तक लाभ सक्रियण में देरी करना
  • अनुग्रह अवधि या अस्थायी पहुंच लागू करना
  • जनादेश रद्दीकरण के लिए सदस्यता स्थिति की निगरानी करना
  • अपने आवेदन लॉजिक में सदस्यता होल्ड राज्यों को संभालना
भुगतान स्थिति परिवर्तनों को ट्रैक करने और 48-घंटे की विंडो के दौरान जनादेश रद्द होने के किनारे के मामलों को संभालने के लिए सदस्यता वेबहुक की निगरानी करें।

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

  • स्पष्ट स्तरों के साथ शुरू करें: 2–3 योजनाएँ जिनमें स्पष्ट अंतर हो
  • मूल्य निर्धारण संप्रेषित करें: कुल, प्रोरशन, और अगली नवीनीकरण दिखाएँ
  • परीक्षणों का विवेकपूर्ण उपयोग करें: ऑनबोर्डिंग के साथ परिवर्तित करें, केवल समय नहीं
  • ऐड-ऑन का लाभ उठाएँ: आधार योजनाओं को सरल रखें और अतिरिक्त बेचें
  • परिवर्तनों का परीक्षण करें: परीक्षण मोड में योजना परिवर्तनों और प्रोरशन को मान्य करें
सदस्यताएँ आवर्ती राजस्व के लिए एक लचीला आधार हैं। सरल शुरुआत करें, पूरी तरह से परीक्षण करें, और अपनाने, चुराने, और विस्तार मेट्रिक्स के आधार पर पुनरावृत्ति करें।