Create Odoo Receipts With Lot Numbers From Google Sheets

8 min setup
No coding required
Runs automatically

Receiving teams often log deliveries on a form or spreadsheet, then someone retypes each one into Odoo as a receipt with its lot number. This workflow watches your receiving sheet, finds the product and any existing lot in Odoo, and creates a receipt with the quantity, destination location and lot already filled in, ready for a lead to check and validate.

google sheets logo icon
New Row on the Receiving Log (Trigger)
Find the Product in Odoo
Check Whether the Lot Already Exists
Create a Draft Receipt in Odoo
Add the Product and Quantity to the Receipt
google sheets logo icon
Mark the Row Ready to Validate

How it works

8 steps to turn every row on your receiving sheet into an Odoo receipt with its lot

google sheets logo icon

New Row on the Receiving Log (Trigger)

App connector: Google Sheets • Time to complete: 1 minute

Run when a new row is added to the receiving log, with columns for product internal reference, lot number, quantity, destination location and a status column.

Skip Rows Missing a Product, Lot or Quantity

App connector: Filter • Time to complete: 1 minute

Continue only when product reference, lot number and a quantity above zero are filled in and the status column is empty, so half-finished rows are skipped.

Find the Product in Odoo

App connector: Odoo • Time to complete: 1 minute

Search the product.product model for the row's internal reference (default_code) to get the product ID and its unit of measure ID.

Check Whether the Lot Already Exists

App connector: Odoo • Time to complete: 1 minute

Search the stock.lot model for a lot with the row's lot number and that product ID, to see whether the lot already exists.

Create a Draft Receipt in Odoo

App connector: Odoo • Time to complete: 1 minute

Create a stock.picking record using the Receipts operation type ID, the vendor source location, the destination location ID (for example WH/Stock) and the sheet row number as the source document.

Add the Product and Quantity to the Receipt

App connector: Odoo • Time to complete: 1 minute

Create a stock.move on that receipt with the product ID, the quantity as the demand, the product's unit of measure and the same source and destination locations.

Attach the Existing Lot or Create a New One

App connector: Paths • Time to complete: 1 minute

Branch on whether the lot search found a lot. On both paths, use Create Custom Model to add a stock.move.line to the move with the quantity and locations: pass lot_id when the lot exists, or lot_name with the new lot number when it doesn't, so Odoo creates the lot when the receipt is validated.

google sheets logo icon

Mark the Row Ready to Validate

App connector: Google Sheets • Time to complete: 1 minute

Write the new receipt's reference and a status of Ready to validate back to the row, so the receiving lead knows which Odoo receipt to open, check and validate.

Trusted by 1,000+ merchants
Logo: Rothy's Logo: Adidas Logo: Allure Logo: GQ Logo: DraftKings Logo: Chubbies Logo: Made In Cookware Logo: MUD/WTR

Ready to turn every row on your receiving sheet into an Odoo receipt with its lot

Get setup in 8 minutes.

Use this template →

FAQs

Why a receipt instead of an inventory adjustment?

A receipt records where the stock came from, which lot it belongs to and who validated it, so the lot's history stays traceable. An adjustment only changes the on-hand count.

Does the workflow validate the receipt?

No. MESA's Odoo steps create and update records but don't press buttons, so the receipt waits as a draft with its lot filled in. A receiving lead opens it, checks the count and clicks Validate, which is when on-hand quantity goes up.

What if the lot number doesn't exist in Odoo yet?

The workflow passes it as a new lot name on the receipt line. Receipts can create new lots by default in Odoo, so the lot is created when the receipt is validated.

Personalize this template

Customize this workflow even further:

Ping the receiving lead
Add a Slack Send Message step at the end with the receipt reference so someone validates it the same day.
Log expiry or QA results
Add form columns for expiry date or QA notes and map them onto the lot or receipt note.

You're in good company

"MESA has been a game changer for us. And, if you ever get stuck, their support team is always super helpful."

  • Ico star
  • Ico star
  • Ico star
  • Ico star
  • Ico star
PetFriendly

"It's like Zapier but exactly designed for Shopify. I have been able to complete all the workflows that I've needed."

  • Ico star
  • Ico star
  • Ico star
  • Ico star
  • Ico star
Zailys

"The MESA team has been amazing at helping us set up our automations. We would highly recommend this app!"

  • Ico star
  • Ico star
  • Ico star
  • Ico star
  • Ico star
Rothy's

turn every row on your receiving sheet into an Odoo receipt with its lot

8 min setup • Fully supported if you need help