summaryrefslogtreecommitdiff
path: root/addons/website_sale/data
diff options
context:
space:
mode:
authorstephanchrst <stephanchrst@gmail.com>2022-05-10 21:51:50 +0700
committerstephanchrst <stephanchrst@gmail.com>2022-05-10 21:51:50 +0700
commit3751379f1e9a4c215fb6eb898b4ccc67659b9ace (patch)
treea44932296ef4a9b71d5f010906253d8c53727726 /addons/website_sale/data
parent0a15094050bfde69a06d6eff798e9a8ddf2b8c21 (diff)
initial commit 2
Diffstat (limited to 'addons/website_sale/data')
-rw-r--r--addons/website_sale/data/data.xml128
-rw-r--r--addons/website_sale/data/demo.xml739
-rw-r--r--addons/website_sale/data/digest_data.xml8
-rw-r--r--addons/website_sale/data/mail_template_data.xml110
4 files changed, 985 insertions, 0 deletions
diff --git a/addons/website_sale/data/data.xml b/addons/website_sale/data/data.xml
new file mode 100644
index 00000000..c3e23f32
--- /dev/null
+++ b/addons/website_sale/data/data.xml
@@ -0,0 +1,128 @@
+<?xml version="1.0" encoding="utf-8"?>
+<odoo>
+ <data noupdate="1">
+
+ <record id="menu_shop" model="website.menu">
+ <field name="name">Shop</field>
+ <field name="url">/shop</field>
+ <field name="parent_id" ref="website.main_menu"/>
+ <field name="sequence" type="int">20</field>
+ </record>
+ <record id="action_open_website" model="ir.actions.act_url">
+ <field name="name">Website Shop</field>
+ <field name="target">self</field>
+ <field name="url">/shop</field>
+ </record>
+ <record id="base.open_menu" model="ir.actions.todo">
+ <field name="action_id" ref="action_open_website"/>
+ <field name="state">open</field>
+ </record>
+
+ <record id="website_sale.sale_ribbon" model="product.ribbon">
+ <field name="html">Sale</field>
+ <field name="html_class">bg-success o_ribbon_left</field>
+ </record>
+
+ <record id="website_sale.sold_out_ribbon" model="product.ribbon">
+ <field name="html">Sold out</field>
+ <field name="html_class">bg-danger o_ribbon_left</field>
+ </record>
+
+ <record id="website_sale.new_ribbon" model="product.ribbon">
+ <field name="html">New!</field>
+ <field name="html_class">bg-primary o_ribbon_left</field>
+ </record>
+
+ <record id="sales_team.salesteam_website_sales" model="crm.team">
+ <field name="active" eval="True"/>
+ </record>
+
+ <record model="website" id="website.default_website">
+ <field name="salesteam_id" ref="sales_team.salesteam_website_sales"/>
+ </record>
+
+ <record model="product.pricelist" id="product.list0">
+ <field name="selectable" eval="True" />
+ <field name="website_id" eval="False"/>
+ </record>
+
+ </data>
+ <data>
+ <!-- Action Server for Dynamic Filter -->
+ <record id="dynamic_snippet_products_action" model="ir.actions.server">
+ <field name="name">Products Dynamic Snippet</field>
+ <field name="model_id" ref="model_product_product"/>
+ <field name="state">code</field>
+ <field name="code">
+ProductProduct = model.env['product.product']
+FieldMonetary = model.env['ir.qweb.field.monetary']
+
+website = request.website.get_current_website()
+dynamic_filter = model.env.context.get('dynamic_filter')
+limit = model.env.context.get('limit')
+search_domain = model.env.context.get('search_domain')
+get_rendering_data_structure = model.env.context.get('get_rendering_data_structure')
+escape = dynamic_filter.escape_falsy_as_empty
+
+domain = [('website_published', '=', True)] + website.website_domain() + (search_domain or [])
+products = ProductProduct.search(domain, limit=limit)
+_ = products.mapped('name')
+
+monetary_options = {
+ 'display_currency': request.website.get_current_pricelist().currency_id,
+}
+
+max_nb_chars = 100
+res_products = []
+for product in products:
+ res_product = product._read_format(['id', 'name', 'website_url', 'description_sale'])[0]
+ res_product.update(product._get_combination_info_variant())
+
+ if res_product['description_sale'] and len(res_product['description_sale']) > max_nb_chars:
+ res_product['description_sale'] = "%s ..." % res_product['description_sale'][:max_nb_chars]
+ res_product['list_price'] = FieldMonetary.value_to_html(res_product['price'], monetary_options)
+ data = get_rendering_data_structure()
+ for field_name in dynamic_filter.field_names.split(","):
+ field = ProductProduct._fields.get(field_name)
+ if field and field.type == 'binary':
+ data['image_fields'][field_name] = escape(website.image_url(product, field_name))
+ elif field_name == 'list_price':
+ data['fields'][field_name] = res_product[field_name]
+ else:
+ data['fields'][field_name] = escape(res_product[field_name])
+ data['fields']['call_to_action_url'] = escape(product['website_url'])
+ res_products.append(data)
+
+response = res_products
+ </field>
+ </record>
+ <!-- Dynamic Filter -->
+ <record id="dynamic_filter_demo_products" model="website.snippet.filter">
+ <field name="action_server_id" ref="website_sale.dynamic_snippet_products_action"/>
+ <field name="field_names">display_name,description_sale,image_512,list_price</field>
+ <field name="limit" eval="16"/>
+ <field name="name">Products</field>
+ <field name="website_id" ref="website.default_website"/>
+ </record>
+ <function model="ir.model.fields" name="formbuilder_whitelist">
+ <value>sale.order</value>
+ <value eval="[
+ 'client_order_ref',
+ ]"/>
+ </function>
+
+ <record id="base.model_res_partner" model="ir.model">
+ <field name="website_form_key">create_customer</field>
+ <field name="website_form_access">True</field>
+ <field name="website_form_label">Create a Customer</field>
+ </record>
+ <function model="ir.model.fields" name="formbuilder_whitelist">
+ <value>res.partner</value>
+ <value eval="[
+ 'name', 'phone', 'email',
+ 'city', 'zip', 'street', 'street2', 'state_id', 'country_id',
+ 'vat', 'company_name'
+ ]"/>
+ </function>
+ </data>
+</odoo>
diff --git a/addons/website_sale/data/demo.xml b/addons/website_sale/data/demo.xml
new file mode 100644
index 00000000..568c0f96
--- /dev/null
+++ b/addons/website_sale/data/demo.xml
@@ -0,0 +1,739 @@
+<?xml version="1.0" encoding="utf-8"?>
+<odoo noupdate="1">
+
+ <record model="website" id="website.website2">
+ <field name="salesteam_id" ref="sales_team.salesteam_website_sales"/>
+ </record>
+
+ <record id="product.product_product_24" model="product.product">
+ <field name="is_published" eval="True"/>
+ </record>
+ <record id="product.product_product_5" model="product.product">
+ <field name="is_published" eval="True"/>
+ </record>
+ <record id="product.product_product_12" model="product.product">
+ <field name="is_published" eval="True"/>
+ </record>
+ <record id="product.product_product_10" model="product.product">
+ <field name="is_published" eval="True"/>
+ </record>
+ <record id="product.product_product_13" model="product.product">
+ <field name="is_published" eval="True"/>
+ </record>
+ <record id="product.product_product_25" model="product.product">
+ <field name="is_published" eval="True"/>
+ </record>
+ <record id="product.consu_delivery_02" model="product.product">
+ <field name="is_published" eval="True"/>
+ </record>
+ <record id="product.product_delivery_01" model="product.product">
+ <field name="is_published" eval="True"/>
+ </record>
+ <record id="product.product_product_3" model="product.product">
+ <field name="is_published" eval="True"/>
+ </record>
+ <record id="product.product_product_22" model="product.product">
+ <field name="is_published" eval="True"/>
+ </record>
+ <record id="product.consu_delivery_03" model="product.product">
+ <field name="is_published" eval="True"/>
+ </record>
+ <record id="product.product_product_27" model="product.product">
+ <field name="is_published" eval="True"/>
+ </record>
+ <record id="product.product_delivery_02" model="product.product">
+ <field name="is_published" eval="True"/>
+ </record>
+ <record id="product.product_product_16" model="product.product">
+ <field name="is_published" eval="True"/>
+ </record>
+ <record id="product.consu_delivery_01" model="product.product">
+ <field name="is_published" eval="True"/>
+ </record>
+ <record id="product.product_order_01" 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_size_x">2</field>
+ <field name="website_size_y">2</field>
+ <field name="website_sequence">9950</field>
+ </record>
+
+ <record id="product.product_product_6" model="product.product">
+ <field name="is_published" eval="True"/>
+ <field name="website_sequence">10010</field>
+ </record>
+
+ <record id="product.product_product_7" model="product.product">
+ <field name="is_published" eval="True"/>
+ </record>
+
+ <record id="product.product_product_8" model="product.product">
+ <field name="is_published" eval="True"/>
+ </record>
+
+ <record id="product.product_product_9" model="product.product">
+ <field name="is_published" eval="True"/>
+ </record>
+
+ <record id="product.product_product_11" model="product.product">
+ <field name="is_published" eval="True"/>
+ <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>
+ </record>
+ <record id="public_category_furnitures" model="product.public.category">
+ <field name="name">Furnitures</field>
+ <field name="sequence">17</field>
+ </record>
+ <record id="public_category_boxes" model="product.public.category">
+ <field name="name">Boxes</field>
+ <field name="sequence">20</field>
+ </record>
+ <record id="public_category_drawers" model="product.public.category">
+ <field name="name">Drawers</field>
+ <field name="sequence">21</field>
+ </record>
+ <record id="public_category_cabinets" model="product.public.category">
+ <field name="name">Cabinets</field>
+ <field name="sequence">22</field>
+ </record>
+ <record id="public_category_bins" model="product.public.category">
+ <field name="name">Bins</field>
+ <field name="sequence">23</field>
+ </record>
+ <record id="public_category_lamps" model="product.public.category">
+ <field name="name">Lamps</field>
+ <field name="sequence">24</field>
+ </record>
+ <record id="services" model="product.public.category">
+ <field name="name">Services</field>
+ <field name="sequence">25</field>
+ </record>
+ <record id="public_category_multimedia" model="product.public.category">
+ <field name="name">Multimedia</field>
+ <field name="sequence">26</field>
+ </record>
+
+ <!-- subcategories -->
+ <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>
+ </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">18</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">19</field>
+ </record>
+
+ <record id="product.product_product_1_product_template" model="product.template">
+ <field name="public_categ_ids" eval="[(6,0,[ref('services')])]"/>
+ </record>
+ <record id="product.product_product_2_product_template" model="product.template">
+ <field name="public_categ_ids" eval="[(6,0,[ref('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')])]"/>
+ </record>
+ <record id="product.consu_delivery_03_product_template" model="product.template">
+ <field name="public_categ_ids" eval="[(6,0,[ref('public_category_desks')])]"/>
+ </record>
+ <record id="product.product_product_4_product_template" model="product.template">
+ <field name="public_categ_ids" eval="[(6,0,[ref('public_category_desks')])]"/>
+ </record>
+ <record id="product.product_product_5_product_template" model="product.template">
+ <field name="public_categ_ids" eval="[(6,0,[ref('public_category_desks')])]"/>
+ </record>
+ <record id="product.product_product_6_product_template" model="product.template">
+ <field name="public_categ_ids" eval="[(6,0,[ref('public_category_cabinets')])]"/>
+ </record>
+ <record id="product.product_product_7_product_template" model="product.template">
+ <field name="public_categ_ids" eval="[(6,0,[ref('public_category_boxes')])]"/>
+ </record>
+ <record id="product.product_product_8_product_template" model="product.template">
+ <field name="public_categ_ids" eval="[(6,0,[ref('public_category_desks')])]"/>
+ </record>
+ <record id="product.product_product_9_product_template" model="product.template">
+ <field name="public_categ_ids" eval="[(6,0,[ref('public_category_bins')])]"/>
+ </record>
+ <record id="product.product_product_10_product_template" model="product.template">
+ <field name="public_categ_ids" eval="[(6,0,[ref('public_category_cabinets')])]"/>
+ </record>
+ <record id="product.product_product_11_product_template" model="product.template">
+ <field name="public_categ_ids" eval="[(6,0,[ref('public_category_furnitures_chairs')])]"/>
+ </record>
+ <record id="product.product_product_12_product_template" model="product.template">
+ <field name="public_categ_ids" eval="[(6,0,[ref('public_category_furnitures_chairs')])]"/>
+ </record>
+ <record id="product.product_product_13_product_template" model="product.template">
+ <field name="public_categ_ids" eval="[(6,0,[ref('public_category_desks')])]"/>
+ </record>
+ <record id="product.product_product_16_product_template" model="product.template">
+ <field name="public_categ_ids" eval="[(6,0,[ref('public_category_drawers')])]"/>
+ </record>
+ <record id="product.product_product_20_product_template" model="product.template">
+ <field name="public_categ_ids" eval="[(6,0,[ref('public_category_desks_components')])]"/>
+ </record>
+ <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">
+ <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">
+ <field name="public_categ_ids" eval="[(6,0,[ref('public_category_drawers')])]"/>
+ </record>
+ <record id="product.product_order_01_product_template" model="product.template">
+ <field name="public_categ_ids" eval="[(6,0,[ref('public_category_multimedia')])]"/>
+ </record>
+ <record id="product.consu_delivery_01_product_template" model="product.template">
+ <field name="public_categ_ids" eval="[(6,0,[ref('public_category_furnitures_couches')])]"/>
+ </record>
+ <record id="product.consu_delivery_02_product_template" model="product.template">
+ <field name="public_categ_ids" eval="[(6,0,[ref('public_category_desks')])]"/>
+ </record>
+ <record id="product.consu_delivery_03_product_template" model="product.template">
+ <field name="public_categ_ids" eval="[(6,0,[ref('public_category_desks')])]"/>
+ </record>
+ <record id="product.product_delivery_01_product_template" model="product.template">
+ <field name="public_categ_ids" eval="[(6,0,[ref('public_category_furnitures_chairs')])]"/>
+ </record>
+ <record id="product.product_delivery_02_product_template" model="product.template">
+ <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>
+ <field name="currency_id" ref="base.USD"/>
+ </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>
+
+ <record id="list_christmas" model="product.pricelist">
+ <field name="name">Christmas</field>
+ <field name="selectable" eval="False" />
+ <field name="website_id" ref="website.default_website" />
+ <field name="country_group_ids" eval="[(6,0,[ref('base.europe')])]" />
+ <field name="sequence">20</field>
+ </record>
+ <record id="item_christmas" model="product.pricelist.item">
+ <field name="pricelist_id" ref="list_christmas"/>
+ <field name="compute_price">formula</field>
+ <field name="base">list_price</field>
+ <field name="price_discount">20</field>
+ </record>
+
+ <record id="list_benelux" model="product.pricelist">
+ <field name="name">Benelux</field>
+ <field name="selectable" eval="False" />
+ <field name="website_id" ref="website.default_website" />
+ <field name="country_group_ids" eval="[(6,0,[ref('benelux')])]" />
+ <field name="sequence">2</field>
+ </record>
+ <record id="item_benelux" model="product.pricelist.item">
+ <field name="pricelist_id" ref="list_benelux"/>
+ <field name="compute_price">percentage</field>
+ <field name="base">list_price</field>
+ <field name="percent_price">10</field>
+ <field name="currency_id" ref="base.EUR"/>
+ </record>
+
+
+ <record id="list_europe" model="product.pricelist">
+ <field name="name">EUR</field>
+ <field name="selectable" eval="True" />
+ <field name="website_id" ref="website.default_website" />
+ <field name="country_group_ids" eval="[(6,0,[ref('base.europe')])]" />
+ <field name="sequence">3</field>
+ <field name="currency_id" ref="base.EUR"/>
+ </record>
+ <record id="item_europe" model="product.pricelist.item">
+ <field name="pricelist_id" ref="list_europe"/>
+ <field name="compute_price">formula</field>
+ <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)"/>
+ <field name="partner_id" ref="base.res_partner_3"/>
+ <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>
+ </record>
+
+ <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>
+
+ <record id="website_sale_order_2" model="sale.order">
+ <field name="create_date" eval="datetime.now() - timedelta(days=8)"/>
+ <field name="partner_id" ref="base.res_partner_3"/>
+ <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>
+ </record>
+
+ <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>
+
+ <record id="website_sale_order_3" model="sale.order">
+ <field name="create_date" eval="datetime.now() - timedelta(days=8)"/>
+ <field name="partner_id" ref="base.res_partner_3"/>
+ <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'))]"/>
+ <field name="state">sale</field>
+ </record>
+
+ <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>
+
+ <record id="website_sale_order_4" model="sale.order">
+ <field name="create_date" eval="datetime.now() - timedelta(days=8)"/>
+ <field name="partner_id" ref="base.res_partner_3"/>
+ <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>
+ </record>
+
+ <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>
+
+ <record id="website_sale_order_5" model="sale.order">
+ <field name="create_date" eval="datetime.now() - timedelta(days=8)"/>
+ <field name="partner_id" ref="base.res_partner_3"/>
+ <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>
+ </record>
+
+ <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>
+
+ <record id="website_sale_order_6" model="sale.order">
+ <field name="create_date" eval="datetime.now() - timedelta(days=8)"/>
+ <field name="partner_id" ref="base.res_partner_3"/>
+ <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>
+ </record>
+
+ <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>
+
+ <record id="website_sale_order_7" model="sale.order">
+ <field name="create_date" eval="datetime.now() - timedelta(days=8)"/>
+ <field name="partner_id" ref="base.res_partner_3"/>
+ <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="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>
+ </record>
+
+ <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>
+
+ <record id="website_sale_order_8" model="sale.order">
+ <field name="partner_id" ref="base.res_partner_3"/>
+ <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="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'))]"/>
+ <field name="state">sale</field>
+ </record>
+
+ <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>
+
+ <record id="website_sale_order_9" model="sale.order">
+ <field name="partner_id" ref="base.res_partner_3"/>
+ <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="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">2950.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">12.50</field>
+ </record>
+
+ <!-- Active Carts -->
+ <record id="website_sale_order_10" model="sale.order">
+ <field name="partner_id" ref="base.res_partner_3"/>
+ <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="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'))]"/>
+ </record>
+
+ <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">16.50</field>
+ </record>
+
+ <!-- Abandoned Carts -->
+ <record id="website_sale_order_11" model="sale.order">
+ <field name="partner_id" ref="base.res_partner_3"/>
+ <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="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>
+
+ <!-- Payments to Capture -->
+ <record id="website_sale_order_13" model="sale.order">
+ <field name="partner_id" ref="base.res_partner_3"/>
+ <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="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')"/>
+ <field name="state">sent</field>
+ </record>
+
+ <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>
+
+ <!-- Order to Invoice -->
+ <record id="website_sale_order_14" model="sale.order">
+ <field name="partner_id" ref="base.res_partner_3"/>
+ <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="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>
+
+ <record id="website_sale_order_16" model="sale.order">
+ <field name="create_date" eval="datetime.now() - relativedelta(months=1)"/>
+ <field name="partner_id" ref="base.res_partner_3"/>
+ <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="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>
+ </record>
+
+ <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>
+
+ <record id="website_sale_order_17" model="sale.order">
+ <field name="create_date" eval="datetime.now() - relativedelta(months=1, days=2)"/>
+ <field name="partner_id" ref="base.res_partner_3"/>
+ <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="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>
+
+ <record id="website_sale_order_18" model="sale.order">
+ <field name="create_date" eval="datetime.now() - relativedelta(months=2)"/>
+ <field name="partner_id" ref="base.res_partner_3"/>
+ <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="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>
+
+
+ <!-- action_confirm for confirmation date -->
+ <function model="sale.order" name="action_confirm" eval="[[ref('website_sale_order_14')]]"/>
+
+ <record id="product_product_1_product_template" model="product.template">
+ <field name="name">Warranty</field>
+ <field name="list_price">20.0</field>
+ <field name="website_sequence">9980</field>
+ <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="invoice_policy">delivery</field>
+ <field name="public_categ_ids" eval="[(6, 0, [ref('website_sale.services')])]"/>
+ </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')])]"/>
+ </record>
+
+ <!-- Handle automatically created product.template.attribute.value -->
+ <function model="ir.model.data" name="_update_xmlids">
+ <value model="base" eval="[{
+ 'xml_id': 'website_sale.product_1_attribute_3_value_1',
+ 'record': obj().env.ref('website_sale.product_1_attribute_3_product_template_attribute_line').product_template_value_ids[0],
+ 'noupdate': True,
+ }, {
+ '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,
+ }]"/>
+ </function>
+
+ <function model="ir.model.data" name="_update_xmlids">
+ <value model="base" eval="[{
+ 'xml_id': 'website_sale.product_product_1',
+ '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_1')),
+ 'noupdate': True,
+ }, {
+ '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,
+ },]"/>
+ </function>
+
+ <record id="product_product_1" model="product.product">
+ <field name="default_code">SERV_125889</field>
+ </record>
+ <record id="product_product_1b" model="product.product">
+ <field name="default_code">SERV_125890</field>
+ </record>
+
+ <record id="website_sale.product_1_attribute_3_value_2" model="product.template.attribute.value">
+ <field name="price_extra">18.00</field>
+ </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="create_uid" ref="base.user_demo"/>
+ <field name="user_id" ref="base.user_demo"/>
+ </record>
+ <record id="website_sale_activity_2" model="mail.activity">
+ <field name="res_id" ref="website_sale.website_sale_order_8"/>
+ <field name="res_model_id" ref="sale.model_sale_order"/>
+ <field name="activity_type_id" ref="mail.mail_activity_data_todo"/>
+ <field name="date_deadline" eval="(DateTime.today() + relativedelta(days=5)).strftime('%Y-%m-%d %H:%M')" />
+ <field name="summary">Follow-up on satisfaction</field>
+ <field name="create_uid" ref="base.user_demo"/>
+ <field name="user_id" ref="base.user_demo"/>
+ </record>
+ <record id="website_sale_activity_3" model="mail.activity">
+ <field name="res_id" ref="website_sale.website_sale_order_9"/>
+ <field name="res_model_id" ref="sale.model_sale_order"/>
+ <field name="activity_type_id" ref="mail.mail_activity_data_todo"/>
+ <field name="date_deadline" eval="(DateTime.today() + relativedelta(days=5)).strftime('%Y-%m-%d %H:%M')" />
+ <field name="summary">Confirm quote</field>
+ <field name="create_uid" ref="base.user_demo"/>
+ <field name="user_id" ref="base.user_demo"/>
+ </record>
+ <record id="website_sale_activity_5" model="mail.activity">
+ <field name="res_id" ref="website_sale.website_sale_order_11"/>
+ <field name="res_model_id" ref="sale.model_sale_order"/>
+ <field name="activity_type_id" ref="mail.mail_activity_data_email"/>
+ <field name="date_deadline" eval="(DateTime.today() - relativedelta(days=5)).strftime('%Y-%m-%d %H:%M')" />
+ <field name="summary">Send updated pricelist</field>
+ <field name="create_uid" ref="base.user_demo"/>
+ <field name="user_id" ref="base.user_demo"/>
+ </record>
+
+</odoo>
diff --git a/addons/website_sale/data/digest_data.xml b/addons/website_sale/data/digest_data.xml
new file mode 100644
index 00000000..0f9739fd
--- /dev/null
+++ b/addons/website_sale/data/digest_data.xml
@@ -0,0 +1,8 @@
+<?xml version='1.0' encoding='utf-8'?>
+<odoo>
+ <data noupdate="1">
+ <record id="digest.digest_digest_default" model="digest.digest">
+ <field name="kpi_website_sale_total">True</field>
+ </record>
+ </data>
+</odoo>
diff --git a/addons/website_sale/data/mail_template_data.xml b/addons/website_sale/data/mail_template_data.xml
new file mode 100644
index 00000000..f6317733
--- /dev/null
+++ b/addons/website_sale/data/mail_template_data.xml
@@ -0,0 +1,110 @@
+<?xml version="1.0" encoding="utf-8"?>
+<odoo>
+ <data noupdate="1">
+ <record id="mail_template_sale_cart_recovery" model="mail.template">
+ <field name="name">Sales Order: Cart Recovery Email</field>
+ <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 user.email_formatted or '') | safe}</field>
+ <field name="partner_to">${object.partner_id.id}</field>
+ <field name="body_html" type="xml">
+<table border="0" cellpadding="0" cellspacing="0" style="padding-top: 16px; background-color: #F1F1F1; font-family:Verdana, Arial,sans-serif; color: #454748; width: 100%; border-collapse:separate;"><tr><td align="center">
+<table border="0" cellpadding="0" cellspacing="0" width="590" style="padding: 16px; background-color: white; color: #454748; border-collapse:separate;">
+<tbody>
+ <!-- HEADER -->
+ <tr>
+ <td align="center" style="min-width: 590px;">
+ <table border="0" cellpadding="0" cellspacing="0" width="590" style="min-width: 590px; background-color: white; padding: 0px 8px 0px 8px; border-collapse:separate;">
+ <tr><td valign="middle">
+ % set company = object.company_id or object.user_id.company_id or user.company_id
+ <span style="font-size: 10px;">Your Cart</span><br/>
+ <span style="font-size: 20px; font-weight: bold;">
+ ${object.name}
+ </span>
+ </td><td valign="middle" align="right">
+ <img src="/logo.png?company=${company.id}" style="padding: 0px; margin: 0px; height: auto; width: 80px;" alt="${company.name}"/>
+ </td></tr>
+ <tr><td colspan="2" style="text-align:center;">
+ <hr width="100%" style="background-color:rgb(204,204,204);border:medium none;clear:both;display:block;font-size:0px;min-height:1px;line-height:0; margin:16px 0px 16px 0px;"/>
+ </td></tr>
+ </table>
+ </td>
+ </tr>
+ <!-- CONTENT -->
+ <tr>
+ <td align="center" style="min-width: 590px;">
+ <table border="0" cellpadding="0" cellspacing="0" width="590" style="min-width: 590px; background-color: white; padding: 0px 8px 0px 8px; border-collapse:separate;">
+ <tr><td valign="top" style="font-size: 13px;">
+ <h1 style="color:#A9A9A9;">THERE'S SOMETHING IN YOUR CART.</h1>
+ Would you like to complete your purchase?<br/><br/>
+ % if object.order_line:
+ % for line in object.website_order_line:
+ <hr/>
+ <table width="100%">
+ <tr>
+ <td style="padding: 10px; width:150px;">
+ <img src="/web/image/product.product/${line.product_id.id}/image_128" style="width: 100px; height: 100px; object-fit: contain;" alt="Product image"></img>
+ </td>
+ <td>
+ <strong>${line.product_id.display_name}</strong><br/>${line.name}
+ </td>
+ <td width="100px" align="right">
+ ${(line.product_uom_qty) | int} ${(line.product_uom.name)}
+ </td>
+ </tr>
+ </table>
+ % endfor
+ <hr/>
+ % endif
+ <div style="text-align: center; margin: 16px 0px 16px 0px; font-size: 14px;">
+ <a href="${object.get_base_url()}/shop/cart?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;">
+ Resume order
+ </a>
+ </div>
+ <div style="text-align: center;"><strong>Thank you for shopping with ${company.name}!</strong></div>
+ </td></tr>
+ <tr><td style="text-align:center;">
+ <hr width="100%" style="background-color:rgb(204,204,204);border:medium none;clear:both;display:block;font-size:0px;min-height:1px;line-height:0; margin: 16px 0px 16px 0px;"/>
+ </td></tr>
+ </table>
+ </td>
+ </tr>
+ <!-- FOOTER -->
+ <tr>
+ <td align="center" style="min-width: 590px;">
+ <table border="0" cellpadding="0" cellspacing="0" width="590" style="min-width: 590px; background-color: white; font-size: 11px; padding: 0px 8px 0px 8px; border-collapse:separate;">
+ <tr><td valign="middle" align="left">
+ ${company.name}
+ </td></tr>
+ <tr><td valign="middle" align="left" style="opacity: 0.7;">
+ ${company.phone}
+ % if company.email
+ | <a href="'mailto:%s' % ${company.email}" style="text-decoration:none; color: #454748;">${company.email}</a>
+ % endif
+ % if company.website
+ | <a href="'%s' % ${company.website}" style="text-decoration:none; color: #454748;">${company.website}</a>
+ % endif
+ </td></tr>
+ </table>
+ </td>
+ </tr>
+</tbody>
+</table>
+</td></tr>
+<!-- POWERED BY -->
+<tr><td align="center" style="min-width: 590px;">
+ <table border="0" cellpadding="0" cellspacing="0" width="590" style="min-width: 590px; background-color: #F1F1F1; color: #454748; padding: 8px; border-collapse:separate;">
+ <tr><td style="text-align: center; font-size: 13px;">
+ Powered by <a target="_blank" href="https://www.odoo.com?utm_source=db&amp;utm_medium=website" style="color: #875A7B;">Odoo</a>
+ </td></tr>
+ </table>
+</td></tr>
+</table>
+ </field>
+ <field name="lang">${object.partner_id.lang}</field>
+ <field name="auto_delete" eval="False"/>
+ </record>
+ </data>
+</odoo>