Metadata-Version: 2.1
Name: odoo-addon-sale_product_catalog_extended
Version: 18.0.1.1.0.1
Requires-Python: >=3.10
Requires-Dist: odoo-addon-onchange_helper==18.0.*
Requires-Dist: odoo==18.0.*
Summary: Sale Product Catalog Extended
Home-page: https://github.com/OCA/sale-workflow
License: AGPL-3
Author: Tecnativa, Odoo Community Association (OCA)
Author-email: support@odoo-community.org
Classifier: Programming Language :: Python
Classifier: Framework :: Odoo
Classifier: Framework :: Odoo :: 18.0
Classifier: License :: OSI Approved :: GNU Affero General Public License v3
Description-Content-Type: text/x-rst

.. image:: https://odoo-community.org/readme-banner-image
   :target: https://odoo-community.org/get-involved?utm_source=readme
   :alt: Odoo Community Association

=============================
Sale Product Catalog Extended
=============================

.. 
   !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
   !! This file is generated by oca-gen-addon-readme !!
   !! changes will be overwritten.                   !!
   !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
   !! source digest: sha256:9b4ed483946e2093b6ba83e824593e71d621b24ec8983ed4ed069fcdd719e0ac
   !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

.. |badge1| image:: https://img.shields.io/badge/maturity-Beta-yellow.png
    :target: https://odoo-community.org/page/development-status
    :alt: Beta
.. |badge2| image:: https://img.shields.io/badge/license-AGPL--3-blue.png
    :target: http://www.gnu.org/licenses/agpl-3.0-standalone.html
    :alt: License: AGPL-3
.. |badge3| image:: https://img.shields.io/badge/github-OCA%2Fsale--workflow-lightgray.png?logo=github
    :target: https://github.com/OCA/sale-workflow/tree/18.0/sale_product_catalog_extended
    :alt: OCA/sale-workflow
.. |badge4| image:: https://img.shields.io/badge/weblate-Translate%20me-F47D42.png
    :target: https://translation.odoo-community.org/projects/sale-workflow-18-0/sale-workflow-18-0-sale_product_catalog_extended
    :alt: Translate me on Weblate
.. |badge5| image:: https://img.shields.io/badge/runboat-Try%20me-875A7B.png
    :target: https://runboat.odoo-community.org/builds?repo=OCA/sale-workflow&target_branch=18.0
    :alt: Try me on Runboat

|badge1| |badge2| |badge3| |badge4| |badge5|

This module extends the standard Odoo product catalog available from
sale orders with the following additions:

Multi-line product cards
------------------------

When a product has more than one order line in the current sale order,
the catalog renders one card per line instead of a single aggregated
card. Each card shows the individual quantity and unit price for that
specific line, allowing independent editing without opening the order
form.

Per-line actions
----------------

Each in-order card exposes three inline actions:

- **New line** – adds a new order line for the same product.
- **Edit** – opens the specific order line form directly from the
  catalog.
- **Remove** – removes that individual line from the order.

Search panel options
--------------------

The catalog search panel gets these sections, combinable with each other
and with the standard ones:

- **Origin**: the cards shown, the products or the ones other modules
  add (e.g. one card per vendor row with
  ``sale_product_catalog_supplierinfo``). It is only shown when such a
  module is installed.
- **Last sales**: restricts the cards of the chosen origin to the
  products previously sold to the customer (last 180 days by default),
  most frequently sold first, then by delivered quantity.
- **Price**: **Last sale** shows the unit price of the most recent
  delivered sale to the customer instead of the pricelist price, for the
  products that have one, and applies it to the lines added from the
  catalog.
- **History**: the partner the sale history is matched against, the
  customer (commercial partner, including its child contacts) or the
  order delivery address. It is only shown when enabled in the settings
  and while the *Last sales* option or the *Last sale* price is active,
  as it has no effect otherwise.

The options preselected when the catalog is opened, the period and the
product limit of the last sales are set in the Sales settings (see
*Configuration*).

Exclude from last sales
-----------------------

The card dropdown menu adds an **Exclude from last sales** entry. It
stores the product and the catalog history partner in a dedicated model,
so that product is no longer offered by the *Last sales* option for any
order of that partner. The *Last sale* price is not affected.

The entry is only shown while the *Last sales* option is active. On the
vendor cards of ``sale_product_catalog_supplierinfo`` it excludes the
product, not the vendor row.

The exclusion is dropped as soon as an order containing that product is
confirmed for the same partner, so the product goes back to the *Last
sales* option without any manual clean up. Adding the product to an
already confirmed order has the same effect.

The exclusions can be checked and deleted in *Sales > Configuration >
Catalog Last Sales Exclusions*, to offer an excluded product again
without selling it.

Image zoom
----------

Clicking on a product image in the catalog opens a full-size zoom
dialog.

**Table of contents**

.. contents::
   :local:

Configuration
=============

Go to *Sales > Configuration > Settings*. The **Product Catalog** block
has the options of the catalog opened from a sale order.

Order catalog options
---------------------

The options of the catalog search panel preselected when the catalog is
opened:

- **Origin**: the cards shown. Empty shows the products; other modules
  add further origins (e.g. **Suppliers** in
  ``sale_product_catalog_supplierinfo``).
- **Last sales**: only show the products sold to the customer, most
  frequently sold first.
- **Price**: empty shows the pricelist price, **Last sale** the price of
  the last sale to the customer.
- **History**: the partner the sale history is matched against. Empty
  matches the customer (commercial partner, including its child
  contacts), **Delivery address** the order delivery address. Check
  **Show** to show this section in the catalog search panel, hidden by
  default; the partner chosen here applies either way.
- **Sort**: the order of the products. Empty keeps the order of the
  origin (favorites first, then by internal reference, or the most sold
  first for the last sales), **Name** sorts them by product name in the
  language of the user and **Category** by category and then by name.
  With the last sales, the most sold products are kept and then sorted.
  Check **Show** to show this section in the catalog search panel,
  hidden by default; the order chosen here applies either way.

They are saved as the global default value of the catalog fields of
``product.product`` (``catalog_origin_data``, ``catalog_last_sales``,
``catalog_price_mode``, ``catalog_history_partner`` and
``catalog_sort``), so they can also be set per user or company in
*Settings > Technical > User-defined Defaults*, as for any other field.

Order catalog last sales
------------------------

- **Days**: days of sale history used by the **Last sales** option and
  the **Last sale** price, 180 by default.
- **Product limit**: maximum number of products shown by the **Last
  sales** option. ``0`` shows them all.

Order catalog layout
--------------------

- **Grid**: several product cards per row, as in the standard catalog.
- **Rows**: one card per row, with the image, the product data and the
  quantity buttons side by side. On wide screens the price and the
  quantity on hand go to a column of their own, so the cards are lower,
  and on extra wide screens the vendor of the supplier cards too. Every
  card keeps the same positions in every origin. Everything other
  modules add to the card is kept. Small screens and grouped views keep
  the grid cards.

Bug Tracker
===========

Bugs are tracked on `GitHub Issues <https://github.com/OCA/sale-workflow/issues>`_.
In case of trouble, please check there if your issue has already been reported.
If you spotted it first, help us to smash it by providing a detailed and welcomed
`feedback <https://github.com/OCA/sale-workflow/issues/new?body=module:%20sale_product_catalog_extended%0Aversion:%2018.0%0A%0A**Steps%20to%20reproduce**%0A-%20...%0A%0A**Current%20behavior**%0A%0A**Expected%20behavior**>`_.

Do not contact contributors directly about support or help with technical issues.

Credits
=======

Authors
-------

* Tecnativa

Contributors
------------

- `Tecnativa <https://www.tecnativa.com>`__:

  - Carlos Dauden
  - Carlos Roca

Maintainers
-----------

This module is maintained by the OCA.

.. image:: https://odoo-community.org/logo.png
   :alt: Odoo Community Association
   :target: https://odoo-community.org

OCA, or the Odoo Community Association, is a nonprofit organization whose
mission is to support the collaborative development of Odoo features and
promote its widespread use.

.. |maintainer-carlosdauden| image:: https://github.com/carlosdauden.png?size=40px
    :target: https://github.com/carlosdauden
    :alt: carlosdauden
.. |maintainer-CarlosRoca13| image:: https://github.com/CarlosRoca13.png?size=40px
    :target: https://github.com/CarlosRoca13
    :alt: CarlosRoca13

Current `maintainers <https://odoo-community.org/page/maintainer-role>`__:

|maintainer-carlosdauden| |maintainer-CarlosRoca13| 

This module is part of the `OCA/sale-workflow <https://github.com/OCA/sale-workflow/tree/18.0/sale_product_catalog_extended>`_ project on GitHub.

You are welcome to contribute. To learn how please visit https://odoo-community.org/page/Contribute.
