Fiyatlandırma Planları

SaaS uygulamanız için fiyatlandırma planlarını nasıl yapılandıracağınızı ve özelleştireceğinizi öğrenin.

Not: Bu içerik, tanıtım amacıyla hazırlanmış örnek/yer tutucu bir içeriktir.

Fiyatlandırma yapınızı iş modelinize uygun şekilde yapılandırın.

Plan Yapısı

Her fiyatlandırma planı şunlardan oluşur:

  • ID - Benzersiz tanımlayıcı
  • Ad - Görünen ad
  • Fiyat - Para biriminizdeki tutar
  • Aralık - Faturalandırma sıklığı (ay, yıl)
  • Özellikler - Dahil olan özelliklerin listesi
  • Limitler - Kullanım kısıtlamaları

Örnek Yapılandırma

// config/billing.config.ts
export const billingConfig = {
  provider: 'stripe', // veya 'paddle'
  currency: 'usd',
  plans: [
    {
      id: 'free',
      name: 'Free',
      description: 'Perfect for getting started',
      price: 0,
      features: [
        '5 projects',
        'Basic analytics',
        'Community support',
      ],
      limits: {
        projects: 5,
        members: 1,
      },
    },
    {
      id: 'starter',
      name: 'Starter',
      description: 'For small teams',
      price: 19,
      interval: 'month',
      features: [
        '25 projects',
        'Advanced analytics',
        'Email support',
        'API access',
      ],
      limits: {
        projects: 25,
        members: 5,
      },
    },
    {
      id: 'pro',
      name: 'Professional',
      description: 'For growing businesses',
      price: 49,
      interval: 'month',
      popular: true,
      features: [
        'Unlimited projects',
        'Advanced analytics',
        'Priority support',
        'API access',
        'Custom integrations',
      ],
      limits: {
        projects: -1, // sınırsız
        members: 20,
      },
    },
  ],
};

Özellik Kısıtlama

Özellikleri abonelik planına göre kısıtlayın:

import { hasFeature } from '~/lib/billing/features';

async function createProject() {
  const subscription = await getSubscription(accountId);

  if (!hasFeature(subscription, 'api_access')) {
    throw new Error('API access requires Pro plan');
  }

  // Proje oluştur
}

Kullanım Limitleri

Her plan için kullanım limitlerini uygulayın:

import { checkLimit } from '~/lib/billing/limits';

async function addTeamMember() {
  const canAdd = await checkLimit(accountId, 'members');

  if (!canAdd) {
    throw new Error('Member limit reached. Upgrade to add more members.');
  }

  // Üye ekle
}

Yıllık Faturalandırma

İndirimli yıllık planlar sunun:

{
  id: 'pro-annual',
  name: 'Professional Annual',
  price: 470, // ~%20 indirim
  interval: 'year',
  discount: '20% off',
  features: [ /* aylık planla aynı */ ],
}

Deneme Süreleri

Ücretsiz deneme sürelerini yapılandırın:

export const trialConfig = {
  enabled: true,
  duration: 14, // gün
  plans: ['starter', 'pro'], // denemeye uygun planlar
  requirePaymentMethod: true,
};

Fiyatlandırma Sayfasını Özelleştirme

Fiyatlandırma sayfası, yapılandırmanızdan otomatik olarak oluşturulur:

import { billingConfig } from '~/config/billing.config';

export default function PricingPage() {
  return (
    <PricingTable
      plans={billingConfig.plans}
      currency={billingConfig.currency}
    />
  );
}

Özel Özellikler Ekleme

Plan özelliklerini özel niteliklerle genişletin:

{
  id: 'enterprise',
  name: 'Enterprise',
  price: null, // Fiyat için iletişime geçin
  custom: true,
  features: [
    'Everything in Pro',
    'Dedicated support',
    'Custom SLA',
    'On-premise deployment',
  ],
  ctaText: 'Contact Sales',
  ctaUrl: '/contact',
}