Accounting: Accounting: Journal Entries: Stock Movements
This document will go over which configurations on products, product categories, and locations impact stock movement journal entries, and how to get Odoo 14 to automatically create stock movement journal entries for you in real-time.
We will also provide some example journal entries from common stock moves at the end of this document.
To get started, navigate to the Accounting app.
Odoo creates stock movement journal entries when storable products are being received into your stock from a virtual location or are leaving your stock and going to a virtual location.
For example, receiving storable stock from a vendor, shipping storable stock to a customer, or moving storable stock to a virtual scrap location would all trigger stock movement journal entries as long as the necessary settings were configured prior to those moves occurring.
Moving storable stock between internal locations does not create stock movement journal entries because the net value of your storable stock is not increasing or decreasing, the stock is just changing locations within your organization.
Product Category Configuration
Odoo does not create stock movement journal entries for you by default. To enable this behavior, you will need to make sure that your product categories are configured correctly.
Select the product category ALL.
From within this category, click Edit. We'll review just a few settings on this page.
Costing Method: This is how Odoo calculates the value of your inventory. Your costing method selection will not impact when the creation of stock movement journal entries occurs. Odoo gives you three costing methods to choose from:
Standard Price: This allows you to set the costs of your goods sold manually.
First In First Out (FIFO): This will calculate your costs based on selling your oldest goods first.
Average Cost (AVCO): This will calculate the average cost of your entire inventory at the receipt and assign that average cost to all of your goods.
Inventory Valuation: Select Automated. If this is not selected, no stock movement journal entries will be created.
Account Stock Properties: This is where you will select the accounts that should be debited and credited for your stock movements.
Stock Valuation Account: This is the account used to track the total value of your inventory within your warehouse(s).
Stock Journal: This is the journal that you want to record your stock moves in.
Stock Input Account: This is the account used to track the value of your incoming goods before they are processed into your inventory.
Stock Output Account: This is the account used to track the value of your outgoing goods, either products that got sold to customers or products that you are moving out of your stock for other reasons like scrapping.
Once you've made the necessary changes on this page, click save.
Take some time to go through all of your product categories and make sure that your Inventory Valuation is set to Automated, and check that you have the correct accounts and journal set for your accounting.
Individual products also have an impact on whether or not stock movement journal entries are created. Stock movement journal entries will only be created if your product is designated as a Storable Product.
Good to Know!
Consumable + Service Products
Consumable products and service products have accounting implications but do not trigger stock movement journal entries.
There are several ways to access your products, but in the Accounting app, you can click Customers > Products or Vendors > Products. The only difference between these views is the preset filter in the search field.
On this page, you'll see a full product listing.
Click Group By > Product Type. This will sort your salable products into their product types so that you can check to make sure that your current configuration will make the necessary journal entries when products are moved.
Click the Storable Product type heading, then click into a product to review the category and accounting journal configuration. Once there, click Edit. Ensure the following fields are correct under the GENERAL INFORMATION tab.
Product Type: This will be set as "Storable Product"; a product in which you can manage stock.
Product Category: Set to a category that is designated for Automated Inventory Valuations, as specified in the section above.
Under the Accounting tab in the Payables section, you also have the option to select specific accounts to track the value of any transfers on the product itself. If there are no accounts set on the product, they will inherit the accounts set on the product category.
When you've made your changes, click Save.
Locations also have implications for stock movement journal entries. Remember that stock movement journal entries are created when storable products move between an internal location and a virtual location. So, ensuring that your locations are designated correctly as either Virtual or Internal is important.
To get started, navigate to the Inventory app.
This is where all of your locations are listed. Remove the default Internal filter by clicking the icon.
You can see the type of each entry under the Location Type column.
With the exception of the "View" location, which is only for display purposes, all virtual locations within Odoo (listed below) will create a stock movement journal entry on a transfer.
You can also set your accounts on the location itself. For example, a scrap location could associate a specific account for tracking the value of all incoming and outgoing scrapped goods.
To review this example, select the Virtual Locations/[Your Company]: Scrap from your location list. On the details page, click Edit.
You will see that the Inventory Loss location type has its own Accounting Information section which will utilize the accounts you specify in this area to track the value entering and leaving this location.
Good to Know!
The only other location type that allows you to input Accounting Information is 'Production', which is also very important to set up with a Work in Process (WIP) account.
Example Journal Entry: Incoming Stock Picking
This example journal entry was made from an inbound stock-picking generated by purchase order. After we completed the stock-picking, the products were moved into our stock and the journal entry was created.
You can see a credit to the Stock Interim (Received) account and a debit to the Stock Valuation account. This is because as the value is entering our warehouse and adding value to our stock value, it is leaving the interim account used to hold the value of our pending incoming transfers.
Example Journal Entry: Outgoing Stock Picking
This example journal entry was made from an outbound stock-picking generated by a sales order from a customer. Once we completed the stock-picking from our inventory, this journal entry was made.
You can see a credit to the Stock Valuation account and a debit to the Stock Interim (Delivered) account. This is because the value is leaving our stock and is going outbound to a customer, so we have to remove value from our stock and move it into the account used to track outbound goods.
Example Journal Entry: Inventory Adjustment
Inventory adjustments are necessary when human error occurs and the actual quantity on hand doesn't match the recorded quantity on hand in Odoo.
The following journal entry was made from an inventory adjustment after we discovered that we had more of a particular product on hand than the system said we did.
You'll see that the Stock Interim (Received) account was credited and the Stock Valuation account was debited to correct for the additional inventory.
Example Journal Entry: Manufacturing Order
The following journal entries were made when we processed a manufacturing order. When you move component products from your stock to your production location, it will create a journal entry. Likewise, once the finished product is produced, you will have a journal entry for the move out of your production location back into your inventory.
You will only have stock movement journal entries for Manufacturing Orders if your component product(s) and finished product(s) are set as storable products and are in a product category that is set for Automated Inventory Valuation. If your component product(s) or the finished product(s) are consumable, or in a product category that is set for Manual Valuation, then you will not have any journal entries for their movements.