Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
25 commits
Select commit Hold shift + click to select a range
51172a7
[ADD] website_sale_cart_expire
ivantodorovich Aug 23, 2021
90e0aa4
[MIG] website_sale_cart_expire: Migration to 14.0
ioans73 Nov 15, 2021
095555a
[MIG] website_sale_cart_expire: Migration to 15.0
ivantodorovich Jun 10, 2022
2f1f2b1
[FIX] website_sale_cart_expire: Don't cancel sent quotations
ivantodorovich Jul 15, 2022
6460539
[FIX] website_sale_cart_expire: Don't cancel carts in payment
ivantodorovich Jul 15, 2022
8fbde01
[FIX] Use savepoint and autocommit to avoid possible cron crash
ivantodorovich Jul 15, 2022
66114fe
[IMP] website_sale_cart_expire: Display the cart expiration timer on …
ivantodorovich Jul 15, 2022
bdcd6b9
[MIG] website_sale_cart_expire: Migration to 16.0
Highcooley Apr 24, 2023
c7fe4c4
Added translation using Weblate (Spanish)
Ivorra78 Aug 3, 2023
f49d823
Translated using Weblate (Spanish)
Ivorra78 Aug 3, 2023
2ec46bf
[FIX] website_sale_cart_expire:
kanda999 Mar 22, 2024
2d1bf6f
Added translation using Weblate (Italian)
mymage May 8, 2024
9e1133e
Translated using Weblate (Italian)
mymage May 8, 2024
d5e559c
[UPD] templates.xml, boostrap class update
PlantBasedStudio Dec 16, 2024
c2ef442
[IMP] website_sale_cart_expire: pre-commit auto fixes
pilarvargas-tecnativa Oct 29, 2025
5a0f647
[MIG] website_sale_cart_expire: Migration to version 18.0
pilarvargas-tecnativa Oct 29, 2025
d6eb76d
[FIX] website_sale_cart_expire: fix test payment_method_id
eduezerouali-tecnativa Feb 19, 2026
6f7bad3
Translated using Weblate (Italian)
mymage Feb 21, 2026
0414741
Translated using Weblate (Italian)
mymage Feb 25, 2026
c518aa6
Translated using Weblate (Italian)
weblate Feb 25, 2026
3ecb543
Translated using Weblate (Spanish)
weblate Feb 25, 2026
9bcbb8c
[MIG] website_sale_cart_expire: Migration to 19.0
yankinmax Mar 12, 2026
38d53bb
Merge PR #1180 into 19.0
OCA-git-bot Mar 19, 2026
794bf1c
[UPD] Update website_sale_cart_expire.pot
Mar 19, 2026
dc8a5c6
[BOT] post-merge updates
OCA-git-bot Mar 19, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 5 additions & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,11 @@ e-commerce

[//]: # (addons)

This part will be replaced when running the oca-gen-addons-table script from OCA/maintainer-tools.
Available addons
----------------
addon | version | maintainers | summary
--- | --- | --- | ---
[website_sale_cart_expire](website_sale_cart_expire/) | 19.0.1.0.0 | <a href='https://github.com/ivantodorovich'><img src='https://github.com/ivantodorovich.png' width='32' height='32' style='border-radius:50%;' alt='ivantodorovich'/></a> | Cancel carts without activity after a configurable time

[//]: # (end addons)

Expand Down
11 changes: 11 additions & 0 deletions setup/_metapackage/pyproject.toml
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
[project]
name = "odoo-addons-oca-e-commerce"
version = "19.0.20260319.0"
dependencies = [
"odoo-addon-website_sale_cart_expire==19.0.*",
]
classifiers=[
"Programming Language :: Python",
"Framework :: Odoo",
"Framework :: Odoo :: 19.0",
]
96 changes: 96 additions & 0 deletions website_sale_cart_expire/README.rst
Original file line number Diff line number Diff line change
@@ -0,0 +1,96 @@
.. image:: https://odoo-community.org/readme-banner-image
:target: https://odoo-community.org/get-involved?utm_source=readme
:alt: Odoo Community Association

========================
Website Sale Cart Expire
========================

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

.. |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%2Fe--commerce-lightgray.png?logo=github
:target: https://github.com/OCA/e-commerce/tree/19.0/website_sale_cart_expire
:alt: OCA/e-commerce
.. |badge4| image:: https://img.shields.io/badge/weblate-Translate%20me-F47D42.png
:target: https://translation.odoo-community.org/projects/e-commerce-19-0/e-commerce-19-0-website_sale_cart_expire
: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/e-commerce&target_branch=19.0
:alt: Try me on Runboat

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

Allows to automatically cancel carts without activity after a
configurable time.

**Table of contents**

.. contents::
:local:

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

Go to Website > Settings and set a delay for Expire Carts settings.

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

Bugs are tracked on `GitHub Issues <https://github.com/OCA/e-commerce/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/e-commerce/issues/new?body=module:%20website_sale_cart_expire%0Aversion:%2019.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
-------

* Camptocamp

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

- `Camptocamp <https://www.camptocamp.com>`__

- Iván Todorovich <ivan.todorovich@gmail.com>

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-ivantodorovich| image:: https://github.com/ivantodorovich.png?size=40px
:target: https://github.com/ivantodorovich
:alt: ivantodorovich

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

|maintainer-ivantodorovich|

This module is part of the `OCA/e-commerce <https://github.com/OCA/e-commerce/tree/19.0/website_sale_cart_expire>`_ project on GitHub.

You are welcome to contribute. To learn how please visit https://odoo-community.org/page/Contribute.
1 change: 1 addition & 0 deletions website_sale_cart_expire/__init__.py
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
from . import models
19 changes: 19 additions & 0 deletions website_sale_cart_expire/__manifest__.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
# Copyright 2021 Camptocamp (http://www.camptocamp.com).
# @author Iván Todorovich <ivan.todorovich@gmail.com>
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl).

{
"name": "Website Sale Cart Expire",
"summary": "Cancel carts without activity after a configurable time",
"version": "19.0.1.0.0",
"author": "Camptocamp, Odoo Community Association (OCA)",
"maintainers": ["ivantodorovich"],
"website": "https://github.com/OCA/e-commerce",
"license": "AGPL-3",
"category": "Website",
"depends": ["website_sale"],
"data": [
"data/ir_cron.xml",
"views/res_config_settings.xml",
],
}
16 changes: 16 additions & 0 deletions website_sale_cart_expire/data/ir_cron.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
<?xml version="1.0" encoding="utf-8" ?>
<!--
Copyright 2021 Camptocamp (http://www.camptocamp.com).
@author Iván Todorovich <ivan.todorovich@gmail.com>
License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl).
-->
<odoo noupdate="1">
<record id="ir_cron_cart_expire" model="ir.cron">
<field name="name">Website: Expire Carts</field>
<field name="model_id" ref="website.model_website" />
<field name="state">code</field>
<field name="code">model._scheduler_website_expire_cart(autocommit=True)</field>
<field name="interval_number">5</field>
<field name="interval_type">minutes</field>
</record>
</odoo>
112 changes: 112 additions & 0 deletions website_sale_cart_expire/i18n/es.po
Original file line number Diff line number Diff line change
@@ -0,0 +1,112 @@
# Translation of Odoo Server.
# This file contains the translation of the following modules:
# * website_sale_cart_expire
#
msgid ""
msgstr ""
"Project-Id-Version: Odoo Server 16.0\n"
"Report-Msgid-Bugs-To: \n"
"PO-Revision-Date: 2026-02-25 07:30+0000\n"
"Last-Translator: Anonymous <noreply@weblate.org>\n"
"Language-Team: none\n"
"Language: es\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: \n"
"Plural-Forms: nplurals=2; plural=n != 1;\n"
"X-Generator: Weblate 5.15.2\n"

#. module: website_sale_cart_expire
#: model_terms:ir.ui.view,arch_db:website_sale_cart_expire.res_config_settings_view_form
msgid "Automatically cancel carts without activity after a period of time"
msgstr ""
"Cancelar automáticamente carritos sin actividad después de un período de "
"tiempo"

#. module: website_sale_cart_expire
#: model:ir.model.fields,help:website_sale_cart_expire.field_res_config_settings__cart_expire_delay
#: model:ir.model.fields,help:website_sale_cart_expire.field_website__cart_expire_delay
msgid ""
"Automatically cancel website orders after the given time.\n"
"Set to 0 to disable this feature."
msgstr ""
"Cancelar automáticamente los pedidos del sitio web después del tiempo dado.\n"
"Establecer en 0 para desactivar esta función."

#. module: website_sale_cart_expire
#: model:ir.model.fields,field_description:website_sale_cart_expire.field_sale_order__cart_expire_date
msgid "Cart Expire Date"
msgstr "Fecha de caducidad del carro"

#. module: website_sale_cart_expire
#. odoo-python
#: code:addons/website_sale_cart_expire/models/website.py:0
msgid "Cart expired"
msgstr "Carro caducado"

#. module: website_sale_cart_expire
#: model_terms:ir.ui.view,arch_db:website_sale_cart_expire.res_config_settings_view_form
msgid "Cart is cancelled after"
msgstr "El carro ha sido cancelado después"

#. module: website_sale_cart_expire
#: model:ir.model,name:website_sale_cart_expire.model_res_config_settings
msgid "Config Settings"
msgstr "Ajustes de Configuración"

#. module: website_sale_cart_expire
#: model_terms:ir.ui.view,arch_db:website_sale_cart_expire.res_config_settings_view_form
msgid "Expire Carts"
msgstr ""

#. module: website_sale_cart_expire
#: model:ir.model.fields,field_description:website_sale_cart_expire.field_res_config_settings__cart_expire_delay
#: model:ir.model.fields,field_description:website_sale_cart_expire.field_website__cart_expire_delay
msgid "Expire Delay"
msgstr "Expiración retardada"

#. module: website_sale_cart_expire
#: model_terms:ir.ui.view,arch_db:website_sale_cart_expire.res_config_settings_view_form
msgid "Hours."
msgstr ""

#. module: website_sale_cart_expire
#: model:ir.model,name:website_sale_cart_expire.model_sale_order
msgid "Sales Order"
msgstr "Órdenes de venta"

#. module: website_sale_cart_expire
#: model:ir.model.fields,help:website_sale_cart_expire.field_sale_order__cart_expire_date
msgid "Technical field: The date this cart will automatically expire"
msgstr "Campo técnico: La fecha en que este carro caducará automáticamente"

#. module: website_sale_cart_expire
#: model_terms:ir.ui.view,arch_db:website_sale_cart_expire.res_config_settings_view_form
msgid "Values set here are website-specific."
msgstr ""

#. module: website_sale_cart_expire
#: model:ir.model,name:website_sale_cart_expire.model_website
msgid "Website"
msgstr "Página Web"

#. module: website_sale_cart_expire
#: model:ir.actions.server,name:website_sale_cart_expire.ir_cron_cart_expire_ir_actions_server
msgid "Website: Expire Carts"
msgstr "Página web: Carros caducados"

#~ msgid ""
#~ "<span class=\"o_form_label\">Expire Carts</span>\n"
#~ " <span class=\"fa fa-lg fa-globe\" title=\"Values "
#~ "set here are website-specific.\" groups=\"website.group_multi_website\"/>"
#~ msgstr ""
#~ "<span class=\"o_form_label\">Carro expirado</span>\n"
#~ " <span class=\"fa "
#~ "fa-lg fa-globe\" title=\"Values set here are website-specific.\" "
#~ "groups=\"website.group_multi_website\"/>"

#~ msgid "Carts are cancelled after this delay."
#~ msgstr "Los carros se cancelan después de este plazo."

#~ msgid "hours."
#~ msgstr "horas."
111 changes: 111 additions & 0 deletions website_sale_cart_expire/i18n/it.po
Original file line number Diff line number Diff line change
@@ -0,0 +1,111 @@
# Translation of Odoo Server.
# This file contains the translation of the following modules:
# * website_sale_cart_expire
#
msgid ""
msgstr ""
"Project-Id-Version: Odoo Server 16.0\n"
"Report-Msgid-Bugs-To: \n"
"PO-Revision-Date: 2026-02-25 07:29+0000\n"
"Last-Translator: Anonymous <noreply@weblate.org>\n"
"Language-Team: none\n"
"Language: it\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: \n"
"Plural-Forms: nplurals=2; plural=n != 1;\n"
"X-Generator: Weblate 5.15.2\n"

#. module: website_sale_cart_expire
#: model_terms:ir.ui.view,arch_db:website_sale_cart_expire.res_config_settings_view_form
msgid "Automatically cancel carts without activity after a period of time"
msgstr ""
"Annulla automaticamente i carrelli senza attività dopo un periodo di tempo"

#. module: website_sale_cart_expire
#: model:ir.model.fields,help:website_sale_cart_expire.field_res_config_settings__cart_expire_delay
#: model:ir.model.fields,help:website_sale_cart_expire.field_website__cart_expire_delay
msgid ""
"Automatically cancel website orders after the given time.\n"
"Set to 0 to disable this feature."
msgstr ""
"Annulla automaticamente ordini sito web dopo un certo periodo di tempo.\n"
"Impostare a 0 per disabilitare questa opzione."

#. module: website_sale_cart_expire
#: model:ir.model.fields,field_description:website_sale_cart_expire.field_sale_order__cart_expire_date
msgid "Cart Expire Date"
msgstr "Data scadenza carrello"

#. module: website_sale_cart_expire
#. odoo-python
#: code:addons/website_sale_cart_expire/models/website.py:0
msgid "Cart expired"
msgstr "Carrello scaduto"

#. module: website_sale_cart_expire
#: model_terms:ir.ui.view,arch_db:website_sale_cart_expire.res_config_settings_view_form
msgid "Cart is cancelled after"
msgstr "Il carrello viene annullato dopo"

#. module: website_sale_cart_expire
#: model:ir.model,name:website_sale_cart_expire.model_res_config_settings
msgid "Config Settings"
msgstr "Impostazioni configurazione"

#. module: website_sale_cart_expire
#: model_terms:ir.ui.view,arch_db:website_sale_cart_expire.res_config_settings_view_form
msgid "Expire Carts"
msgstr "Scadenza carrelli"

#. module: website_sale_cart_expire
#: model:ir.model.fields,field_description:website_sale_cart_expire.field_res_config_settings__cart_expire_delay
#: model:ir.model.fields,field_description:website_sale_cart_expire.field_website__cart_expire_delay
msgid "Expire Delay"
msgstr "Ritardo scadenza"

#. module: website_sale_cart_expire
#: model_terms:ir.ui.view,arch_db:website_sale_cart_expire.res_config_settings_view_form
msgid "Hours."
msgstr "Ore."

#. module: website_sale_cart_expire
#: model:ir.model,name:website_sale_cart_expire.model_sale_order
msgid "Sales Order"
msgstr "Ordine di vendita"

#. module: website_sale_cart_expire
#: model:ir.model.fields,help:website_sale_cart_expire.field_sale_order__cart_expire_date
msgid "Technical field: The date this cart will automatically expire"
msgstr "Campo tecnico: la data in cui questo carrello scade automaticamente"

#. module: website_sale_cart_expire
#: model_terms:ir.ui.view,arch_db:website_sale_cart_expire.res_config_settings_view_form
msgid "Values set here are website-specific."
msgstr "I valori impostati qui sono specifici per sito web."

#. module: website_sale_cart_expire
#: model:ir.model,name:website_sale_cart_expire.model_website
msgid "Website"
msgstr "Sito web"

#. module: website_sale_cart_expire
#: model:ir.actions.server,name:website_sale_cart_expire.ir_cron_cart_expire_ir_actions_server
msgid "Website: Expire Carts"
msgstr "Sito web: scadenza carrelli"

#~ msgid ""
#~ "<span class=\"o_form_label\">Expire Carts</span>\n"
#~ " <span class=\"fa fa-lg fa-globe\" title=\"Values "
#~ "set here are website-specific.\" groups=\"website.group_multi_website\"/>"
#~ msgstr ""
#~ "<span class=\"o_form_label\">Carrelli in scadenza</span>\n"
#~ " <span class=\"fa fa-lg fa-globe\" title=\"I "
#~ "valori impostati qui sono specifici per sito web.\" "
#~ "groups=\"website.group_multi_website\"/>"

#~ msgid "Carts are cancelled after this delay."
#~ msgstr "I carrelli vengono annullati dopo questo ritardo."

#~ msgid "hours."
#~ msgstr "ore."
Loading
Loading