Custom Pricing Plans

Payment → Platinum
💰 $3500

Set flexible pricing per school, region, or partner agreement.

Technology iconTechnology iconTechnology iconTechnology icon

Custom Pricing Plans Module Overview

Purpose

The Custom Pricing Plans module is designed to provide developers with the flexibility to set dynamic pricing rules based on specific criteria such as geographical location, educational institution, or partner agreements. This module simplifies the implementation of complex pricing strategies without complicating the core system architecture.

Benefits

Usage Scenarios

  1. Geographical Pricing Adjustments:

    • Set distinct prices for regions like Europe and North America based on economic factors or market demands.
  2. Educational Institution-Specific Discounts:

    • Offer customized pricing tiers for schools of varying sizes, ensuring cost-effective solutions tailored to each institution’s needs.
  3. Partner Agreement-Based Pricing:

    • Define unique pricing structures for partners, aligning with specific agreement terms and conditions.
  4. Dynamic Campaign Pricing:

    • Implement temporary pricing adjustments during promotional periods or sales events to attract more customers.
  5. Tiered User Count Pricing:

    • Offer volume-based pricing where costs increase gradually based on the number of users, encouraging higher user adoption.
  6. Compliant Local Payment Terms:

    • Adhere to regional payment standards and terms by setting specific rules for each region, ensuring legal compliance.
  7. Flexible Discount Rules:

    • Apply conditional discounts based on user behavior or subscription duration, enhancing customer retention strategies.

This module empowers developers to efficiently manage various pricing scenarios, ensuring the system remains robust and adaptable to changing business needs.

Technical Documentation for Custom Pricing Plans Module

Overview

The Custom Pricing Plans module enables flexible pricing strategies based on attributes such as school, region, or partner agreements. Designed for developers, this module offers robust features to manage dynamic pricing efficiently.

Features

1. Dynamic Pricing Rules

2. Tiered Pricing Structure

3. Role-Based Access Control (RBAC)

4. Pricing History Tracking

5. Price Override Functionality

6. Integration with External Systems

7. Automated Price Calculation

Developer Considerations

This documentation provides a comprehensive guide for developers to leverage the Custom Pricing Plans module effectively, ensuring robust and flexible pricing strategies.

Custom Pricing Plans Documentation

Overview

The Custom Pricing Plans module allows administrators to set flexible pricing based on specific criteria such as school, region, or partner agreements. This module integrates with payment processing systems and provides APIs for managing pricing plans.


API Endpoints (FastAPI)

Get All Pricing Plans

@app.get("/pricing-plans/", response_model=List[PricingPlan])
async def get_all_pricing_plans():
    """
    Retrieve all pricing plans from the database.
    Returns a list of pricing plans with their details.
    """
    return await pricing_plan_repository.find_all()

React UI Component (Create/Edit Pricing Plan)

import React, { useState } from 'react';

interface PricingPlan {
  id: string;
  name: string;
  price: number;
  conditions: Record<string, any>;
  description?: string;
}

const CreatePricingPlan = () => {
  const [pricingPlans, setPricingPlans] = useState<PricingPlan[]>([]);
  const [loading, setLoading] = useState(false);
  const [error, setError] = useState(null);

  const fetchPricingPlans = async () => {
    try {
      setLoading(true);
      const response = await fetch('/api/pricing-plans/');
      if (!response.ok) throw new Error('Failed to fetch pricing plans');
      const data: PricingPlan[] = await response.json();
      setPricingPlans(data);
    } catch (err) {
      setError(err.message);
    } finally {
      setLoading(false);
    }
  };

  React.useEffect(() => {
    fetchPricingPlans();
  }, []);

  return (
    <div className="pricing-plan-list">
      {loading && <div>Loading...</div>}
      {error && <div>Error: {error}</div>}
      
      <table>
        <thead>
          <tr>
            <th>ID</th>
            <th>Name</th>
            <th>Price</th>
            <th>Conditions</th>
            <th>Created At</th>
          </tr>
        </thead>
        <tbody>
          {pricingPlans.map((plan) => (
            <tr key={plan.id}>
              <td>{plan.id}</td>
              <td>{plan.name}</td>
              <td>${plan.price.toFixed(2)}</td>
              <td>
                {JSON.stringify(plan.conditions, null, 2)}
              </td>
              <td>{new Date(plan.createdAt).toLocaleDateString()}</td>
            </tr>
          ))}
        </tbody>
      </table>
    </div>
  );
};

export default CreatePricingPlan;

Data Schema (Pydantic)

from pydantic import BaseModel, Field
from typing import Optional, List
import json

class PricingCondition(BaseModel):
    region: Optional[str] = Field(None, description="Specific region or area")
    school_id: Optional[str] = Field(None, description="School identifier")
    partner_agreement_id: Optional[str] = Field(None, description="Partner agreement identifier")

class PricingPlan(BaseModel):
    id: str = Field(..., description="Unique identifier for the pricing plan")
    name: str = Field(..., min_length=1, max_length=255)
    price: float = Field(..., gt=0, description="Pricing amount in currency")
    conditions: dict = Field(
        ...,
        description="Conditions for applying this pricing plan (e.g., region, school)"
    )
    description: Optional[str] = Field(None, max_length=1024)
    is_active: bool = Field(..., description="Whether the pricing plan is active")
    created_at: str = Field(..., description="Timestamp when the plan was created")
    updated_at: str = Field(..., description="Timestamp when the plan was last updated")

class PricingPlanRoot(BaseModel):
    data: List[PricingPlan] = Field(
        ...,
        description="List of pricing plans"
    )

Notes

This documentation provides a foundation that you can customize based on specific requirements.

Custom Pricing Plans Module Documentation

Overview

The Custom Pricing Plans module allows developers to set flexible pricing rules based on specific conditions such as school affiliation, geographic region, or partner agreements. This module is ideal for businesses that need to offer tailored pricing solutions to different customer segments.


Here are the modules closely related to Custom Pricing Plans:

  1. Subscription Management: Handles subscription creation, renewal, and cancellation.
  2. Usage-Based Billing: Tracks usage metrics and calculates charges based on consumption.
  3. Payment Gateway Integration: Facilitates secure payment processing for transactions.
  4. License Management: Manages software licenses tied to pricing plans.
  5. Analytics & Reporting: Provides insights into pricing plan performance and revenue trends.

Use Cases

  1. School-Specific Discounts
    Offer discounted pricing to educational institutions based on their school ID or region.

  2. Region-Based Pricing
    Apply different prices for customers in various countries or regions, considering currency and tax rules.

  3. Partner Agreement Pricing
    Provide special rates to partners based on predefined agreements or volume discounts.

  4. Usage-Based Pricing
    Charge users dynamically based on the quantity of services used (e.g., cloud computing).

  5. Tiered Pricing
    Offer different pricing tiers for varying levels of service usage (e.g., basic, pro, enterprise).

  6. Custom Enterprise Pricing
    Create bespoke pricing plans for large clients with specific needs.


Integration Tips


Configuration Options

Below is a table of configuration options for the Custom Pricing Plans module:

ParameterDescriptionDefault Value
school_idID of the school/institution to apply discounts.Null
region_codeISO 3166-2 region code for applying regional pricing.Null
partner_agreement_numberPartner agreement identifier for special pricing rates.Null
pricing_typeType of pricing (e.g., flat, tiered, usage-based).“flat”
discount_percentageDiscount percentage applied to the base price.0
currencyCurrency code for billing (e.g., USD, EUR).Default system currency
enable_tax_calculationEnable tax calculation for pricing plans.true
apply_usage_limitsApply usage limits to pricing plans.false
api_endpoint_urlURL for external API integration (e.g., third-party pricing service).Null
callback_urlURL for notifications when a pricing plan is updated or applied.Null
log_levelLogging level for debugging purposes (e.g., DEBUG, INFO, WARNING).”INFO”

Notes