Repository
odoo/odoo · module folder
Module version
1.1
Category
Website/Website
Folder size
22.54 MB
License
LGPL-3
Application
Yes
Auto-installable
No
Website
https://www.odoo.com/app/ecommerce
Last tracking update
2026-08-20 16:11:47
Authors
Odoo S.A.
Maintainers
Odoo S.A.
Committers
Xavier ALT, Fabien Pinckaers, Raphael Collet, Thibault DelavallĂ©e, Mohammed Shekha, odoo, Atul Patel, Josse Colpaert, Odoo Translation Bot, Denis Ledoux, David Monjoie, Nicolas Martinelli, Nicolas Lempereur, Aaron Bohy, GĂ©ry Debongnie, qsm-odoo, Julien Castiaux, Victor Feyens, Andrea Grazioso (agr-odoo), Julien Mougenot, Achraf (abz), RĂ©my Voet (ryv), Tiffany Chang (tic), Gorash, Arnaud Joset, William Braeckman, Benjamin Vray, Kishan Gajjar, Benoit Socias, william-andre, Nicolas Bayet, Antoine Vandevenne (anv), Demesmaeker, Aurelien van Delft (avd), Hubert Van De Walle, Valentin Chevalier, Renaud Thiry, Habib (ayh), Louis Wicket (wil), alsh-odoo, Victor Piryns (pivi), Julien (jula), Mahamadasif Ansari, amdi-odoo, Pieter Claeys (clpi), Robin Lejeune (role), SoukĂ©ina Bojabza, Louis (loco), Levi Siuzdak (sile), Dylan Kiss (dyki), FrancoisGe, Valeriya(vchu), tong-odoo, Anita (anko), Brieuc-brd, divy-odoo, sesn-odoo, Walid (wasa), stefanorigano (SRI), Mattis Megevand, lase@odoo.com, Aurelien MARIE (auma), Maryam Kia, Louis (loti), jorv-odoo, Mehdi Outagant (MOU), Serge Bayet (seba), reka-odoo, “Beekan”, Julien Carion (juca), kcv-odoo, dere-odoo, Julien Segers (juse), Louis Gobert, Lina (liew), aath-odoo, Rodolpho Lima, Chrysanthe (chgo), Sanjay Sharma, mano-odoo, Majed Alhanash (malh), aamo-odoo, Victorien (viso), kago-odoo, Patricia Daloze (pda), Manisha Tulsiyani, Xavier Luyckx (xlu), StĂ©phane Diez, Ryan Cen, Antoine (anso), Manushi Shah, Arib Ansari, Rahil Ghanchi, Pierre Pulinckx (PIPU), SĂ©bastien (blse), Julien Schwanen, paan-odoo, Victor Miguel Armenta Carrillo, dija-odoo, sben-odoo, David Van Droogenbroeck (DROD), pkgu-odoo, Mohammad Abdulmoneim (abdu), khsr-odoo, Pierre Lamotte (pila), Pierre Pulinckx, Anton Romanova (roan), Bastien PIERRE, nikj-odoo, masm-odoo, Corentin Heinix (cohe), Valeriya (vchu), Shrey Mehta, pish-odoo, Mahdi Alijani (malj), bona-odoo, lse-odoo, Thomas Josse (THJO), Damien Decleire (deda), Krzysztof Magusiak (krma), nipl-odoo, Florian Malfroid, Omar (OSAH), Ajit Singh, Maksym Yankin, krip-odoo, Basioni (basm), kdes-odoo, utma-odoo, Hadi El Yakhni, Ester Andreetto, Rushil Patel, Elier Ayala Bernal, bhra-odoo, pajo, defl, Giorgio Tocco (gito), josm-odoo, MAGREMENT, Junqi, agbr-odoo, sawer, Lancelot Semal, Julien Launois (jula), Laetitia (ldau), rusp-odoo, Alice Gaudon, adip-odoo, alap-odoo, Augustin (duau), Parth Pujara, Serhii Rubanskyi, syna-odoo, chdh-odoo, romo, Alessandro Lupo, josv-odoo, Nisarg (nipl), assh-odoo, Lionel Piraux (lipi), lecr, YoussefM890, Ravij Parikh, Merlin Guillaume, Mazen, saurabh, Oskar Wielgos, Rudra Patel, Stephane Vanmeerhaeghe (stva), yoelf, Zachary (zavan), Julien (jdeh), ibo-odoo, Farah (ahmfa), Nikhil Kajavadra, ELCO, Khaj-odoo, khaj-odoo, Levi Bensley, chpa-odoo, Akshaya Patil, panj-odoo, Oussema Heni, stefanorigano (sri), Krishna Patel, Claire Nguyen (clan), Romain ROSANO (rros), Serhii Rubanskyi - seru, metu-odoo, dabo-odoo, ahham, chga-odoo, nealwebdev, rudo
Odoo dependencies
Python dependencies
geoip2
System dependencies
None
Required by
hotel_reservation, l10n_ar_website_sale, l10n_br_website_sale, l10n_tw_edi_ecpay_website_sale, pms_website_sale, shopify_connector, spreadsheet_dashboard_website_sale, test_discuss_full, website_attribute_set, website_event_booth_sale, website_event_sale, website_membership, website_sale_acquirer_confirm_order, website_sale_autocomplete, website_sale_b2x_alt_price, website_sale_barcode_search, website_sale_cart_expire, website_sale_charge_payment_fee, website_sale_checkout_skip_payment, website_sale_comparison, website_sale_gelato, website_sale_hide_price, website_sale_loyalty, website_sale_mass_mailing, website_sale_mondialrelay, website_sale_one_time_delivery_address, website_sale_order_type, website_sale_product_accessory, website_sale_product_attribute_value_filter_existing, website_sale_product_brand, website_sale_product_detail_attribute_image, website_sale_product_item_cart_custom_qty, website_sale_product_minimal_price, website_sale_product_reference_displayed, website_sale_product_sort, website_sale_quick_checkout, website_sale_require_legal, website_sale_slides, website_sale_stock, website_sale_stock_picking_policy, website_sale_tax_selection, website_sale_variant_extra_fields, website_sale_wishlist
Description

Code Analysis

Views touched (213)
XML IDNameModelTypeStatus
accept_terms_and_conditions Accept Terms & Conditions ir.ui.view qweb Inherits navigation_buttons
accordion_more_information More Information Accordion Item ir.ui.view qweb Inherits website_sale.product_accordion
account_move_view_form account.move.form.inherit.website_sale account.move form Inherits account.view_move_form
address_b2b Show b2b fields ir.ui.view qweb Inherits website_sale.address
address_edit_button Address edit button ir.ui.view qweb New
address_on_checkout Address on payment ir.ui.view qweb New
all_products_link_name All Products name ir.ui.view qweb New
alternative_products Alternative Products ir.ui.view qweb Inherits website_sale.product
attribute_tree_view product.attribute.list product.attribute list Inherits product.attribute_tree_view
badge_extra_price Badge Extra Price ir.ui.view qweb New
base_unit_price Product Base unit price ir.ui.view qweb New
billing_address_list billing_address_list ir.ui.view qweb New
carousel_product_indicators Carousel Product ir.ui.view qweb New
carousel_product_indicators_bottom Carousel Product Indicators Bottom ir.ui.view qweb Inherits website_sale.shop_product_carousel
carousel_product_indicators_left Carousel Product Indicators Left ir.ui.view qweb Inherits website_sale.shop_product_carousel
cart Shopping Cart ir.ui.view qweb New
cart_combo_item_line cart_combo_item_line ir.ui.view qweb New
cart_line_description_following_lines Shopping Cart Line Description Following Lines ir.ui.view qweb New
cart_line_product_link Shopping Cart Line Product Link ir.ui.view qweb New
cart_lines Shopping Cart Lines ir.ui.view qweb New
cart_lines_price Shopping Cart Line Price ir.ui.view qweb New
cart_lines_quantity Shopping Cart Line quantity ir.ui.view qweb New
cart_product_price cart_product_price ir.ui.view qweb New
categorie_link Category Link ir.ui.view qweb New
categories_recursive Category list ir.ui.view qweb New
checkout checkout ir.ui.view qweb New
checkout_layout Checkout layout page ir.ui.view qweb New
confirmation confirmation ir.ui.view qweb New
coupon_form Coupon form ir.ui.view qweb New
delivery_address_list delivery_address_list ir.ui.view qweb New
delivery_form delivery_form ir.ui.view qweb New
delivery_method delivery_method ir.ui.view qweb New
digest_digest_view_form digest.digest.view.form.inherit.website_sale digest.digest form Inherits digest.digest_digest_view_form
dynamic_filter_template_product_product_products_item Generic Product Template (customizable) ir.ui.view qweb New
dynamic_filter_template_product_public_category_clickable_items dynamic_filter_template_product_public_category_clickable_items ir.ui.view qweb Inherits website_sale.dynamic_filter_template_product_public_category_default
dynamic_filter_template_product_public_category_default dynamic_filter_template_product_public_category_default ir.ui.view qweb New
ecom_show_extra_fields Show Extra Fields ir.ui.view qweb Inherits website_sale.product
extra_info Checkout Extra Info ir.ui.view qweb New
filter_products_price Filter by Prices ir.ui.view qweb New
filter_products_tags Filter by Tags ir.ui.view qweb New
filter_products_tags_list filter_products_tags_list ir.ui.view qweb New
gmc_xml gmc_xml ir.ui.view qweb New
header_cart_link Header Cart Link ir.ui.view qweb New
header_hide_empty_cart_link Header Hide Empty Cart link ir.ui.view qweb Inherits website_sale.header_cart_link
navigation_buttons Navigation buttons ir.ui.view qweb New
option_collapse_categories_recursive Collapse Category Recursive ir.ui.view qweb New
option_collapse_products_categories Collapsible Category List ir.ui.view qweb Inherits website_sale.products_categories_list
payment Payment ir.ui.view qweb New
payment_confirmation_status payment_confirmation_status ir.ui.view qweb New
price_dynamic_filter_template_product_product Dynamic Product Filter Price ir.ui.view qweb New
pricelist_list Pricelists Dropdown ir.ui.view qweb New
product_accordion Accordion On Product Page ir.ui.view qweb New
product_attribute_view_form product.attribute.view.form product.attribute form Inherits product.product_attribute_view_form
product_category_extra_link Product Category Extra Link ir.ui.view qweb New
product_comment Discussion and Rating ir.ui.view qweb Inherits website_sale.product
product_document_form product.document.form.website_sale product.document form Inherits sale.product_document_form
product_document_kanban product.document.kanban.website_sale product.document kanban Inherits sale.product_document_kanban
product_document_list product.document.list.website_sale product.document list Inherits sale.product_document_list
product_document_search product.document.search.sale product.document search Inherits sale.product_document_search
product_feed_form product.feed.view.form product.feed form New
product_feed_list product.feed.view.list product.feed list New
product_feed_search product.feed.view.search product.feed search New
product_image_view_kanban product.image.view.kanban product.image kanban New
product_pages_kanban_view Product Pages Kanban product.template kanban Inherits product_template_view_kanban_website_sale
product_pages_tree_view Product Pages List product.template list Inherits product_template_view_tree_website_sale
product_picture_magnify_click Image Zoom On Click ir.ui.view qweb Inherits website_sale.product
product_price product_price ir.ui.view qweb New
product_pricelist_item_form product.pricelist.item.view.form.inherit product.pricelist.item form Inherits sale.product_pricelist_item_form
product_product_normal_website_form_view product.product.normal.view.website product.product form Inherits product.product_normal_form_view
product_product_view_form_easy_inherit_website_sale product.product.view.form.easy.inherit.website_sale product.product form Inherits product.product_variant_easy_edit_view
product_product_view_form_normalized product.product.view.form.normalized.website.sale product.product form Inherits product.product_product_view_form_normalized
product_product_view_form_normalized_website_sale product.product.view.form.normalized.website.sale.inherit product.product form Inherits product.product_product_view_form_normalized
product_product_website_tree_view product.product.website.list product.product list Inherits product.product_product_tree_view
product_public_category_form_view product.public.category.form product.public.category form New
product_public_category_tree_view product.public.category.list product.public.category list New
product_ribbon_form_view product.ribbon.form.view product.ribbon form New
product_ribbon_view_tree product.ribbon.list product.ribbon list New
product_template_form_view product.template.product.website.form product.template form Inherits product.product_template_form_view
product_template_only_website_form_view product.template.product.only.website.form product.template form Inherits product.product_template_only_form_view
product_template_search_view_website product.template.search.published product.template search Inherits product.product_template_search_view
product_template_view_kanban_website_sale product.template.view.kanban.website_sale product.template kanban Inherits product.product_template_kanban_view
product_template_view_tree product.template.view.list.inherit.website_sale product.template list Inherits product.product_template_tree_view
product_template_view_tree_website_sale product.template.view.list.website_sale product.template list Inherits website_sale.product_template_view_tree
product_variant_preview product_variant_preview ir.ui.view qweb New
products Products ir.ui.view qweb New
products_attributes Attributes & Variants filters ir.ui.view qweb Inherits website_sale.products
products_attributes_collapsible Collapsed Attributes & Variants filters ir.ui.view qweb Inherits website_sale.product_attribute_filters_form
products_breadcrumb Products Breadcrumb ir.ui.view qweb New
products_list_view List View (by default) ir.ui.view qweb Inherits website_sale.products
quick_reorder_button quick_reorder_button ir.ui.view qweb New
quick_reorder_history quick_reorder_history ir.ui.view qweb New
quick_reorder_sidebar quick_reorder_sidebar ir.ui.view qweb New
reduction_code Promo Code ir.ui.view qweb Inherits website_sale.total
res_config_settings_view_form res.config.settings.view.form.inherit.website.sale res.config.settings form Inherits website_payment.res_config_settings_view_form
res_config_settings_view_form_inherit_sale res.config.settings.view.form.inherit.sale res.config.settings form Inherits sale.res_config_settings_view_form
s_add_to_cart Add to Cart Button ir.ui.view qweb New
s_dynamic_snippet_category_list Category List ir.ui.view qweb New
s_dynamic_snippet_category_preview_data Category List Preview Data ir.ui.view qweb New
s_dynamic_snippet_products Products ir.ui.view qweb New
s_dynamic_snippet_products_preview_data Products Preview Data ir.ui.view qweb New
sale_order_portal_content_inherit_website_sale Orders Followup Products Links ir.ui.view qweb Inherits sale.sale_order_portal_content
sale_order_re_order_btn Sale Order Order Again ir.ui.view qweb Inherits sale.sale_order_portal_template
sale_order_tree sale.order.list.inherit.website.sale sale.order list Inherits sale.sale_order_tree
sale_order_view_form sale.order.form sale.order form Inherits sale.view_order_form
sale_report_view_graph_website sale.report.view.graph.website sale.report graph New
sale_report_view_pivot_website sale.report.view.pivot.website sale.report pivot New
sale_report_view_search_website sale.report.search sale.report search New
sale_report_view_tree sale.report.view.list.inherit.website.sale sale.report list Inherits sale.sale_report_view_tree
search Search Box ir.ui.view qweb New
snippets e-commerce snippets ir.ui.view qweb Inherits website.snippets
suggested_products_list Accessory Products in my cart ir.ui.view qweb Inherits website_sale.cart_lines
template_footer_website_sale eCommerce Footer ir.ui.view qweb Inherits website.layout
template_header_boxed template_header_boxed ir.ui.view qweb Inherits website.template_header_boxed
template_header_default template_header_default ir.ui.view qweb Inherits website.template_header_default
template_header_hamburger template_header_hamburger ir.ui.view qweb Inherits website.template_header_hamburger
template_header_mobile template_header_mobile ir.ui.view qweb Inherits website.template_header_mobile
template_header_sales_four template_header_sales_four ir.ui.view qweb Inherits website.template_header_sales_four
template_header_sales_one template_header_sales_one ir.ui.view qweb Inherits website.template_header_sales_one
template_header_sales_three template_header_sales_three ir.ui.view qweb Inherits website.template_header_sales_three
template_header_sales_two template_header_sales_two ir.ui.view qweb Inherits website.template_header_sales_two
template_header_search template_header_search ir.ui.view qweb Inherits website.template_header_search
template_header_sidebar template_header_sidebar ir.ui.view qweb Inherits website.template_header_sidebar
template_header_stretch template_header_stretch ir.ui.view qweb Inherits website.template_header_stretch
template_header_vertical template_header_vertical ir.ui.view qweb Inherits website.template_header_vertical
total total ir.ui.view qweb New
variants variants ir.ui.view qweb New
view_delivery_carrier_form_website_delivery delivery.carrier.website.form delivery.carrier form Inherits delivery.view_delivery_carrier_form
view_delivery_carrier_search delivery.carrier.search.inherit delivery.carrier search Inherits delivery.view_delivery_carrier_search
view_delivery_carrier_tree delivery.carrier.list.inherit delivery.carrier list Inherits delivery.view_delivery_carrier_tree
view_product_image_form product.image.view.form product.image form New
view_sales_order_filter_ecommerce sale.order.ecommerce.search.view sale.order search Inherits sale.view_sales_order_filter
view_sales_order_filter_ecommerce_abondand sale.order.ecommerce.abandonned.view sale.order search New
view_sales_order_filter_ecommerce_unpaid sale.order.ecommerce.search.unpaid.view sale.order search Inherits sale.view_sales_order_filter
view_website_sale_website_form website_sale.website.form website form Inherits website.view_website_form
website_sale.address Address Management ir.ui.view qweb New
website_sale.address_card website_sale.address_card ir.ui.view qweb Inherits portal.address_card
website_sale.address_form_fields website_sale.address_form_fields ir.ui.view qweb Inherits portal.address_form_fields
website_sale.address_list website_sale.address_list ir.ui.view qweb Inherits portal.address_list
website_sale.brand_promotion website_sale.brand_promotion ir.ui.view qweb Inherits website.brand_promotion
website_sale.cart_summary_content website_sale.cart_summary_content ir.ui.view qweb New
website_sale.cta_separator Product Info - Dividers ir.ui.view qweb Inherits website_sale.product
website_sale.cta_wrapper CTA Wrapper ir.ui.view qweb New
website_sale.cta_wrapper_boxed Bordered CTA Wrapper ir.ui.view qweb Inherits website_sale.cta_wrapper
website_sale.cta_wrapper_large Large CTA Wrapper ir.ui.view qweb Inherits website_sale.cta_wrapper
website_sale.editor_previews Enable edit previews ir.ui.view qweb Inherits website_sale.products
website_sale.empty_cart_svg website_sale.empty_cart_svg ir.ui.view qweb New
website_sale.filmstrip_categories Categories Filmstrip ir.ui.view qweb New
website_sale.filmstrip_categories_bordered Categories Filmstrip Bordered ir.ui.view qweb Inherits website_sale.filmstrip_categories
website_sale.filmstrip_categories_grid Categories Filmstrip Grid ir.ui.view qweb Inherits website_sale.filmstrip_categories
website_sale.filmstrip_categories_images Categories Filmstrip Basic ir.ui.view qweb Inherits website_sale.filmstrip_categories
website_sale.filmstrip_categories_large_images Categories Filmstrip Cover ir.ui.view qweb Inherits website_sale.filmstrip_categories
website_sale.filmstrip_categories_pills Categories Filmstrip Tabs ir.ui.view qweb Inherits website_sale.filmstrip_categories
website_sale.filmstrip_categories_tabs Categories Filmstrip Tabs ir.ui.view qweb Inherits website_sale.filmstrip_categories
website_sale.filter_color_attributes Color attributes in Filter ir.ui.view qweb New
website_sale.filter_image_attributes Image attributes in Filter ir.ui.view qweb New
website_sale.filter_pills_attributes Pills attributes in Filter ir.ui.view qweb New
website_sale.filter_radio_and_multi_attributes Radio and Multi attributes in Filter ir.ui.view qweb New
website_sale.filter_select_attributes Select attributes in Filter ir.ui.view qweb New
website_sale.floating_bar Shop Floating Bar ir.ui.view qweb Inherits website_sale.products
website_sale.o_wsale_offcanvas Offcanvas ir.ui.view qweb New
website_sale.packaging_title Packaging title ir.ui.view qweb New
website_sale.product Product ir.ui.view qweb New
website_sale.product_attribute_filters_form Product Attribute Filters Form ir.ui.view qweb New
website_sale.product_buy_now Buy Now Button ir.ui.view qweb Inherits website_sale.cta_wrapper
website_sale.product_buy_now_large Large Buy Now Button ir.ui.view qweb Inherits website_sale.product_buy_now
website_sale.product_quantity Select Quantity ir.ui.view qweb Inherits website_sale.cta_wrapper
website_sale.product_quantity_large Select Quantity Large ir.ui.view qweb Inherits website_sale.product_quantity
website_sale.product_search Searchbar On Product Page ir.ui.view qweb Inherits website_sale.product
website_sale.product_tags Product Tags ir.ui.view qweb New
website_sale.product_terms_and_conditions Terms and Conditions ir.ui.view qweb New
website_sale.product_tile_element_visibility Product tile elements visibility ir.ui.view qweb New
website_sale.product_title website_sale.product_title ir.ui.view qweb New
website_sale.products_attributes_top Attributes in top-nav ir.ui.view qweb New
website_sale.products_categories Categories in Left Side ir.ui.view qweb New
website_sale.products_categories_list eCommerce Categories ir.ui.view qweb New
website_sale.products_categories_list_collapsible Collapsed eCommerce Categories ir.ui.view qweb Inherits website_sale.products_categories_list
website_sale.products_categories_top Categories in top-nav ir.ui.view qweb New
website_sale.products_item Products item ir.ui.view qweb New
website_sale.products_mobile_cols_single Mobile: Show 1 product for row ir.ui.view qweb Inherits website_sale.products
website_sale.products_shop_title Show Shop Title ir.ui.view qweb New
website_sale.products_shop_title_align Align Shop Title ir.ui.view qweb New
website_sale.s_dynamic_snippet_category_template website_sale.s_dynamic_snippet_category_template ir.ui.view qweb Inherits website.s_dynamic_snippet_template
website_sale.s_mega_menu_big_icons_subtitles eCommerce: Menu - Big icons & subtitles ir.ui.view qweb New
website_sale.s_mega_menu_cards eCommerce: Menu - Cards ir.ui.view qweb New
website_sale.s_mega_menu_images_subtitles eCommerce: Menu - images & subtitles ir.ui.view qweb New
website_sale.s_mega_menu_little_icons eCommerce: Menu - Little icons ir.ui.view qweb New
website_sale.s_mega_menu_menu_image_menu eCommerce: Menu - Image - Menu ir.ui.view qweb New
website_sale.s_mega_menu_menus_logos eCommerce: Menus & logos ir.ui.view qweb New
website_sale.s_mega_menu_multi_menus eCommerce: Multi-Menus ir.ui.view qweb New
website_sale.s_mega_menu_odoo_menu eCommerce: Odoo Menu ir.ui.view qweb New
website_sale.s_mega_menu_thumbnails eCommerce: Menu - Thumbnails ir.ui.view qweb New
website_sale.shop_product_buttons Products Actions ir.ui.view qweb New
website_sale.shop_product_carousel Shop Product Carousel ir.ui.view qweb New
website_sale.shop_product_grid Shop Product Grid ir.ui.view qweb New
website_sale.shop_product_image website_sale.shop_product_image ir.ui.view qweb New
website_sale.shop_product_images Shop Product Images ir.ui.view qweb New
website_sale.shorter_cart_summary website_sale.shorter_cart_summary ir.ui.view qweb New
website_sale.sidebar_dropzone_at_bottom website_sale.sidebar_dropzone_at_bottom ir.ui.view qweb New
website_sale.sidebar_dropzone_at_top website_sale.sidebar_dropzone_at_top ir.ui.view qweb New
website_sale.sort Sort-by Template ir.ui.view qweb New
website_sale.tax_indication website_sale.tax_indication ir.ui.view qweb New
website_sale_layout website_sale_layout ir.ui.view qweb Inherits website.layout
website_sale_pricelist_form_view website_sale.pricelist.form product.pricelist form Inherits product.product_pricelist_view
website_sale_pricelist_tree_view product.pricelist.list.inherit.product product.pricelist list Inherits product.product_pricelist_view_tree
website_sale_visitor_page_view_graph website.track.view.graph website.track graph New
website_sale_visitor_page_view_search website.track.view.search website.track search Inherits website.website_visitor_page_view_search
website_sale_visitor_page_view_tree website.track.view.list website.track list New
website_sale_visitor_track_view_graph website.track.view.graph website.track graph Inherits website.website_visitor_track_view_graph
website_sale_visitor_track_view_tree website.track.view.list website.track list Inherits website.website_visitor_track_view_tree
website_sale_visitor_view_form website.visitor.view.form website.visitor form Inherits website.website_visitor_view_form
website_sale_visitor_view_kanban website.visitor.view.kanban website.visitor kanban Inherits website.website_visitor_view_kanban
website_sale_visitor_view_tree website.visitor.view.list website.visitor list Inherits website.website_visitor_view_tree
wizard_checkout Wizard Checkout ir.ui.view qweb New
HTTP endpoints (59)
Route(s)HandlerAuthTypeMethodsFlags
(inherited route override) Cart.add_to_cart public jsonrpc POST sudo website
(inherited route override) Cart.cart public http ALL sudo website
(inherited route override) Cart.cart_quantity public jsonrpc POST website
(inherited route override) Cart.clear_cart public jsonrpc ALL website
(inherited route override) Cart.quick_add user jsonrpc POST website
(inherited route override) Cart.update_cart public jsonrpc POST website
/my/orders/reorder CustomerPortal.my_orders_reorder public jsonrpc ALL sudo website
(inherited route override) Delivery.express_checkout_process_delivery_address public jsonrpc ALL website
/shop/delivery_methods Delivery.shop_delivery_methods public jsonrpc ALL website
/shop/get_delivery_rate Delivery.shop_get_delivery_rate public jsonrpc POST sudo website
/shop/set_delivery_method Delivery.shop_set_delivery_method public jsonrpc ALL sudo website
/website_sale/get_pickup_locations Delivery.website_sale_get_pickup_locations public jsonrpc ALL website
/website_sale/set_pickup_location Delivery.website_sale_set_pickup_location public jsonrpc ALL website
/shop/payment/transaction/<int:order_id> PaymentPortal.shop_payment_transaction public jsonrpc ALL website
/gmc.xml ProductFeed.gmc_feed public http ALL website
(inherited route override) ThreadController.mail_message_post inherited http ALL website
(inherited route override) Website.autocomplete inherited http ALL
(inherited route override) Website.change_lang inherited http ALL
(inherited route override) Website.get_current_currency inherited http ALL
(inherited route override) Website.theme_customize_data inherited http ALL
/shop/config/category WebsiteSale._change_category_config user jsonrpc ALL
/shop/config/website WebsiteSale._change_website_config user jsonrpc ALL
/shop/product/extra-media WebsiteSale.add_product_media user jsonrpc ALL website
/shop/config/attribute WebsiteSale.change_attribute_config user jsonrpc ALL
/shop/config/product WebsiteSale.change_product_config user jsonrpc ALL
/shop/product/clear-images WebsiteSale.clear_product_images user jsonrpc ALL website
(inherited route override) WebsiteSale.express_checkout_shipping_address_compute_taxes public jsonrpc ALL website
/shop/extra_info WebsiteSale.extra_info public http ALL website
/shop/product/is_add_to_cart_allowed WebsiteSale.is_add_to_cart_allowed public jsonrpc ALL sudo website
(inherited route override) WebsiteSale.old_product public http ALL website
/shop/pricelist WebsiteSale.pricelist public http ALL sudo website
/shop/change_pricelist/<model("product.pricelist"):pricelist> WebsiteSale.pricelist_change public http ALL website
/shop/print WebsiteSale.print_saleorder public http ALL sudo website
(inherited route override) WebsiteSale.process_express_checkout public jsonrpc POST website
(inherited route override) WebsiteSale.product public http ALL website
/shop/<model("product.template"):product_template>/document/<int:document_id> WebsiteSale.product_document public http ALL sudo website
/shop/products/recently_viewed_delete WebsiteSale.products_recently_viewed_delete public jsonrpc ALL sudo website
/shop/products/recently_viewed_update WebsiteSale.products_recently_viewed_update public jsonrpc ALL website
/shop/product/resequence-image WebsiteSale.resequence_product_image user jsonrpc ALL website
/shop/save_shop_layout_mode WebsiteSale.save_shop_layout_mode public jsonrpc ALL website
/snippets/category/set_image WebsiteSale.set_category_image user jsonrpc ALL
(inherited route override) WebsiteSale.shop public http ALL sudo website
/shop/address WebsiteSale.shop_address public http GET website
/shop/address/submit WebsiteSale.shop_address_submit public http POST website
/shop/checkout WebsiteSale.shop_checkout public http GET website
/shop/payment WebsiteSale.shop_payment public http ALL website
/shop/confirmation WebsiteSale.shop_payment_confirmation public http ALL sudo website
/shop/payment/validate WebsiteSale.shop_payment_validate public http ALL sudo website
/shop/update_address WebsiteSale.shop_update_address public jsonrpc ALL sudo website
(inherited route override) WebsiteSaleComboConfiguratorController.website_sale_combo_configurator_get_data public jsonrpc ALL website
(inherited route override) WebsiteSaleComboConfiguratorController.website_sale_combo_configurator_get_price public jsonrpc ALL website
/website/form/shop.sale.order WebsiteSaleForm.website_form_saleorder public http POST sudo website
(inherited route override) WebsiteSaleProductConfiguratorController.website_sale_product_configurator_create_product public jsonrpc POST website
(inherited route override) WebsiteSaleProductConfiguratorController.website_sale_product_configurator_get_optional_products public jsonrpc ALL website
(inherited route override) WebsiteSaleProductConfiguratorController.website_sale_product_configurator_get_values public jsonrpc ALL website
(inherited route override) WebsiteSaleProductConfiguratorController.website_sale_product_configurator_update_combination public jsonrpc POST website
(inherited route override) WebsiteSaleProductConfiguratorController.website_sale_should_show_product_configurator public jsonrpc ALL website
/sale/create_product_variant WebsiteSaleVariantController.create_product_variant public jsonrpc POST
/website_sale/get_combination_info WebsiteSaleVariantController.get_combination_info_website public jsonrpc POST website
Models touched (36)

New fields (1)
  • website_id Many2one → website
    compute='_compute_website_id' help='Website through which this invoice was created for eCommerce orders.' readonly=True store=True string='Website' tracking=True args: 'website'
Public methods (1)
  • preview_invoice(self)

New fields (3)
  • abandoned_carts_amount Integer
    compute='_compute_abandoned_carts' string='Amount of Abandoned Carts'
  • abandoned_carts_count Integer
    compute='_compute_abandoned_carts' string='Number of Abandoned Carts'
  • website_ids One2many → website
    comodel_name='website' inverse_name='salesteam_id' string='Websites'
Public methods (1)
  • get_abandoned_carts(self)

New fields (1)
  • website_description Text
    readonly=False related='product_id.description_sale' string='Description for Online Quotations'
Public methods (0)

No public methods.

New fields (2)
  • kpi_website_sale_total Boolean
    string='eCommerce Sales'
  • kpi_website_sale_total_value Monetary
    compute='_compute_kpi_website_sale_total_value'
Public methods (0)

No public methods.

New fields (0)

No new fields.

Public methods (1)
  • get_frontend_session_info(self)
    @api.model

New fields (0)

No new fields.

Public methods (0)

No public methods.

New fields (0)

No new fields.

Public methods (0)

No public methods.

New fields (3)
  • is_thumbnail_visible Boolean
    help='Use product variant images instead of the attribute values displays.' string='Show Thumbnails'
  • preview_variants Selection
    default='hidden' help='Instantly created variants are available for selection from your\xa0/shop page.' selection=[('visible', 'Visible'), ('hidden', 'Hidden'), ('hover', 'Hover')] string='On Product Cards'
  • visibility Selection
    default='visible' selection=[('visible', 'Visible'), ('hidden', 'Hidden')]
Public methods (0)

No public methods.

New fields (1)
  • shown_on_product_page Boolean
    string='Publish on website'
Public methods (0)

No public methods.

New fields (12)
  • access_token Char
    copy=False default=<expr> readonly=True required=True
  • cache_expiry Datetime
    default=fields.Datetime.now readonly=True required=True
  • feed_cache Binary
    compute='_compute_feed_cache' readonly=True store=True
  • lang_id Many2one → res.lang
    compute='_compute_lang_id' domain="[('id', 'in', website_lang_ids)]" help='Select the language to translate product names, descriptions, and other text in the feed.' precompute=True readonly=False required=True store=True string='Language' args: 'res.lang'
  • last_notification_date Date
  • name Char
    required=True
  • pricelist_id Many2one → product.pricelist
    domain="[('website_id', 'in', (False, website_id)), ('selectable', '=', True)]" help='Specify a pricelist to localize the feed with a specific currency. If not set, the default website pricelist will be used.\nNote that the pricelist must be selectable on the website.' args: 'product.pricelist'
  • product_category_ids Many2many → product.public.category
    string='Categories' args: 'product.public.category'
  • target Selection
    default='gmc' required=True selection=[('gmc', 'Google Merchant Center')]
  • url Char
    compute='_compute_url'
  • website_id Many2one → website
    required=True args: 'website'
  • website_lang_ids Many2many
    related='website_id.language_ids'
Public methods (1)
  • action_invalidate_cache(self)

New fields (8)
  • can_image_1024_be_zoomed Boolean
    compute='_compute_can_image_1024_be_zoomed' store=True string='Can Image 1024 be zoomed'
  • embed_code Html
    compute='_compute_embed_code' sanitize=False
  • image_1920 Image
  • name Char
    required=True string='Name'
  • product_tmpl_id Many2one → product.template
    comodel_name='product.template' index=True ondelete='cascade' string='Product Template'
  • product_variant_id Many2one → product.product
    comodel_name='product.product' index=True ondelete='cascade' string='Product Variant'
  • sequence Integer
    default=10
  • video_url Char
    help='URL of a video for showcasing your product.' string='Video URL'
Public methods (1)
  • create(self, vals_list)
    @api.model_create_multi
    We don't want the default_product_tmpl_id from the context to be applied if we have a product_variant_id set to avoid having the variant images to show also as template images. But we want it if we don't have a product_variant_id set.

New fields (3)
  • code Char
    groups='base.group_user' string='E-commerce Promotional Code'
  • selectable Boolean
    help='Allow the end user to choose this price list'
  • website_id Many2one → website
    comodel_name='website' default=_default_website domain="[('company_id', '=?', company_id)]" help='If you want a pricelist to be available on a website,you must fill in this field or make it selectable.Otherwise, the pricelist will not apply to any website.' ondelete='restrict' string='Website' tracking=20
Public methods (3)
  • create(self, vals_list)
    @api.model_create_multi
  • unlink(self)
  • write(self, vals)

New fields (0)

No new fields.

Public methods (0)

No public methods.

New fields (8)
  • base_unit_count Float
    default=1 digits=0 help='Display base unit price on your eCommerce pages. Set to 0 to hide it for this product.' required=True string='Base Unit Count'
  • base_unit_id Many2one → website.base.unit
    comodel_name='website.base.unit' help='Define a custom unit to display in the price per unit of measure field.' string='Custom Unit of Measure'
  • base_unit_name Char
    compute='_compute_base_unit_name' help='Displays the custom unit for the products if defined or the selected unit of measure otherwise.'
  • base_unit_price Monetary
    compute='_compute_base_unit_price' string='Price Per Unit'
  • product_variant_image_ids One2many → product.image
    comodel_name='product.image' inverse_name='product_variant_id' string='Extra Variant Images'
  • variant_ribbon_id Many2one → product.ribbon
    comodel_name='product.ribbon' string='Variant Ribbon'
  • website_id Many2one
    readonly=False related='product_tmpl_id.website_id'
  • website_url Char
    compute='_compute_product_website_url' help='The full URL to access the document through the website.' string='Website URL'
Public methods (3)
  • open_website_url(self)
  • website_publish_button(self)
  • write(self, vals)

New fields (14)
  • align_category_content Boolean
    default=False help="Align the category content on the shop page. Corresponds to the 'Center Content' editor option." string='Align Category Content'
  • child_id One2many → product.public.category
    comodel_name='product.public.category' inverse_name='parent_id' string='Children Categories'
  • cover_image Image
    help='Displayed only in the Category List Snippet.' string='Cover Image'
  • has_published_products Boolean
    compute='_compute_has_published_products' compute_sudo=True search='_search_has_published_products'
  • name Char
    required=True translate=True
  • parent_id Many2one → product.public.category
    comodel_name='product.public.category' index=True ondelete='cascade' string='Parent'
  • parent_path Char
    index=True
  • parents_and_self Many2many → product.public.category
    comodel_name='product.public.category' compute='_compute_parents_and_self'
  • product_tmpl_ids Many2many → product.template
    comodel_name='product.template' relation='product_public_category_product_template_rel'
  • sequence Integer
    default=_default_sequence index=True
  • show_category_description Boolean
    default=True help="Display the category description on the shop page. Corresponds to the 'Show Description' editor option." string='Show Category Description'
  • show_category_title Boolean
    default=False help="Display the category title on the shop page. Corresponds to the 'Show Title' editor option." string='Show Category Title'
  • website_description Html
    sanitize_attributes=False sanitize_form=False sanitize_overridable=True string='Description' translate=html_translate
  • website_footer Html
    sanitize_attributes=False sanitize_form=False string='Category Footer' translate=html_translate
Public methods (2)
  • check_parent_id(self)
    @api.constrains('parent_id')
  • get_available_snippet_categories(self, website_id)
    @api.model
    Return parent categories available for selection in the dynamic category snippet. :param int website_id: ID of the current website :return: Available parent categories :rtype: list[dict]

New fields (8)
  • assign Selection
    default='manual' help='Defines how this ribbon is assigned to products:\n- Manually: You assign the ribbon manually to products.\n- Sale: Applied when the product is visibly on sale.\n- New: Applied based on the New period you will define.\n' required=True selection=[('manual', 'Manually'), ('sale', 'On Sale'), ('new', 'When New')] string='Assign'
  • bg_color Char
    default='#000000' required=True string='Background Color'
  • name Char
    required=True size=20 string='Ribbon Name' translate=True
  • new_period Integer
    default=30
  • position Selection
    default='left' required=True selection=[('left', 'Left'), ('right', 'Right')] string='Position'
  • sequence Integer
    default=10
  • style Selection
    default='ribbon' help='Defines the display style:\n- Ribbon: Shows a ribbon banner on the product image.\n- Badge: Shows a small badge label on the product image.' required=True selection=[('ribbon', 'Ribbon'), ('tag', 'Badge')] string='Style'
  • text_color Char
    default='#FFFFFF' required=True string='Text Color'
Public methods (0)

No public methods.

New fields (0)

No new fields.

Public methods (0)

No public methods.

New fields (19)
  • accessory_product_ids Many2many → product.product
    check_company=True column1='src_id' column2='dest_id' comodel_name='product.product' help='Accessories show up when the customer reviews the cart before payment (cross-sell strategy).' relation='product_accessory_rel' string='Accessory Products'
  • alternative_product_ids Many2many → product.template
    check_company=True column1='src_id' column2='dest_id' comodel_name='product.template' help='Suggest alternatives to your customer (upsell strategy). Those products show up on the product page.' relation='product_alternative_rel' string='Alternative Products'
  • base_unit_count Float
    compute='_compute_base_unit_count' default=0 digits=0 help='Display base unit price on your eCommerce pages. Set to 0 to hide it for this product.' inverse='_set_base_unit_count' required=True store=True string='Base Unit Count'
  • base_unit_id Many2one → website.base.unit
    comodel_name='website.base.unit' compute='_compute_base_unit_id' help='Define a custom unit to display in the price per unit of measure field.' inverse='_set_base_unit_id' store=True string='Custom Unit of Measure'
  • base_unit_name Char
    compute='_compute_base_unit_name' help='Displays the custom unit for the products if defined or the selected unit of measure otherwise.'
  • base_unit_price Monetary
    compute='_compute_base_unit_price' string='Price Per Unit'
  • compare_list_price Monetary
    help='Add a strikethrough price to your /shop and product pages for comparison purposes.It will not be displayed if pricelists apply.' string='Compare to Price'
  • description Html
    index='trigram'
  • description_ecommerce Html
    sanitize_attributes=False sanitize_form=False sanitize_overridable=True string='eCommerce Description' translate=html_translate
  • description_sale Text
    index='trigram'
  • product_template_image_ids One2many → product.image
    comodel_name='product.image' copy=True inverse_name='product_tmpl_id' string='Extra Product Media'
  • public_categ_ids Many2many → product.public.category
    comodel_name='product.public.category' help="The product will be available in each mentioned eCommerce category. Go to Shop > Edit Click on the page and enable 'Categories' to view all eCommerce categories." relation='product_public_category_product_template_rel' string='Website Product Category'
  • publish_date Datetime
    compute='_compute_publish_date' default=fields.Datetime.now required=True store=True string='Publish Date'
  • variants_default_code Char
    compute='_compute_variants_default_code' help='Technical field to enhance performance when looking up default code of productvariants (LIKE/ILIKE)' index='trigram' store=True
  • website_description Html
    index='trigram' sanitize_attributes=False sanitize_form=False sanitize_overridable=True string='Description for the website' translate=html_translate
  • website_ribbon_id Many2one → product.ribbon
    comodel_name='product.ribbon' string='Ribbon'
  • website_sequence Integer
    copy=False default=_default_website_sequence help='Determine the display order in the Website E-commerce' index=True string='Website Sequence'
  • website_size_x Integer
    default=1 string='Size X'
  • website_size_y Integer
    default=1 string='Size Y'
Public methods (6)
  • create_product_variant(self, product_template_attribute_value_ids)
    Create if necessary and possible and return the id of the product variant matching the given combination for this template. Note AWA: Known "exploit" issues with this method: - This method could be used by an unauthenticated user to generate a lot of useless variants. Unfortunately, after discussing the matter with ODO, there's no easy and user-friendly way to block that behavior. We would have to use captcha/server actions to clean/... that are all not user-friendly/overkill mechanisms. - This method could be used to try to guess what product variant ids are created in the system and what product template ids are configured as "dynamic", but that does not seem like a big deal. The error messages are identical on purpose to avoid giving too much information to a potential attacker: - returning 0 when failing - returning the variant id whether it already existed or not :param product_template_attribute_value_ids: the combination for which to get or create variant :type product_template_attribute_value_ids: list of id of `product.template.attribute.value` :return: id of the product variant matching the combination or 0 :rtype: int
  • set_sequence_bottom(self)
  • set_sequence_down(self)
  • set_sequence_top(self)
  • set_sequence_up(self)
  • write(self, vals)

New fields (0)

No new fields.

Public methods (0)

No public methods.

New fields (0)

No new fields.

Public methods (0)

No public methods.

New fields (0)

No new fields.

Public methods (0)

No public methods.

New fields (17)
  • account_on_checkout Selection
    compute='_compute_account_on_checkout' inverse='_inverse_account_on_checkout' readonly=False required=True selection=[('optional', 'Optional'), ('disabled', 'Disabled'), ('mandatory', 'Mandatory')] string='Customer Accounts'
  • add_to_cart_action Selection
    readonly=False related='website_id.add_to_cart_action'
  • cart_abandoned_delay Float
    readonly=False related='website_id.cart_abandoned_delay'
  • cart_recovery_mail_template Many2one
    readonly=False related='website_id.cart_recovery_mail_template_id'
  • confirmation_email_template_id Many2one
    readonly=False related='website_id.confirmation_email_template_id'
  • ecommerce_access Selection
    readonly=False related='website_id.ecommerce_access'
  • group_gmc_feed Boolean
    group='base.group_user' implied_group='website_sale.group_product_feed' readonly=False related='website_id.enabled_gmc_src' string='Google Merchant Center'
  • group_product_price_comparison Boolean
    group='base.group_user' help='Add a strikethrough price to your /shop and product pages for comparison purposes.It will not be displayed if pricelists apply.' implied_group='website_sale.group_product_price_comparison' string='Comparison Price'
  • group_show_uom_price Boolean
    default=False group='base.group_user' implied_group='website_sale.group_show_uom_price' string='Base Unit Price'
  • module_website_sale_autocomplete Boolean
    args: 'Address Autocomplete'
  • module_website_sale_collect Boolean
    args: 'Click & Collect'
  • salesperson_id Many2one
    readonly=False related='website_id.salesperson_id'
  • salesteam_id Many2one
    readonly=False related='website_id.salesteam_id'
  • send_abandoned_cart_email Boolean
    readonly=False related='website_id.send_abandoned_cart_email' string='Abandoned Email'
  • show_line_subtotals_tax_selection Selection
    readonly=False related='website_id.show_line_subtotals_tax_selection'
  • website_sale_contact_us_button_url Char
    readonly=False related='website_id.contact_us_button_url' string='Button Url'
  • website_sale_prevent_zero_price_sale Boolean
    readonly=False related='website_id.prevent_zero_price_sale' string='Prevent Sale of Zero Priced Product'
Public methods (6)
  • action_open_abandoned_cart_mail_template(self)
    @api.readonly
  • action_open_extra_info(self)
  • action_open_product_feeds(self)
    @api.readonly
    Open the list view to manage the feed specific to the current website.
  • action_open_sale_mail_templates(self)
    @api.readonly
  • action_view_delivery_provider_modules(self)
  • set_values(self)

New fields (0)

No new fields.

Public methods (1)
  • write(self, vals)

New fields (8)
  • amount_delivery Monetary
    compute='_compute_amount_delivery' help='Tax included or excluded depending on the website configuration.' string='Delivery Amount'
  • cart_quantity Integer
    compute='_compute_cart_info' string='Cart Quantity'
  • cart_recovery_email_sent Boolean
    string='Cart recovery email already sent'
  • is_abandoned_cart Boolean
    compute='_compute_abandoned_cart' search='_search_abandoned_cart' string='Abandoned Cart'
  • only_services Boolean
    compute='_compute_cart_info' string='Only Services'
  • shop_warning Char
    string='Warning'
  • website_id Many2one → website
    comodel_name='website' help='Website through which this order was placed for eCommerce orders.' readonly=True
  • website_order_line One2many → sale.order.line
    comodel_name='sale.order.line' compute='_compute_website_order_line' string='Order Lines displayed on Website'
Public methods (4)
  • action_confirm(self)
  • action_preview_sale_order(self)
  • action_recovery_email_send(self)
  • create(self, vals_list)
    @api.model_create_multi

New fields (2)
  • name_short Char
    compute='_compute_name_short'
  • shop_warning Char
    string='Warning'
Public methods (1)
  • get_description_following_lines(self)

New fields (3)
  • is_abandoned_cart Boolean
    readonly=True string='Abandoned Cart'
  • public_categ_ids Many2many
    related='product_tmpl_id.public_categ_ids' string='eCommerce Categories'
  • website_id Many2one → website
    readonly=True args: 'website'
Public methods (0)

No public methods.

New fields (0)

No new fields.

Public methods (1)
  • enable_view(self, xml_id)
    @api.model
    Override of `theme.utils` to disable all category style templates when enabling one.

New fields (33)
  • account_on_checkout Selection
    default='optional' selection=[('optional', 'Optional'), ('disabled', 'Disabled (buy as guest)'), ('mandatory', 'Mandatory (no guest checkout)')] string='Customer Accounts'
  • add_to_cart_action Selection
    default='stay' selection=[('stay', 'Stay on Product Page'), ('go_to_cart', 'Go to cart')]
  • auth_signup_uninvited Selection
    default='b2c'
  • cart_abandoned_delay Float
    default=10.0 string='Abandoned Delay'
  • cart_recovery_mail_template_id Many2one → mail.template
    comodel_name='mail.template' default=_default_recovery_mail_template domain=[('model', '=', 'sale.order')] string='Cart Recovery Email'
  • confirmation_email_template_id Many2one → mail.template
    comodel_name='mail.template' default=_default_confirmation_email_template domain=[('model', '=', 'sale.order')]
  • contact_us_button_url Char
    default='/contactus' string='Contact Us Button URL' translate=True
  • currency_id Many2one → res.currency
    comodel_name='res.currency' compute='_compute_currency_id' string='Default Currency'
  • ecommerce_access Selection
    default='everyone' required=True selection=[('everyone', 'All users'), ('logged_in', 'Logged in users')]
  • enabled_gmc_src Boolean
    default=<expr> string='Google Merchant Center'
  • prevent_zero_price_sale Boolean
    string="Hide 'Add To Cart' when price = 0"
  • pricelist_ids One2many → product.pricelist
    comodel_name='product.pricelist' compute='_compute_pricelist_ids' string='Price list available for this Ecommerce/Website'
  • product_page_cols_order Selection
    default='regular' selection=[('regular', 'Regular order'), ('inverse', 'Inverse order')] string='Product Page main columns order'
  • product_page_container Selection
    default='unset' selection=[('unset', 'Unset'), ('regular', 'Regular'), ('fluid', 'Full-width')]
  • product_page_grid_columns Integer
    default=2
  • product_page_image_layout Selection
    default='carousel' required=True selection=[('carousel', 'Carousel'), ('grid', 'Grid')]
  • product_page_image_ratio Selection
    default='1_1' required=True selection=[('auto', 'Auto'), ('21_9', 'Wider (21/9)'), ('16_9', 'Wide (16/9)'), ('4_3', 'Landscape (4/3)'), ('6_5', 'Horizontal (6/5)'), ('1_1', 'Default (1/1)'), ('4_5', 'Portrait (4/5)'), ('2_3', 'Vertical (2/3)')]
  • product_page_image_ratio_mobile Selection
    default='auto' required=True selection=[('auto', 'Auto'), ('21_9', 'Wider (21/9)'), ('16_9', 'Wide (16/9)'), ('4_3', 'Landscape (4/3)'), ('6_5', 'Horizontal (6/5)'), ('1_1', 'Default (1/1)'), ('4_5', 'Portrait (4/5)'), ('2_3', 'Vertical (2/3)')]
  • product_page_image_roundness Selection
    default='none' required=True selection=[('none', 'None'), ('small', 'Small'), ('medium', 'Medium'), ('big', 'Big')]
  • product_page_image_spacing Selection
    default='none' required=True selection=[('none', 'None'), ('small', 'Small'), ('medium', 'Medium'), ('big', 'Big')]
  • product_page_image_width Selection
    default='50_pc' required=True selection=[('none', 'Hidden'), ('33_pc', '33 %'), ('50_pc', '50 %'), ('66_pc', '66 %'), ('100_pc', '100 %')]
  • salesperson_id Many2one → res.users
    comodel_name='res.users' domain=[('share', '=', False)] string='Salesperson'
  • salesteam_id Many2one → crm.team
    comodel_name='crm.team' default=_default_salesteam_id index='btree_not_null' ondelete='set null' string='Sales Team'
  • send_abandoned_cart_email Boolean
    string='Send email to customers who abandoned their cart.'
  • send_abandoned_cart_email_activation_time Datetime
    compute='_compute_send_abandoned_cart_email_activation_time' store=True string="Time when the 'Send abandoned cart email' feature was activated."
  • shop_default_sort Selection
    default='website_sequence asc' required=True selection='_get_product_sort_mapping'
  • shop_extra_field_ids One2many → website.sale.extra.field
    comodel_name='website.sale.extra.field' inverse_name='website_id' string='E-Commerce Extra Fields'
  • shop_gap Char
    default='16px' required=False string='Grid-gap on the shop'
  • shop_opt_products_design_classes Char
    default='o_wsale_products_opt_layout_catalog o_wsale_products_opt_design_thumbs o_wsale_products_opt_name_color_regular o_wsale_products_opt_rounded_2 o_wsale_products_opt_thumb_cover o_wsale_products_opt_img_secondary_show o_wsale_products_opt_img_hover_zoom_out_light o_wsale_products_opt_has_cta o_wsale_products_opt_actions_onhover o_wsale_products_opt_has_wishlist o_wsale_products_opt_wishlist_fixed o_wsale_products_opt_has_description o_wsale_products_opt_actions_subtle o_wsale_products_opt_cc1' help='CSS class for shop products design' string='Shop Design Class'
  • shop_page_container Selection
    default='regular' selection=[('regular', 'Regular'), ('fluid', 'Full-width')]
  • shop_ppg Integer
    default=21 string='Number of products in the grid on the shop'
  • shop_ppr Integer
    default=3 string='Number of grid columns on the shop'
  • show_line_subtotals_tax_selection Selection
    compute='_compute_show_line_subtotals_tax_selection' readonly=False selection=[('tax_excluded', 'Tax Excluded'), ('tax_included', 'Tax Included')] store=True string='Line Subtotals Tax Display'
Public methods (12)
  • action_dashboard_redirect(self)
    @api.model
  • configurator_addons_apply(self, industry_name=None, **kwargs)
    Override of `website` to generate eCommerce categories for a given industry using AI.
  • configurator_apply(self, *, shop_page_style_option=None, product_page_style_option=None, **kwargs)
    @api.model
    Override of `website` to apply eCommerce page style configurations. :param str shop_page_style_option: The key of the selected shop page style option. See `const.SHOP_PAGE_STYLE_MAPPING`. :param str product_page_style_option: The key of the selected product page style option. See `const.PRODUCT_PAGE_STYLE_MAPPING`.
  • create(self, vals_list)
    @api.model_create_multi
  • get_configurator_product_page_styles(self)
    @api.model
    Format and return ids and images of each product page style for website onboarding. :return: The product page style information. :rtype: list[dict]
  • get_configurator_shop_page_styles(self)
    @api.model
    Format and return the ids and images of each shop page style for website onboarding. :return: The shop page style information. :rtype: list[dict]
  • get_pricelist_available(self, show_visible=False)
    Return the list of pricelists that can be used on website for the current user. Country restrictions will be detected with GeoIP (if installed). :param bool show_visible: if True, we don't display pricelist where selectable is False (Eg: Code promo) :returns: pricelist recordset
  • get_suggested_controllers(self)
  • has_ecommerce_access(self)
    Return whether the current user is allowed to access eCommerce-related content.
  • is_pricelist_available(self, pl_id)
    Return a boolean to specify if a specific pricelist can be manually set on the website. Warning: It check only if pricelist is in the 'selectable' pricelists or the current pricelist. :param int pl_id: The pricelist id to check :returns: Boolean, True if valid / available
  • sale_product_domain(self)
  • sale_reset(self)

New fields (1)
  • name Char
    help='Define a custom unit to display in the price per unit of measure field.' required=True translate=True
Public methods (0)

No public methods.

New fields (6)
  • back_button_label Char
    translate=True
  • main_button_label Char
    translate=True
  • name Char
    required=True translate=True
  • sequence Integer
  • step_href Char
    required=True string='Href'
  • website_id Many2one → website
    ondelete='cascade' args: 'website'
Public methods (0)

No public methods.

New fields (0)

No new fields.

Public methods (0)

No public methods.

New fields (0)

No new fields.

Public methods (0)

No public methods.

New fields (5)
  • field_id Many2one → ir.model.fields
    comodel_name='ir.model.fields' domain=[('model_id.model', '=', 'product.template'), ('ttype', 'in', ['char', 'binary'])] ondelete='cascade' required=True
  • label Char
    related='field_id.field_description'
  • name Char
    related='field_id.name'
  • sequence Integer
    default=10
  • website_id Many2one → website
    comodel_name='website' index='btree_not_null'
Public methods (0)

No public methods.

New fields (1)
  • product_cross_selling Boolean
    help='True only for product filters that require a product_id because they relate to cross selling' string='About cross selling products'
Public methods (1)
  • default_get(self, fields)
    @api.model

New fields (1)
  • product_id Many2one → product.product
    comodel_name='product.product' index='btree_not_null' ondelete='cascade' readonly=True
Public methods (0)

No public methods.

New fields (3)
  • product_count Integer
    compute='_compute_product_statistics' help='Total number of product viewed' string='Products Views'
  • product_ids Many2many → product.product
    comodel_name='product.product' compute='_compute_product_statistics' string='Visited Products'
  • visitor_product_count Integer
    compute='_compute_product_statistics' help='Total number of views on products' string='Product Views'
Public methods (0)

No public methods.

Loading…

Loading…

Loading…

Loading…

Loading…

Loading…

Loading…

Loading…

Loading…

Loading…

Loading…