Skip to Content
Odoo Menu
  • Sign in
  • Try it free
  • Apps
    Finance
    • Accounting
    • Invoicing
    • Expenses
    • Spreadsheet (BI)
    • Documents
    • Sign
    Sales
    • CRM
    • Sales
    • POS Shop
    • POS Restaurant
    • Subscriptions
    • Rental
    Websites
    • Website Builder
    • eCommerce
    • Blog
    • Forum
    • Live Chat
    • eLearning
    Supply Chain
    • Inventory
    • Manufacturing
    • PLM
    • Purchase
    • Maintenance
    • Quality
    Human Resources
    • Employees
    • Recruitment
    • Time Off
    • Appraisals
    • Referrals
    • Fleet
    Marketing
    • Social Marketing
    • Email Marketing
    • SMS Marketing
    • Events
    • Marketing Automation
    • Surveys
    Services
    • Project
    • Timesheets
    • Field Service
    • Helpdesk
    • Planning
    • Appointments
    Productivity
    • Discuss
    • Approvals
    • IoT
    • VoIP
    • Knowledge
    • WhatsApp
    Third party apps Odoo Studio Odoo Cloud Platform
  • Industries
    Retail
    • Book Store
    • Clothing Store
    • Furniture Store
    • Grocery Store
    • Hardware Store
    • Toy Store
    Food & Hospitality
    • Bar and Pub
    • Restaurant
    • Fast Food
    • Guest House
    • Beverage Distributor
    • Hotel
    Real Estate
    • Real Estate Agency
    • Architecture Firm
    • Construction
    • Property Management
    • Gardening
    • Property Owner Association
    Consulting
    • Accounting Firm
    • Odoo Partner
    • Marketing Agency
    • Law firm
    • Talent Acquisition
    • Audit & Certification
    Manufacturing
    • Textile
    • Metal
    • Furnitures
    • Food
    • Brewery
    • Corporate Gifts
    Health & Fitness
    • Sports Club
    • Eyewear Store
    • Fitness Center
    • Wellness Practitioners
    • Pharmacy
    • Hair Salon
    Trades
    • Handyman
    • IT Hardware & Support
    • Solar Energy Systems
    • Shoe Maker
    • Cleaning Services
    • HVAC Services
    Others
    • Nonprofit Organization
    • Environmental Agency
    • Billboard Rental
    • Photography
    • Bike Leasing
    • Software Reseller
    Browse all Industries
  • Community
    Learn
    • Tutorials
    • Documentation
    • Certifications
    • Training
    • Blog
    • Podcast
    Empower Education
    • Education Program
    • Scale Up! Business Game
    • Visit Odoo
    Get the Software
    • Download
    • Compare Editions
    • Releases
    Collaborate
    • Github
    • Forum
    • Events
    • Translations
    • Become a Partner
    • Services for Partners
    • Register your Accounting Firm
    Get Services
    • Find a Partner
    • Find an Accountant
      • Get a Tailored Demo
    • Implementation Services
    • Customer References
    • Support
    • Upgrades
    Github Youtube Twitter Linkedin Instagram Facebook Spotify
    +32 2 290 34 90
    • Get a Tailored Demo
  • Pricing
  • Help
  1. APPS
  2. Sales
  3. BambooForge Recurring Orders: Standing & Repeat Sales Orders v 19.0
  4. Sales Conditions FAQ

BambooForge Recurring Orders: Standing & Repeat Sales Orders

by BambooForge Labs
Odoo

$ 101.67

v 19.0 Third Party
Apps purchases are linked to your Odoo account, please sign in or sign up first.
Versions 17.0 18.0 19.0
You bought this module and need support? Click here!
Versions 17.0 18.0 19.0
  • Description
  • Manifest
  • Documentation
  • License
BambooForge Recurring Orders
BambooForge Recurring Orders by BambooForge Labs · Standing & Repeat Sales Orders
Odoo 19.0 License OPL-1 No Enterprise required
Recurring Orders for Odoo 19
Per-customer plans Daily / weekly / monthly / yearly Draft or auto-confirmed Catch-up on missed cycles Pricelist-aware Multi-company Customer portal self-service
60-second tour

See it in action

From a reusable plan to sales orders that create themselves on schedule — no more re-keying the same order.

orders generated automatically
4cadences: day, week, month, year
2modes: draft or auto-confirm
0Enterprise modules needed
Sell on repeat

Stop re-typing the same order every week

Repeat customers order the same things on a rhythm — a weekly delivery, a monthly retainer, a quarterly service. Set up the plan once and let Odoo create the order every cycle, exactly when it's due. Customers can log into their own Odoo portal to pause, skip or adjust the quantities on their standing order themselves — the generator honors whatever they choose, no phone call or support ticket needed.

The plan

One plan, orders forever

Customer, products and a cadence — generated orders link straight back, with a full audit trail.

Recurring order plan

Everything you need for standing orders

Reusable plans

One plan per customer with its own product lines and cadence — set it up once.

Any cadence

Every N days, weeks, months or years, with a start date and an optional end date.

Draft or confirmed

Create draft quotations to review, or auto-confirm straight to sales orders.

Automatic generation

A daily scheduled action creates every order that's due — hands-off.

Catch-up

Missed a few cycles? The app creates each missed order so nothing is skipped.

Pricelist-aware

Price lines from the customer's pricelist at generation time, or lock a fixed price.

Linked orders

Every generated order links back to its plan, with a one-click list of all of them.

Pause & resume

Pause a plan without losing it, then resume when the customer is back.

Multi-company

Each plan is scoped to one company via a record rule.

Customer portal self-management

A new Recurring Orders page under My Account lets customers see their own standing orders and act on them — no back-office involvement required.

Pause / skip / modify from My Account

Customers can pause or resume a plan, skip just the next cycle, or change line quantities and the next run date themselves — the generator honors whatever they set.

Airtight ownership + CSRF + field allow-list

Every portal route re-checks ownership by record rule or access token, mutations run through sudo() methods that only ever write an explicit field allow-list, and all POST actions require a valid CSRF token.

Up and running in three steps

1

Create a plan

Customer, products and cadence.

2

Pick a mode

Draft quotation or auto-confirm.

3

Let it run

Orders generate on schedule.

4

Stay in control

Pause, resume or end anytime — from the back office or the customer's own portal.

Guided tour

Real screens, real data

Every screenshot below is the actual app running on Odoo 19 — no mockups.

Generated orders
Step 1

Orders that create themselves

Every cycle produces a real, priced sales order — here four weekly orders generated from one plan.

Recurring plans list
Step 2

All your plans at a glance

Customer, cadence, next order date and how many orders each plan has generated — with status.

Put your repeat sales on autopilot

Install in seconds. No Enterprise, no external libraries, no lock-in. Works on Odoo 19 Community and Enterprise.

Full manual included. The app ships with a complete in-app documentation page (Apps > this module > Documentation) covering setup, generation, pricing, pausing and FAQs. Questions? bambooforge.labs@gmail.com

Availability
Odoo Online
Odoo.sh
On Premise
Odoo Apps Dependencies • Sales (sale_management)
• Discuss (mail)
• Invoicing (account)
Lines of code 778
Technical Name bambooforge_recurring_order
LicenseOPL-1

BambooForge Recurring Orders

Stop re-keying the same order every week or month. Define a recurring plan per customer — the products and a cadence — and the app generates the sales order for you on schedule, as a draft quotation to review or a confirmed order, your choice.

This page is the complete manual. Follow it top to bottom and you can install, build a plan and fix the common issues without contacting support.

  • Overview
  • Requirements
  • Installation
  • Quick start
  • How generation works
  • Pricing
  • Pausing and ending a plan
  • Frequently asked questions
  • Support
  • Usage
  • Upgrading & version compatibility
  • Uninstallation
  • Changelog

Overview

For every repeat customer you set up one plan:

  • a customer, an optional pricelist and a salesperson,
  • the order lines (products and quantities),
  • a cadence — every N days, weeks, months or years — with a start and an optional end date.

A daily scheduled action then creates the order whenever a plan is due. Choose draft quotations to review before sending, or auto-confirm to push straight to confirmed sales orders. Every generated order links back to its plan.

Requirements

  • Odoo 17.0 with Sales (sale_management). Installing this app pulls it in automatically.

No Enterprise modules and no external Python libraries are required.

Installation

  1. Copy bambooforge_recurring_order into your addons path.
  2. Update the apps list (Apps > Update Apps List).
  3. Search for Recurring Orders and click Install.

A Recurring Orders app appears, and a Recurring Plans entry is added under Sales > Configuration.

Quick start

  1. Open Recurring Orders > Plans and click New.
  2. Choose the Customer and add the Order Lines (products and quantities).
  3. Set the Frequency (every N days/weeks/months/years), the Start Date and, if the plan should stop, an End Date.
  4. Decide whether to Auto-confirm Orders or leave them as draft quotations.
  5. Save. Use Generate Now to create the first order immediately, or let the schedule do it.

How generation works

Each plan has a Next Order date. The daily scheduled action Recurring Orders: Generate Due finds every active plan whose next-order date has arrived and creates the order, then advances the next-order date by the cadence.

If a plan was due several times since it last ran (for example the scheduler was off for a while), the app catches up and creates each missed order, up to a safety cap, so nothing is silently skipped.

The scheduled action ships disabled — enable it under Settings > Technical > Scheduled Actions to run daily.

Pricing

Leave a line's Unit Price at zero to price it from the customer's pricelist at the moment the order is generated — so price changes are always picked up. Enter a unit price to lock a fixed amount instead.

Pausing and ending a plan

Click Pause to stop generating without losing the plan; Activate resumes it. Set an End Date to stop automatically after a certain point. The plan's Orders button opens every order it has generated.

Frequently asked questions

Orders weren't generated automatically.
Enable the Recurring Orders: Generate Due scheduled action. Until then, use Generate Now on each plan.
Prices on generated orders are wrong.
Lines priced from the pricelist use the price at generation time. Set a fixed Unit Price on a line to override.
Can I generate confirmed orders, not quotations?
Yes — tick Auto-confirm Orders on the plan.
What happens if I miss a few cycles?
The catch-up logic creates each missed order the next time the schedule runs.
Does it work with multiple companies?
Yes. Each plan is scoped to one company via a record rule.

Support

Questions or ideas: bambooforge.labs@gmail.com.

Usage

Creating a recurring plan

Open Recurring Orders > Plans (or, as a Sales manager, Sales > Configuration > Recurring Plans) and click New. The plan reference is assigned automatically from a sequence when you save.

Fill in the plan:

  • Customer — the partner the orders are raised for (required).
  • Pricelist — optional; when left empty the customer's own pricelist is used at generation time.
  • Salesperson — defaults to you.
  • Frequency — the cadence, entered as Every N Days / Weeks / Months / Years.
  • Start Date — defaults to today; the first Next Order date is seeded from it.
  • End Date — optional; generation stops once the next-order date passes it.
  • Auto-confirm Orders — leave off to create draft quotations for review, or tick it to confirm each generated order automatically.

On the Order Lines tab, add the products and quantities. Selecting a product fills the description and unit of measure. Leave a line's Unit Price at 0 to price it from the pricelist when the order is generated; enter a value to lock a fixed price. The quantity you first enter also seeds the line's Baseline Quantity, which bounds later customer portal changes.

Generating orders

Each plan carries a Next Order date. Use the header button Generate Now at any time to raise the order immediately; the plan's next-order date then advances by the cadence and the order opens for you. Every generated sales order carries its plan reference as the Source Document and a Recurring Plan link back to the plan. The Orders smart button on the plan opens all orders it has produced.

Automatic generation (cron)

The scheduled action Recurring Orders: Generate Due runs daily. It picks up every Active plan whose next-order date has arrived, creates the order, and advances the next-order date. If a plan was due several times since it last ran (for example the scheduler was stopped for a while) the action catches up and creates each missed order, up to an internal safety cap of 60 cycles per run, so nothing is silently dropped.

This scheduled action ships disabled. Enable it under Settings > Technical > Scheduled Actions to let plans generate on their own; until then, use Generate Now.

Pausing, ending and skipping

Click Pause in the plan header to stop generation without deleting the plan, and Activate to resume. Set an End Date to stop automatically. A one-off Skip Next Occurrence flag lets you skip exactly the next cycle: the schedule advances past it without raising an order, then resumes normally.

Customer self-service portal

When Customer Self-Management is enabled on a plan (on by default), customers manage their standing orders from My Account > Recurring Orders (/my/recurring). From a plan's page a customer can:

  • Pause or Resume the plan,
  • Skip (or un-skip) the next occurrence,
  • adjust line quantities and move the next order date.

Customer changes are bounded by the merchant's limits: a quantity may not exceed Max Qty Factor times the line's baseline (default 2.0, i.e. at most double), and the next date may be moved at most Max Reschedule Window (days) into the future (default 90) and never past the plan's end date. Every portal change is logged in the plan's chatter. Turn off Customer Self-Management to keep a plan fully back-office controlled; customers then see it read-only and are asked to contact you for changes.

Example

A cafe orders 10 bags of coffee beans every 2 weeks. Create a plan for that customer, set Every 2 Weeks, add one order line for the beans with a quantity of 10, and leave Auto-confirm Orders off. Save. With the scheduled action enabled, a draft quotation for 10 bags is created every fortnight for your team to review and send. If the cafe closes for a holiday, it opens its portal and clicks Skip Next Occurrence — the following fortnight is skipped and the plan resumes automatically after that.

Upgrading & version compatibility

This build targets Odoo 19.0. Each Odoo major series (17.0, 18.0, 19.0) has its own dedicated build of this module — always install the build that matches your Odoo version. Mixing a build with a different Odoo series is not supported.

Patch upgrades (same series, e.g. 19.0.1.0.0 → later)

  1. Back up your database and filestore first.

  2. Replace the module folder with the newer build.

  3. Restart Odoo with the module updated:

    ./odoo-bin -c your.conf -u bambooforge_recurring_order -d your_db
    
  4. Odoo applies any schema/data changes automatically. Your existing records and configuration are preserved.

Cross-version migration (e.g. Odoo 17 → 18)

Upgrading Odoo itself is a database migration handled by Odoo's standard upgrade tooling. When you migrate the database to the next Odoo series, install the matching build of this module for that series. Data created by this module carries over with the database migration.

After any upgrade the module's scheduled actions resume on their normal cadence — no manual re-activation is required.

Uninstallation

You can remove this module at any time from Apps → (this module) → Uninstall, or from the command line. Uninstalling is clean and reversible by reinstalling — but note what is and is not deleted.

What is removed

  • The module's own tables and every record in them (2 models, prefixed recurring.*) — this is the data this module created.
  • The menus, actions, views and reports this module installed.
  • Its scheduled actions (cron jobs) — they stop immediately on uninstall.

What is preserved

  • Your standard Odoo data (partners, products, sales, invoices, inventory moves) is not deleted — this module only reads and annotates it; the underlying records stay.
  • Attachments and chatter messages on standard records are kept.

As always, take a database backup before uninstalling in production.

Changelog

19.0.1.0.0

Current release for Odoo 19.0. This build includes:

  • Customers pause, skip or modify their own standing orders from the Odoo portal.
  • The generator honors it. Plus: generate repeat sales orders automatically on a schedule from reusable plans.
  • Weekly deliveries, monthly retainers, standing orders.
  • As draft quotations or confirmed orders.

Feature additions and fixes ship as new builds on the Odoo Apps store; this page and the module's version reflect the current published release. Always keep the build matched to your Odoo series (see Upgrading & version compatibility).

Odoo Proprietary License v1.0

This software and associated files (the "Software") may only be used (executed,
modified, executed after modifications) if you have purchased a valid license
from the authors, typically via Odoo Apps, or if you have received a written
agreement from the authors of the Software (see the COPYRIGHT file).

You may develop Odoo modules that use the Software as a library (typically
by depending on it, importing it and using its resources), but without copying
any source code or material from the Software. You may distribute those
modules under the license of your choice, provided that this license is
compatible with the terms of the Odoo Proprietary License (For example:
LGPL, MIT, or proprietary licenses similar to this one).

It is forbidden to publish, distribute, sublicense, or sell copies of the Software
or modified copies of the Software.

The above copyright notice and this permission notice must be included in all
copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
DEALINGS IN THE SOFTWARE.

Please log in to comment on this module

  • The author can leave a single reply to each comment.
  • This section is meant to ask simple questions or leave a rating. Every report of a problem experienced while using the module should be addressed to the author directly (refer to the following point).
  • If you want to start a discussion with the author or have a question related to your purchase, please use the support page.
Community
  • Tutorials
  • Documentation
  • Forum
Open Source
  • Download
  • Github
  • Runbot
  • Translations
Services
  • Odoo.sh Hosting
  • Support
  • Upgrade
  • Custom Developments
  • Education
  • Find an Accountant
  • Find a Partner
  • Become a Partner
About us
  • Our company
  • Brand Assets
  • Contact us
  • Jobs
  • Events
  • Podcast
  • Blog
  • Customers
  • Legal • Privacy
  • Security

Odoo is a suite of open source business apps that cover all your company needs: CRM, eCommerce, accounting, inventory, point of sale, project management, etc.

Odoo's unique value proposition is to be at the same time very easy to use and fully integrated.

Website made with