Skip to Content
Menu
This question has been flagged

My goal is to create a dynamic snippet that is actually a slider

I want to receive product photos and use them in the snippet

How can I do this?

I wanna get all product images and create custom slider with them :)

from odoo import http

from odoo.addons.website_partner.controllers.main import WebsitePartnerPage


class MyWebsitePartnerPage(WebsitePartnerPage):

@http.route(['/product-test/'], type='json', auth="public", methods=['POST'])
def json_partners_detail(self):
partner_sudo = http.request.env['product.product'].sudo().search_read([('id' , '=', 'product_variant_image_ids' )], ['image_1920'])


return partner_sudo


What model should I use?

product.template 

product.product

product.image

Avatar
Discard
Best Answer

Your snippet's going to be a sleek carousel of product images, right? For this, knowing which model to pull data from is crucial. In Odoo, products are a tad special because they've got two main models to consider:

  1. product.template: This model is like the blueprint for your products. When you've got a product that doesn't vary much (think of a book where the only difference might be the cover art), product.template is your go-to. It's where the core info about a product is stored, including a base image.
  2. product.product: Here's where things get spicy. This model represents the actual items you'll stock and sell – the product variants. Each variant can have its own attributes like size, color, or anything that makes it unique from other variants of the same product. And yes, this includes variant-specific images.
  3. product.image: Introduced in newer versions of Odoo, this model specifically handles product images, allowing you to store multiple images for a single product template or variant. It's used to manage additional images beyond the main one.

Given your goal – to create a slider showcasing all product images – you're likely interested in gathering as many relevant, variant-specific images as possible. Here's the twist:

  • If you want to showcase images from all variants of a product, you're looking at product.product. Each product.product record can have its own image, perfect for a variant-centric slider.
  • However, if your Odoo version supports product.image (check your version; this is a thing in more recent releases), and you want to include all additional images tied to both templates and variants, then product.image is your treasure chest.

For your specific case, if you're only after the main product images (including variants), sticking with product.product is a solid choice. Your code snippet seems to be on the right track but might need adjustments to properly fetch the images. You'll want to iterate over product records (product.product), grabbing each one's image. Keep in mind, the field for images might have a different name based on your Odoo version (e.g., image_1920 for main images in recent versions).

In a nutshell: For a robust slider that showcases the full spectrum of product visuals (main and variant images), consider how product.image can be leveraged if available in your Odoo version. Otherwise, product.product will be your main focus for variant images. Happy coding, and I hope your slider turns out to be a dazzling display of your products!
Odoo Beratung Deutschland

Avatar
Discard
Related Posts Replies Views Activity
3
Mar 25
3364
1
Nov 23
1242
2
Mar 24
2404
1
Apr 24
3160
2
May 23
197