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
    • Artificial Intelligence
    • 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 IndustriesInauguration Odoo Lyon
  • 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
    • Meet an advisor
    • Implementation Services
    • Customer References
    • Support
    • Upgrades
    Github Youtube Twitter Linkedin Instagram Facebook Spotify
    +1 (650) 691-3277
    Get a demo
  • Pricing
  • Help
You need to be registered to interact with the community.
All Posts People Badges
Tags (View all)
odoo accounting v14 pos v15
About this forum
You need to be registered to interact with the community.
All Posts People Badges
Tags (View all)
odoo accounting v14 pos v15
About this forum
Help

How can be tested/checked (in an Odoo python method) if there is any product (product_product) with a given ean13 code?

Subscribe

Get notified when there's activity on this post

This question has been flagged
modulesproductdatabasequeryodooV8
7 Replies
7224 Views
Avatar
E.M.

I am populating EAN13 codes in a method and assigning them to a product_product item.

However, I would like to test in advance if value already exists for any other product.

How is tested in Odoo if there is any product_product with a given EAN13 value?

Or, as a more general question, how do you check in Odoo if there is any product with a certain value (say FOOBAR) in a given field? 

0
Avatar
Discard
Avatar
Axel Mendoza
Best Answer

You need to do a search on the model. Take an example

def check_ean13(self, cr, uid, ean13, context=None):
    prod_count = self.pool.get('product.product').search(cr, uid, [('ean13','=', eanval)], count=True)
    if prod_count > 0:
#product with the field ean13 and eanval exist
else:
#there is no product with that ean13 value
2
Avatar
Discard
E.M.
Author

But if I try that within a create method, 'cr' and 'uid' are not defined, right? Are they needed for the search method?

Axel Mendoza

That depends on what api style you are using my example was using old api that still works. But the same apply without cr and uid for the new api

E.M.
Author

Thanks Axel, a nice chap posted this url https://www.odoo.com/documentation/8.0/reference/orm.html#porting-from-the-old-api-to-the-new-api for other question I made. That url helps to understand both APIs, strongly recommended for those of us who are struggling to understand the basics in Odoo.

Avatar
Kalpana Hemnani
Best Answer

Hello,

You can also apply unique constraint for ean13, in case if you don't want generate duplicate ean13.

You can define unique constraint as below:

_sql_constraints = [

('ean_13_unique', 'unique (ean13)', 'The EAN13 code must be unique!')

]

Or if you want to use python method, check it as below:

@api.multi

def check_ean13(self, ean13):

    for rec in self:

        prod_recs = self.search([('ean13', '=', rec.ean13), ('id', '=', rec.id)], count=True)

        if prod_recs > 0:

            #process if duplicate ean13 exists for another product

        else:

            #process if ean13 is unique.

Hope this helps!

Thanks,

Kalpana Hemnani

1
Avatar
Discard
E.M.
Author

Thanks for the side note Kalpana. This is helpful information and I am sure it will be useful in the future, in this specific case I don't want to enforce it across all code, just in one method. Now I am wondering how to retrieve ean13 code given a product.product ID. I am sure is easy once you know where to look for it.

Avatar
E.M.
Author Best Answer

As additional comment to this post, ean13 is part of product.product but it is populated in product.template. This is weird (IMHO) and there is even a note in the source code stating that ean13 population should be moved into product.product.

So if you are modifying create method it is normal that ean13 is not present in product.product create, as it is handled by product.template create.

0
Avatar
Discard
Enjoying the discussion? Don't just read, join in!

Create an account today to enjoy exclusive features and engage with our awesome community!

Sign up
Related Posts Replies Views Activity
Still seeing old modules even when they have been removed from directories and module list updated
modules database failing odooV8
Avatar
Avatar
1
Dec 15
7221
Module Install Error! Solved
modules odooV8
Avatar
Avatar
1
Dec 22
8536
Delete module from module list Solved
modules odooV8
Avatar
Avatar
Avatar
2
Jun 20
45943
How to create a module that adds records to the database when installed Solved
modules database
Avatar
Avatar
Avatar
2
Dec 18
14326
Is there a way to clear a database of all posted transactions, stock movement and activity without changing configurations and settings in the modules? (Odoo V8) Solved
database odooV8
Avatar
Avatar
Avatar
3
Jan 24
9059
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
الْعَرَبيّة Català 简体中文 繁體中文 (台灣) Čeština Dansk Nederlands English Suomi Français Deutsch हिंदी Bahasa Indonesia Italiano 日本語 한국어 (KR) Lietuvių kalba Język polski Português (BR) română русский язык Slovenský jazyk Slovenščina Español (América Latina) Español Svenska ภาษาไทย Türkçe українська Tiếng Việt

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

Odoo Experience on YouTube

1. Use the live chat to ask your questions.
2. The operator answers within a few minutes.

Live support on Youtube
Watch now