Skip to content

আমার অ্যাপে Commerce ইন্টিগ্রেট করুন

আপনার অ্যাপ কোড থেকে customer তৈরি করতে, checkout শুরু করতে, feature গেট করতে এবং subscription বাতিল করতে Proyecta SDK ব্যবহার করুন।

একবার Stripe কানেক্ট করে এবং একটি product তৈরি করে নিলে, proyecta.commerce SDK রিসোর্সের মাধ্যমে তোমার অ্যাপে commerce ওয়্যার আপ করতে পারবে। সবচেয়ে সাধারণ চারটি অপারেশন হলো: customer তৈরি করা, checkout শুরু করা, feature অ্যাক্সেস চেক করা এবং subscription বাতিল করা।

import Proyecta from '@proyecta-ai/sdk';
const proyecta = new Proyecta({ apiKey: process.env.PROYECTA_API_KEY });

একটি customer হলো তোমার অ্যাপে বিল করার যোগ্য entity — সাধারণত কোনো user, org বা project। সংশ্লিষ্ট entity তোমার database-এ তৈরি হওয়ার সাথে সাথেই একটি customer তৈরি করো, এবং পরে checkout ও অ্যাক্সেস চেকে রেফার করার জন্য রিটার্ন হওয়া id সেভ করে রাখো।

const customer = await proyecta.commerce.customers.create({
email: 'alice@example.com',
name: 'Alice Liddell',
});
await db.users.update({ id: userId, proyectaCustomerId: customer.id });

তৈরির সময় বা customers.update() এর মাধ্যমে billing address (line1, line2, city, state, postal_code, country) পাস করতে পারবে।

commerce.checkout() একটি Stripe-hosted checkout session তৈরি করে এবং customer-কে রিডাইরেক্ট করার জন্য একটি URL রিটার্ন করে। পেমেন্টের পর Stripe customer-কে তোমার success_url-এ রিডাইরেক্ট করবে।

const { url } = await proyecta.commerce.checkout({
customer_id: customer.id,
line_items: [{ variant_id: 'var_pro_monthly', quantity: 1 }],
success_url: 'https://myapp.com/welcome',
cancel_url: 'https://myapp.com/pricing',
});
return Response.redirect(url);

একাধিক line_items সাপোর্ট করা হয়। subscription-এর ক্ষেত্রে quantity মানে seat সংখ্যা।

৩. Feature অ্যাক্সেস চেক করুন

Section titled “৩. Feature অ্যাক্সেস চেক করুন”

কোনো customer-কে premium feature ব্যবহার করতে দেওয়ার আগে, তাদের অ্যাক্সেস আছে কিনা যাচাই করতে commerce.check() কল করো:

const { has_access } = await proyecta.commerce.check({
customer_id: customer.id,
resource_id: 'feat_pro_features',
});
if (!has_access) {
return Response.json({ error: 'Upgrade required' }, { status: 402 });
}

premium content গেট করার জন্য এটিই প্রস্তাবিত পদ্ধতি। feature/entitlement মডেলের জন্য Products & Features দেখো।

৪. Subscription বাতিল করুন

Section titled “৪. Subscription বাতিল করুন”
await proyecta.commerce.cancel({
customer_id: customer.id,
subscription_id: 'sub_123',
cancellation_timing: 'at_billing_period_end', // অথবা 'immediate'
});

ডিফল্টভাবে, billing period শেষ হওয়া পর্যন্ত customer অ্যাক্সেস পেতে থাকবে।

AI দিয়ে সব ওয়্যার আপ করাও

Section titled “AI দিয়ে সব ওয়্যার আপ করাও”

এগুলো নিজে হাতে লিখতে হবে না। সাধারণ কিছু prompt:

  • "Create a Proyecta customer when a user signs up. Store the proyecta_customer_id on the user record."
  • "Build a /pricing page that shows my Proyecta products and starts a checkout when a button is clicked."
  • "Gate the /admin route — only allow users whose Proyecta customer has access to feat_admin."
  • "When a user clicks Cancel Subscription, call proyecta.commerce.cancel with at_billing_period_end."