Manage recurring sales contracts and renewals
Manage recurring maintenance contracts, service level agreements (SLAs), subscription billing, and automated renewal notices.
1. Overview & Business Value#
This comprehensive operational guide details the architecture, business workflows, configuration parameters, and execution steps for Manage recurring sales contracts and renewals within SmartERP.
This guide explains how to manage recurring contracts and subscription invoicing using contract_sale.

{screenshot:manage-sales-contracts-and-subscriptions-overview-dashboard}
2. Prerequisites & Security Access Groups#
- Required Modules:
sale_management, crm, point_of_sale, smarterp_payment_telebirr - Security Groups:
Sales User(Technical ID:sales_team.group_sale_salesman)Sales Administrator(Technical ID:sales_team.group_sale_manager)POS User / Cashier(Technical ID:point_of_sale.group_pos_user)
- Master Data Dependencies: Customer partner registry, selling pricelists, product inventory balances, payment providers (Telebirr/CBE Birr), and POS terminal sessions.
3. Step-by-Step Configuration & Execution#
Step 1: Navigating to the Module Interface#
- Log into your SmartERP instance at
https://smarterp.et/odoo. - Open the main App Switcher (grid icon in the top-left corner).
- Select the Sales app icon.
- From the top navigation bar, open Sales → Orders → Quotations / Orders; Point of Sale → Dashboard.
{screenshot:manage-sales-contracts-and-subscriptions-app-switcher-navigation}
Step 2: Creating and Parameterizing Records#
- Click the New button in the top-left control panel.
- Complete the mandatory fields in the record form:
- Customer Name (Mandatory): Registered partner record with complete invoicing and delivery addresses
- Product Lines (Mandatory): Saleable items with approved commercial pricelist rates and VAT classification
- Payment Terms (Mandatory): Immediate settlement, milestone advance, or agreed commercial credit terms
- Salesperson (Mandatory): Account executive responsible for the customer commercial relationship
- Configure optional operational parameters and localized tags as required:
- Analytic Account (Optional): Revenue center or project allocation for commercial tracking
- Customer PO Reference (Optional): External purchase order number issued by the client
- Shipping Policy (Optional): Deliver all products at once or allow partial dispatches
- Click the Save icon in the control bar to commit the record.
{screenshot:manage-sales-contracts-and-subscriptions-record-creation-form}
Step 3: Validating and Processing Transactions#
- State Transitions: Execute operational state progression (Quotation → Sent → Confirmed Sales Order → Delivery Done → Invoiced → Paid).
- Ledger & System Impact: Generates customer tax invoice, posts accounts receivable debit and sales revenue credit, and updates inventory valuation upon delivery.
- Audit Verification: Automated recording of author ID, timestamp, and immutable revision history.
{screenshot:manage-sales-contracts-and-subscriptions-transaction-processing-state}
Procedure#
- Open Sales → Contracts → Service Contracts and click New.
- Select customer and service package (e.g. SmartERP Enterprise SLA & Support Tier 1).
- In Billing Recurrence:
- Recurring Period: Monthly, Quarterly, or Annually.
- Recurring Price: Fixed subscription fee in ETB.
- Auto-Generate Invoice: Enable automatic invoice creation.
- In Contract Validity:
- Start Date and Expiration Date.
- Renewal Notice Days: Alert account manager
30 daysbefore expiration.
- Click Activate Contract.
Automated Invoicing#
A scheduled cron job scans active contracts daily:
- On the contract billing date, SmartERP automatically creates and posts the monthly VAT invoice.
- Delivers the invoice PDF and payment link to the customer contact email.
4. Advanced Configuration Points#
- Automated Actions & Scheduled Tasks (Crons):
CRM: Lead auto-assignment(crm.ir_cron_lead_assign): Runs hourly to allocate unassigned leads across sales teamsSales: Expire overdue quotations(sale.ir_cron_expire_quotes): Runs nightly to mark stale quotes as cancelledPOS: Close abandoned register sessions(point_of_sale.ir_cron_session_cleanup): Runs nightly to alert managers of open cashier terminals
- Custom Print Templates & Reports:
- Customer Sales Quotation / Pro-forma Invoice
- Commercial Tax Invoice (Model 85 Compliant)
- POS Cash Register Receipt with QR Validation
- Customer Credit Limit & Receivables Aging Statement
- Multi-Company Rules: Record-level security isolation under Company 1 (
Ashewa Technology Solutions S.C.), preventing cross-company ledger leakage across parent and subsidiary legal entities.
5. Comprehensive Troubleshooting Matrix#
| Error Symptom / Exception | Probable Root Cause | Corrective Action / Resolution |
|---|---|---|
Credit Limit Blocked: Customer balance exceeds ceiling | Outstanding customer debt plus current order exceeds approved credit limit. | Obtain credit committee exception approval or collect an advance cash payment. |
Validation Error: Tax definition missing on product line | Product item lacks default statutory 15% VAT mapping. | Update the product master accounting tab with standard statutory VAT rates. |
POS Session Error: Cash register mismatch upon closure | Physical cash count does not reconcile with POS recorded register balance. | Document discrepancy explanation in the closing wizard and submit for manager review. |
Payment Gateway Error: Telebirr timeout | Network timeout or invalid API bridge credentials. | Verify merchant credentials in Invoicing → Configuration → Payment Providers and retry transaction query. |
Next#
- Track commissions: Track salesperson targets and commissions.