mirror of
https://github.com/bringout/oca-ocb-sale.git
synced 2026-04-26 20:52:00 +02:00
19.0 vanilla
This commit is contained in:
parent
79f83631d5
commit
73afc09215
6267 changed files with 1534193 additions and 1130106 deletions
|
|
@ -18,37 +18,36 @@
|
|||
<field name="state">open</field>
|
||||
</record>
|
||||
|
||||
<record id="product_attribute_brand" model="product.attribute">
|
||||
<field name="name">Brand</field>
|
||||
<field name="sequence">0</field>
|
||||
</record>
|
||||
|
||||
<record id="website_sale.sale_ribbon" model="product.ribbon">
|
||||
<field name="html">Sale</field>
|
||||
<field name="html_class">o_ribbon_left</field>
|
||||
<field name="bg_color">rgb(40, 167, 69)</field>
|
||||
<field name="text_color">white</field>
|
||||
<field name="name">Sale</field>
|
||||
<field name="position">left</field>
|
||||
<field name="text_color">#FFFFFF</field>
|
||||
<field name="bg_color">#0CA725</field>
|
||||
<field name="sequence">3</field>
|
||||
</record>
|
||||
|
||||
<record id="website_sale.sold_out_ribbon" model="product.ribbon">
|
||||
<field name="html">Sold out</field>
|
||||
<field name="html_class">o_ribbon_left</field>
|
||||
<field name="bg_color">rgb(220, 53, 69)</field>
|
||||
<field name="text_color">white</field>
|
||||
<field name="name">Sold out</field>
|
||||
<field name="position">left</field>
|
||||
<field name="text_color">#FFFFFF</field>
|
||||
<field name="bg_color">#d9534f</field>
|
||||
<field name="sequence">1</field>
|
||||
</record>
|
||||
|
||||
<record id="website_sale.out_of_stock_ribbon" model="product.ribbon">
|
||||
<field name="html">Out of stock</field>
|
||||
<field name="html_class">o_ribbon_left</field>
|
||||
<field name="bg_color">rgb(255, 193, 7)</field>
|
||||
<field name="text_color">black</field>
|
||||
<field name="name">Out of stock</field>
|
||||
<field name="position">left</field>
|
||||
<field name="text_color">#FFFFFF</field>
|
||||
<field name="bg_color">#ffc107</field>
|
||||
<field name="sequence">2</field>
|
||||
</record>
|
||||
|
||||
<record id="website_sale.new_ribbon" model="product.ribbon">
|
||||
<field name="html">New!</field>
|
||||
<field name="html_class">o_ribbon_left</field>
|
||||
<field name="bg_color">rgb(0, 123, 255)</field>
|
||||
<field name="text_color">white</field>
|
||||
<field name="name">New!</field>
|
||||
<field name="position">left</field>
|
||||
<field name="text_color">#FFFFFF</field>
|
||||
<field name="bg_color">#0275d8</field>
|
||||
<field name="sequence">4</field>
|
||||
</record>
|
||||
|
||||
<record id="sales_team.salesteam_website_sales" model="crm.team">
|
||||
|
|
@ -57,11 +56,42 @@
|
|||
|
||||
<record model="website" id="website.default_website">
|
||||
<field name="salesteam_id" ref="sales_team.salesteam_website_sales"/>
|
||||
<field name="salesperson_id" ref="base.user_admin"/>
|
||||
</record>
|
||||
|
||||
<record model="product.pricelist" id="product.list0">
|
||||
<field name="selectable" eval="True" />
|
||||
<field name="website_id" eval="False"/>
|
||||
<record id="delivery.free_delivery_carrier" model="delivery.carrier" forcecreate="False">
|
||||
<field name="is_published" eval="True"/>
|
||||
</record>
|
||||
|
||||
<!-- Generic steps used to generate new specific steps -->
|
||||
<record id="website_sale.checkout_step_cart" model="website.checkout.step">
|
||||
<field name="name">Order</field>
|
||||
<field name="sequence">0</field>
|
||||
<field name="step_href">/shop/cart</field>
|
||||
<field name="back_button_label">Back to cart</field>
|
||||
</record>
|
||||
|
||||
<record id="website_sale.checkout_step_delivery" model="website.checkout.step">
|
||||
<field name="name">Address</field>
|
||||
<field name="sequence">250</field>
|
||||
<field name="step_href">/shop/checkout</field>
|
||||
<field name="main_button_label">Checkout</field>
|
||||
<field name="back_button_label">Back to address</field>
|
||||
</record>
|
||||
|
||||
<record id="website_sale.checkout_step_extra" model="website.checkout.step">
|
||||
<field name="name">Extra Info</field>
|
||||
<field name="sequence">500</field>
|
||||
<field name="step_href">/shop/extra_info</field>
|
||||
<field name="main_button_label">Confirm</field>
|
||||
<field name="back_button_label">Back to extra info</field>
|
||||
</record>
|
||||
|
||||
<record id="website_sale.checkout_step_payment" model="website.checkout.step">
|
||||
<field name="name">Payment</field>
|
||||
<field name="sequence">999</field>
|
||||
<field name="step_href">/shop/payment</field>
|
||||
<field name="main_button_label">Confirm</field>
|
||||
</record>
|
||||
|
||||
</data>
|
||||
|
|
@ -70,7 +100,7 @@
|
|||
<record id="dynamic_snippet_newest_products_filter" model="ir.filters">
|
||||
<field name="name">Newest Products</field>
|
||||
<field name="model_id">product.product</field>
|
||||
<field name="user_id" eval="False" />
|
||||
<field name="user_ids" eval="False" />
|
||||
<field name="domain">[('website_published', '=', True)]</field>
|
||||
<field name="context">{'display_default_code': False, 'add2cart_rerender': False}</field>
|
||||
<field name="sort">["create_date desc"]</field>
|
||||
|
|
@ -83,16 +113,16 @@
|
|||
<field name="state">code</field>
|
||||
<field name="code">
|
||||
DynamicFilter = model.env['website.snippet.filter']
|
||||
response = DynamicFilter._get_products('latest_sold', model.env.context)
|
||||
response = DynamicFilter._get_products('latest_sold')
|
||||
</field>
|
||||
</record>
|
||||
<record id="dynamic_snippet_latest_viewed_products_action" model="ir.actions.server">
|
||||
<field name="name">Recently Viewed Products</field>
|
||||
<field name="name">Recently Viewed Products (per user)</field>
|
||||
<field name="model_id" ref="model_product_product"/>
|
||||
<field name="state">code</field>
|
||||
<field name="code">
|
||||
DynamicFilter = model.env['website.snippet.filter']
|
||||
res_products = DynamicFilter._get_products('latest_viewed', model.env.context)
|
||||
res_products = DynamicFilter._get_products('latest_viewed')
|
||||
for data in res_products:
|
||||
data['_latest_viewed'] = True
|
||||
response = res_products
|
||||
|
|
@ -104,8 +134,7 @@ response = res_products
|
|||
<field name="state">code</field>
|
||||
<field name="code">
|
||||
DynamicFilter = model.env['website.snippet.filter']
|
||||
model.env.context['product_template_id'] = request.params.get('productTemplateId')
|
||||
response = DynamicFilter._get_products('accessories', model.env.context)
|
||||
response = DynamicFilter._get_products('accessories', product_template_id=request.params.get('productTemplateId'))
|
||||
</field>
|
||||
</record>
|
||||
<record id="dynamic_snippet_recently_sold_with_action" model="ir.actions.server">
|
||||
|
|
@ -114,8 +143,7 @@ response = DynamicFilter._get_products('accessories', model.env.context)
|
|||
<field name="state">code</field>
|
||||
<field name="code">
|
||||
DynamicFilter = model.env['website.snippet.filter']
|
||||
model.env.context['product_template_id'] = request.params.get('productTemplateId')
|
||||
response = DynamicFilter._get_products('recently_sold_with', model.env.context)
|
||||
response = DynamicFilter._get_products('recently_sold_with', product_template_id=request.params.get('productTemplateId'))
|
||||
</field>
|
||||
</record>
|
||||
<record id="dynamic_snippet_alternative_products" model="ir.actions.server">
|
||||
|
|
@ -124,8 +152,16 @@ response = DynamicFilter._get_products('recently_sold_with', model.env.context)
|
|||
<field name="state">code</field>
|
||||
<field name="code">
|
||||
DynamicFilter = model.env['website.snippet.filter']
|
||||
model.env.context['product_template_id'] = request.params.get('productTemplateId')
|
||||
response = DynamicFilter._get_products('alternative_products', model.env.context)
|
||||
response = DynamicFilter._get_products('alternative_products', product_template_id=request.params.get('productTemplateId'))
|
||||
</field>
|
||||
</record>
|
||||
<record id="dynamic_snippet_category_list" model="ir.actions.server">
|
||||
<field name="name">Category List</field>
|
||||
<field name="model_id" ref="model_product_public_category"/>
|
||||
<field name="state">code</field>
|
||||
<field name="code">
|
||||
DynamicFilter = model.env['website.snippet.filter']
|
||||
response = DynamicFilter._prepare_category_list_data(parent_id=request.params.get('parentId'))
|
||||
</field>
|
||||
</record>
|
||||
<!-- Dynamic Filter -->
|
||||
|
|
@ -145,7 +181,8 @@ response = DynamicFilter._get_products('alternative_products', model.env.context
|
|||
<field name="action_server_id" ref="website_sale.dynamic_snippet_latest_viewed_products_action"/>
|
||||
<field name="field_names">display_name,description_sale,image_512</field>
|
||||
<field name="limit" eval="16"/>
|
||||
<field name="name">Recently Viewed Products</field>
|
||||
<field name="name">Recently Viewed Products (per user)</field>
|
||||
<field name="help">The building block will remain empty until the user visits a product page.</field>
|
||||
</record>
|
||||
<record id="dynamic_filter_cross_selling_accessories" model="website.snippet.filter">
|
||||
<field name="action_server_id" ref="website_sale.dynamic_snippet_accessories_action"/>
|
||||
|
|
@ -168,6 +205,12 @@ response = DynamicFilter._get_products('alternative_products', model.env.context
|
|||
<field name="name">Alternative Products</field>
|
||||
<field name="product_cross_selling">True</field>
|
||||
</record>
|
||||
<record id="dynamic_filter_category_list" model="website.snippet.filter">
|
||||
<field name="action_server_id" ref="website_sale.dynamic_snippet_category_list"/>
|
||||
<field name="field_names">id,name,cover_image</field>
|
||||
<field name="name">Category List</field>
|
||||
<field name="limit" eval="10"/>
|
||||
</record>
|
||||
|
||||
<function model="ir.model.fields" name="formbuilder_whitelist">
|
||||
<value>sale.order</value>
|
||||
|
|
|
|||
|
|
@ -5,7 +5,23 @@
|
|||
<field name="salesteam_id" ref="sales_team.salesteam_website_sales"/>
|
||||
</record>
|
||||
|
||||
<record id="product.product_attribute_2" model="product.attribute">
|
||||
<record id="product.pa_color" model="product.attribute">
|
||||
<field name="preview_variants">hover</field>
|
||||
</record>
|
||||
<record id="product.pa_legs" model="product.attribute">
|
||||
<field name="preview_variants">visible</field>
|
||||
</record>
|
||||
<record id="product.pa_options" model="product.attribute">
|
||||
<field name="visibility">hidden</field>
|
||||
</record>
|
||||
<record id="product.pa_size" model="product.attribute">
|
||||
<field name="preview_variants">visible</field>
|
||||
</record>
|
||||
<record id="product.pa_fabric" model="product.attribute">
|
||||
<field name="preview_variants">visible</field>
|
||||
<field name="is_thumbnail_visible" eval="True"/>
|
||||
</record>
|
||||
<record id="product.pa_shoe_size" model="product.attribute">
|
||||
<field name="visibility">hidden</field>
|
||||
</record>
|
||||
|
||||
|
|
@ -57,36 +73,39 @@
|
|||
<record id="product.product_order_01" model="product.product">
|
||||
<field name="is_published" eval="True"/>
|
||||
</record>
|
||||
<record id="product.office_combo" model="product.product">
|
||||
<field name="is_published" eval="True"/>
|
||||
</record>
|
||||
|
||||
<record id="product.product_product_4" model="product.product">
|
||||
<field name="is_published" eval="True"/>
|
||||
<field name="website_sequence">9950</field>
|
||||
<field name="website_description" type="html">
|
||||
<section class="s_text_image pt32 pb32 o_colored_level o_cc o_cc1" data-snippet="s_text_image" data-name="Text - Image">
|
||||
<section class="s_text_image pt80 pb80 o_colored_level o_cc o_cc1" data-snippet="s_text_image" data-name="Text - Image">
|
||||
<div class="container">
|
||||
<div class="row align-items-center">
|
||||
<div class="pt16 pb16 col-lg-6">
|
||||
<h2>Ergonomic</h2>
|
||||
<h2 class="h3-fs">Ergonomic</h2>
|
||||
<p>Press a button and watch your desk glide effortlessly from sitting to standing height in seconds.</p>
|
||||
<p>The minimum height is 65 cm, and for standing work the maximum height position is 125 cm.</p>
|
||||
</div>
|
||||
<div class="pt16 pb16 col-lg-6">
|
||||
<img src="/website/static/src/img/snippets_demo/s_text_image.jpg" class="img img-fluid mx-auto" alt=""/>
|
||||
<img src="/website/static/src/img/snippets_demo/s_text_image.webp" class="img img-fluid mx-auto rounded" alt=""/>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
<section class="s_text_image pt32 pb32 o_colored_level o_cc o_cc1" data-snippet="s_image_text" data-name="Image - Text">
|
||||
<section class="s_text_image pt80 pb80 o_colored_level o_cc o_cc1" data-snippet="s_image_text" data-name="Image - Text">
|
||||
<div class="container">
|
||||
<div class="row align-items-center">
|
||||
<div class="pt16 pb16 col-lg-6">
|
||||
<img src="/website_sale/static/src/img/carpentry.jpg" class="img img-fluid mx-auto" alt=""/>
|
||||
<img src="/website_sale/static/src/img/carpentry.jpg" class="img img-fluid mx-auto rounded" alt=""/>
|
||||
</div>
|
||||
<div class="pt16 pb16 col-lg-6">
|
||||
<h2>Locally handmade</h2>
|
||||
<h2 class="h3-fs">Locally handmade</h2>
|
||||
<p>We pay special attention to detail, which is why our desks are of a superior quality.</p>
|
||||
<p>Looking for a custom bamboo stain to match existing furniture? Contact us for a quote.</p>
|
||||
<p><a href="/contactus" class="mb-2 btn btn-primary">Contact Us</a></p>
|
||||
<p><a href="/contactus" class="mb-2 btn btn-primary o_translate_inline">Contact Us</a></p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
|
@ -115,70 +134,285 @@
|
|||
<field name="accessory_product_ids" eval="[(6, 0, [ref('product.product_product_7')])]"/>
|
||||
</record>
|
||||
|
||||
<record id="item1" model="product.pricelist.item">
|
||||
<field name="base">list_price</field>
|
||||
<field name="applied_on">1_product</field>
|
||||
<field name="pricelist_id" ref="product.list0"/>
|
||||
<field name="product_tmpl_id" ref="product.product_product_4_product_template"/>
|
||||
<field name="price_discount">20</field>
|
||||
<field name="min_quantity">2</field>
|
||||
<field name="compute_price">formula</field>
|
||||
</record>
|
||||
|
||||
<!-- product.public.category -->
|
||||
|
||||
<record id="public_category_desks" model="product.public.category">
|
||||
<field name="name">Desks</field>
|
||||
<field name="sequence">15</field>
|
||||
<field name="image_1920" type="base64" file="website_sale/static/src/img/categories/desks.jpg"/>
|
||||
<field name="cover_image" type="base64" file="website_sale/static/src/img/categories/desks.jpg"/>
|
||||
</record>
|
||||
<record id="public_category_furnitures" model="product.public.category">
|
||||
<field name="name">Furnitures</field>
|
||||
<field name="sequence">17</field>
|
||||
<field name="sequence">22</field>
|
||||
<field name="image_1920" type="base64" file="website_sale/static/src/img/categories/furnitures.jpg"/>
|
||||
<field name="cover_image" type="base64" file="website_sale/static/src/img/categories/furnitures.jpg"/>
|
||||
</record>
|
||||
<record id="public_category_boxes" model="product.public.category">
|
||||
<field name="name">Boxes</field>
|
||||
<field name="sequence">20</field>
|
||||
<field name="sequence">29</field>
|
||||
<field name="image_1920" type="base64" file="website_sale/static/src/img/categories/boxes.jpg"/>
|
||||
<field name="cover_image" type="base64" file="website_sale/static/src/img/categories/boxes.jpg"/>
|
||||
</record>
|
||||
<record id="public_category_drawers" model="product.public.category">
|
||||
<field name="name">Drawers</field>
|
||||
<field name="sequence">21</field>
|
||||
<field name="sequence">35</field>
|
||||
<field name="image_1920" type="base64" file="website_sale/static/src/img/categories/drawers.jpg"/>
|
||||
<field name="cover_image" type="base64" file="website_sale/static/src/img/categories/drawers.jpg"/>
|
||||
</record>
|
||||
<record id="public_category_cabinets" model="product.public.category">
|
||||
<field name="name">Cabinets</field>
|
||||
<field name="sequence">22</field>
|
||||
<field name="sequence">40</field>
|
||||
<field name="image_1920" type="base64" file="website_sale/static/src/img/categories/cabinets.jpg"/>
|
||||
<field name="cover_image" type="base64" file="website_sale/static/src/img/categories/cabinets.jpg"/>
|
||||
</record>
|
||||
<record id="public_category_bins" model="product.public.category">
|
||||
<field name="name">Bins</field>
|
||||
<field name="sequence">23</field>
|
||||
<field name="sequence">45</field>
|
||||
<field name="image_1920" type="base64" file="website_sale/static/src/img/categories/bins.jpg"/>
|
||||
<field name="cover_image" type="base64" file="website_sale/static/src/img/categories/bins.jpg"/>
|
||||
</record>
|
||||
<record id="public_category_lamps" model="product.public.category">
|
||||
<field name="name">Lamps</field>
|
||||
<field name="sequence">24</field>
|
||||
<field name="sequence">49</field>
|
||||
<field name="image_1920" type="base64" file="website_sale/static/src/img/categories/lamps.jpg"/>
|
||||
<field name="cover_image" type="base64" file="website_sale/static/src/img/categories/lamps.jpg"/>
|
||||
</record>
|
||||
<record id="services" model="product.public.category">
|
||||
<record id="public_category_services" model="product.public.category">
|
||||
<field name="name">Services</field>
|
||||
<field name="sequence">25</field>
|
||||
<field name="sequence">55</field>
|
||||
<field name="image_1920" type="base64" file="website_sale/static/src/img/warranty.jpg"/>
|
||||
<field name="cover_image" type="base64" file="website_sale/static/src/img/warranty.jpg"/>
|
||||
</record>
|
||||
<record id="public_category_multimedia" model="product.public.category">
|
||||
<field name="name">Multimedia</field>
|
||||
<field name="sequence">26</field>
|
||||
<field name="sequence">59</field>
|
||||
<field name="image_1920" type="base64" file="product/static/img/product_product_43-image.jpg"/>
|
||||
<field name="cover_image" type="base64" file="product/static/img/product_product_43-image.jpg"/>
|
||||
</record>
|
||||
|
||||
<!-- subcategories -->
|
||||
|
||||
<!-- subcategories for desks -->
|
||||
<record id="public_category_desks_components" model="product.public.category">
|
||||
<field name="parent_id" eval="ref('public_category_desks')"/>
|
||||
<field name="name">Components</field>
|
||||
<field name="sequence">16</field>
|
||||
<field name="image_1920" type="base64" file="website_sale/static/src/img/categories/desk_components.jpg"/>
|
||||
<field name="cover_image" type="base64" file="website_sale/static/src/img/categories/desk_components.jpg"/>
|
||||
</record>
|
||||
<record id="public_category_desks_office" model="product.public.category">
|
||||
<field name="parent_id" eval="ref('public_category_desks')"/>
|
||||
<field name="name">Office Desks</field>
|
||||
<field name="sequence">17</field>
|
||||
</record>
|
||||
<record id="public_category_desks_gaming" model="product.public.category">
|
||||
<field name="parent_id" eval="ref('public_category_desks')"/>
|
||||
<field name="name">Gaming Desks</field>
|
||||
<field name="sequence">18</field>
|
||||
</record>
|
||||
<record id="public_category_desks_glass" model="product.public.category">
|
||||
<field name="parent_id" eval="ref('public_category_desks')"/>
|
||||
<field name="name">Glass Desks</field>
|
||||
<field name="sequence">19</field>
|
||||
</record>
|
||||
<record id="public_category_desks_standing" model="product.public.category">
|
||||
<field name="parent_id" eval="ref('public_category_desks')"/>
|
||||
<field name="name">Standing Desks</field>
|
||||
<field name="sequence">20</field>
|
||||
</record>
|
||||
<record id="public_category_desks_foldable" model="product.public.category">
|
||||
<field name="parent_id" eval="ref('public_category_desks')"/>
|
||||
<field name="name">Foldable Desks</field>
|
||||
<field name="sequence">21</field>
|
||||
</record>
|
||||
|
||||
<!-- subcategories for furnitures -->
|
||||
<record id="public_category_furnitures_sofas" model="product.public.category">
|
||||
<field name="parent_id" eval="ref('public_category_furnitures')"/>
|
||||
<field name="name">Sofas</field>
|
||||
<field name="sequence">23</field>
|
||||
</record>
|
||||
<record id="public_category_furnitures_chairs" model="product.public.category">
|
||||
<field name="parent_id" eval="ref('public_category_furnitures')"/>
|
||||
<field name="name">Chairs</field>
|
||||
<field name="sequence">24</field>
|
||||
</record>
|
||||
<record id="public_category_furnitures_couches" model="product.public.category">
|
||||
<field name="parent_id" eval="ref('public_category_furnitures')"/>
|
||||
<field name="name">Couches</field>
|
||||
<field name="sequence">25</field>
|
||||
</record>
|
||||
<record id="public_category_furnitures_recliners" model="product.public.category">
|
||||
<field name="parent_id" eval="ref('public_category_furnitures')"/>
|
||||
<field name="name">Recliners</field>
|
||||
<field name="sequence">26</field>
|
||||
</record>
|
||||
<record id="public_category_furnitures_beds" model="product.public.category">
|
||||
<field name="parent_id" eval="ref('public_category_furnitures')"/>
|
||||
<field name="name">Beds</field>
|
||||
<field name="sequence">27</field>
|
||||
</record>
|
||||
<record id="public_category_furnitures_wardrobes" model="product.public.category">
|
||||
<field name="parent_id" eval="ref('public_category_furnitures')"/>
|
||||
<field name="name">Wardrobes</field>
|
||||
<field name="sequence">28</field>
|
||||
</record>
|
||||
|
||||
<!-- subcategories for boxes -->
|
||||
<record id="public_category_boxes_vintage" model="product.public.category">
|
||||
<field name="parent_id" eval="ref('public_category_boxes')"/>
|
||||
<field name="name">Vintage Boxes</field>
|
||||
<field name="sequence">30</field>
|
||||
</record>
|
||||
<record id="public_category_boxes_rustic" model="product.public.category">
|
||||
<field name="parent_id" eval="ref('public_category_boxes')"/>
|
||||
<field name="name">Rustic Boxes</field>
|
||||
<field name="sequence">31</field>
|
||||
</record>
|
||||
<record id="public_category_boxes_luxury" model="product.public.category">
|
||||
<field name="parent_id" eval="ref('public_category_boxes')"/>
|
||||
<field name="name">Luxury Boxes</field>
|
||||
<field name="sequence">32</field>
|
||||
</record>
|
||||
<record id="public_category_boxes_stackable" model="product.public.category">
|
||||
<field name="parent_id" eval="ref('public_category_boxes')"/>
|
||||
<field name="name">Stackable Boxes</field>
|
||||
<field name="sequence">33</field>
|
||||
</record>
|
||||
<record id="public_category_boxes_collapsible" model="product.public.category">
|
||||
<field name="parent_id" eval="ref('public_category_boxes')"/>
|
||||
<field name="name">Collapsible Boxes</field>
|
||||
<field name="sequence">34</field>
|
||||
</record>
|
||||
|
||||
<!-- subcategories for drawers -->
|
||||
<record id="public_category_drawers_nightstand" model="product.public.category">
|
||||
<field name="parent_id" eval="ref('public_category_drawers')"/>
|
||||
<field name="name">Nightstand Drawers</field>
|
||||
<field name="sequence">36</field>
|
||||
</record>
|
||||
<record id="public_category_drawers_underbed" model="product.public.category">
|
||||
<field name="parent_id" eval="ref('public_category_drawers')"/>
|
||||
<field name="name">Under-bed Drawers</field>
|
||||
<field name="sequence">37</field>
|
||||
</record>
|
||||
<record id="public_category_drawers_file" model="product.public.category">
|
||||
<field name="parent_id" eval="ref('public_category_drawers')"/>
|
||||
<field name="name">File Drawers</field>
|
||||
<field name="sequence">38</field>
|
||||
</record>
|
||||
<record id="public_category_drawers_kitchen" model="product.public.category">
|
||||
<field name="parent_id" eval="ref('public_category_drawers')"/>
|
||||
<field name="name">Kitchen Drawer Units</field>
|
||||
<field name="sequence">39</field>
|
||||
</record>
|
||||
|
||||
<!-- subcategories for cabinets -->
|
||||
<record id="public_category_cabinets_kitchen" model="product.public.category">
|
||||
<field name="parent_id" eval="ref('public_category_cabinets')"/>
|
||||
<field name="name">Kitchen Cabinets</field>
|
||||
<field name="sequence">41</field>
|
||||
</record>
|
||||
<record id="public_category_cabinets_bathroom" model="product.public.category">
|
||||
<field name="parent_id" eval="ref('public_category_cabinets')"/>
|
||||
<field name="name">Bathroom Cabinets</field>
|
||||
<field name="sequence">42</field>
|
||||
</record>
|
||||
<record id="public_category_cabinets_storage" model="product.public.category">
|
||||
<field name="parent_id" eval="ref('public_category_cabinets')"/>
|
||||
<field name="name">Storage Cabinets</field>
|
||||
<field name="sequence">43</field>
|
||||
</record>
|
||||
<record id="public_category_cabinets_medicine" model="product.public.category">
|
||||
<field name="parent_id" eval="ref('public_category_cabinets')"/>
|
||||
<field name="name">Medicine Cabinets</field>
|
||||
<field name="sequence">44</field>
|
||||
</record>
|
||||
|
||||
<!-- subcategories for bins -->
|
||||
<record id="public_category_bins_laundry" model="product.public.category">
|
||||
<field name="parent_id" eval="ref('public_category_bins')"/>
|
||||
<field name="name">Laundry Bins</field>
|
||||
<field name="sequence">46</field>
|
||||
</record>
|
||||
<record id="public_category_bins_toy" model="product.public.category">
|
||||
<field name="parent_id" eval="ref('public_category_bins')"/>
|
||||
<field name="name">Toy Bins</field>
|
||||
<field name="sequence">47</field>
|
||||
</record>
|
||||
<record id="public_category_bins_storage" model="product.public.category">
|
||||
<field name="parent_id" eval="ref('public_category_bins')"/>
|
||||
<field name="name">Food Storage Bins</field>
|
||||
<field name="sequence">48</field>
|
||||
</record>
|
||||
|
||||
<!-- subcategories for lamps -->
|
||||
<record id="public_category_lamps_desk" model="product.public.category">
|
||||
<field name="parent_id" eval="ref('public_category_lamps')"/>
|
||||
<field name="name">Desk Lamps</field>
|
||||
<field name="sequence">50</field>
|
||||
</record>
|
||||
<record id="public_category_lamps_ceiling" model="product.public.category">
|
||||
<field name="parent_id" eval="ref('public_category_lamps')"/>
|
||||
<field name="name">Ceiling Lamps</field>
|
||||
<field name="sequence">51</field>
|
||||
</record>
|
||||
<record id="public_category_lamps_chandelier" model="product.public.category">
|
||||
<field name="parent_id" eval="ref('public_category_lamps')"/>
|
||||
<field name="name">Chandeliers</field>
|
||||
<field name="sequence">52</field>
|
||||
</record>
|
||||
<record id="public_category_lamps_touch" model="product.public.category">
|
||||
<field name="parent_id" eval="ref('public_category_lamps')"/>
|
||||
<field name="name">Touch Lamps</field>
|
||||
<field name="sequence">53</field>
|
||||
</record>
|
||||
|
||||
<!-- subcategories for services -->
|
||||
<record id="public_category_services_design_and_planning" model="product.public.category">
|
||||
<field name="parent_id" eval="ref('public_category_services')"/>
|
||||
<field name="name">Design and Planning</field>
|
||||
<field name="sequence">55</field>
|
||||
</record>
|
||||
<record id="public_category_services_delivery_and_installation" model="product.public.category">
|
||||
<field name="parent_id" eval="ref('public_category_services')"/>
|
||||
<field name="name">Delivery and Installation</field>
|
||||
<field name="sequence">56</field>
|
||||
</record>
|
||||
<record id="public_category_services_repair_and_maintenance" model="product.public.category">
|
||||
<field name="parent_id" eval="ref('public_category_services')"/>
|
||||
<field name="name">Repair and Maintenance</field>
|
||||
<field name="sequence">57</field>
|
||||
</record>
|
||||
<record id="public_category_services_relocation_and_moving" model="product.public.category">
|
||||
<field name="parent_id" eval="ref('public_category_services')"/>
|
||||
<field name="name">Relocation and Moving</field>
|
||||
<field name="sequence">58</field>
|
||||
</record>
|
||||
|
||||
<!-- subcategories for lamps -->
|
||||
<record id="public_category_multimedia_virtual_design" model="product.public.category">
|
||||
<field name="parent_id" eval="ref('public_category_multimedia')"/>
|
||||
<field name="name">Virtual Design Tools</field>
|
||||
<field name="sequence">60</field>
|
||||
</record>
|
||||
<record id="public_category_multimedia_augmented_reality" model="product.public.category">
|
||||
<field name="parent_id" eval="ref('public_category_multimedia')"/>
|
||||
<field name="name">Augmented Reality Tools</field>
|
||||
<field name="sequence">61</field>
|
||||
</record>
|
||||
<record id="public_category_multimedia_education" model="product.public.category">
|
||||
<field name="parent_id" eval="ref('public_category_multimedia')"/>
|
||||
<field name="name">Education Tools</field>
|
||||
<field name="sequence">62</field>
|
||||
</record>
|
||||
|
||||
<record id="product.product_product_1_product_template" model="product.template">
|
||||
<field name="public_categ_ids" eval="[(6,0,[ref('public_category_services')])]"/>
|
||||
</record>
|
||||
<record id="product.product_product_2_product_template" model="product.template">
|
||||
<field name="public_categ_ids" eval="[(6,0,[ref('public_category_services')])]"/>
|
||||
</record>
|
||||
<record id="public_category_furnitures_chairs" model="product.public.category">
|
||||
<field name="parent_id" eval="ref('public_category_furnitures')"/>
|
||||
|
|
@ -192,10 +426,10 @@
|
|||
</record>
|
||||
|
||||
<record id="product.product_product_1_product_template" model="product.template">
|
||||
<field name="public_categ_ids" eval="[(6,0,[ref('services')])]"/>
|
||||
<field name="public_categ_ids" eval="[(6,0,[ref('public_category_services')])]"/>
|
||||
</record>
|
||||
<record id="product.product_product_2_product_template" model="product.template">
|
||||
<field name="public_categ_ids" eval="[(6,0,[ref('services')])]"/>
|
||||
<field name="public_categ_ids" eval="[(6,0,[ref('public_category_services')])]"/>
|
||||
</record>
|
||||
<record id="product.product_product_3_product_template" model="product.template">
|
||||
<field name="public_categ_ids" eval="[(6,0,[ref('public_category_desks_components')])]"/>
|
||||
|
|
@ -243,7 +477,7 @@
|
|||
<record id="product.product_product_22_product_template" model="product.template">
|
||||
<field name="public_categ_ids" eval="[(6,0,[ref('public_category_desks_components')])]"/>
|
||||
</record>
|
||||
<record id="product.product_product_25_product_template" model="product.template">
|
||||
<record id="product.product_template_acoustic_bloc_screens" model="product.template">
|
||||
<field name="public_categ_ids" eval="[(6,0,[ref('public_category_desks_components')])]"/>
|
||||
</record>
|
||||
<record id="product.product_product_27_product_template" model="product.template">
|
||||
|
|
@ -268,17 +502,17 @@
|
|||
<field name="public_categ_ids" eval="[(6,0,[ref('public_category_lamps')])]"/>
|
||||
</record>
|
||||
|
||||
<record model="product.pricelist" id="product.list0">
|
||||
<field name="selectable" eval="True" />
|
||||
<field name="sequence">3</field>
|
||||
</record>
|
||||
|
||||
<record id="benelux" model="res.country.group">
|
||||
<field name="name">BeNeLux</field>
|
||||
<field name="country_ids" eval="[(6,0,[
|
||||
ref('base.be'),ref('base.lu'),ref('base.nl')])]"/>
|
||||
</record>
|
||||
|
||||
<!-- Since we are adding pricelists, we activate the feature -->
|
||||
<record id="base.group_user" model="res.groups">
|
||||
<field name="implied_ids" eval="[(4, ref('product.group_product_pricelist'))]"/>
|
||||
</record>
|
||||
|
||||
<record id="list_christmas" model="product.pricelist">
|
||||
<field name="name">Christmas</field>
|
||||
<field name="selectable" eval="False" />
|
||||
|
|
@ -323,12 +557,6 @@
|
|||
<field name="base">list_price</field>
|
||||
</record>
|
||||
|
||||
<record id="item_us" model="product.pricelist.item">
|
||||
<field name="pricelist_id" ref="product.list0"/>
|
||||
<field name="compute_price">formula</field>
|
||||
<field name="base">list_price</field>
|
||||
</record>
|
||||
|
||||
<!-- Add demo-data for pretty website sales graph (for the sales dashboard) -->
|
||||
<record id="website_sale_order_1" model="sale.order">
|
||||
<field name="create_date" eval="datetime.now() - timedelta(days=8)"/>
|
||||
|
|
@ -336,7 +564,6 @@
|
|||
<field name="partner_invoice_id" ref="base.res_partner_address_25"/>
|
||||
<field name="partner_shipping_id" ref="base.res_partner_address_25"/>
|
||||
<field name="user_id" ref="base.user_demo"/>
|
||||
<field name="pricelist_id" ref="product.list0"/>
|
||||
<field name="team_id" ref="sales_team.salesteam_website_sales"/>
|
||||
<field name="date_order" eval="(datetime.now()-relativedelta(days=7)).strftime('%Y-%m-%d %H:%M:%S')"/>
|
||||
<field name="state">sale</field>
|
||||
|
|
@ -344,10 +571,7 @@
|
|||
|
||||
<record id="website_sale_order_line_1" model="sale.order.line">
|
||||
<field name="order_id" ref="website_sale_order_1"/>
|
||||
<field name="name" model="sale.order.line" eval="obj().env.ref('product.product_product_6').get_product_multiline_description_sale()"/>
|
||||
<field name="product_id" ref="product.product_product_6"/>
|
||||
<field name="product_uom_qty">1</field>
|
||||
<field name="product_uom" ref="uom.product_uom_unit"/>
|
||||
<field name="price_unit">599.0</field>
|
||||
</record>
|
||||
|
||||
|
|
@ -357,7 +581,6 @@
|
|||
<field name="partner_invoice_id" ref="base.res_partner_address_25"/>
|
||||
<field name="partner_shipping_id" ref="base.res_partner_address_25"/>
|
||||
<field name="user_id" ref="base.user_demo"/>
|
||||
<field name="pricelist_id" ref="product.list0"/>
|
||||
<field name="team_id" ref="sales_team.salesteam_website_sales"/>
|
||||
<field name="date_order" eval="(datetime.now()-relativedelta(days=6)).strftime('%Y-%m-%d %H:%M:%S')"/>
|
||||
<field name="state">sale</field>
|
||||
|
|
@ -365,10 +588,7 @@
|
|||
|
||||
<record id="website_sale_order_line_2" model="sale.order.line">
|
||||
<field name="order_id" ref="website_sale_order_2"/>
|
||||
<field name="name" model="sale.order.line" eval="obj().env.ref('product.product_product_4').get_product_multiline_description_sale()"/>
|
||||
<field name="product_id" ref="product.product_product_4"/>
|
||||
<field name="product_uom_qty">1</field>
|
||||
<field name="product_uom" ref="uom.product_uom_unit"/>
|
||||
<field name="price_unit">900</field>
|
||||
</record>
|
||||
|
||||
|
|
@ -378,7 +598,6 @@
|
|||
<field name="partner_invoice_id" ref="base.res_partner_address_25"/>
|
||||
<field name="partner_shipping_id" ref="base.res_partner_address_25"/>
|
||||
<field name="user_id" ref="base.user_demo"/>
|
||||
<field name="pricelist_id" ref="product.list0"/>
|
||||
<field name="team_id" ref="sales_team.salesteam_website_sales"/>
|
||||
<field name="date_order" eval="(datetime.now()-relativedelta(days=5)).strftime('%Y-%m-%d %H:%M:%S')"/>
|
||||
<field name="tag_ids" eval="[(4, ref('sales_team.categ_oppor2'))]"/>
|
||||
|
|
@ -387,10 +606,7 @@
|
|||
|
||||
<record id="website_sale_order_line_3" model="sale.order.line">
|
||||
<field name="order_id" ref="website_sale_order_3"/>
|
||||
<field name="name" model="sale.order.line" eval="obj().env.ref('product.product_product_4').get_product_multiline_description_sale()"/>
|
||||
<field name="product_id" ref="product.product_product_4"/>
|
||||
<field name="product_uom_qty">1</field>
|
||||
<field name="product_uom" ref="uom.product_uom_unit"/>
|
||||
<field name="price_unit">750</field>
|
||||
</record>
|
||||
|
||||
|
|
@ -400,7 +616,6 @@
|
|||
<field name="partner_invoice_id" ref="base.res_partner_address_25"/>
|
||||
<field name="partner_shipping_id" ref="base.res_partner_address_25"/>
|
||||
<field name="user_id" ref="base.user_demo"/>
|
||||
<field name="pricelist_id" ref="product.list0"/>
|
||||
<field name="team_id" ref="sales_team.salesteam_website_sales"/>
|
||||
<field name="date_order" eval="(datetime.now()-relativedelta(days=4)).strftime('%Y-%m-%d %H:%M:%S')"/>
|
||||
<field name="state">sale</field>
|
||||
|
|
@ -408,10 +623,7 @@
|
|||
|
||||
<record id="website_sale_order_line_4" model="sale.order.line">
|
||||
<field name="order_id" ref="website_sale_order_4"/>
|
||||
<field name="name" model="sale.order.line" eval="obj().env.ref('product.product_product_8').get_product_multiline_description_sale()"/>
|
||||
<field name="product_id" ref="product.product_product_8"/>
|
||||
<field name="product_uom_qty">1</field>
|
||||
<field name="product_uom" ref="uom.product_uom_unit"/>
|
||||
<field name="price_unit">1199.0</field>
|
||||
</record>
|
||||
|
||||
|
|
@ -421,7 +633,6 @@
|
|||
<field name="partner_invoice_id" ref="base.res_partner_address_25"/>
|
||||
<field name="partner_shipping_id" ref="base.res_partner_address_25"/>
|
||||
<field name="user_id" ref="base.user_demo"/>
|
||||
<field name="pricelist_id" ref="product.list0"/>
|
||||
<field name="team_id" ref="sales_team.salesteam_website_sales"/>
|
||||
<field name="date_order" eval="(datetime.now()-relativedelta(days=3)).strftime('%Y-%m-%d %H:%M:%S')"/>
|
||||
<field name="state">sale</field>
|
||||
|
|
@ -429,10 +640,8 @@
|
|||
|
||||
<record id="website_sale_order_line_5" model="sale.order.line">
|
||||
<field name="order_id" ref="website_sale_order_5"/>
|
||||
<field name="name" model="sale.order.line" eval="obj().env.ref('product.product_product_4').get_product_multiline_description_sale()"/>
|
||||
<field name="product_id" ref="product.product_product_4"/>
|
||||
<field name="product_uom_qty">3</field>
|
||||
<field name="product_uom" ref="uom.product_uom_unit"/>
|
||||
<field name="price_unit">349.0</field>
|
||||
</record>
|
||||
|
||||
|
|
@ -442,7 +651,6 @@
|
|||
<field name="partner_invoice_id" ref="base.res_partner_address_25"/>
|
||||
<field name="partner_shipping_id" ref="base.res_partner_address_25"/>
|
||||
<field name="user_id" ref="base.user_demo"/>
|
||||
<field name="pricelist_id" ref="product.list0"/>
|
||||
<field name="team_id" ref="sales_team.salesteam_website_sales"/>
|
||||
<field name="date_order" eval="(datetime.now()-relativedelta(days=2)).strftime('%Y-%m-%d %H:%M:%S')"/>
|
||||
<field name="state">sale</field>
|
||||
|
|
@ -450,10 +658,7 @@
|
|||
|
||||
<record id="website_sale_order_line_6" model="sale.order.line">
|
||||
<field name="order_id" ref="website_sale_order_6"/>
|
||||
<field name="name" model="sale.order.line" eval="obj().env.ref('product.product_product_8').get_product_multiline_description_sale()"/>
|
||||
<field name="product_id" ref="product.product_product_8"/>
|
||||
<field name="product_uom_qty">1</field>
|
||||
<field name="product_uom" ref="uom.product_uom_unit"/>
|
||||
<field name="price_unit">1599.00</field>
|
||||
</record>
|
||||
|
||||
|
|
@ -464,7 +669,6 @@
|
|||
<field name="partner_shipping_id" ref="base.res_partner_address_25"/>
|
||||
<field name="user_id" ref="base.user_demo"/>
|
||||
<field name="website_id" ref="website.default_website"/>
|
||||
<field name="pricelist_id" ref="product.list0"/>
|
||||
<field name="team_id" ref="sales_team.salesteam_website_sales"/>
|
||||
<field name="date_order" eval="(datetime.now()-relativedelta(days=1)).strftime('%Y-%m-%d %H:%M:%S')"/>
|
||||
<field name="state">sale</field>
|
||||
|
|
@ -472,10 +676,7 @@
|
|||
|
||||
<record id="website_sale_order_line_7" model="sale.order.line">
|
||||
<field name="order_id" ref="website_sale_order_7"/>
|
||||
<field name="name" model="sale.order.line" eval="obj().env.ref('product.product_product_8').get_product_multiline_description_sale()"/>
|
||||
<field name="product_id" ref="product.product_product_8"/>
|
||||
<field name="product_uom_qty">1</field>
|
||||
<field name="product_uom" ref="uom.product_uom_unit"/>
|
||||
<field name="price_unit">1349.00</field>
|
||||
</record>
|
||||
|
||||
|
|
@ -485,7 +686,6 @@
|
|||
<field name="partner_shipping_id" ref="base.res_partner_address_25"/>
|
||||
<field name="user_id" ref="base.user_demo"/>
|
||||
<field name="website_id" ref="website.default_website"/>
|
||||
<field name="pricelist_id" ref="product.list0"/>
|
||||
<field name="team_id" ref="sales_team.salesteam_website_sales"/>
|
||||
<field name="date_order" eval="datetime.now()"/>
|
||||
<field name="tag_ids" eval="[(4, ref('sales_team.categ_oppor1'))]"/>
|
||||
|
|
@ -494,10 +694,7 @@
|
|||
|
||||
<record id="website_sale_order_line_8" model="sale.order.line">
|
||||
<field name="order_id" ref="website_sale_order_8"/>
|
||||
<field name="name" model="sale.order.line" eval="obj().env.ref('product.product_product_8').get_product_multiline_description_sale()"/>
|
||||
<field name="product_id" ref="product.product_product_8"/>
|
||||
<field name="product_uom_qty">1</field>
|
||||
<field name="product_uom" ref="uom.product_uom_unit"/>
|
||||
<field name="price_unit">1799.00</field>
|
||||
</record>
|
||||
|
||||
|
|
@ -507,26 +704,19 @@
|
|||
<field name="partner_shipping_id" ref="base.res_partner_address_25"/>
|
||||
<field name="user_id" ref="base.user_demo"/>
|
||||
<field name="website_id" ref="website.default_website"/>
|
||||
<field name="pricelist_id" ref="product.list0"/>
|
||||
<field name="team_id" ref="sales_team.salesteam_website_sales"/>
|
||||
<field name="date_order" eval="(datetime.now()-relativedelta(hours=2)).strftime('%Y-%m-%d %H:%M:%S')"/>
|
||||
</record>
|
||||
|
||||
<record id="website_sale_order_line_9" model="sale.order.line">
|
||||
<field name="order_id" ref="website_sale_order_9"/>
|
||||
<field name="name" model="sale.order.line" eval="obj().env.ref('product.product_product_25').get_product_multiline_description_sale()"/>
|
||||
<field name="product_id" ref="product.product_product_25"/>
|
||||
<field name="product_uom_qty">1</field>
|
||||
<field name="product_uom" ref="uom.product_uom_unit"/>
|
||||
<field name="price_unit">295.00</field>
|
||||
</record>
|
||||
|
||||
<record id="website_sale_order_line_10" model="sale.order.line">
|
||||
<field name="order_id" ref="website_sale_order_9"/>
|
||||
<field name="name" model="sale.order.line" eval="obj().env.ref('product.product_product_12').get_product_multiline_description_sale()"/>
|
||||
<field name="product_id" ref="product.product_product_12"/>
|
||||
<field name="product_uom_qty">1</field>
|
||||
<field name="product_uom" ref="uom.product_uom_unit"/>
|
||||
<field name="price_unit">120.50</field>
|
||||
</record>
|
||||
|
||||
|
|
@ -537,7 +727,6 @@
|
|||
<field name="partner_shipping_id" ref="base.res_partner_address_25"/>
|
||||
<field name="user_id" ref="base.user_demo"/>
|
||||
<field name="website_id" ref="website.default_website"/>
|
||||
<field name="pricelist_id" ref="product.list0"/>
|
||||
<field name="team_id" ref="sales_team.salesteam_website_sales"/>
|
||||
<field name="date_order" eval="datetime.now()"/>
|
||||
<field name="tag_ids" eval="[(4, ref('sales_team.categ_oppor5'))]"/>
|
||||
|
|
@ -545,10 +734,8 @@
|
|||
|
||||
<record id="website_sale_order_line_11" model="sale.order.line">
|
||||
<field name="order_id" ref="website_sale_order_10"/>
|
||||
<field name="name" model="sale.order.line" eval="obj().env.ref('product.product_product_11').get_product_multiline_description_sale()"/>
|
||||
<field name="product_id" ref="product.product_product_11"/>
|
||||
<field name="product_uom_qty">2</field>
|
||||
<field name="product_uom" ref="uom.product_uom_unit"/>
|
||||
<field name="price_unit">33</field>
|
||||
</record>
|
||||
|
||||
|
|
@ -559,17 +746,13 @@
|
|||
<field name="partner_shipping_id" ref="base.res_partner_address_25"/>
|
||||
<field name="user_id" ref="base.user_demo"/>
|
||||
<field name="website_id" ref="website.default_website"/>
|
||||
<field name="pricelist_id" ref="product.list0"/>
|
||||
<field name="team_id" ref="sales_team.salesteam_website_sales"/>
|
||||
<field name="date_order" eval="(datetime.now()-timedelta(hours=1)).strftime('%Y-%m-%d %H:%M:%S')"/>
|
||||
</record>
|
||||
|
||||
<record id="website_sale_order_line_12" model="sale.order.line">
|
||||
<field name="order_id" ref="website_sale_order_11"/>
|
||||
<field name="name" model="sale.order.line" eval="obj().env.ref('product.product_product_9').get_product_multiline_description_sale()"/>
|
||||
<field name="product_id" ref="product.product_product_9"/>
|
||||
<field name="product_uom_qty">1</field>
|
||||
<field name="product_uom" ref="uom.product_uom_unit"/>
|
||||
<field name="price_unit">47.0</field>
|
||||
</record>
|
||||
|
||||
|
|
@ -580,7 +763,6 @@
|
|||
<field name="partner_shipping_id" ref="base.res_partner_address_25"/>
|
||||
<field name="user_id" ref="base.user_demo"/>
|
||||
<field name="website_id" ref="website.default_website"/>
|
||||
<field name="pricelist_id" ref="product.list0"/>
|
||||
<field name="team_id" ref="sales_team.salesteam_website_sales"/>
|
||||
<field name="payment_term_id" ref="account.account_payment_term_immediate"/>
|
||||
<field name="date_order" eval="(datetime.now()-timedelta(hours=1)).strftime('%Y-%m-%d %H:%M:%S')"/>
|
||||
|
|
@ -589,10 +771,7 @@
|
|||
|
||||
<record id="website_sale_order_line_14" model="sale.order.line">
|
||||
<field name="order_id" ref="website_sale_order_13"/>
|
||||
<field name="name" model="sale.order.line" eval="obj().env.ref('product.product_product_8').get_product_multiline_description_sale()"/>
|
||||
<field name="product_id" ref="product.product_product_8"/>
|
||||
<field name="product_uom_qty">1</field>
|
||||
<field name="product_uom" ref="uom.product_uom_unit"/>
|
||||
<field name="price_unit">1799.0</field>
|
||||
</record>
|
||||
|
||||
|
|
@ -603,16 +782,12 @@
|
|||
<field name="partner_shipping_id" ref="base.res_partner_address_25"/>
|
||||
<field name="user_id" ref="base.user_demo"/>
|
||||
<field name="website_id" ref="website.default_website"/>
|
||||
<field name="pricelist_id" ref="product.list0"/>
|
||||
<field name="team_id" ref="sales_team.salesteam_website_sales"/>
|
||||
</record>
|
||||
|
||||
<record id="website_sale_order_line_15" model="sale.order.line">
|
||||
<field name="order_id" ref="website_sale_order_14"/>
|
||||
<field name="name" model="sale.order.line" eval="obj().env.ref('product.product_product_16').get_product_multiline_description_sale()"/>
|
||||
<field name="product_id" ref="product.product_product_16"/>
|
||||
<field name="product_uom_qty">1</field>
|
||||
<field name="product_uom" ref="uom.product_uom_unit"/>
|
||||
<field name="price_unit">25.0</field>
|
||||
</record>
|
||||
|
||||
|
|
@ -623,7 +798,6 @@
|
|||
<field name="partner_shipping_id" ref="base.res_partner_address_25"/>
|
||||
<field name="user_id" ref="base.user_demo"/>
|
||||
<field name="website_id" ref="website.default_website"/>
|
||||
<field name="pricelist_id" ref="product.list0"/>
|
||||
<field name="team_id" ref="sales_team.salesteam_website_sales"/>
|
||||
<field name="date_order" eval="datetime.now()-relativedelta(months=1)"/>
|
||||
<field name="state">sale</field>
|
||||
|
|
@ -631,10 +805,8 @@
|
|||
|
||||
<record id="website_sale_order_line_16" model="sale.order.line">
|
||||
<field name="order_id" ref="website_sale_order_16"/>
|
||||
<field name="name" model="sale.order.line" eval="obj().env.ref('product.product_product_8').get_product_multiline_description_sale()"/>
|
||||
<field name="product_id" ref="product.product_product_8"/>
|
||||
<field name="product_uom_qty">2</field>
|
||||
<field name="product_uom" ref="uom.product_uom_unit"/>
|
||||
<field name="price_unit">1799.0</field>
|
||||
</record>
|
||||
|
||||
|
|
@ -645,17 +817,14 @@
|
|||
<field name="partner_shipping_id" ref="base.res_partner_address_25"/>
|
||||
<field name="user_id" ref="base.user_demo"/>
|
||||
<field name="website_id" ref="website.default_website"/>
|
||||
<field name="pricelist_id" ref="product.list0"/>
|
||||
<field name="team_id" ref="sales_team.salesteam_website_sales"/>
|
||||
<field name="date_order" eval="datetime.now()-relativedelta(months=1, days=2)"/>
|
||||
</record>
|
||||
|
||||
<record id="website_sale_order_line_17" model="sale.order.line">
|
||||
<field name="order_id" ref="website_sale_order_17"/>
|
||||
<field name="name" model="sale.order.line" eval="obj().env.ref('product.product_product_9').get_product_multiline_description_sale()"/>
|
||||
<field name="product_id" ref="product.product_product_9"/>
|
||||
<field name="product_uom_qty">7</field>
|
||||
<field name="product_uom" ref="uom.product_uom_unit"/>
|
||||
<field name="price_unit">47.0</field>
|
||||
<field name="invoice_status">to invoice</field>
|
||||
</record>
|
||||
|
|
@ -667,17 +836,14 @@
|
|||
<field name="partner_shipping_id" ref="base.res_partner_address_25"/>
|
||||
<field name="user_id" ref="base.user_demo"/>
|
||||
<field name="website_id" ref="website.default_website"/>
|
||||
<field name="pricelist_id" ref="product.list0"/>
|
||||
<field name="team_id" ref="sales_team.salesteam_website_sales"/>
|
||||
<field name="date_order" eval="datetime.now()-relativedelta(months=2)"/>
|
||||
</record>
|
||||
|
||||
<record id="website_sale_order_line_18" model="sale.order.line">
|
||||
<field name="order_id" ref="website_sale_order_18"/>
|
||||
<field name="name" model="sale.order.line" eval="obj().env.ref('product.product_product_9').get_product_multiline_description_sale()"/>
|
||||
<field name="product_id" ref="product.product_product_9"/>
|
||||
<field name="product_uom_qty">3</field>
|
||||
<field name="product_uom" ref="uom.product_uom_unit"/>
|
||||
<field name="price_unit">47.0</field>
|
||||
<field name="invoice_status">to invoice</field>
|
||||
</record>
|
||||
|
|
@ -693,18 +859,23 @@
|
|||
<field name="is_published" eval="True"/>
|
||||
<field name="type">service</field>
|
||||
<field name="uom_id" ref="uom.product_uom_unit"/>
|
||||
<field name="uom_po_id" ref="uom.product_uom_unit"/>
|
||||
<field name="description_sale">Warranty, issued to the purchaser of an article by its manufacturer, promising to repair or replace it if necessary within a specified period of time.</field>
|
||||
<field name="categ_id" ref="product.product_category_3"/>
|
||||
<field name="categ_id" ref="product.product_category_services"/>
|
||||
<field name="invoice_policy">delivery</field>
|
||||
<field name="public_categ_ids" eval="[(6, 0, [ref('website_sale.services')])]"/>
|
||||
<field name="public_categ_ids" eval="[(6, 0, [ref('website_sale.public_category_services')])]"/>
|
||||
<field name="image_1920" type="base64" file="website_sale/static/src/img/warranty.jpg"/>
|
||||
</record>
|
||||
|
||||
<record id="product_1_attribute_3_product_template_attribute_line" model="product.template.attribute.line">
|
||||
<field name="product_tmpl_id" ref="website_sale.product_product_1_product_template"/>
|
||||
<field name="attribute_id" ref="product.product_attribute_3"/>
|
||||
<field name="value_ids" eval="[(6,0,[ref('product.product_attribute_value_5'), ref('product.product_attribute_value_6')])]"/>
|
||||
<field name="attribute_id" ref="product.pa_duration"/>
|
||||
<field
|
||||
name="value_ids"
|
||||
eval="[Command.set([
|
||||
ref('product.pav_duration_year_1'),
|
||||
ref('product.pav_duration_year_2'),
|
||||
ref('product.pav_duration_year_3'),
|
||||
])]"/>
|
||||
</record>
|
||||
|
||||
<!-- Handle automatically created product.template.attribute.value -->
|
||||
|
|
@ -717,7 +888,13 @@
|
|||
'xml_id': 'website_sale.product_1_attribute_3_value_2',
|
||||
'record': obj().env.ref('website_sale.product_1_attribute_3_product_template_attribute_line').product_template_value_ids[1],
|
||||
'noupdate': True,
|
||||
}]"/>
|
||||
},
|
||||
{
|
||||
'xml_id': 'website_sale.product_1_attribute_3_value_3',
|
||||
'record': obj().env.ref('website_sale.product_1_attribute_3_product_template_attribute_line').product_template_value_ids[2],
|
||||
'noupdate': True,
|
||||
},
|
||||
]"/>
|
||||
</function>
|
||||
|
||||
<function model="ir.model.data" name="_update_xmlids">
|
||||
|
|
@ -729,7 +906,13 @@
|
|||
'xml_id': 'website_sale.product_product_1b',
|
||||
'record': obj().env.ref('website_sale.product_product_1_product_template')._get_variant_for_combination(obj().env.ref('website_sale.product_1_attribute_3_value_2')),
|
||||
'noupdate': True,
|
||||
},]"/>
|
||||
},
|
||||
{
|
||||
'xml_id': 'website_sale.product_product_1c',
|
||||
'record': obj().env.ref('website_sale.product_product_1_product_template')._get_variant_for_combination(obj().env.ref('website_sale.product_1_attribute_3_value_3')),
|
||||
'noupdate': True,
|
||||
},
|
||||
]"/>
|
||||
</function>
|
||||
|
||||
<record id="product_product_1" model="product.product">
|
||||
|
|
@ -743,11 +926,16 @@
|
|||
<field name="price_extra">18.00</field>
|
||||
</record>
|
||||
|
||||
<record id="delivery.delivery_carrier" model="delivery.carrier">
|
||||
<field name="is_published" eval="False" />
|
||||
</record>
|
||||
|
||||
<record id="website_sale_activity_1" model="mail.activity">
|
||||
<field name="res_id" ref="website_sale.website_sale_order_3"/>
|
||||
<field name="res_model_id" ref="sale.model_sale_order"/>
|
||||
<field name="activity_type_id" ref="mail.mail_activity_data_call"/>
|
||||
<field name="date_deadline" eval="(DateTime.today() + relativedelta(days=5)).strftime('%Y-%m-%d %H:%M')" />
|
||||
<field name="summary">Schedule phone meeting with client</field>
|
||||
<field name="create_uid" ref="base.user_demo"/>
|
||||
<field name="user_id" ref="base.user_demo"/>
|
||||
</record>
|
||||
|
|
@ -779,4 +967,162 @@
|
|||
<field name="user_id" ref="base.user_demo"/>
|
||||
</record>
|
||||
|
||||
<record id="sale.product_product_1_product_template" model="product.template">
|
||||
<field name="website_sequence">9985</field>
|
||||
<field name="is_published" eval="True"/>
|
||||
</record>
|
||||
|
||||
<record id="product.desk_organizer_product_template" model="product.template">
|
||||
<field name="is_published" eval="True"/>
|
||||
</record>
|
||||
|
||||
<record id="product.product_product_4_product_template" model="product.template">
|
||||
<field name="optional_product_ids" eval="[Command.set([
|
||||
ref('product.product_product_11_product_template'),
|
||||
ref('website_sale.product_product_1_product_template'),
|
||||
])]"
|
||||
/>
|
||||
</record>
|
||||
|
||||
<!-- Products' secondary images -->
|
||||
<record id="product_delivery_01_extra_image" model="product.image">
|
||||
<field name="name">Office Chair - Context View</field>
|
||||
<field name="sequence">10</field>
|
||||
<field name="product_variant_id" ref="product.product_delivery_01"/>
|
||||
<field name="image_1920" type="base64" file="website_sale/static/src/img/products_demo/table02_02.jpg"/>
|
||||
</record>
|
||||
|
||||
<record id="product_delivery_01_extra_image_2" model="product.image">
|
||||
<field name="name">Office Chair - Context View</field>
|
||||
<field name="sequence">10</field>
|
||||
<field name="product_variant_id" ref="product.product_delivery_01"/>
|
||||
<field name="image_1920" type="base64" file="website_sale/static/src/img/products_demo/product_product_3-image_02.jpg"/>
|
||||
</record>
|
||||
|
||||
<record id="product_product_16_extra_image" model="product.image">
|
||||
<field name="name">Drawer Black - Context View</field>
|
||||
<field name="sequence">10</field>
|
||||
<field name="product_variant_id" ref="product.product_product_16"/>
|
||||
<field name="image_1920" type="base64" file="website_sale/static/src/img/products_demo/product_product_16-image_02.jpg"/>
|
||||
</record>
|
||||
|
||||
<record id="product_delivery_02_extra_image" model="product.image">
|
||||
<field name="name">Office Lamp - Context View</field>
|
||||
<field name="sequence">10</field>
|
||||
<field name="product_variant_id" ref="product.product_delivery_02"/>
|
||||
<field name="image_1920" type="base64" file="website_sale/static/src/img/products_demo/product_lamp_02.jpg"/>
|
||||
</record>
|
||||
|
||||
<record id="product_product_4_extra_image" model="product.image">
|
||||
<field name="name">Customizable Desk Steel - Context View</field>
|
||||
<field name="sequence">10</field>
|
||||
<field name="product_variant_id" ref="product.product_product_4"/>
|
||||
<field name="image_1920" type="base64" file="website_sale/static/src/img/products_demo/table02_02.jpg"/>
|
||||
</record>
|
||||
|
||||
<record id="product_product_1_product_template_extra_image" model="product.image">
|
||||
<field name="name">Chair floor protection - Context View</field>
|
||||
<field name="sequence">10</field>
|
||||
<field name="product_tmpl_id" ref="sale.product_product_1_product_template"/>
|
||||
<field name="image_1920" type="base64" file="website_sale/static/src/img/products_demo/floor_protection-image_02.jpg"/>
|
||||
</record>
|
||||
|
||||
<record id="consu_delivery_03_extra_image" model="product.image">
|
||||
<field name="name">Four Person Desk - Context View</field>
|
||||
<field name="sequence">10</field>
|
||||
<field name="product_variant_id" ref="product.consu_delivery_03"/>
|
||||
<field name="image_1920" type="base64" file="website_sale/static/src/img/products_demo/product_product_d03_image_02.jpg"/>
|
||||
</record>
|
||||
|
||||
<record id="desk_organizer_extra_image" model="product.image">
|
||||
<field name="name">Desk Organizer - Context View</field>
|
||||
<field name="sequence">10</field>
|
||||
<field name="product_variant_id" ref="product.desk_organizer"/>
|
||||
<field name="image_1920" type="base64" file="website_sale/static/src/img/products_demo/desk_organizer_02.jpg"/>
|
||||
</record>
|
||||
|
||||
<record id="product_product_24_extra_image" model="product.image">
|
||||
<field name="name">Individual Workplace - Context View</field>
|
||||
<field name="sequence">10</field>
|
||||
<field name="product_variant_id" ref="product.product_product_24"/>
|
||||
<field name="image_1920" type="base64" file="website_sale/static/src/img/products_demo/product_product_24-image_02.jpg"/>
|
||||
</record>
|
||||
|
||||
<record id="product_product_12_extra_image" model="product.image">
|
||||
<field name="name">Office Chair Black - Context View</field>
|
||||
<field name="sequence">10</field>
|
||||
<field name="product_variant_id" ref="product.product_product_12"/>
|
||||
<field name="image_1920" type="base64" file="website_sale/static/src/img/products_demo/product_product_12-image_02.jpg"/>
|
||||
</record>
|
||||
|
||||
<record id="product_product_27_extra_image" model="product.image">
|
||||
<field name="name">Drawer - Context View</field>
|
||||
<field name="sequence">10</field>
|
||||
<field name="product_variant_id" ref="product.product_product_27"/>
|
||||
<field name="image_1920" type="base64" file="website_sale/static/src/img/products_demo/product_product_27-image_02.jpg"/>
|
||||
</record>
|
||||
|
||||
<record id="consu_delivery_02_extra_image" model="product.image">
|
||||
<field name="name">Large Meeting Table - Context View</field>
|
||||
<field name="sequence">10</field>
|
||||
<field name="product_variant_id" ref="product.consu_delivery_02"/>
|
||||
<field name="image_1920" type="base64" file="website_sale/static/src/img/products_demo/product_product_46-image_02.jpg"/>
|
||||
</record>
|
||||
|
||||
<record id="product_product_10_extra_image" model="product.image">
|
||||
<field name="name">Cabinet Width Doors - Context View</field>
|
||||
<field name="sequence">10</field>
|
||||
<field name="product_variant_id" ref="product.product_product_10"/>
|
||||
<field name="image_1920" type="base64" file="website_sale/static/src/img/products_demo/product_product_10-image_02.jpg"/>
|
||||
</record>
|
||||
|
||||
<record id="product_product_7_extra_image" model="product.image">
|
||||
<field name="name">Storage Box - Context View</field>
|
||||
<field name="sequence">10</field>
|
||||
<field name="product_variant_id" ref="product.product_product_7"/>
|
||||
<field name="image_1920" type="base64" file="website_sale/static/src/img/products_demo/product_product_7-image_02.jpg"/>
|
||||
</record>
|
||||
|
||||
<record id="product_product_9_extra_image" model="product.image">
|
||||
<field name="name">Pedal Bin - Context View</field>
|
||||
<field name="sequence">10</field>
|
||||
<field name="product_variant_id" ref="product.product_product_9"/>
|
||||
<field name="image_1920" type="base64" file="website_sale/static/src/img/products_demo/product_product_9-image_02.jpg"/>
|
||||
</record>
|
||||
|
||||
<record id="product_product_6_extra_image" model="product.image">
|
||||
<field name="name">Large Cabinet - Context View</field>
|
||||
<field name="sequence">10</field>
|
||||
<field name="product_variant_id" ref="product.product_product_6"/>
|
||||
<field name="image_1920" type="base64" file="website_sale/static/src/img/products_demo/product_product_6-image_02.jpg"/>
|
||||
</record>
|
||||
|
||||
<record id="product_product_5_extra_image" model="product.image">
|
||||
<field name="name">Corner Desk Right Sit - Context View</field>
|
||||
<field name="sequence">10</field>
|
||||
<field name="product_variant_id" ref="product.product_product_5"/>
|
||||
<field name="image_1920" type="base64" file="website_sale/static/src/img/products_demo/product_product_5-image_02.jpg"/>
|
||||
</record>
|
||||
|
||||
<record id="consu_delivery_01_extra_image" model="product.image">
|
||||
<field name="name">Two-Seat Sofa - Context View</field>
|
||||
<field name="sequence">10</field>
|
||||
<field name="product_variant_id" ref="product.consu_delivery_01"/>
|
||||
<field name="image_1920" type="base64" file="website_sale/static/src/img/products_demo/product_product_d01_image_02.jpg"/>
|
||||
</record>
|
||||
|
||||
<record id="product_product_3_extra_image" model="product.image">
|
||||
<field name="name">Desk Combination - Context View</field>
|
||||
<field name="sequence">10</field>
|
||||
<field name="product_variant_id" ref="product.product_product_3"/>
|
||||
<field name="image_1920" type="base64" file="website_sale/static/src/img/products_demo/product_product_3-image_02.jpg"/>
|
||||
</record>
|
||||
|
||||
<!-- Products' tertiary images -->
|
||||
<record id="product_product_4_extra_image_1" model="product.image">
|
||||
<field name="name">Customizable Desk Steel - Detail View</field>
|
||||
<field name="sequence">11</field>
|
||||
<field name="product_variant_id" ref="product.product_product_4"/>
|
||||
<field name="image_1920" type="base64" file="website_sale/static/src/img/products_demo/table02_03.webp"/>
|
||||
</record>
|
||||
</odoo>
|
||||
|
|
|
|||
|
|
@ -4,8 +4,6 @@
|
|||
<field name="name">eCommerce: send email to customers about their abandoned cart</field>
|
||||
<field name="interval_number">1</field>
|
||||
<field name="interval_type">hours</field>
|
||||
<field name="numbercall">-1</field>
|
||||
<field name="doall" eval="False"/>
|
||||
<field name="model_id" ref="model_website"/>
|
||||
<field name="code">model._send_abandoned_cart_email()</field>
|
||||
<field name="state">code</field>
|
||||
|
|
|
|||
|
|
@ -6,7 +6,8 @@
|
|||
<field name="model_id" ref="sale.model_sale_order"/>
|
||||
<field name="subject">You left items in your cart!</field>
|
||||
<field name="email_from">{{ (object.user_id.email_formatted or object.company_id.email_formatted or user.email_formatted or '') }}</field>
|
||||
<field name="partner_to">{{ object.partner_id.id }}</field>
|
||||
<field name="partner_to" eval="False"/>
|
||||
<field name="use_default_to" eval="True"/>
|
||||
<field name="description">If the setting is set, sent to authenticated visitors who abandoned their cart</field>
|
||||
<field name="body_html" type="html">
|
||||
<table border="0" cellpadding="0" cellspacing="0" width="590" style="padding: 0px; background-color: white; color: #454748; border-collapse:separate;">
|
||||
|
|
@ -30,7 +31,7 @@
|
|||
<strong t-out="line.product_id.display_name or ''">[FURN_7800] Desk Combination</strong><br/><t t-out="line.name or ''">[FURN_7800] Desk Combination Desk combination, black-brown: chair + desk + drawer.</t>
|
||||
</td>
|
||||
<td width="100px" align="right">
|
||||
<t t-out="int(line.product_uom_qty) or ''">10000</t> <t t-out="line.product_uom.name or ''">Units</t>
|
||||
<t t-out="int(line.product_uom_qty) or ''">10000</t> <t t-out="line.product_uom_id.name or ''">Units</t>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
|
|
@ -38,9 +39,9 @@
|
|||
<hr/>
|
||||
</t>
|
||||
<div style="text-align: center; padding: 16px 0px 16px 0px; font-size: 14px;">
|
||||
<a t-attf-href="{{ object.get_base_url() }}/shop/cart?access_token={{ object.access_token }}"
|
||||
<a t-attf-href="{{ object.get_base_url() }}/shop/cart?id={{ object.id }}&access_token={{ object.access_token }}"
|
||||
target="_blank"
|
||||
style="background-color: #875A7B; padding: 8px 16px 8px 16px; text-decoration: none; color: #fff; border-radius: 5px; font-size:13px;">
|
||||
t-attf-style="background-color: {{object.user_id.company_id.email_secondary_color or '#875A7B'}}; padding: 8px 16px 8px 16px; text-decoration: none; color: {{object.user_id.company_id.email_primary_color or '#FFFFFF'}}; border-radius: 5px; font-size:13px;">
|
||||
Resume order
|
||||
</a>
|
||||
</div>
|
||||
|
|
@ -53,7 +54,6 @@
|
|||
</tbody>
|
||||
</table>
|
||||
</field>
|
||||
<field name="lang">{{ object.partner_id.lang }}</field>
|
||||
<field name="auto_delete" eval="False"/>
|
||||
</record>
|
||||
</data>
|
||||
|
|
|
|||
|
|
@ -1,302 +1,119 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<odoo>
|
||||
<data>
|
||||
<!-- Templates for Dynamic Snippet -->
|
||||
<template id="dynamic_filter_template_product_product_add_to_cart" name="Classic Card">
|
||||
<t t-foreach="records" t-as="data" data-thumb="/website_sale/static/src/img/snippets_options/product_add_to_cart.svg">
|
||||
|
||||
<!-- Template for Dynamic Snippet -->
|
||||
|
||||
<template
|
||||
id="dynamic_filter_template_product_product_products_item"
|
||||
name="Generic Product Template (customizable)"
|
||||
>
|
||||
<t
|
||||
t-foreach="records"
|
||||
t-as="data"
|
||||
data-number-of-elements="4"
|
||||
data-number-of-elements-sm="2"
|
||||
>
|
||||
|
||||
<t t-set="record" t-value="data['_record']"/>
|
||||
<div class="o_carousel_product_card card h-100 w-100" t-att-data-add2cart-rerender="data.get('_add2cart_rerender')">
|
||||
<div t-if="is_sample" class="h5 o_ribbon_right bg-primary text-uppercase">Sample</div>
|
||||
<t t-set="product" t-value="record"/>
|
||||
<t t-set="product_template_id" t-value="record.id if not record.is_product_variant else record.product_tmpl_id.id"/>
|
||||
<t t-set="product_id" t-value="record.id if record.is_product_variant else record.product_variant_id.id"/>
|
||||
|
||||
<div
|
||||
class="oe_product_cart o_carousel_product_card d-flex"
|
||||
role="article"
|
||||
t-att-aria-label="product.display_name"
|
||||
t-att-data-add2cart-rerender="data.get('_add2cart_rerender')"
|
||||
>
|
||||
<input type="hidden" name="product-id" t-att-data-product-id="record.id"/>
|
||||
<a class="o_carousel_product_img_link o_dynamic_product_hovered overflow-hidden" t-att-href="record.website_url">
|
||||
<img class="card-img-top o_img_product_square o_img_product_cover h-auto" loading="lazy" t-att-src="data['image_512']"
|
||||
t-att-alt="record.display_name"/>
|
||||
</a>
|
||||
<i t-if="data.get('_latest_viewed')" class="fa fa-trash o_carousel_product_remove js_remove"/>
|
||||
<div class="o_carousel_product_card_body card-body d-flex flex-wrap">
|
||||
<a t-att-href="record.website_url" class="text-decoration-none d-block w-100">
|
||||
<div class="h6 card-title mb-0" t-field="record.display_name"/>
|
||||
|
||||
<!-- Image -->
|
||||
<div t-attf-class="oe_product_image position-relative flex-grow-0 overflow-hidden">
|
||||
<a
|
||||
t-att-href="product.website_url"
|
||||
t-attf-class="oe_product_image_link position-relative"
|
||||
contenteditable="false"
|
||||
t-att-title="product.display_name"
|
||||
>
|
||||
<span
|
||||
role="img"
|
||||
t-attf-alt="{{product.display_name}} image"
|
||||
class="oe_product_image_img_wrapper d-flex h-100 justify-content-center align-items-center"
|
||||
>
|
||||
<span
|
||||
class="oe_product_image_img h-100 w-100"
|
||||
t-attf-style="background-image: url({{data['image_512']}});"
|
||||
/>
|
||||
</span>
|
||||
</a>
|
||||
<div class="mt-2">
|
||||
<t t-if="is_view_active('website_sale.product_comment')" t-call="portal_rating.rating_widget_stars_static">
|
||||
<t t-set="rating_avg" t-value="record.rating_avg"/>
|
||||
<t t-set="rating_count" t-value="record.rating_count"/>
|
||||
</t>
|
||||
</div>
|
||||
<div class="w-100 d-flex flex-wrap flex-md-column flex-lg-row align-items-center align-self-end justify-content-between mt-3">
|
||||
<div class="py-2">
|
||||
<t t-call="website_sale.price_dynamic_filter_template_product_product"/>
|
||||
</div>
|
||||
<div class="o_dynamic_snippet_btn_wrapper" t-if="record._website_show_quick_add()">
|
||||
<button type="button" role="button" class="btn btn-primary js_add_cart ms-auto" title="Add to Cart">
|
||||
<i class="fa fa-fw fa-shopping-cart"/>
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
<div t-if="is_sample" class="o_ribbon_right small text-bg-primary">Sample</div>
|
||||
</div>
|
||||
</div>
|
||||
</t>
|
||||
</template>
|
||||
|
||||
<template id="dynamic_filter_template_product_product_view_detail" name="Classic Card - Detailed">
|
||||
<t t-foreach="records" t-as="data" data-number-of-elements="3" data-thumb="/website_sale/static/src/img/snippets_options/product_view_detail.svg">
|
||||
<t t-set="record" t-value="data['_record']" data-arrow-position="bottom"/>
|
||||
<div class="o_carousel_product_card card h-100 w-100" t-att-data-add2cart-rerender="data.get('_add2cart_rerender')">
|
||||
<div t-if="is_sample" class="h5 o_ribbon_right bg-primary text-uppercase">Sample</div>
|
||||
<a class="o_carousel_product_img_link o_dynamic_product_hovered overflow-hidden" t-att-href="record.website_url">
|
||||
<img class="card-img-top o_img_product_square o_img_product_cover h-auto" loading="lazy" t-att-src="data['image_512']" t-att-alt="record.display_name"/>
|
||||
</a>
|
||||
<div class="o_carousel_product_card_body card-body d-flex flex-column justify-content-between">
|
||||
<div class="card-title h5" t-field="record.display_name"/>
|
||||
<div class="card-text flex-grow-1 text-muted h6" t-field="record.description_sale"/>
|
||||
<div class="mt-2">
|
||||
<t t-if="is_view_active('website_sale.product_comment')" t-call="portal_rating.rating_widget_stars_static">
|
||||
<t t-set="rating_avg" t-value="record.rating_avg"/>
|
||||
<t t-set="rating_count" t-value="record.rating_count"/>
|
||||
</t>
|
||||
</div>
|
||||
<div class="d-flex justify-content-between flex-wrap flex-md-column flex-lg-row align-items-center align-self-end w-100 mt-2 pt-3 border-top">
|
||||
<div class="pb-2">
|
||||
<t t-call="website_sale.price_dynamic_filter_template_product_product"/>
|
||||
</div>
|
||||
<a class="btn btn-primary" t-att-href="record.website_url">
|
||||
View product
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</t>
|
||||
</template>
|
||||
|
||||
<template id="dynamic_filter_template_product_product_mini_image" name="Image only">
|
||||
<t t-foreach="records" t-as="data" data-number-of-elements="4" data-number-of-elements-sm="1" data-thumb="/website_sale/static/src/img/snippets_options/product_image_only.svg">
|
||||
<t t-set="record" t-value="data['_record']"/>
|
||||
<div class="card h-100 border-0 w-100 rounded-0 bg-transparent" t-att-data-url="record.website_url">
|
||||
<div t-if="is_sample" class="h5 o_ribbon_right bg-primary text-uppercase">Sample</div>
|
||||
<a class="o_carousel_product_img_link o_dynamic_product_hovered overflow-hidden" t-att-href="record.website_url">
|
||||
<img class="card-img-top h-auto o_img_product_square o_img_product_cover rounded" loading="lazy" t-att-src="data['image_512']" t-att-alt="record.display_name"/>
|
||||
</a>
|
||||
</div>
|
||||
</t>
|
||||
</template>
|
||||
|
||||
<template id="dynamic_filter_template_product_product_mini_price" name="Image with price">
|
||||
<t t-foreach="records" t-as="data" data-thumb="/website_sale/static/src/img/snippets_options/product_image_with_price.svg">
|
||||
<t t-set="record" t-value="data['_record']"/>
|
||||
<div class="card h-100 border-0 w-100 rounded-0 bg-transparent o_dynamic_product_hovered" t-att-data-url="record.website_url">
|
||||
<div t-if="is_sample" class="h5 o_ribbon_right bg-primary text-uppercase">Sample</div>
|
||||
<a class="o_carousel_product_img_link o_dynamic_product_hovered overflow-hidden" t-att-href="record.website_url">
|
||||
<img class="card-img-top h-auto o_img_product_square o_img_product_cover rounded" loading="lazy" t-att-src="data['image_512']" t-att-alt="record.display_name"/>
|
||||
</a>
|
||||
<div class="o_carousel_product_card_body mt-2 d-flex justify-content-between">
|
||||
<t t-if="is_view_active('website_sale.product_comment')" t-call="portal_rating.rating_widget_stars_static">
|
||||
<t t-set="rating_style_compressed" t-value="true"/>
|
||||
<t t-set="rating_avg" t-value="record.rating_avg"/>
|
||||
<t t-set="rating_count" t-value="record.rating_count"/>
|
||||
</t>
|
||||
<div class="ms-auto">
|
||||
<t t-call="website_sale.price_dynamic_filter_template_product_product"/>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</t>
|
||||
</template>
|
||||
|
||||
<template id="dynamic_filter_template_product_product_mini_name" name="Image with name">
|
||||
<t t-foreach="records" t-as="data" data-thumb="/website_sale/static/src/img/snippets_options/product_image_with_name.svg">
|
||||
<t t-set="record" t-value="data['_record']"/>
|
||||
<div class="card h-100 border-0 w-100 rounded-0 bg-transparent o_dynamic_product_hovered" t-att-data-url="record.website_url">
|
||||
<div t-if="is_sample" class="h5 o_ribbon_right bg-primary text-uppercase">Sample</div>
|
||||
<a class="o_carousel_product_img_link overflow-hidden" t-att-href="record.website_url">
|
||||
<img class="card-img-top h-auto o_img_product_square o_img_product_cover rounded" loading="lazy" t-att-src="data['image_512']" t-att-alt="record.display_name"/>
|
||||
</a>
|
||||
<div class="h6 text-center mt-2 p-2" t-field="record.display_name"/>
|
||||
<div class="text-center">
|
||||
<t t-if="is_view_active('website_sale.product_comment')" t-call="portal_rating.rating_widget_stars_static">
|
||||
<t t-set="rating_avg" t-value="record.rating_avg"/>
|
||||
<t t-set="rating_count" t-value="record.rating_count"/>
|
||||
</t>
|
||||
</div>
|
||||
</div>
|
||||
</t>
|
||||
</template>
|
||||
|
||||
<template id="dynamic_filter_template_product_product_centered" name="Centered Product">
|
||||
<t t-foreach="records" t-as="data" data-arrow-position="bottom" data-thumb="/website_sale/static/src/img/snippets_options/product_centered.svg">
|
||||
<t t-set="record" t-value="data['_record']"/>
|
||||
<div class="o_carousel_product_card card w-100" t-att-data-add2cart-rerender="data.get('_add2cart_rerender')">
|
||||
<div t-if="is_sample" class="h5 o_ribbon_right bg-primary text-uppercase">Sample</div>
|
||||
<input type="hidden" name="product-id" t-att-data-product-id="record.id"/>
|
||||
<a class="o_carousel_product_img_link position-absolute mx-auto" t-att-href="record.website_url">
|
||||
<img class="card-img-top" loading="lazy" t-att-src="data['image_512']" t-att-alt="record.display_name"/>
|
||||
</a>
|
||||
<div class="o_carousel_product_card_body card-body d-flex flex-column justify-content-between">
|
||||
<div class="card-title h5 text-center" t-field="record.display_name"/>
|
||||
<div class="text-center">
|
||||
<div class="h5">
|
||||
<t t-call="website_sale.price_dynamic_filter_template_product_product"/>
|
||||
</div>
|
||||
<div class="h6 mb-0">
|
||||
<t t-if="is_view_active('website_sale.product_comment')">
|
||||
<button t-if="data.get('_latest_viewed')"
|
||||
class="btn o_carousel_product_remove js_remove rounded-pill lh-1"
|
||||
t-att-data-product-id="product_id"
|
||||
t-att-data-product-selected="record.is_product_variant"
|
||||
t-att-data-product-template-id="product_template_id"
|
||||
title="Remove from recently viewed"
|
||||
>
|
||||
<i class="oi oi-close" role="presentation"/>
|
||||
</button>
|
||||
<div class="o_wsale_product_information flex-grow-1 flex-shrink-1">
|
||||
<div class="o_wsale_product_info_attributes_wrapper">
|
||||
<div class="o_wsale_product_information_text">
|
||||
<!-- Product Name -->
|
||||
<h2 class="o_wsale_products_item_title h6 text-break">
|
||||
<a
|
||||
class="text-decoration-none"
|
||||
t-att-href="product.website_url"
|
||||
t-att-content="data.get('display_name')"
|
||||
t-att-title="data.get('display_name')"
|
||||
t-out="data.get('display_name')"
|
||||
/>
|
||||
</h2>
|
||||
<!-- Description -->
|
||||
<div class="oe_subdescription_wrapper">
|
||||
<div
|
||||
class="oe_subdescription text-muted small"
|
||||
contenteditable="false"
|
||||
>
|
||||
<div t-field="product.description_sale"/>
|
||||
</div>
|
||||
</div>
|
||||
<!-- Rating -->
|
||||
<div
|
||||
t-if="is_view_active('website_sale.product_comment')"
|
||||
class="o_wsale_product_rating_wrapper"
|
||||
>
|
||||
<t t-call="portal_rating.rating_widget_stars_static">
|
||||
<t t-set="rating_avg" t-value="record.rating_avg"/>
|
||||
<t t-set="rating_count" t-value="record.rating_count"/>
|
||||
</t>
|
||||
</t>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="o_carousel_product_card_footer d-flex align-items-center justify-content-center pb-4">
|
||||
<a class="btn btn-primary d-block" t-att-href="record.website_url">
|
||||
View Product
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
</t>
|
||||
</template>
|
||||
|
||||
<template id="dynamic_filter_template_product_product_borderless_1" name="Borderless Product n°1">
|
||||
<t t-foreach="records" t-as="data" data-thumb="/website_sale/static/src/img/snippets_options/product_borderless_1.svg">
|
||||
<t t-set="record" t-value="data['_record']"/>
|
||||
<div class="o_carousel_product_card bg-transparent w-100 card border-0">
|
||||
<div t-if="is_sample" class="h5 o_ribbon_right bg-primary text-uppercase">Sample</div>
|
||||
<input type="hidden" name="product-id" t-att-data-product-id="record.id"/>
|
||||
<a class="o_carousel_product_img_link o_dynamic_product_hovered stretched-link" t-att-href="record.website_url">
|
||||
<div class="overflow-hidden rounded">
|
||||
<img class="card-img-top o_img_product_square o_img_product_cover h-auto" loading="lazy" t-att-src="data['image_512']"
|
||||
t-att-alt="record.display_name"/>
|
||||
</div>
|
||||
</a>
|
||||
<div class="o_carousel_product_card_body d-flex flex-wrap flex-column justify-content-between h-100 p-3">
|
||||
<div class="h6 card-title" t-field="record.display_name"/>
|
||||
<div>
|
||||
<t t-if="is_view_active('website_sale.product_comment')" t-call="portal_rating.rating_widget_stars_static">
|
||||
<t t-set="rating_avg" t-value="record.rating_avg"/>
|
||||
<t t-set="rating_count" t-value="record.rating_count"/>
|
||||
</t>
|
||||
<div class="mt-2">
|
||||
<t t-call="website_sale.price_dynamic_filter_template_product_product"/>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</t>
|
||||
</template>
|
||||
|
||||
<template id="dynamic_filter_template_product_product_borderless_2" name="Borderless Product n°2">
|
||||
<t t-foreach="records" t-as="data" data-thumb="/website_sale/static/src/img/snippets_options/product_borderless_2.svg">
|
||||
<t t-set="record" t-value="data['_record']"/>
|
||||
<div class="o_carousel_product_card card w-100 border-0 bg-transparent" t-att-data-add2cart-rerender="data.get('_add2cart_rerender')">
|
||||
<div t-if="is_sample" class="h5 o_ribbon_right bg-primary text-uppercase">Sample</div>
|
||||
<input type="hidden" name="product-id" t-att-data-product-id="record.id"/>
|
||||
<a class="o_carousel_product_img_link o_dynamic_product_hovered" t-att-href="record.website_url">
|
||||
<div class="overflow-hidden rounded">
|
||||
<img class="card-img-top o_img_product_square o_img_product_cover h-auto" loading="lazy" t-att-src="data['image_512']"
|
||||
t-att-alt="record.display_name"/>
|
||||
</div>
|
||||
</a>
|
||||
<div class="o_carousel_product_card_body h-100 p-3 d-flex flex-column justify-content-between">
|
||||
<div class="d-flex justify-content-between align-items-center flex-wrap mb-2">
|
||||
<div class="h5 mb-0 me-4">
|
||||
<t t-call="website_sale.price_dynamic_filter_template_product_product"/>
|
||||
</div>
|
||||
<div class="h6 mb-0">
|
||||
<t t-if="is_view_active('website_sale.product_comment')">
|
||||
<t t-call="portal_rating.rating_widget_stars_static">
|
||||
<t t-set="rating_style_compressed" t-value="true"/>
|
||||
<t t-set="rating_avg" t-value="record.rating_avg"/>
|
||||
<t t-set="rating_count" t-value="record.rating_count"/>
|
||||
</t>
|
||||
</t>
|
||||
</div>
|
||||
</div>
|
||||
<div class="card-title h6 flex-grow-1 w-100 mt-2 mb-3" t-field="record.display_name"/>
|
||||
<div class="text-end o_dynamic_snippet_btn_wrapper" t-if="record._website_show_quick_add()">
|
||||
<button type="button" role="button" class="btn btn-primary js_add_cart w-100" title="Add to Cart">
|
||||
Add to Cart
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</t>
|
||||
</template>
|
||||
|
||||
<template id="dynamic_filter_template_product_product_banner" name="Large Banner">
|
||||
<t t-foreach="records" t-as="data" data-number-of-elements="1" data-number-of-elements-sm="1" data-thumb="/website_sale/static/src/img/snippets_options/product_banner.svg">
|
||||
<t t-set="record" t-value="data['_record']"/>
|
||||
<div class="o_carousel_product_card card w-100" t-att-data-add2cart-rerender="data.get('_add2cart_rerender')">
|
||||
<div t-if="is_sample" class="h5 o_ribbon_right bg-primary text-uppercase">Sample</div>
|
||||
<input type="hidden" name="product-id" t-att-data-product-id="record.id"/>
|
||||
<div class="row flex-row-reverse">
|
||||
<div class="col-lg-6 d-flex align-items-center justify-content-center justify-content-lg-end o_wrap_product_img position-relative">
|
||||
<img class="img img-fluid position-absolute o_img_product_cover w-100 h-100" loading="lazy" t-att-src="data['image_512']" t-att-alt="record.display_name"/>
|
||||
</div>
|
||||
<div class="col-lg-6 px-5 d-flex align-items-center">
|
||||
<div class="o_carousel_product_card_body card-body p-5">
|
||||
<div class="card-title h1" t-field="record.display_name"/>
|
||||
<div class="d-flex align-items-center my-4">
|
||||
<div class="h4 mb-0 me-3">
|
||||
<t t-call="website_sale.price_dynamic_filter_template_product_product"/>
|
||||
</div>
|
||||
<t t-if="is_view_active('website_sale.product_comment')" t-call="portal_rating.rating_widget_stars_static">
|
||||
<t t-set="rating_avg" t-value="record.rating_avg"/>
|
||||
<t t-set="rating_count" t-value="record.rating_count"/>
|
||||
</t>
|
||||
</div>
|
||||
<div class="card-text text-muted" t-field="record.description_sale"/>
|
||||
<div class="mt-4">
|
||||
<button t-if="record._website_show_quick_add()" type="button" role="button" class="btn btn-primary js_add_cart mt-1" title="Add to Cart">
|
||||
Add to Cart
|
||||
</button>
|
||||
<a class="btn btn-link me-1 mt-1" t-att-href="record.website_url">
|
||||
View Product
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</t>
|
||||
</template>
|
||||
|
||||
<template id="dynamic_filter_template_product_product_horizontal_card" name="Horizontal Card">
|
||||
<t t-foreach="records" t-as="data"
|
||||
data-number-of-elements="3"
|
||||
data-number-of-elements-sm="1"
|
||||
data-row-per-slide="2"
|
||||
data-arrow-position="bottom"
|
||||
data-extra-classes="o_carousel_multiple_rows"
|
||||
data-thumb="/website_sale/static/src/img/snippets_options/product_horizontal_card.svg">
|
||||
<t t-set="record" t-value="data['_record']"/>
|
||||
<div class="o_carousel_product_card card w-100 border-0 bg-light p-3" t-att-data-add2cart-rerender="data.get('_add2cart_rerender')">
|
||||
<div t-if="is_sample" class="h5 o_ribbon_right bg-primary text-uppercase">Sample</div>
|
||||
<input type="hidden" name="product-id" t-att-data-product-id="record.id"/>
|
||||
<div class="row h-100 p-0">
|
||||
<div class="col-lg-4 position-static">
|
||||
<a class="stretched-link o_dynamic_product_hovered" t-att-href="record.website_url">
|
||||
<img class="img img-fluid mx-auto o_img_product_square" loading="lazy" t-att-src="data['image_512']" t-att-alt="record.display_name"/>
|
||||
</a>
|
||||
</div>
|
||||
<div class="o_carousel_product_card_body col-lg-8 d-flex flex-column justify-content-between">
|
||||
<div>
|
||||
<div class="card-title h6" t-field="record.display_name"/>
|
||||
<div class="o_wsale_product_sub justify-content-between gap-2">
|
||||
<!-- Price(s) -->
|
||||
<div class="product_price" aria-label="Price information">
|
||||
<t t-call="website_sale.price_dynamic_filter_template_product_product"></t>
|
||||
</div>
|
||||
<div>
|
||||
<div class="mb-1">
|
||||
<t t-if="is_view_active('website_sale.product_comment')" t-call="portal_rating.rating_widget_stars_static">
|
||||
<t t-set="rating_avg" t-value="record.rating_avg"/>
|
||||
<t t-set="rating_count" t-value="record.rating_count"/>
|
||||
</t>
|
||||
</div>
|
||||
<div class="d-flex align-items-center flex-wrap">
|
||||
<div class="my-2">
|
||||
<t t-call="website_sale.price_dynamic_filter_template_product_product"/>
|
||||
</div>
|
||||
<div t-if="record._website_show_quick_add()" class="o_dynamic_snippet_btn_wrapper ms-auto">
|
||||
<button type="button" role="button" class="btn btn-primary js_add_cart" title="Add to Cart">
|
||||
<i class="fa fa-fw fa-shopping-cart"/>
|
||||
<!-- Actions -->
|
||||
<div class="o_wsale_product_btn">
|
||||
<div class="o_wsale_product_action_row">
|
||||
<t t-if="product._website_show_quick_add()">
|
||||
<button
|
||||
type="button"
|
||||
class="o_wsale_product_btn_primary btn js_add_cart"
|
||||
title="Add to Cart"
|
||||
t-att-data-product-id="product.id if product.is_product_variant else product.product_variant_id.id"
|
||||
t-att-data-product-selected="product.is_product_variant"
|
||||
t-att-data-product-template-id="product.id if not product.is_product_variant else product.product_tmpl_id.id"
|
||||
t-att-data-product-type="product.type"
|
||||
t-att-data-show-quantity="is_view_active('website_sale.product_quantity')"
|
||||
>
|
||||
<!-- Avoid whitespaces undesired gaps -->
|
||||
<i class="fa fa-shopping-cart fa-fw" role="presentation"/><span class="o_label small ms-1">Add to Cart</span>
|
||||
</button>
|
||||
</div>
|
||||
</t>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
|
@ -304,103 +121,31 @@
|
|||
</div>
|
||||
</t>
|
||||
</template>
|
||||
<template id="dynamic_filter_template_product_product_horizontal_card_2" name="Horizontal Card width covered image">
|
||||
<t t-foreach="records" t-as="data"
|
||||
data-row-per-slide="2"
|
||||
data-arrow-position="bottom"
|
||||
data-number-of-elements="2"
|
||||
data-number-of-elements-sm="1"
|
||||
data-extra-classes="o_carousel_multiple_rows"
|
||||
data-thumb="/website_sale/static/src/img/snippets_options/product_horizontal_card_2.svg">
|
||||
<t t-set="record" t-value="data['_record']"/>
|
||||
<div class="o_carousel_product_card card w-100 border-0 o_dynamic_product_hovered o_cc o_cc5">
|
||||
<div t-if="is_sample" class="h5 o_ribbon_right bg-primary text-uppercase">Sample</div>
|
||||
<input type="hidden" name="product-id" t-att-data-product-id="record.id"/>
|
||||
<a class="stretched-link" t-att-href="record.website_url">
|
||||
<img class="img img-fluid position-absolute w-100 h-100 o_img_product_cover" loading="lazy" t-att-src="data['image_512']" t-att-alt="record.display_name"/>
|
||||
</a>
|
||||
<div class="o_carousel_product_card_body d-flex flex-column justify-content-between h-100 bg-black-50 p-3 position-relative">
|
||||
<div class="mb-3">
|
||||
<div class="card-title h5" t-field="record.display_name"/>
|
||||
<t t-if="is_view_active('website_sale.product_comment')" t-call="portal_rating.rating_widget_stars_static">
|
||||
<t t-set="rating_avg" t-value="record.rating_avg"/>
|
||||
<t t-set="rating_count" t-value="record.rating_count"/>
|
||||
</t>
|
||||
</div>
|
||||
<div class="card-text h6 flex-grow-1" t-field="record.description_sale"/>
|
||||
<div class="d-flex justify-content-between align-items-center flex-wrap mt-3">
|
||||
<div class="h5 mb-0 me-2">
|
||||
<t t-call="website_sale.price_dynamic_filter_template_product_product"/>
|
||||
</div>
|
||||
<div t-if="record._website_show_quick_add()" class="o_dynamic_snippet_btn_wrapper">
|
||||
<button type="button" role="button" class="btn btn-primary js_add_cart" title="Add to Cart">
|
||||
Add to Cart
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</t>
|
||||
</template>
|
||||
|
||||
<template id="dynamic_filter_template_product_product_card_group" name="Card group">
|
||||
<t t-foreach="records" t-as="data"
|
||||
data-row-per-slide="2"
|
||||
data-number-of-elements="2"
|
||||
data-number-of-elements-sm="1"
|
||||
data-arrow-position="bottom"
|
||||
data-extra-classes="o_card_group rounded"
|
||||
data-thumb="/website_sale/static/src/img/snippets_options/product_card_group.svg">
|
||||
<t t-set="record" t-value="data['_record']"/>
|
||||
<div class="o_carousel_product_card card w-100 rounded-0 border-top-0 border-start-0" t-att-data-url="record.website_url">
|
||||
<div t-if="is_sample" class="h5 o_ribbon_right bg-primary text-uppercase">Sample</div>
|
||||
<input type="hidden" name="product-id" t-att-data-product-id="record.id"/>
|
||||
<div class="o_carousel_product_card_body card-body justify-content-between h-100 p-3">
|
||||
<div class="row h-100">
|
||||
<div class="col-8 d-flex flex-column">
|
||||
<div class="card-title h5" t-field="record.display_name"/>
|
||||
<div class="card-text h6 text-muted" t-field="record.description_sale"/>
|
||||
<div class="d-flex justify-content-between align-items-center flex-wrap w-100 mt-auto">
|
||||
<div class="h5 text-primary mb-0 me-2">
|
||||
<t t-call="website_sale.price_dynamic_filter_template_product_product"/>
|
||||
</div>
|
||||
<t t-if="is_view_active('website_sale.product_comment')" t-call="portal_rating.rating_widget_stars_static">
|
||||
<t t-set="rating_avg" t-value="record.rating_avg"/>
|
||||
<t t-set="rating_count" t-value="record.rating_count"/>
|
||||
</t>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-4 position-static">
|
||||
<div class="overflow-hidden position-static">
|
||||
<a class="stretched-link o_dynamic_product_hovered" t-att-href="record.website_url">
|
||||
<img class="img img-fluid o_img_product_square o_img_product_cover h-auto" loading="lazy" t-att-src="data['image_512']" t-att-alt="record.display_name"/>
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</t>
|
||||
</template>
|
||||
<template id="price_dynamic_filter_template_product_product" name="Dynamic Product Filter Price">
|
||||
<t t-set="record_price" t-value="record._get_contextual_price_tax_selection()"/>
|
||||
<t t-if="not website.prevent_zero_price_sale or record_price">
|
||||
<span t-esc="record_price" class="fw-bold"
|
||||
<t t-if="not data.get('prevent_zero_price_sale') and not data.get('is_sample')">
|
||||
<span t-out="data['price']"
|
||||
class="mb-0 fw-bold"
|
||||
name="product_price"
|
||||
t-options="{'widget': 'monetary', 'display_currency': website.currency_id}"/>
|
||||
<del t-if="data.get('has_discounted_price')" class="text-danger ms-1 h6" style="white-space: nowrap;"
|
||||
t-esc="data['list_price']"
|
||||
t-options="{'widget': 'monetary', 'display_currency': website.currency_id}"/>
|
||||
</t>
|
||||
<t t-else="">
|
||||
<span t-field="website.prevent_zero_price_sale_text"/>
|
||||
<del
|
||||
t-if="data.get('has_discounted_price')"
|
||||
aria-label="Original price"
|
||||
t-attf-class="text-muted me-1 mb-0"
|
||||
style="white-space: nowrap;"
|
||||
>
|
||||
<small
|
||||
t-out="data['list_price']"
|
||||
t-options="{'widget': 'monetary', 'display_currency': website.currency_id}"
|
||||
/>
|
||||
</del>
|
||||
</t>
|
||||
</template>
|
||||
|
||||
<!-- Assets -->
|
||||
<record id="website_sale.s_dynamic_snippet_products_000_scss" model="ir.asset">
|
||||
<field name="name">Dynamic snippet products 000 SCSS</field>
|
||||
<field name="bundle">web.assets_frontend</field>
|
||||
<field name="path">website_sale/static/src/snippets/s_dynamic_snippet_products/000.scss</field>
|
||||
</record>
|
||||
</data>
|
||||
<asset id="website_sale.s_dynamic_snippet_products_000_scss" name="Dynamic snippet products 000 SCSS">
|
||||
<bundle>web.assets_frontend</bundle>
|
||||
<path>website_sale/static/src/snippets/s_dynamic_snippet_products/000.scss</path>
|
||||
</asset>
|
||||
|
||||
</odoo>
|
||||
|
|
|
|||
|
|
@ -0,0 +1,79 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<odoo>
|
||||
|
||||
<template id="dynamic_filter_template_product_public_category_default">
|
||||
<t t-foreach="records" t-as="category">
|
||||
<t t-set="is_parent" t-value="category['id'] == parentCategoryId"/>
|
||||
<div
|
||||
t-if="not is_parent or includeParent"
|
||||
name="category_item"
|
||||
class="s_dynamic_category_item position-relative bg-black overflow-hidden oe_unremovable oe_unmovable"
|
||||
t-att-data-category-id="category['id']"
|
||||
t-attf-style="grid-row: span {{ 4 if is_parent else size }}; grid-column: span {{ 2 if is_parent and colSpanTwo else 1 }}"
|
||||
role="article"
|
||||
>
|
||||
<div class="overflow-hidden">
|
||||
<img
|
||||
name="category_image"
|
||||
loading="lazy"
|
||||
t-att-src="category['cover_image']"
|
||||
alt="Category Image"
|
||||
class="o_category_image img-fluid position-absolute w-100 h-100 object-fit-cover"
|
||||
/>
|
||||
<div t-if="category.get('unpublished')" class="o_ribbon_right small text-bg-light">Unpublished</div>
|
||||
</div>
|
||||
<div
|
||||
name="category_overlay"
|
||||
t-attf-class="p-3 bg-black-25 position-relative w-100 h-100 d-flex flex-column justify-content-between {{alignmentClass}}"
|
||||
>
|
||||
<h3 class="h4" t-out="category['name']"/>
|
||||
<a
|
||||
name="category_button"
|
||||
role="button"
|
||||
t-attf-href="/shop/category/{{category['id']}}"
|
||||
class="s_dynamic_category_button btn btn-primary align-self-start oe_unremovable"
|
||||
t-out="buttonText"
|
||||
/>
|
||||
</div>
|
||||
</div>
|
||||
</t>
|
||||
</template>
|
||||
|
||||
<template
|
||||
id="dynamic_filter_template_product_public_category_clickable_items"
|
||||
inherit_id="website_sale.dynamic_filter_template_product_public_category_default"
|
||||
primary="True"
|
||||
>
|
||||
<div name="category_item" position="attributes">
|
||||
<attribute name="class" add="opacity-trigger-hover" separator=" "/>
|
||||
</div>
|
||||
<div name="category_overlay" position="attributes">
|
||||
<attribute name="t-attf-class" add="z-0" separator=" "/>
|
||||
</div>
|
||||
<h3 class="h4" position="before">
|
||||
<span
|
||||
class="o_category_filter position-absolute start-0 top-0 end-0 bottom-0 bg-black-25 transition-base z-n1"
|
||||
aria-hidden="true"
|
||||
/>
|
||||
</h3>
|
||||
<h3 class="h4" position="attributes">
|
||||
<attribute name="class" add="mb-0" separator=" "/>
|
||||
</h3>
|
||||
<img name="category_image" position="attributes">
|
||||
<attribute name="class" add="transition-base" separator=" "/>
|
||||
</img>
|
||||
<a name="category_button" position="attributes">
|
||||
<attribute
|
||||
name="class"
|
||||
add="stretched-link h-0 p-0 opacity-0 o_not_editable o_not-animable"
|
||||
separator=" "
|
||||
/>
|
||||
</a>
|
||||
<a name="category_button" position="after">
|
||||
<p class="s_dynamic_category_arrow position-absolute end-0 bottom-0 mb-3 me-3">
|
||||
<i class="oi oi-arrow-right fa-lg"/>
|
||||
</p>
|
||||
</a>
|
||||
</template>
|
||||
|
||||
</odoo>
|
||||
|
|
@ -0,0 +1,7 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<odoo>
|
||||
<record id="test_01_admin_shop_tour" model="web_tour.tour">
|
||||
<field name="name">test_01_admin_shop_tour</field>
|
||||
<field name="sequence">130</field>
|
||||
</record>
|
||||
</odoo>
|
||||
Loading…
Add table
Add a link
Reference in a new issue