[IMP] website_sale: improve tooldtips + strings on views

Better tooltips for settings options:
    - Pricing Strategy: remove tooltip
    - Sales Price:
        - Specific prices per customer segment, currency, etc.: new pricing table available in product detail form (Sales tab).
        - Advanced pricing based on formulas (discounts, margins, rounding): apply price rules from a new *Pricelists* menu in Configuration.
    - Optional products: Installs *e-Commerce Optional Products*
Better tooltips in product page:
  - Website Categories: Categories can be published on the Shop page (online catalog grid) to help customers find all the items within a category. To publish them, go to the Shop page, hit Customize and turn *Product Categories* on. A product can belong to several categories.
  - Suggested Products
  - Relabel the field on product detail form, web page + web customize menu: should be Alternative Products
  - new tooltip: Propose more expensive alternatives to your customers (upsell strategy). Those products show up on the product page.
  - Accessory Products: Accessories show up when the customer reviews the cart before paying (cross-sell strategy, e.g. for computers: mouse, keyboard, etc.). An algorithm figures out a list of accessories based on all the products added to cart.
  - Optional Products: Optional Products are suggested whenever the customer hits *Add to Cart* (cross-sell strategy, e.g. for computers: warranty, software, etc.).
  - Availability: Adds an availability status on the web product page.
This commit is contained in:
Denis Vermylen (dve)
2016-09-15 10:06:54 +02:00
parent 386e9024a1
commit c02d894c58
6 changed files with 22 additions and 18 deletions
+9 -4
View File
@@ -110,21 +110,26 @@ class ProductTemplate(models.Model):
)
website_description = fields.Html('Description for the website', sanitize_attributes=False, translate=True)
alternative_product_ids = fields.Many2many('product.template', 'product_alternative_rel', 'src_id', 'dest_id',
string='Suggested Products', help='Appear on the product page')
string='Alternative Products', help='Suggest more expensive alternatives to '
'your customers (upsell strategy). Those products show up on the product page.')
accessory_product_ids = fields.Many2many('product.product', 'product_accessory_rel', 'src_id', 'dest_id',
string='Accessory Products', help='Appear on the shopping cart')
string='Accessory Products', help='Accessories show up when the customer reviews the '
'cart before paying (cross-sell strategy, e.g. for computers: mouse, keyboard, etc.). '
'An algorithm figures out a list of accessories based on all the products added to cart.')
website_size_x = fields.Integer('Size X', default=1)
website_size_y = fields.Integer('Size Y', default=1)
website_style_ids = fields.Many2many('product.style', string='Styles')
website_sequence = fields.Integer('Website Sequence', help="Determine the display order in the Website E-commerce",
default=lambda self: self._default_website_sequence())
public_categ_ids = fields.Many2many('product.public.category', string='Website Product Category',
help="Those categories are used to group similar products for e-commerce.")
help="Categories can be published on the Shop page (online catalog grid) to help "
"customers find all the items within a category. To publish them, go to the Shop page, "
"hit Customize and turn *Product Categories* on. A product can belong to several categories.")
availability = fields.Selection([
('empty', 'Display Nothing'),
('in_stock', 'In Stock'),
('warning', 'Warning'),
], "Availability", default='empty', help="This field is used to display a availability banner with a message on the ecommerce")
], "Availability", default='empty', help="Adds an availability status on the web product page.")
availability_warning = fields.Text("Availability Warning", translate=True)
product_image_ids = fields.One2many('product.image', 'product_tmpl_id', string='Images')
+4 -8
View File
@@ -36,23 +36,19 @@ class WebsiteConfigSettings(models.TransientModel):
module_website_sale_options = fields.Selection([
(0, 'One-step "add to cart"'),
(1, 'Suggest optional products when adding to cart (e.g. for a computer: warranty, software, etc.)')
], "Optional Products", help='Install the module website_sale_options')
], "Optional Products", help='Installs *e-Commerce Optional Products*')
module_portal = fields.Boolean("Activate the customer portal", help="""Give your customers access to their documents.""")
# the next 2 fields represent sale_pricelist_setting from sale.config.settings, they are split here for the form view, to improve usability
sale_pricelist_setting_split_1 = fields.Selection([
(0, 'A single sales price per product'),
(1, 'Several prices selectable through a drop-down list or applied automatically via Geo-IP'),
], default=0, string="Pricing Strategy",
help='Fix Price: all price manage from products sale price.\n'
'Different prices per Customer: you can assign price on buying of minimum quantity in products sale tab.\n'
'Advanced pricing based on formula: You can have all the rights on pricelist')
], default=0, string="Pricing Strategy")
sale_pricelist_setting_split_2 = fields.Selection([
(0, 'Specific prices per customer segment, currency, etc.'),
(1, 'Advanced pricing based on formulas (discounts, margins, rounding)')
], default=0, string="Sales Price",
help='Fix Price: all price manage from products sale price.\n'
'Different prices per Customer: you can assign price on buying of minimum quantity in products sale tab.\n'
'Advanced pricing based on formula: You can have all the rights on pricelist')
help='Specific prices per customer segment, currency, etc.: new pricing table available in product detail form (Sales tab).\n'
'Advanced pricing based on formulas (discounts, margins, rounding): apply price rules from a new *Pricelists* menu in Configuration.')
group_sale_pricelist = fields.Boolean("Use pricelists to adapt your price per customers",
implied_group='product.group_sale_pricelist',
help="""Allows to manage different prices based on rules per category of customers.
@@ -21,7 +21,7 @@
<p class="oe_mt32">
Simply drag &amp; drop pre-made building blocks to set your desired elements into place. Edit text inline straight on the web page to fine tune the product description, characteristics and images.</p>
<p class="oe_mt8">
Emphasize your best products on your storefront. Add suggested products and product attributes like color or size. Customize the color, layout and font of your theme.
Emphasize your best products on your storefront. Add alternative products and product attributes like color or size. Customize the color, layout and font of your theme.
</p>
</div>
</div>
@@ -59,7 +59,7 @@ odoo.define("website_sale.tour_shop", function (require) {
}, {
trigger: ".o_web_settings_dashboard_progress_title,.progress",
extra_trigger: "body:not(.editor_enable)",
content: _t("Follow the steps and advises in the Odoo Planner to deploy your e-Commerce website in no time!"),
content: _t("Follow the steps and advices in the Odoo Planner to deploy your e-Commerce website in no time!"),
position: "bottom",
}]);
});
+3 -3
View File
@@ -483,10 +483,10 @@
</t>
</template>
<template id="recommended_products" inherit_id="website_sale.product" customize_show="True" name="Suggested Products">
<template id="recommended_products" inherit_id="website_sale.product" customize_show="True" name="Alternative Products">
<xpath expr="//div[@id='product_full_description']" position="after">
<div class="container mt32" t-if="product.alternative_product_ids">
<h3>Suggested Products:</h3>
<h3>Alternative Products:</h3>
<div class="row mt16" style="">
<t t-foreach="product.alternative_product_ids" t-as="alt_product">
<div class="col-md-2 thumbnail" style="width: 170px; height:130px; float:left; display:inline; margin-right: 10px; overflow:hidden;">
@@ -942,7 +942,7 @@
</t>
</template>
<template id="suggested_products_list" inherit_id="website_sale.cart_lines" customize_show="True" name="Suggested Products in my cart">
<template id="suggested_products_list" inherit_id="website_sale.cart_lines" customize_show="True" name="Alternative Products in my cart">
<xpath expr="//table[@id='cart_products']" position="after">
<table t-if="suggested_products" class="js_cart_lines table table-striped table-condensed">
<colgroup>
@@ -7,4 +7,7 @@ from odoo import fields, models
class ProductTemplate(models.Model):
_inherit = "product.template"
optional_product_ids = fields.Many2many('product.template', 'product_optional_rel', 'src_id', 'dest_id', string='Optional Products', help="Products to propose when add to cart.")
optional_product_ids = fields.Many2many('product.template', 'product_optional_rel', 'src_id', 'dest_id',
string='Optional Products', help="Optional Products are suggested "
"whenever the customer hits *Add to Cart* (cross-sell strategy, "
"e.g. for computers: warranty, software, etc.).")