Welcome, Odoo enthusiasts and business leaders! In the dynamic world of sales and inventory management, maintaining absolute control over your outgoing shipments is paramount. For many businesses, the default Odoo setup offers basic controls, but sometimes, you need more robust mechanisms to prevent unwanted deliveries. This is where the concept of Odoo Block Delivery Sales becomes incredibly powerful.
Today, we’re going to dive deep into a fantastic module from the Odoo Community Association (OCA) – the “Sale Stock Picking Blocking” app. This module provides an essential solution for businesses looking to gain granular control over their sales order deliveries. If you’ve ever wished you could put a temporary hold on a shipment due to payment issues, high return rates, or specific customer agreements, then this guide is for you.
This article, inspired by the insightful tutorial found at https://www.youtube.com/watch?v=J5UgwyYqQwc, will walk you through the why and how of implementing a sophisticated delivery blocking system within your Odoo environment. Get ready to transform your sales and logistics operations!
Why Odoo Block Delivery Sales is a Game Changer for Your Business
Imagine a scenario: a customer places a large order, but they have a history of late payments, or perhaps they’ve racked up an unusually high return rate on previous purchases. In a default Odoo setup, once a sales order is confirmed, the delivery order is typically generated automatically, pushing products out the door without an immediate check. This can lead to significant financial risks, inventory discrepancies, and strained customer relationships.
Implementing a robust Odoo Block Delivery Sales mechanism is not just a feature; it’s a strategic business advantage. It empowers you to:
- Mitigate Financial Risk: Ensure payments are received before goods are dispatched, especially for new customers or those with questionable credit histories.
- Improve Cash Flow: By linking delivery to payment, you accelerate the cash conversion cycle.
- Enhance Customer Management: Apply specific rules to customers based on their historical behavior, such as high return ratios, ensuring you only ship when it makes business sense.
- Prevent Unauthorized Shipments: Provide a critical control point, requiring managerial approval or specific conditions to be met before a delivery can proceed.
- Streamline Operations: While it adds a step, it prevents the more costly process of recalling goods, managing disputes, or dealing with losses from unpaid invoices.
The “Sale Stock Picking Blocking” module, developed by the dedicated OCA community, fills this crucial gap, offering a flexible and integrated way to manage your delivery holds. Let’s explore how to set this up step-by-step.
Prerequisites for Implementing Delivery Blocks in Odoo
Before we dive into the configuration, make sure you have the following in place:
- Odoo Installation: A functional Odoo instance (the module is compatible with various versions, typically indicated on the OCA repository).
- “Sale Stock Picking Blocking” Module: This essential module must be installed from the OCA. You can usually find it on the Odoo Apps Store or the OCA GitHub repositories by searching for “sale_stock_picking_blocking.”
- Necessary Access Rights: You’ll need administrative or equivalent access rights to configure sales, inventory settings, and user permissions within Odoo.
5 Powerful Steps to Configure Odoo Block Delivery Sales
Now, let’s walk through the process of setting up and utilizing this module to its full potential.
Step 1: Define Your Custom Delivery Block Reasons
The first and most crucial step is to define why you would want to block a delivery. The module allows you to create an unlimited number of custom reasons.
- Navigate to Sales Configuration: Go to your Odoo Sales module.
- From the top menu, select Configuration, then look for a menu item usually named Delivery Block Reasons (its exact placement might vary slightly depending on your Odoo version and installed modules, but it’s typically under Sales Configuration).
- Create New Reasons: Click on “Create” to add your reasons.
- Example 1: Pay Before Delivery
- Reason Name: Pay Before Delivery
- Description: Block the creation of deliveries until the customer makes the payment. This is ideal for new clients or those on strict credit terms.
- Example 2: High Return Ratio
- Reason Name: High Return Ratio
- Description: Block deliveries to customers who consistently return a significant portion of their orders, signaling a need for review.
- Example 3: Credit Limit Exceeded
- Reason Name: Credit Limit Exceeded
- Description: Hold deliveries for customers who have exceeded their allocated credit limit until outstanding balances are cleared.
- Example 1: Pay Before Delivery
By defining these reasons, you’re building the foundation for your conditional Odoo Block Delivery Sales strategy.
Step 2: Assign Delivery Block Reasons to Your Customers
Once your reasons are defined, the next logical step is to associate them with the relevant customers. This is where the block becomes active.
- Access Customer Records: Go to the Contacts module, then select Customers. Open the customer record you wish to modify.
- Add the “Delivery Block Reason” Field (if not visible):
- If you don’t see a field to select a “Delivery Block Reason” on the customer form, you’ll need to add it. Use the Odoo Studio App (the little palette icon in the top right corner).
- While in Studio, drag and drop a “Selection” field onto the customer form (e.g., in the Sales & Purchase tab or a dedicated section).
- Configure the field: Name it “Delivery Block Reason” and ensure its options are populated with the reasons you defined in Step 1. Save your changes in Studio.
- Assign Reasons to Individual Customers: For each customer, simply select the appropriate reason from the newly added “Delivery Block Reason” field.
- Bulk Update (Pro Tip): For efficiency, especially if you have many customers to update, use Odoo’s list view. Navigate to the Customers list, select multiple customers, and use the “Action” menu to “Export” or “Update” records in bulk (e.g., via importing an Excel sheet with the updated “Delivery Block Reason” field). This can significantly speed up the initial setup of your Odoo Block Delivery Sales policy.
Step 3: (Optional but Highly Recommended) Connect Block Reasons to Payment Terms
For an even more automated and dynamic Odoo Block Delivery Sales system, you can link specific delivery block reasons directly to your payment terms. This means that whenever a sales order uses a particular payment term, the corresponding delivery block reason will automatically be applied.
- Go to Payment Terms Configuration: Navigate to Sales -> Configuration -> Payment Terms.
- Create or Edit a Payment Term:
- If you don’t have one, create a new payment term (e.g., “30 Days – Pay Before Delivery”).
- Edit an existing one.
- Link the Block Reason: Similar to the customer form, you might need to use Odoo Studio to add a field to the Payment Term form that allows you to select a “Default Delivery Block Reason.”
- Select the Reason: Choose the appropriate delivery block reason (e.g., “Pay Before Delivery”) to associate with this payment term.
Now, any sales order created with this payment term will automatically inherit the specified delivery block reason, providing a seamless layer of control for your Odoo Block Delivery Sales operations.
Step 4: Witness Odoo Block Delivery Sales in Action
It’s time to see your configuration at work! Let’s create a sales order and observe the blocking mechanism.
- Create a New Sales Order: Go to Sales -> Orders -> Create.
- Select a Blocked Customer: Choose a customer to whom you’ve assigned a delivery block reason (e.g., “Pay Before Delivery” or “High Return Ratio”).
- Add Products and Confirm: Add one or more products to the sales order and then click “Confirm.”
- Verify the Block:
- Immediately upon confirmation, you should notice that no delivery order has been generated in the ‘Deliveries’ smart button or related documents.
- On the sales order itself, a clear visual indicator should appear, stating the “Delivery Blocking Reason” and preventing the creation of the picking. This is the module effectively enforcing your Odoo Block Delivery Sales policy.
- Users without the specific access rights to release the block (which we’ll cover next) will only see this information and will be unable to proceed with delivery.
This immediate feedback loop ensures that no goods are shipped until the specified conditions are met.
Step 5: Master the Release Mechanism: Access Rights and Manual Override
While blocking deliveries is crucial, the ability to release them is equally important. This process is tightly controlled by Odoo’s access rights, ensuring only authorized personnel can override a delivery block.
- Configure User Access Rights:
- Go to Settings -> Users & Companies -> Users.
- Select the user who should have the authority to release delivery blocks (e.g., a Sales Manager or Warehouse Manager).
- Click “Edit.” Under the “Sales” tab, you will find a new access right specifically named “Release Delivery Block in Sales Order.” Enable this checkbox for the appropriate users.
- Release the Delivery Block:
- Log in as a user who has been granted the “Release Delivery Block in Sales Order” access right.
- Open the previously blocked sales order.
- You will now see a prominent “Release Delivery Block” button (either directly on the sales order form or accessible via a drop-down “Action” menu).
- Click this button.
- Delivery Generation: Upon clicking “Release Delivery Block,” the system will proceed to generate the delivery order (picking) as it normally would have, signaling that the conditions for release have been met.
This two-tier system of Odoo Block Delivery Sales provides unparalleled control, allowing you to establish stringent rules while maintaining the flexibility to manage exceptions through authorized channels.
Finalizing the Delivery Process Post-Release
Once the delivery block is released, the process reverts to standard Odoo inventory management:
- Access the Delivery Order: Go to the Inventory module and locate the newly generated delivery order.
- Check Availability: Ensure that the products are available in your stock. If not, perform necessary internal transfers or procurement actions.
- Reserve and Validate: Once products are available and reserved, validate the delivery order to finalize the shipment.
By following these steps, you seamlessly integrate the crucial control point of Odoo Block Delivery Sales into your existing fulfillment workflow.
Advanced Considerations and Best Practices for Odoo Block Delivery Sales
To truly maximize the benefits of this module, consider these advanced tips:
- Tailor Reasons to Your Industry: Beyond payment and returns, think about specific needs. For manufacturing, a reason could be “Pending Quality Check.” For services, “Contract Not Signed.”
- Regular Review of Blocked Customers: Don’t set and forget. Regularly review customers on delivery blocks to ensure the reasons are still valid and to address any underlying issues.
- Training and Communication: Ensure your sales, finance, and warehouse teams understand the new process and the implications of Odoo Block Delivery Sales. Clear communication prevents confusion and ensures smooth operations.
- Internal Linking with other Odoo Guides: For managing access rights effectively, refer to our comprehensive Odoo User Access Management Guide (internal link). For broader sales configuration, explore our Ultimate Odoo Sales Configuration Handbook (internal link).
- Explore Other OCA Modules: The OCA repository is a treasure trove of enhancements. Keep an eye out for complementary modules that can further boost your Odoo functionality. You can find more details and modules on the OCA Website (DoFollow external link).
Conclusion: Empowering Your Business with Unrivaled Delivery Control
Implementing Odoo Block Delivery Sales through the “Sale Stock Picking Blocking” OCA module is a powerful step towards a more controlled, efficient, and financially secure business operation. It moves your Odoo instance beyond basic sales order processing, enabling you to apply intelligent business rules that safeguard your assets and improve your bottom line.
By defining clear reasons, automating assignments, and controlling the release process with stringent access rights, you gain an unprecedented level of mastery over your sales deliveries. This module is a testament to the strength and innovation of the Odoo community, providing solutions that directly address real-world business challenges.
Don’t let uncontrolled deliveries jeopardize your business. Take charge today and revolutionize your Odoo sales process with these essential blocking capabilities! If you have questions or need further assistance, reach out to the vibrant Odoo community.
Discover more from teguhteja.id
Subscribe to get the latest posts sent to your email.

