The tour shop_sale_coupon was changed to use the testUtils.dom.click
method when we introduced the new test utility functions. Probably
because the filename ends with 'test.js'. Obviously, this is not
correct, because the testUtils function is not imported.
To prevent issues in the future, we simply remove the two problematic
calls. Another solution was to import the testUtils module, however, I
think that it is simpler not to use those functions at all in tours,
because tours can be executed in the web client/website, and in that
case, they do not have access to the test utility functions.
closesodoo/enterprise#3239
Before this commit, an `expired` generated coupon would be shown to the user.
Now we hide these `expired` coupons.
Note: An `expired` generated coupon might typically come from a SO that does
not meet a 'on_next_order' program anymore. So the generated coupon that
was set to `reserved` got canceled and set to `expired`.
Step to reproduce:
- Create a program oferring a product B on next order if you buy 2 product A
- Add 2 product A to cart, you then see the message that you got a coupon for
your next order
- Remove on product A, you still see the message even if the generated coupon
is now expired and not valid anymore.
Closes#3062
Since this module is not bridged to website_sale_delivery, there was no support for changing the freeshipping line
when changing the delivery carrier
Now it has, at the price of ugly code
OPW 1871526
closesodoo/enterprise#2651
Purpose
=======
- Configure a product from a sales order as easily as in the ecommerce
The backend uses the same template as the frontend to configure a products and its options
- Display optionnal products of optionnal products in the "sale options" section
- Allow adding exlusions to some combinations of the product and/or
to some combinations of the optionnal and accessory products
- Product attributes can now have custom values.
These values are specified by the user during the SO creation.
They are also available on the webshop frontend.
- Product attributes can be configured to create variants "on demand".
This means that product.templates having these attributes will only create product.product variant
when that combination is actually selected in a sale order/in the web shop.
Product attribute values are also improved to handle extra prices and exclusions
in all three modes ("never", "dynamic, "always")
Specification
=============
1. Improve the "Add to cart" with optional products
- When you add an option to cart, move the product to the cart & show the options of this option
- Don't open the option wizard if no option available (in case this module becomes generic,
it's better to skip this step when it's not needed)
- Display the options right under their related product in the cart
2. Do not allow to add the product as an optional product for itself
Why ?
- No functional sense
- Creates issues in the add to cart wizard
3. Exclude some attribute combinations within the product or with related options and accessory products
- Rename VARIANT PRICES button -> CONFIGURE VARIANTS
- When you click this button and select a value, open form view rather than inline edition
- Form view of variant values:
- Attribute
- Value
- HTML Color Index
- Attribute Price Extra
- Not Compatible with: o2m tab with 2 fields: Product AND Attribute Value (of this product)
[m2m tag selection]
- in any new line, autocomplete the current product by default
- Tooltip: A list of product and attribute values that you want to exclude for
this product's attribue value. Also applies on optionnal and accessory products.
4. New option to configure a product in a sales order line
- This option is only visible if the corresponding option is activated in the sales settings
- It opens a wizard to select a product template, configure related attribute values
and select optional products (based on frontend view)
- Attributes not compatible with other selected attributes should not be selectable
- Must work like in the frontend
5. Create variants on demand
- add a new mode to generate variants as they are added to the order/cart
(needed for big # of combinations managed in the inventory and/or produced in mrp with specific boms)
- replace the boolean by a selection radio
tooltip for this new field:
Always:
Variants are generated straight away when
the attribute values are combined in the product configuration.
Only when the product is added to a sales order:
Variants are generated once the combination is selected in the sales order.
This is advised when variants are customized on demand and manufactured as such in Odoo.
Never:
Advised when variants are not needed in Odoo.
The selected values just show up in the description of sales order lines.
- ability to define attribute extra prices & exclude combinations in all variant modes
- if at least one attribute of the product in set to "on demand" mode, generate all the variants "on demand"
67c3de295e9 wrongly adapt coupon to multi-websites as website references should
have been written in website_sale_coupon and not sale_coupon.
Closes#2673
A discount on products with different taxes will result in as many discount
lines as there is different taxes.
This commit will merge all these lines in a single one on the front-end (cart)
to not change the behavior/display for the end user. This will be purely visual
as it does not affect SO lines.
task-1866977
Related to #2224
This commit adds the `website.multi.mixin` to coupon program to make it
multi-websites.
It also adds the website_id field in the views and adapt SQL constraint on code
which now became multi-websites friendly.
Since commit 006ce9c887 set the `Promo Code` view active (customize_show),
the `shop_sale_coupon` JS tour should not be working anymore.
But it was working since this change introduced a race condition that was
luckily making the test to succeed (most of the time).
(This bug appeared weeks ago on nightly build)
Basically, the tour flow was:
1. Activating `Promo Code` in customize option -> Cause a page refresh
2. Waiting for the DOM to contains the promo code input (shown after page
refresh performed by step 1.)
3. Typing a promo code and submitting it
4. Waiting for the discount line to appear (after page load performed by
step 3 form submit.)
This test was working fine as the promo code customize option was disabled.
Thus, the promo code input would only be visible after the refresh of step 1.
It would always wait for the refresh to occur before continuing.
No race condition possible.
Since the change of 006ce9c887 that activated that view by default:
- The promo code input would already be on the DOM when the tour was executed
- Clicking on the customize option would actually disable it.
Then, since the input was already in the DOM, the step 2 would instantly
continue without waiting for the refresh of step 1 and step 3 would be
performed while step 1 would still be refreshing the page.
You would then land sometimes on the refresh of step 1, sometimes on the
refresh of step 3, depending of the test speed (and so the runbot).
In case you landed on refresh of step 1, step 4 would never find the discount
line.
---- SOLUTION ----
Click on the customize option only if not already enabled.
(The customize step could have simply been removed as it is now activated by
default. But this is better to prevent the test to fail in case we change that
customize active state in the future or to simply run the test more than once)
avoid race condition when refresh of /shop finish after the search click.
Now we start on the search page directly, that make tour faster and that
don't remove any usefull test, since the purpose of this test is to test
coupon and not the search view already tested by others tests.
Time has come to update a bit applications name, summary and website links.
Purpose is to have a website page correctly set for applications to be used
in conjunction with the newly-introduced discover button.
Names and summaries are updated to be more updated and shiny.
This commit is related to task ID 47179 and 1861544. Related PR are #1834
and #2365. First one is about classic applications while second one is about
website applications.
Co-Authored-By: Nimesh Jethva <nje@odoo.com>
* Update demo data sheet for barcode
* Modify product "Book: Office Renovation for Dummies:
- Name: "eBook: Office Renovation for Dummies"
- Image:
- Internal category: All/Services/Saleable
* Tips internal reference
* Product 10.0 % Discount =
- Name : "10.0% discount on total amount" (no space between 0 and %)
- Internal reference : 10PERCENTDISC
* Free product - large cabinet
- Should be a stockable
- in category All/Saleable/Office Furniture
- Name : Free Gift - Pencil Holder
- Picture
* Desk Customizable :
- Change its website sequence (should be displayed first in the shop)
* https://github.com/odoo/odoo/pull/25263
* Need to clean attributes and attribute values and attribute categories :
- Attributes, keep : Brand, Color, Dimensions, Legs, Weight
- Attribute Category : Rename Storage into "Material"
* Events
- Suppress Functional Webinar and Technical Training
* PoS Categories :
- Suppress
- Create PoS Category : Desks (put desks in it)
- Create PoS Category : Chairs (put chairs in it)
- Create PoS Category : Miscellaneous (and put all other products in it)
* Products available in PoS
- Remove : Air Flight, Car Travel Expense, Bpost domestic bpack 24h pro, Bpost World Express Pro, Customer Care, DHL USA Delivery, DHL USA -> International, Deposit, Expenses, Fdex International, Fedexs US, Hotel Accomodation, Restaurant Expenses,
* Product:
https://drive.google.com/a/odoo.com/file/d/1KjxcB88aDfe8qAzIpFlkBmMj5ekA9eIf/view?usp=drivesdk
Timesheet : description to update https://docs.google.com/spreadsheets/d/1nB8l8pFcRXRFnudgDJVyZZp3McaHNovlyvY0jE1ZZ54/edit?usp=sharing
* Project : less projects, more tasks
Remove "Internal - GAP Analysis", "Internal Projects"
Rename Support into After-Sales Services
Task to rename: Data import + Doc ==> Office planning
Move the task Internal Training from "Support" to "Office Design"
* AGR Project : add the following tasks and link it to the right SO line
Decoration : SO Line ==> Senior Architect
Planning : SO Line ==> Senior Architect
Furniture SO Line ==> Senior Architect
Furniture Delivery : not linked to an SO line
* Marketing Automation
Partnership offer ==> to rename into "Commercial prospection"
Steps to rename:
Offer free trial ==> Offer free catalog
After 7 days (if not yet partners) ==> After 7 days (if not yet customers)
Message for sale person ==> keep the same
* Mass mailings:
http://nimb.ws/zrKsZ9http://nimb.ws/CbNpwd
* Events:
Suppress Functional Webinar and Technical Training
Tracks to update : https://docs.google.com/spreadsheets/d/1sKkJrltXY3Gz7ue3mVysZxaWGybKpx5fIhgUBnhbNDs/edit?usp=sharing
* Helpdesk
Rename team into Customer Care
Create 2 tickets in default team
Urgent : Kitchen collapsing (assigned to admin) : link to the task SO053: [SERV_585189] Customer Care (Prepaid Hours)
No pririoty : Where can I download a catalog ? (not assigned). Ticket type = question
PURPOSE
=======
1. Unified product demo data
2. Less demo: one per use case
3. Demo data for all models
Specification
=============
1. Refactor all the brol in the demo data
2. Adapt the tests to make them green, as some products are
renamed, removed, created in python instead of as demo data
...
Commit a42c27f99e0061b7c4f recently fixed some bugs on sale_coupon.
This commit add some tests to be sure theses bugs are fixed and won't appear
again.
This closes#1744