From 04129065120eb06a41c24a486c3de2b5e30adad7 Mon Sep 17 00:00:00 2001 From: Eric Antones Date: Mon, 25 Aug 2025 13:17:11 +0200 Subject: [PATCH 01/25] [ADD] connector_woocommerce --- connector_woocommerce/README.rst | 64 + connector_woocommerce/__init__.py | 2 + connector_woocommerce/__manifest__.py | 42 + connector_woocommerce/components/__init__.py | 8 + connector_woocommerce/components/adapter.py | 38 + connector_woocommerce/components/binder.py | 10 + connector_woocommerce/components/core.py | 12 + .../components/export_deleter.py | 31 + .../components/export_mapper.py | 14 + connector_woocommerce/components/exporter.py | 32 + .../components/import_mapper.py | 14 + connector_woocommerce/components/importer.py | 31 + connector_woocommerce/data/ir_cron.xml | 150 + connector_woocommerce/data/queue_data.xml | 21 + .../data/queue_job_function_data.xml | 147 + connector_woocommerce/i18n/ca.po | 5645 +++++++++++++++++ connector_woocommerce/i18n/es.po | 5645 +++++++++++++++++ connector_woocommerce/models/__init__.py | 14 + .../models/backend/__init__.py | 5 + .../models/backend/adapter.py | 15 + .../models/backend/backend.py | 239 + .../models/backend/backend_account_tax.py | 35 + .../models/backend/backend_payment_mode.py | 43 + .../models/backend/backend_tax_class.py | 34 + .../models/binding/__init__.py | 1 + .../models/binding/binding.py | 25 + connector_woocommerce/models/common/tools.py | 121 + .../models/ir_attachment/__init__.py | 1 + .../models/ir_attachment/binding.py | 53 + .../models/product/__init__.py | 1 + .../models/product/export_mapper.py | 51 + .../models/product_attribute/__init__.py | 6 + .../models/product_attribute/adapter.py | 30 + .../models/product_attribute/binder.py | 23 + .../models/product_attribute/binding.py | 47 + .../models/product_attribute/export_mapper.py | 19 + .../models/product_attribute/exporter.py | 35 + .../product_attribute/product_attribute.py | 15 + .../product_attribute_value/__init__.py | 6 + .../models/product_attribute_value/adapter.py | 86 + .../models/product_attribute_value/binder.py | 25 + .../models/product_attribute_value/binding.py | 53 + .../product_attribute_value/export_mapper.py | 46 + .../product_attribute_value/exporter.py | 41 + .../product_attribute_value.py | 15 + .../models/product_product/__init__.py | 7 + .../models/product_product/adapter.py | 90 + .../models/product_product/binder.py | 27 + .../models/product_product/binding.py | 51 + .../models/product_product/export_mapper.py | 165 + .../models/product_product/exporter.py | 94 + .../models/product_product/product.py | 46 + .../product_product/product_pricelist_item.py | 49 + .../product_public_category/__init__.py | 8 + .../models/product_public_category/adapter.py | 34 + .../models/product_public_category/binder.py | 23 + .../models/product_public_category/binding.py | 45 + .../product_public_category/export_deleter.py | 35 + .../product_public_category/export_mapper.py | 54 + .../product_public_category/exporter.py | 41 + .../product_public_category/listener.py | 11 + .../product_public_category.py | 42 + .../models/product_template/__init__.py | 6 + .../models/product_template/adapter.py | 105 + .../models/product_template/binder.py | 27 + .../models/product_template/binding.py | 57 + .../models/product_template/export_mapper.py | 295 + .../models/product_template/exporter.py | 92 + .../product_template/product_template.py | 144 + .../models/res_partner/__init__.py | 6 + .../models/res_partner/adapter.py | 11 + .../models/res_partner/binder.py | 16 + .../models/res_partner/binding.py | 38 + .../models/res_partner/import_mapper.py | 73 + .../models/res_partner/importer.py | 35 + .../models/res_partner/res_partner.py | 50 + .../models/sale_order/__init__.py | 9 + .../models/sale_order/adapter.py | 142 + .../models/sale_order/binder.py | 16 + .../models/sale_order/binding.py | 71 + .../models/sale_order/export_mapper.py | 22 + .../models/sale_order/exporter.py | 35 + .../models/sale_order/import_mapper.py | 119 + .../models/sale_order/importer.py | 175 + .../models/sale_order/listener.py | 36 + .../models/sale_order/sale_order.py | 80 + .../models/sale_order_line/__init__.py | 4 + .../models/sale_order_line/binder.py | 38 + .../models/sale_order_line/binding.py | 60 + .../models/sale_order_line/import_mapper.py | 108 + .../models/sale_order_line/sale_order_line.py | 49 + .../models/stock_picking/__init__.py | 1 + .../models/stock_picking/stock_picking.py | 38 + connector_woocommerce/readme/CONTRIBUTORS.rst | 4 + connector_woocommerce/readme/DESCRIPTION.rst | 1 + .../security/connector_woocommerce.xml | 13 + .../security/ir.model.access.csv | 25 + .../static/description/icon.png | Bin 0 -> 6342 bytes .../static/description/index.html | 421 ++ .../views/connector_woocommerce_menu.xml | 66 + .../views/product_attribute.xml | 60 + .../views/product_attribute_value.xml | 47 + .../views/product_product.xml | 113 + .../views/product_public_category.xml | 65 + .../views/product_template.xml | 60 + .../views/res_partner_views.xml | 61 + .../views/sale_order_view.xml | 80 + .../views/woocommerce_backend_view.xml | 320 + .../views/woocommerce_product_template.xml | 45 + .../odoo/addons/connector_woocommerce | 1 + setup/connector_woocommerce/setup.py | 6 + 111 files changed, 17159 insertions(+) create mode 100644 connector_woocommerce/README.rst create mode 100644 connector_woocommerce/__init__.py create mode 100644 connector_woocommerce/__manifest__.py create mode 100644 connector_woocommerce/components/__init__.py create mode 100644 connector_woocommerce/components/adapter.py create mode 100644 connector_woocommerce/components/binder.py create mode 100644 connector_woocommerce/components/core.py create mode 100644 connector_woocommerce/components/export_deleter.py create mode 100644 connector_woocommerce/components/export_mapper.py create mode 100644 connector_woocommerce/components/exporter.py create mode 100644 connector_woocommerce/components/import_mapper.py create mode 100644 connector_woocommerce/components/importer.py create mode 100644 connector_woocommerce/data/ir_cron.xml create mode 100644 connector_woocommerce/data/queue_data.xml create mode 100644 connector_woocommerce/data/queue_job_function_data.xml create mode 100644 connector_woocommerce/i18n/ca.po create mode 100644 connector_woocommerce/i18n/es.po create mode 100644 connector_woocommerce/models/__init__.py create mode 100644 connector_woocommerce/models/backend/__init__.py create mode 100644 connector_woocommerce/models/backend/adapter.py create mode 100644 connector_woocommerce/models/backend/backend.py create mode 100644 connector_woocommerce/models/backend/backend_account_tax.py create mode 100644 connector_woocommerce/models/backend/backend_payment_mode.py create mode 100644 connector_woocommerce/models/backend/backend_tax_class.py create mode 100644 connector_woocommerce/models/binding/__init__.py create mode 100644 connector_woocommerce/models/binding/binding.py create mode 100644 connector_woocommerce/models/common/tools.py create mode 100644 connector_woocommerce/models/ir_attachment/__init__.py create mode 100644 connector_woocommerce/models/ir_attachment/binding.py create mode 100644 connector_woocommerce/models/product/__init__.py create mode 100644 connector_woocommerce/models/product/export_mapper.py create mode 100644 connector_woocommerce/models/product_attribute/__init__.py create mode 100644 connector_woocommerce/models/product_attribute/adapter.py create mode 100644 connector_woocommerce/models/product_attribute/binder.py create mode 100644 connector_woocommerce/models/product_attribute/binding.py create mode 100644 connector_woocommerce/models/product_attribute/export_mapper.py create mode 100644 connector_woocommerce/models/product_attribute/exporter.py create mode 100644 connector_woocommerce/models/product_attribute/product_attribute.py create mode 100644 connector_woocommerce/models/product_attribute_value/__init__.py create mode 100644 connector_woocommerce/models/product_attribute_value/adapter.py create mode 100644 connector_woocommerce/models/product_attribute_value/binder.py create mode 100644 connector_woocommerce/models/product_attribute_value/binding.py create mode 100644 connector_woocommerce/models/product_attribute_value/export_mapper.py create mode 100644 connector_woocommerce/models/product_attribute_value/exporter.py create mode 100644 connector_woocommerce/models/product_attribute_value/product_attribute_value.py create mode 100644 connector_woocommerce/models/product_product/__init__.py create mode 100644 connector_woocommerce/models/product_product/adapter.py create mode 100644 connector_woocommerce/models/product_product/binder.py create mode 100644 connector_woocommerce/models/product_product/binding.py create mode 100644 connector_woocommerce/models/product_product/export_mapper.py create mode 100644 connector_woocommerce/models/product_product/exporter.py create mode 100644 connector_woocommerce/models/product_product/product.py create mode 100644 connector_woocommerce/models/product_product/product_pricelist_item.py create mode 100644 connector_woocommerce/models/product_public_category/__init__.py create mode 100644 connector_woocommerce/models/product_public_category/adapter.py create mode 100644 connector_woocommerce/models/product_public_category/binder.py create mode 100644 connector_woocommerce/models/product_public_category/binding.py create mode 100644 connector_woocommerce/models/product_public_category/export_deleter.py create mode 100644 connector_woocommerce/models/product_public_category/export_mapper.py create mode 100644 connector_woocommerce/models/product_public_category/exporter.py create mode 100644 connector_woocommerce/models/product_public_category/listener.py create mode 100644 connector_woocommerce/models/product_public_category/product_public_category.py create mode 100644 connector_woocommerce/models/product_template/__init__.py create mode 100644 connector_woocommerce/models/product_template/adapter.py create mode 100644 connector_woocommerce/models/product_template/binder.py create mode 100644 connector_woocommerce/models/product_template/binding.py create mode 100644 connector_woocommerce/models/product_template/export_mapper.py create mode 100644 connector_woocommerce/models/product_template/exporter.py create mode 100644 connector_woocommerce/models/product_template/product_template.py create mode 100644 connector_woocommerce/models/res_partner/__init__.py create mode 100644 connector_woocommerce/models/res_partner/adapter.py create mode 100644 connector_woocommerce/models/res_partner/binder.py create mode 100644 connector_woocommerce/models/res_partner/binding.py create mode 100644 connector_woocommerce/models/res_partner/import_mapper.py create mode 100644 connector_woocommerce/models/res_partner/importer.py create mode 100644 connector_woocommerce/models/res_partner/res_partner.py create mode 100644 connector_woocommerce/models/sale_order/__init__.py create mode 100644 connector_woocommerce/models/sale_order/adapter.py create mode 100644 connector_woocommerce/models/sale_order/binder.py create mode 100644 connector_woocommerce/models/sale_order/binding.py create mode 100644 connector_woocommerce/models/sale_order/export_mapper.py create mode 100644 connector_woocommerce/models/sale_order/exporter.py create mode 100644 connector_woocommerce/models/sale_order/import_mapper.py create mode 100644 connector_woocommerce/models/sale_order/importer.py create mode 100644 connector_woocommerce/models/sale_order/listener.py create mode 100644 connector_woocommerce/models/sale_order/sale_order.py create mode 100644 connector_woocommerce/models/sale_order_line/__init__.py create mode 100644 connector_woocommerce/models/sale_order_line/binder.py create mode 100644 connector_woocommerce/models/sale_order_line/binding.py create mode 100644 connector_woocommerce/models/sale_order_line/import_mapper.py create mode 100644 connector_woocommerce/models/sale_order_line/sale_order_line.py create mode 100644 connector_woocommerce/models/stock_picking/__init__.py create mode 100644 connector_woocommerce/models/stock_picking/stock_picking.py create mode 100644 connector_woocommerce/readme/CONTRIBUTORS.rst create mode 100644 connector_woocommerce/readme/DESCRIPTION.rst create mode 100644 connector_woocommerce/security/connector_woocommerce.xml create mode 100644 connector_woocommerce/security/ir.model.access.csv create mode 100644 connector_woocommerce/static/description/icon.png create mode 100644 connector_woocommerce/static/description/index.html create mode 100644 connector_woocommerce/views/connector_woocommerce_menu.xml create mode 100644 connector_woocommerce/views/product_attribute.xml create mode 100644 connector_woocommerce/views/product_attribute_value.xml create mode 100644 connector_woocommerce/views/product_product.xml create mode 100644 connector_woocommerce/views/product_public_category.xml create mode 100644 connector_woocommerce/views/product_template.xml create mode 100644 connector_woocommerce/views/res_partner_views.xml create mode 100644 connector_woocommerce/views/sale_order_view.xml create mode 100644 connector_woocommerce/views/woocommerce_backend_view.xml create mode 100644 connector_woocommerce/views/woocommerce_product_template.xml create mode 120000 setup/connector_woocommerce/odoo/addons/connector_woocommerce create mode 100644 setup/connector_woocommerce/setup.py diff --git a/connector_woocommerce/README.rst b/connector_woocommerce/README.rst new file mode 100644 index 000000000..c7923dbef --- /dev/null +++ b/connector_woocommerce/README.rst @@ -0,0 +1,64 @@ +===================== +Connector WooCommerce +===================== + +.. + !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! + !! This file is generated by oca-gen-addon-readme !! + !! changes will be overwritten. !! + !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! + !! source digest: sha256:efb5e8c61863c074f22531f0a6ed6366c9d138be340175ef86002feddcd28e36 + !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! + +.. |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/licence-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-NuoBiT%2Fodoo--addons-lightgray.png?logo=github + :target: https://github.com/NuoBiT/odoo-addons/tree/14.0/connector_woocommerce + :alt: NuoBiT/odoo-addons + +|badge1| |badge2| |badge3| + +Connector WooCommerce + +**Table of contents** + +.. contents:: + :local: + +Bug Tracker +=========== + +Bugs are tracked on `GitHub 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 `_. + +Do not contact contributors directly about support or help with technical issues. + +Credits +======= + +Authors +~~~~~~~ + +* NuoBiT Solutions +* S.L. + +Contributors +~~~~~~~~~~~~ + +* `NuoBiT `__: + + * Kilian Niubo + * Eric Antones + +Maintainers +~~~~~~~~~~~ + +This module is part of the `NuoBiT/odoo-addons `_ project on GitHub. + +You are welcome to contribute. diff --git a/connector_woocommerce/__init__.py b/connector_woocommerce/__init__.py new file mode 100644 index 000000000..f24d3e242 --- /dev/null +++ b/connector_woocommerce/__init__.py @@ -0,0 +1,2 @@ +from . import components +from . import models diff --git a/connector_woocommerce/__manifest__.py b/connector_woocommerce/__manifest__.py new file mode 100644 index 000000000..d1eaa7dda --- /dev/null +++ b/connector_woocommerce/__manifest__.py @@ -0,0 +1,42 @@ +# Copyright NuoBiT Solutions - Kilian Niubo +# Copyright NuoBiT Solutions - Eric Antones +# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl) + +{ + "name": "Connector WooCommerce", + "version": "14.0.0.1.1", + "author": "NuoBiT Solutions, S.L.", + "license": "AGPL-3", + "category": "Connector", + "website": "https://github.com/nuobit/odoo-addons", + "external_dependencies": { + "python": [ + "woocommerce", + ], + }, + "depends": [ + "connector_extension_woocommerce", + "connector_wordpress", + "sale_stock", + "website_sale_extra_fields", + "website_sale_stock_variant", + ], + "data": [ + "data/ir_cron.xml", + "data/queue_data.xml", + "data/queue_job_function_data.xml", + "security/connector_woocommerce.xml", + "security/ir.model.access.csv", + "views/woocommerce_backend_view.xml", + "views/sale_order_view.xml", + "views/product_template.xml", + "views/woocommerce_product_template.xml", + "views/product_attribute.xml", + "views/product_attribute_value.xml", + "views/product_public_category.xml", + "views/product_product.xml", + "views/res_partner_views.xml", + "views/connector_woocommerce_menu.xml", + ], + "installable": True, +} diff --git a/connector_woocommerce/components/__init__.py b/connector_woocommerce/components/__init__.py new file mode 100644 index 000000000..53caefad7 --- /dev/null +++ b/connector_woocommerce/components/__init__.py @@ -0,0 +1,8 @@ +from . import core +from . import adapter +from . import binder +from . import export_deleter +from . import exporter +from . import export_mapper +from . import importer +from . import import_mapper diff --git a/connector_woocommerce/components/adapter.py b/connector_woocommerce/components/adapter.py new file mode 100644 index 000000000..1dfe6ae09 --- /dev/null +++ b/connector_woocommerce/components/adapter.py @@ -0,0 +1,38 @@ +# Copyright NuoBiT Solutions - Kilian Niubo +# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl). + +from woocommerce import API as API + +from odoo.addons.component.core import AbstractComponent + + +class ConnectorWooCommerceAdapter(AbstractComponent): + _name = "connector.woocommerce.adapter" + _inherit = [ + "connector.extension.woocommerce.adapter.crud", + "base.woocommerce.connector", + ] + + _description = "WooCommerce Adapter (abstract)" + + def __init__(self, *args, **kwargs): + super().__init__(*args, **kwargs) + self.wcapi = API( + url=self.backend_record.url, + consumer_key=self.backend_record.consumer_key, + consumer_secret=self.backend_record.consumer_secret, + version="wc/v3", + verify_ssl=self.backend_record.verify_ssl, + timeout=30, + ) + + def prepare_meta_data(self, data): + meta_data = [] + for field in self._prepare_meta_data_fields(): + if field in data: + meta_data.append({"key": field, "value": data[field]}) + data.pop(field) + return meta_data + + def _prepare_meta_data_fields(self): + return [] diff --git a/connector_woocommerce/components/binder.py b/connector_woocommerce/components/binder.py new file mode 100644 index 000000000..4d72668d4 --- /dev/null +++ b/connector_woocommerce/components/binder.py @@ -0,0 +1,10 @@ +# Copyright NuoBiT Solutions - Kilian Niubo +# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl) +from odoo.addons.component.core import AbstractComponent + + +class WooCommerceBinder(AbstractComponent): + _name = "woocommerce.binder" + _inherit = ["connector.extension.generic.binder", "base.woocommerce.connector"] + + _default_binding_field = "woocommerce_bind_ids" diff --git a/connector_woocommerce/components/core.py b/connector_woocommerce/components/core.py new file mode 100644 index 000000000..80afac3e2 --- /dev/null +++ b/connector_woocommerce/components/core.py @@ -0,0 +1,12 @@ +# Copyright NuoBiT Solutions - Kilian Niubo +# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl) + +from odoo.addons.component.core import AbstractComponent + + +class BaseWooCommerceConnector(AbstractComponent): + _name = "base.woocommerce.connector" + _inherit = "base.connector" + _collection = "woocommerce.backend" + + _description = "Base WooCommerce Connector Component" diff --git a/connector_woocommerce/components/export_deleter.py b/connector_woocommerce/components/export_deleter.py new file mode 100644 index 000000000..9ee23a713 --- /dev/null +++ b/connector_woocommerce/components/export_deleter.py @@ -0,0 +1,31 @@ +# Copyright NuoBiT Solutions - Kilian Niubo +# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl) + +import logging + +from odoo.addons.component.core import AbstractComponent + +_logger = logging.getLogger(__name__) + + +class WooCommerceRecordDirectExportDeleter(AbstractComponent): + """Base Deleter for WooCommerce""" + + _name = "woocommerce.record.direct.export.deleter" + _inherit = [ + "connector.extension.record.direct.export.deleter", + "base.woocommerce.connector", + ] + + +class WooCommerceBatchExportDeleter(AbstractComponent): + """The role of a BatchDeleter is to delete for a list of + items to delete, then it can either delete them directly or delay + the delete of each item separately. + """ + + _name = "woocommerce.batch.export.deleter" + _inherit = [ + "connector.extension.batch.export.deleter", + "base.woocommerce.connector", + ] diff --git a/connector_woocommerce/components/export_mapper.py b/connector_woocommerce/components/export_mapper.py new file mode 100644 index 000000000..a7d019567 --- /dev/null +++ b/connector_woocommerce/components/export_mapper.py @@ -0,0 +1,14 @@ +# Copyright NuoBiT Solutions - Kilian Niubo +# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl) + +from odoo.addons.component.core import AbstractComponent + + +class WooCommerceExportMapper(AbstractComponent): + _name = "woocommerce.export.mapper" + _inherit = ["connector.extension.export.mapper", "base.woocommerce.connector"] + + +class WooCommerceExportMapChild(AbstractComponent): + _name = "woocommerce.map.child.export" + _inherit = ["connector.extension.map.child.export", "base.woocommerce.connector"] diff --git a/connector_woocommerce/components/exporter.py b/connector_woocommerce/components/exporter.py new file mode 100644 index 000000000..3b9657ff6 --- /dev/null +++ b/connector_woocommerce/components/exporter.py @@ -0,0 +1,32 @@ +# Copyright NuoBiT Solutions - Eric Antones +# Copyright NuoBiT Solutions - Kilian Niubo +# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl) + +import logging + +from odoo.addons.component.core import AbstractComponent + +_logger = logging.getLogger(__name__) + + +class WooCommerceRecordDirectExporter(AbstractComponent): + """Base Exporter for WooCommerce""" + + _name = "woocommerce.record.direct.exporter" + _inherit = [ + "connector.extension.generic.record.direct.exporter", + "base.woocommerce.connector", + ] + + +class WooCommerceBatchExporter(AbstractComponent): + """The role of a BatchExporter is to search for a list of + items to export, then it can either export them directly or delay + the export of each item separately. + """ + + _name = "woocommerce.batch.exporter" + _inherit = [ + "connector.extension.generic.batch.exporter", + "base.woocommerce.connector", + ] diff --git a/connector_woocommerce/components/import_mapper.py b/connector_woocommerce/components/import_mapper.py new file mode 100644 index 000000000..44c1f7856 --- /dev/null +++ b/connector_woocommerce/components/import_mapper.py @@ -0,0 +1,14 @@ +# Copyright NuoBiT Solutions - Kilian Niubo +# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl) + +from odoo.addons.component.core import AbstractComponent + + +class WooCommerceImportMapper(AbstractComponent): + _name = "woocommerce.import.mapper" + _inherit = ["connector.extension.import.mapper", "base.woocommerce.connector"] + + +class WooCommerceImportMapChild(AbstractComponent): + _name = "woocommerce.map.child.import" + _inherit = ["connector.extension.map.child.import", "base.woocommerce.connector"] diff --git a/connector_woocommerce/components/importer.py b/connector_woocommerce/components/importer.py new file mode 100644 index 000000000..927648bd8 --- /dev/null +++ b/connector_woocommerce/components/importer.py @@ -0,0 +1,31 @@ +# Copyright NuoBiT Solutions - Eric Antones +# Copyright NuoBiT Solutions - Kilian Niubo +# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl) +import logging + +from odoo.addons.component.core import AbstractComponent + +_logger = logging.getLogger(__name__) + + +class WooCommerceDirectImporter(AbstractComponent): + """Base importer for WooCommerce""" + + _name = "woocommerce.record.direct.importer" + _inherit = [ + "connector.extension.generic.record.direct.importer", + "base.woocommerce.connector", + ] + + +class WooCommerceBatchImporter(AbstractComponent): + """The role of a BatchImporter is to search for a list of + items to import, then it can either import them directly or delay + the import of each item separately. + """ + + _name = "woocommerce.batch.importer" + _inherit = [ + "connector.extension.generic.batch.importer", + "base.woocommerce.connector", + ] diff --git a/connector_woocommerce/data/ir_cron.xml b/connector_woocommerce/data/ir_cron.xml new file mode 100644 index 000000000..6ed9dab55 --- /dev/null +++ b/connector_woocommerce/data/ir_cron.xml @@ -0,0 +1,150 @@ + + + + + WooCommerce - Export Product Template + + + + + 1 + days + -1 + + code + model._scheduler_export_product_tmpl() + + + + WooCommerce - Export Product Product + + + + + 1 + days + -1 + + code + model._scheduler_export_products() + + + + WooCommerce - Export Sale Orders + + + + + 1 + days + -1 + + code + model._scheduler_export_sale_orders() + + + + WooCommerce - Import Sale Orders + + + + + 1 + days + -1 + + code + model._scheduler_import_sale_orders() + + + + WooCommerce - Export Product Public Category + + + + + 1 + days + -1 + + code + model._scheduler_export_product_public_category() + + + + WooCommerce - Export Product Attribute + + + + + 1 + days + -1 + + code + model._scheduler_export_product_attribute() + + + + WooCommerce - Export Product Product Attribute Value + + + + + 1 + days + -1 + + code + model._scheduler_export_product_attribute_value() + + + WooCommerce - Export Product Attachment + + + + + 1 + days + -1 + + code + model._scheduler_export_product_attachment() + + diff --git a/connector_woocommerce/data/queue_data.xml b/connector_woocommerce/data/queue_data.xml new file mode 100644 index 000000000..5c3977dd5 --- /dev/null +++ b/connector_woocommerce/data/queue_data.xml @@ -0,0 +1,21 @@ + + + + + woocommerce_export_record + + + + woocommerce_import_batch + + + + woocommerce_import_chunk + + + + woocommerce_import_record + + + diff --git a/connector_woocommerce/data/queue_job_function_data.xml b/connector_woocommerce/data/queue_job_function_data.xml new file mode 100644 index 000000000..7a9c00e39 --- /dev/null +++ b/connector_woocommerce/data/queue_job_function_data.xml @@ -0,0 +1,147 @@ + + + + + + + export_batch + + + + + + export_record + + + + + + + export_record + + + + + + + export_record + + + + + + + export_record + + + + + + + export_record + + + + + + + export_record + + + + + + + import_batch + + + + + + import_chunk + + + + + + import_record + + + + diff --git a/connector_woocommerce/i18n/ca.po b/connector_woocommerce/i18n/ca.po new file mode 100644 index 000000000..a8eed6a27 --- /dev/null +++ b/connector_woocommerce/i18n/ca.po @@ -0,0 +1,5645 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * connector_woocommerce +# +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 14.0\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2024-08-09 12:55+0000\n" +"PO-Revision-Date: 2024-08-09 12:55+0000\n" +"Last-Translator: \n" +"Language-Team: \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: \n" +"Plural-Forms: \n" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_product__bom_count +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_template__bom_count +msgid "# Bill of Material" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_product__used_in_bom_count +msgid "# BoM Where Used" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_product__purchase_num_invoiced +msgid "# Invoiced in Purchase" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_product__sale_num_invoiced +msgid "# Invoiced in Sale" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_res_partner__meeting_count +msgid "# Meetings" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_product__product_variant_count +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_template__product_variant_count +msgid "# Product Variants" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_res_partner__task_count +msgid "# Tasks" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_res_partner__supplier_invoice_count +msgid "# Vendor Bills" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_template__used_in_bom_count +msgid "# of BoM Where is Used" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_sale_order__expense_count +msgid "# of Expenses" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,help:connector_woocommerce.field_woocommerce_product_attribute__create_variant +msgid "" +"- Instantly: All possible variants are created as soon as the attribute and its values are added to a product.\n" +" - Dynamically: Each variant is created only when its corresponding attributes and values are added to a sales order.\n" +" - Never: Variants are never created for the attribute.\n" +" Note: the variants creation mode cannot be changed once the attribute is used on at least one product." +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.constraint,message:connector_woocommerce.constraint_woocommerce_backend_payment_mode_tax_map_uniq +msgid "" +"A binding already exists with the same (backend, woocommerce_payment_mode) " +"ID." +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.constraint,message:connector_woocommerce.constraint_woocommerce_backend_account_tax_tax_map_uniq +#: model:ir.model.constraint,message:connector_woocommerce.constraint_woocommerce_backend_tax_class_tax_map_uniq +msgid "" +"A binding already exists with the same (backend, woocommerce_tax_rate_id) " +"ID." +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.constraint,message:connector_woocommerce.constraint_woocommerce_sale_order_line_lol_ext_uniq +msgid "A binding already exists with the same External (WooCommerce) ID." +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.constraint,message:connector_woocommerce.constraint_woocommerce_product_attribute_external_uniq +msgid "A binding already exists with the same External (idAttribute) ID." +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.constraint,message:connector_woocommerce.constraint_woocommerce_product_attribute_value_external_uniq +msgid "A binding already exists with the same External (idAttributevalue) ID." +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.constraint,message:connector_woocommerce.constraint_woocommerce_product_product_external_uniq +#: model:ir.model.constraint,message:connector_woocommerce.constraint_woocommerce_product_public_category_external_uniq +#: model:ir.model.constraint,message:connector_woocommerce.constraint_woocommerce_product_template_external_uniq +msgid "A binding already exists with the same External (idProduct) ID." +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.constraint,message:connector_woocommerce.constraint_woocommerce_res_partner_external_uniq +msgid "A binding already exists with the same External (idResPartner) ID." +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.constraint,message:connector_woocommerce.constraint_woocommerce_sale_order_external_uniq +msgid "A binding already exists with the same External (idSaleOrder) ID." +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.constraint,message:connector_woocommerce.constraint_woocommerce_binding_woocommerce_internal_uniq +#: model:ir.model.constraint,message:connector_woocommerce.constraint_woocommerce_product_attribute_value_woocommerce_internal_uniq +#: model:ir.model.constraint,message:connector_woocommerce.constraint_woocommerce_product_attribute_woocommerce_internal_uniq +#: model:ir.model.constraint,message:connector_woocommerce.constraint_woocommerce_product_product_woocommerce_internal_uniq +#: model:ir.model.constraint,message:connector_woocommerce.constraint_woocommerce_product_public_category_woocommerce_internal_uniq +#: model:ir.model.constraint,message:connector_woocommerce.constraint_woocommerce_product_template_woocommerce_internal_uniq +#: model:ir.model.constraint,message:connector_woocommerce.constraint_woocommerce_res_partner_woocommerce_internal_uniq +#: model:ir.model.constraint,message:connector_woocommerce.constraint_woocommerce_sale_order_line_woocommerce_internal_uniq +#: model:ir.model.constraint,message:connector_woocommerce.constraint_woocommerce_sale_order_woocommerce_internal_uniq +msgid "A binding already exists with the same Internal (Odoo) ID." +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,help:connector_woocommerce.field_woocommerce_product_product__description_sale +#: model:ir.model.fields,help:connector_woocommerce.field_woocommerce_product_template__description_sale +msgid "" +"A description of the Product that you want to communicate to your customers." +" This description will be copied to every Sales Order, Delivery Order and " +"Customer Invoice/Credit Note" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,help:connector_woocommerce.field_woocommerce_product_product__variant_description_sale +msgid "" +"A description of the product variant that you want to communicate to your " +"customers.This description will be copied to every Sale Order" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,help:connector_woocommerce.field_woocommerce_product_product__type +#: model:ir.model.fields,help:connector_woocommerce.field_woocommerce_product_template__type +#: model:ir.model.fields,help:connector_woocommerce.field_woocommerce_sale_order_line__product_type +msgid "" +"A storable product is a product for which you manage stock. The Inventory app has to be installed.\n" +"A consumable product is a product for which stock is not managed.\n" +"A service is a non-material product you provide." +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_res_partner__aeat_anonymous_cash_customer +msgid "AEAT - Anonymous customer" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_res_partner__aeat_identification_type +msgid "AEAT Identification type" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_sale_order__is_abandoned_cart +msgid "Abandoned Cart" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_sale_order__access_warning +msgid "Access warning" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,help:connector_woocommerce.field_woocommerce_product_product__accessory_product_ids +#: model:ir.model.fields,help:connector_woocommerce.field_woocommerce_product_template__accessory_product_ids +msgid "" +"Accessories show up when the customer reviews the cart before payment " +"(cross-sell strategy)." +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_product__accessory_product_ids +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_template__accessory_product_ids +msgid "Accessory Products" +msgstr "Productes Accesoris" + +#. module: connector_woocommerce +#: model:ir.model.fields,help:connector_woocommerce.field_woocommerce_sale_order_line__qty_delivered_method +msgid "" +"According to product configuration, the delivered quantity can be automatically computed by mechanism :\n" +" - Manual: the quantity is set manually on the line\n" +" - Analytic From expenses: the quantity is the quantity sum from posted expenses\n" +" - Timesheet: the quantity is the sum of hours recorded on tasks linked to this sale line\n" +" - Stock Moves: the quantity comes from confirmed pickings\n" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_res_partner__property_account_payable_id +msgid "Account Payable" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_res_partner__property_account_receivable_id +msgid "Account Receivable" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_backend_account_tax__account_tax +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_backend_tax_class__account_tax +msgid "Account Tax" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_product__message_needaction +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_template__message_needaction +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_res_partner__message_needaction +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_sale_order__message_needaction +msgid "Action Needed" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_backend__active +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_product__active +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_template__active +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_res_partner__active +msgid "Active" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_res_partner__active_lang_count +msgid "Active Lang Count" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_product__activity_ids +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_template__activity_ids +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_res_partner__activity_ids +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_sale_order__activity_ids +msgid "Activities" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_product__activity_exception_decoration +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_template__activity_exception_decoration +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_res_partner__activity_exception_decoration +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_sale_order__activity_exception_decoration +msgid "Activity Exception Decoration" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_product__activity_state +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_template__activity_state +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_res_partner__activity_state +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_sale_order__activity_state +msgid "Activity State" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_product__activity_type_icon +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_template__activity_type_icon +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_res_partner__activity_type_icon +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_sale_order__activity_type_icon +msgid "Activity Type Icon" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_res_partner__additional_info +msgid "Additional info" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_res_partner__address_hash +#: model:ir.model.fields,field_description:connector_woocommerce.field_res_users__address_hash +#: model:ir.model.fields,field_description:connector_woocommerce.field_sage_res_partner__address_hash +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_res_partner__address_hash +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_res_partner__woocommerce_address_hash +msgid "Address Hash" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_res_partner__type +msgid "Address Type" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,help:connector_woocommerce.field_product_product__inventory_availability +#: model:ir.model.fields,help:connector_woocommerce.field_product_product__variant_inventory_availability +#: model:ir.model.fields,help:connector_woocommerce.field_product_template__inventory_availability +#: model:ir.model.fields,help:connector_woocommerce.field_woocommerce_product_product__inventory_availability +#: model:ir.model.fields,help:connector_woocommerce.field_woocommerce_product_product__variant_inventory_availability +#: model:ir.model.fields,help:connector_woocommerce.field_woocommerce_product_template__inventory_availability +msgid "Adds an inventory availability status on the web product page." +msgstr "" +"Afegeix un estat de disponibilitat de inventari a la pàgina del producte " +"web." + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_res_partner__aeat_identification +msgid "Aeat Identification" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_product__alert_time +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_template__alert_time +msgid "Alert Time" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,help:connector_woocommerce.field_woocommerce_res_partner__lang +msgid "" +"All the emails and documents sent to this contact will be translated in this" +" language." +msgstr "" + +#. module: connector_woocommerce +#: code:addons/connector_woocommerce/models/product_template/adapter.py:0 +#, python-format +msgid "All variants must belong to the same parent product" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_product__allow_negative_stock +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_template__allow_negative_stock +msgid "Allow Negative Stock" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,help:connector_woocommerce.field_woocommerce_product_attribute_value__is_custom +msgid "Allow users to input custom values for this attribute value" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_product__alternative_product_ids +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_template__alternative_product_ids +msgid "Alternative Products" +msgstr "Productes alternatius" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_sale_order__amount_undiscounted +msgid "Amount Before Discount" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_sale_order__analytic_account_id +msgid "Analytic Account" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_sale_order_line__analytic_tag_ids +msgid "Analytic Tags" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_sale_order_line__analytic_line_ids +msgid "Analytic lines" +msgstr "" + +#. module: connector_woocommerce +#: model_terms:ir.ui.view,arch_db:connector_woocommerce.woocommerce_backend_view_form +msgid "Archived" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_res_partner__attach_invoice_as_annex +msgid "Attach Invoice As Annex" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_product_attachment__attachment_id +msgid "Attachment" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_product__message_attachment_count +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_template__message_attachment_count +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_res_partner__message_attachment_count +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_sale_order__message_attachment_count +msgid "Attachment Count" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_attribute__name +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_attribute_value__attribute_id +msgid "Attribute" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model,name:connector_woocommerce.model_product_attribute_value +msgid "Attribute Value" +msgstr "Valor de l'atribut" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_product__product_template_attribute_value_ids +msgid "Attribute Values" +msgstr "" + +#. module: connector_woocommerce +#: code:addons/connector_woocommerce/models/product_attribute_value/adapter.py:0 +#, python-format +msgid "Attribute id is required to create attribute value on woocommerce." +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_sale_order__auth_number +msgid "Authorization Number" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_sale_order__authorized_transaction_ids +msgid "Authorized Transactions" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_res_partner__facturae_auto_dates +msgid "Auto Dates" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,help:connector_woocommerce.field_woocommerce_res_partner__receipt_reminder_email +msgid "" +"Automatically send a confirmation email to the vendor X days before the " +"expected receipt date, asking him to confirm the exact date." +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_product__available_threshold +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_template__available_threshold +msgid "Availability Threshold" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,help:connector_woocommerce.field_woocommerce_product_product__produce_delay +#: model:ir.model.fields,help:connector_woocommerce.field_woocommerce_product_template__produce_delay +msgid "" +"Average lead time in days to manufacture this product. In the case of multi-" +"level BOM, the manufacturing lead times of the components will be added." +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,help:connector_woocommerce.field_woocommerce_product_product__sale_avg_price +msgid "Avg. Price in Customer Invoices." +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,help:connector_woocommerce.field_woocommerce_product_product__purchase_avg_price +msgid "Avg. Price in Vendor Bills " +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_product__purchase_avg_price +msgid "Avg. Purchase Unit Price" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_product__sale_avg_price +msgid "Avg. Sale Unit Price" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_product__variant_bom_ids +msgid "BOM Product Variants" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_sale_order_line__backend_id +msgid "Backend" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_backend_account_tax__backend_id +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_backend_payment_mode__backend_id +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_backend_tax_class__backend_id +msgid "Backend id" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.ui.menu,name:connector_woocommerce.woocommerce_backend_menu_action +msgid "Backends" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_res_partner__bank_account_count +msgid "Bank" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_res_partner__bank_ids +msgid "Banks" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_template__barcode +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_res_partner__barcode +msgid "Barcode" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_product__barcode_ids +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_template__barcode_ids +msgid "Barcodes" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_product__use_time +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_template__use_time +msgid "Best Before Time" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_product__bom_ids +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_template__bom_ids +msgid "Bill of Materials" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_product__message_binary_attachment_count +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_template__message_binary_attachment_count +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_res_partner__message_binary_attachment_count +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_sale_order__message_binary_attachment_count +msgid "Binary Attachment Count" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_res_partner__is_blacklisted +msgid "Blacklist" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_res_partner__mobile_blacklisted +msgid "Blacklisted Phone Is Mobile" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_res_partner__phone_blacklisted +msgid "Blacklisted Phone is Phone" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_product__bom_line_ids +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_template__bom_line_ids +msgid "BoM Components" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_res_partner__es_libro +msgid "Book" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_res_partner__message_bounce +msgid "Bounce" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_product__product_brand_id +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_template__product_brand_id +msgid "Brand" +msgstr "" + +#. module: connector_woocommerce +#: model_terms:ir.ui.view,arch_db:connector_woocommerce.woocommerce_backend_view_form +msgid "" +"By clicking on the buttons,\n" +" you will initiate the\n" +" synchronizations\n" +" with WooCommerce.\n" +" Note that the import or exports\n" +" won't be done directly,\n" +" they will create 'Jobs'\n" +" executed as soon\n" +" as possible." +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_sale_order__campaign_id +msgid "Campaign" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_sale_order_line__product_updatable +msgid "Can Edit Product" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_product__can_image_1024_be_zoomed +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_template__can_image_1024_be_zoomed +msgid "Can Image 1024 be zoomed" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_product__can_publish +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_template__can_publish +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_res_partner__can_publish +msgid "Can Publish" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_product__can_image_variant_1024_be_zoomed +msgid "Can Variant Image 1024 be zoomed" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_product__can_be_expensed +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_template__can_be_expensed +msgid "Can be Expensed" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_product__purchase_ok +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_template__purchase_ok +msgid "Can be Purchased" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_product__sale_ok +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_template__sale_ok +msgid "Can be Sold" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields.selection,name:connector_woocommerce.selection__sale_order__woocommerce_order_state__cancel +#: model:ir.model.fields.selection,name:connector_woocommerce.selection__stock_picking__woocommerce_stock_picking_state__cancel +msgid "Cancel" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_product__cart_qty +msgid "Cart Qty" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_sale_order__cart_quantity +msgid "Cart Quantity" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_sale_order__cart_recovery_email_sent +msgid "Cart recovery email already sent" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_sale_order_line__product_uom_category_id +msgid "Category" +msgstr "Categoria" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_public_category__website_description +msgid "Category Description" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_product__route_from_categ_ids +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_template__route_from_categ_ids +msgid "Category Routes" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_res_partner__certifications_count +msgid "Certifications Count" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_res_partner__channel_ids +msgid "Channels" +msgstr "" + +#. module: connector_woocommerce +#: model_terms:ir.ui.view,arch_db:connector_woocommerce.woocommerce_backend_view_form +msgid "Check Connection" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,help:connector_woocommerce.field_woocommerce_res_partner__is_company +msgid "Check if the contact is a company, otherwise it is a person" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,help:connector_woocommerce.field_woocommerce_res_partner__employee +msgid "Check this box if this contact is an Employee." +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,help:connector_woocommerce.field_woocommerce_res_partner__country_enforce_cities +msgid "" +"Check this box to ensure every address created in that country has a 'City' " +"chosen in the list of the country's cities." +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,help:connector_woocommerce.field_woocommerce_res_partner__aeat_anonymous_cash_customer +msgid "Check this for anonymous cash customer. AEAT communication" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,help:connector_woocommerce.field_woocommerce_res_partner__sii_simplified_invoice +msgid "" +"Checking this mark, invoices done to this partner will be sent to SII as " +"simplified invoices." +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_public_category__child_id +msgid "Children Categories" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_backend__chunk_size +msgid "Chunk Size" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_res_partner__city +msgid "City" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_res_partner__city_id +msgid "City of Address" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_res_partner__quality_classification_id +msgid "Classification" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_backend__client_order_ref_prefix +msgid "Client Order Reference Prefix" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_attribute_value__html_color +msgid "Color" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_product__color +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_template__color +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_res_partner__color +msgid "Color Index" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_product__combination_indices +msgid "Combination Indices" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_res_partner__commercial_partner_id +msgid "Commercial Entity" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_res_partner__es_registro_mercantil +msgid "Commercial Registry" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_res_partner__ref_company_ids +msgid "Companies that refers to partner" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_backend__company_id +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_backend_payment_mode__company_id +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_product__company_id +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_template__company_id +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_res_partner__company_id +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_sale_order__company_id +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_sale_order_line__company_id +msgid "Company" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_res_partner__certifications_company_count +msgid "Company Certifications Count" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_res_partner__company_name +msgid "Company Name" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_res_partner__commercial_company_name +msgid "Company Name Entity" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_res_partner__company_type +msgid "Company Type" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_res_partner__partner_gid +msgid "Company database ID" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_res_partner__contact_address +msgid "Complete Address" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,help:connector_woocommerce.field_woocommerce_sale_order__effective_date +msgid "Completion date of the first delivery order." +msgstr "" + +#. module: connector_woocommerce +#: model_terms:ir.ui.view,arch_db:connector_woocommerce.connector_product_attribute_view_form +#: model_terms:ir.ui.view,arch_db:connector_woocommerce.connector_product_product_view_form +#: model_terms:ir.ui.view,arch_db:connector_woocommerce.connector_product_template_view_form +#: model_terms:ir.ui.view,arch_db:connector_woocommerce.connector_res_partner_view_form +#: model_terms:ir.ui.view,arch_db:connector_woocommerce.connector_sale_order_view_form +#: model_terms:ir.ui.view,arch_db:connector_woocommerce.connector_woocommerce_product_public_category_view_form +msgid "Connector WooCommerce" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_backend__consumer_key +msgid "Consumer Key" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_backend__consumer_secret +msgid "Consumer Secret" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model,name:connector_woocommerce.model_res_partner +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_res_partner__child_ids +msgid "Contact" +msgstr "Contacte" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_sale_order__contract_number +msgid "Contract number" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_res_partner__contract_ids +msgid "Contracts" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_product__purchase_method +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_template__purchase_method +msgid "Control Policy" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,help:connector_woocommerce.field_woocommerce_sale_order_line__product_uom_category_id +msgid "" +"Conversion between Units of Measure can only occur if they belong to the " +"same category. The conversion will be made based on the ratios." +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_product__standard_price +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_template__standard_price +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_sale_order_line__purchase_price +msgid "Cost" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_product__cost_currency_id +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_template__cost_currency_id +msgid "Cost Currency" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_product__cost_method +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_template__cost_method +msgid "Costing Method" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_res_partner__payment_token_count +msgid "Count Payment Token" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_sale_order__mrp_production_count +msgid "Count of MO generated" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,help:connector_woocommerce.field_woocommerce_res_partner__message_bounce +msgid "Counter of the number of bounced emails for this contact" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_res_partner__country_id +msgid "Country" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_product_attachment__create_uid +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_backend__create_uid +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_backend_account_tax__create_uid +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_backend_payment_mode__create_uid +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_backend_tax_class__create_uid +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_attribute__create_uid +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_attribute_value__create_uid +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_product__create_uid +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_public_category__create_uid +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_template__create_uid +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_res_partner__create_uid +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_sale_order__create_uid +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_sale_order_line__create_uid +msgid "Created by" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_product_attachment__create_date +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_backend__create_date +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_backend_account_tax__create_date +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_backend_payment_mode__create_date +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_backend_tax_class__create_date +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_attribute__create_date +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_attribute_value__create_date +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_product__create_date +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_public_category__create_date +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_template__create_date +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_res_partner__create_date +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_sale_order__create_date +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_sale_order_line__create_date +msgid "Created on" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,help:connector_woocommerce.field_woocommerce_sale_order__date_order +msgid "" +"Creation date of draft/sent orders,\n" +"Confirmation date of confirmed orders." +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_res_partner__credit_limit +msgid "Credit Limit" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_product__currency_id +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_template__currency_id +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_res_partner__currency_id +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_sale_order__currency_id +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_sale_order_line__currency_id +msgid "Currency" +msgstr "" + +#. module: connector_woocommerce +#: code:addons/connector_woocommerce/models/sale_order/import_mapper.py:0 +#, python-format +msgid "Currency '%s' is not defined" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_sale_order__currency_rate +msgid "Currency Rate" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,help:connector_woocommerce.field_woocommerce_product_product__qty_available +msgid "" +"Current quantity of products.\n" +"In a context with a single Stock Location, this includes goods stored at this Location, or any of its children.\n" +"In a context with a single Warehouse, this includes goods stored in the Stock Location of this Warehouse, or any of its children.\n" +"stored in the Stock Location of the Warehouse of this Shop, or any of its children.\n" +"Otherwise, this includes goods stored in any Stock Location with 'internal' type." +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,help:connector_woocommerce.field_woocommerce_sale_order_line__oxigen_margin_percent +msgid "Custom %Margin calculated as Margin/Cost" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_product__custom_message +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_template__custom_message +msgid "Custom Message" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_sale_order_line__product_custom_attribute_value_ids +msgid "Custom Values" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_sale_order__partner_id +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_sale_order_line__order_partner_id +msgid "Customer" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_product__sale_delay +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_template__sale_delay +msgid "Customer Lead Time" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_res_partner__property_stock_customer +msgid "Customer Location" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_res_partner__customer_payment_mode_id +msgid "Customer Payment Mode" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_res_partner__property_payment_term_id +msgid "Customer Payment Terms" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,help:connector_woocommerce.field_woocommerce_sale_order__access_url +msgid "Customer Portal URL" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_res_partner__customer_rank +msgid "Customer Rank" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_product__partner_ref +msgid "Customer Ref" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_sale_order__client_order_ref +msgid "Customer Reference" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_product__taxes_id +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_template__taxes_id +msgid "Customer Taxes" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_product__buyer_ids +msgid "Customers" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_product__dn_enabled +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_template__dn_enabled +msgid "D/N" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_res_partner__date +msgid "Date" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,help:connector_woocommerce.field_woocommerce_sale_order__signed_on +msgid "Date of the signature." +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_res_partner__reminder_date_before_receipt +msgid "Days Before Receipt" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_res_partner__default_supplierinfo_discount +msgid "Default Supplier Discount (%)" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_res_partner__default_supplierinfo_discount2 +msgid "Default Supplier Discount 2 (%)" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_res_partner__default_supplierinfo_discount3 +msgid "Default Supplier Discount 3 (%)" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,help:connector_woocommerce.field_woocommerce_res_partner__property_delivery_carrier_id +msgid "Default delivery method used in sales orders." +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_res_partner__purchase_journal_id +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_res_partner__sale_journal_id +msgid "Default journal" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,help:connector_woocommerce.field_woocommerce_product_product__supplier_taxes_id +#: model:ir.model.fields,help:connector_woocommerce.field_woocommerce_product_template__supplier_taxes_id +msgid "Default taxes used when buying the product." +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,help:connector_woocommerce.field_woocommerce_product_product__taxes_id +#: model:ir.model.fields,help:connector_woocommerce.field_woocommerce_product_template__taxes_id +msgid "Default taxes used when selling the product." +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,help:connector_woocommerce.field_woocommerce_product_product__uom_id +#: model:ir.model.fields,help:connector_woocommerce.field_woocommerce_product_template__uom_id +msgid "Default unit of measure used for all stock operations." +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,help:connector_woocommerce.field_woocommerce_product_product__uom_po_id +#: model:ir.model.fields,help:connector_woocommerce.field_woocommerce_product_template__uom_po_id +msgid "" +"Default unit of measure used for purchase orders. It must be in the same " +"category as the default unit of measure." +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,help:connector_woocommerce.field_woocommerce_product_product__seller_ids +#: model:ir.model.fields,help:connector_woocommerce.field_woocommerce_product_template__seller_ids +msgid "Define vendor pricelists." +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_res_partner__trust +msgid "Degree of trust you have in this debtor" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_sale_order_line__qty_delivered_manual +msgid "Delivered Manually" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_sale_order_line__qty_delivered +msgid "Delivered Quantity" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_sale_order__partner_shipping_id +msgid "Delivery Address" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_sale_order__amount_delivery +msgid "Delivery Amount" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_sale_order__commitment_date +msgid "Delivery Date" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_sale_order__delivery_message +msgid "Delivery Message" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_res_partner__property_delivery_carrier_id +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_sale_order__carrier_id +msgid "Delivery Method" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_sale_order__delivery_count +msgid "Delivery Orders" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_sale_order__delivery_rating_success +msgid "Delivery Rating Success" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_sale_order__delivery_set +msgid "Delivery Set" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_sale_order__recompute_delivery_price +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_sale_order_line__recompute_delivery_price +msgid "Delivery cost should be recomputed" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,help:connector_woocommerce.field_woocommerce_sale_order__expected_date +msgid "" +"Delivery date you can promise to the customer, computed from the minimum " +"lead time of the order lines in case of Service products. In case of " +"shipping, the shipping policy of the order will be taken into account to " +"either use the minimum or maximum lead time of the order lines." +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,help:connector_woocommerce.field_woocommerce_product_product__sale_delay +#: model:ir.model.fields,help:connector_woocommerce.field_woocommerce_product_template__sale_delay +msgid "" +"Delivery lead time, in days. It's the number of days, promised to the " +"customer, between the confirmation of the sales order and the delivery." +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,help:connector_woocommerce.field_woocommerce_product_product__route_ids +#: model:ir.model.fields,help:connector_woocommerce.field_woocommerce_product_template__route_ids +msgid "" +"Depending on the modules installed, this will allow you to define the route " +"of the product: whether it will be bought, manufactured, replenished on " +"order, etc." +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_product__description +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_template__description +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_sale_order_line__name +msgid "Description" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_product__website_description +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_template__website_description +msgid "Description for the website" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_product__description_pickingout +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_template__description_pickingout +msgid "Description on Delivery Orders" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_product__description_picking +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_template__description_picking +msgid "Description on Picking" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_product__description_pickingin +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_template__description_pickingin +msgid "Description on Receptions" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_sale_order__destination +msgid "Destination" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,help:connector_woocommerce.field_woocommerce_product_attribute__sequence +#: model:ir.model.fields,help:connector_woocommerce.field_woocommerce_product_attribute_value__sequence +msgid "Determine the display order" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,help:connector_woocommerce.field_woocommerce_product_product__website_sequence +#: model:ir.model.fields,help:connector_woocommerce.field_woocommerce_product_template__website_sequence +msgid "Determine the display order in the Website E-commerce" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_sale_order_line__discount +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_sale_order_line__discount +msgid "Discount (%)" +msgstr "Descompte (%)" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_backend__discount_pricelist_id +msgid "Discount Pricelist" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_product_attachment__display_name +#: model:ir.model.fields,field_description:connector_woocommerce.field_product_attribute__display_name +#: model:ir.model.fields,field_description:connector_woocommerce.field_product_attribute_value__display_name +#: model:ir.model.fields,field_description:connector_woocommerce.field_product_product__display_name +#: model:ir.model.fields,field_description:connector_woocommerce.field_product_public_category__display_name +#: model:ir.model.fields,field_description:connector_woocommerce.field_product_template__display_name +#: model:ir.model.fields,field_description:connector_woocommerce.field_res_partner__display_name +#: model:ir.model.fields,field_description:connector_woocommerce.field_sale_order__display_name +#: model:ir.model.fields,field_description:connector_woocommerce.field_sale_order_line__display_name +#: model:ir.model.fields,field_description:connector_woocommerce.field_stock_picking__display_name +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_backend__display_name +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_backend_account_tax__display_name +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_backend_payment_mode__display_name +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_backend_tax_class__display_name +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_binding__display_name +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_attribute__display_name +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_attribute_value__display_name +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_product__display_name +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_public_category__display_name +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_template__display_name +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_res_partner__display_name +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_sale_order__display_name +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_sale_order_line__display_name +msgid "Display Name" +msgstr "Nom a mostrar" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_sale_order_line__display_qty_widget +msgid "Display Qty Widget" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_attribute__display_type +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_attribute_value__display_type +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_sale_order_line__display_type +msgid "Display Type" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_sale_order__visible_project +msgid "Display project" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_product__document_ids +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_template__document_ids +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_res_partner__quality_document_ids +#: model_terms:ir.ui.view,arch_db:connector_woocommerce.product_product_view_form_easy_inherit_connector_woocommerce +msgid "Documents" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields.selection,name:connector_woocommerce.selection__woocommerce_backend__use_main_product_image__no +msgid "Don't use main image" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields.selection,name:connector_woocommerce.selection__sale_order__woocommerce_order_state__done +#: model:ir.model.fields.selection,name:connector_woocommerce.selection__stock_picking__woocommerce_stock_picking_state__done +msgid "Done" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,help:connector_woocommerce.field_woocommerce_sale_order_line__is_downpayment +msgid "" +"Down payments are made when creating invoices from a sales order. They are " +"not copied when duplicating a sales order." +msgstr "" + +#. module: connector_woocommerce +#: code:addons/connector_woocommerce/models/common/tools.py:0 +#: code:addons/connector_woocommerce/models/common/tools.py:0 +#: code:addons/connector_woocommerce/models/common/tools.py:0 +#, python-format +msgid "Duplicated field %s" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_sale_order__effective_date +msgid "Effective Date" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,help:connector_woocommerce.field_woocommerce_res_partner__partner_share +msgid "" +"Either customer (not a user), either shared user. Indicated the current " +"partner is a customer without access or with a limited access created for " +"sharing data." +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_res_partner__email +msgid "Email" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_res_partner__email_bounced +msgid "Email Bounced" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_res_partner__email_score +msgid "Email Score" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_res_partner__employee +msgid "Employee" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_res_partner__country_enforce_cities +msgid "Enforce Cities" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,help:connector_woocommerce.field_woocommerce_product_product__tracking +#: model:ir.model.fields,help:connector_woocommerce.field_woocommerce_product_template__tracking +msgid "Ensure the traceability of a storable product in your warehouse." +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_sale_order__sale_invoicing_exclude_from_invoicing +msgid "Exclude from invoicing" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_sale_order__expected_date +msgid "Expected Date" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_product__expected_margin +msgid "Expected Margin" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_product__expected_margin_rate +msgid "Expected Margin (%)" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_product__sale_expected +msgid "Expected Sale" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,help:connector_woocommerce.field_woocommerce_product_product__expected_margin +msgid "Expected Sale - Normal Cost" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,help:connector_woocommerce.field_woocommerce_product_product__sales_gap +msgid "Expected Sale - Turn Over" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,help:connector_woocommerce.field_woocommerce_product_product__expected_margin_rate +msgid "Expected margin * 100 / Expected Sale" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_product__property_account_expense_id +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_template__property_account_expense_id +msgid "Expense Account" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_sale_order__expense_ids +msgid "Expenses" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,help:connector_woocommerce.field_woocommerce_product_product__expense_policy +#: model:ir.model.fields,help:connector_woocommerce.field_woocommerce_product_template__expense_policy +msgid "" +"Expenses and vendor bills can be re-invoiced to a customer.With this option," +" a validated expense can be re-invoice to a customer at its cost or sales " +"price." +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_sale_order__validity_date +msgid "Expiration" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_product__use_expiration_date +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_template__use_expiration_date +msgid "Expiration Date" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_product__expiration_time +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_template__expiration_time +msgid "Expiration Time" +msgstr "" + +#. module: connector_woocommerce +#: model_terms:ir.ui.view,arch_db:connector_woocommerce.woocommerce_backend_view_form +msgid "Export Product Attribute Since" +msgstr "" + +#. module: connector_woocommerce +#: model_terms:ir.ui.view,arch_db:connector_woocommerce.woocommerce_backend_view_form +msgid "Export Product Attribute Value Since" +msgstr "" + +#. module: connector_woocommerce +#: model_terms:ir.ui.view,arch_db:connector_woocommerce.woocommerce_backend_view_form +msgid "Export Product Public Categories Since" +msgstr "" + +#. module: connector_woocommerce +#: model_terms:ir.ui.view,arch_db:connector_woocommerce.woocommerce_backend_view_form +msgid "Export Product Template Since" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_backend__export_product_tmpl_since_date +msgid "Export Product Templates Since" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_backend__export_product_attribute_value_since_date +msgid "Export Product attribute values Since" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_backend__export_product_attribute_since_date +msgid "Export Product attributes Since" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_backend__export_product_public_category_since_date +msgid "Export Product public category Since" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_backend__export_products_since_date +#: model_terms:ir.ui.view,arch_db:connector_woocommerce.woocommerce_backend_view_form +msgid "Export Products Since" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_backend__export_sale_orders_since_date +#: model_terms:ir.ui.view,arch_db:connector_woocommerce.woocommerce_backend_view_form +msgid "Export Sale Orders Since" +msgstr "" + +#. module: connector_woocommerce +#: model_terms:ir.ui.view,arch_db:connector_woocommerce.woocommerce_backend_view_form +msgid "Export in background" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.ui.menu,name:connector_woocommerce.woocommerce_external_objects_menu +msgid "External Objects" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.ui.menu,name:connector_woocommerce.woocommerce_external_sale_order_menu +msgid "External Orders" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.ui.menu,name:connector_woocommerce.woocommerce_external_partner_menu +msgid "External Partners" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.ui.menu,name:connector_woocommerce.woocommerce_external_product_attribute_value_menu +msgid "External Product Attribute Values" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.ui.menu,name:connector_woocommerce.woocommerce_external_product_attribute_menu +msgid "External Product Attributes" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.ui.menu,name:connector_woocommerce.woocommerce_external_product_public_category_menu +msgid "External Product Public Categories" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.ui.menu,name:connector_woocommerce.woocommerce_external_product_template_menu +msgid "External Product Templates" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.ui.menu,name:connector_woocommerce.woocommerce_external_product_variant_menu +msgid "External Product product" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_product__product_template_image_ids +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_template__product_template_image_ids +msgid "Extra Product Media" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_sale_order_line__product_no_variant_attribute_value_ids +msgid "Extra Values" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_product__product_variant_image_ids +msgid "Extra Variant Images" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_res_partner__facturae +msgid "Factura electrónica" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_res_partner__facturae_version +msgid "Facturae Version" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_product__failed_message_ids +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_template__failed_message_ids +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_res_partner__failed_message_ids +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_sale_order__failed_message_ids +msgid "Failed Messages" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_res_partner__fax +msgid "Fax" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,help:connector_woocommerce.field_woocommerce_res_partner__phone_sanitized +msgid "" +"Field used to store sanitized phone number. Helps speeding up searches and " +"comparisons." +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,help:connector_woocommerce.field_woocommerce_sale_order__carrier_id +msgid "Fill this field if you plan to invoice the shipping based on picking." +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_res_partner__valid_mandate_id +msgid "First Valid Mandate" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_res_partner__firstname +msgid "First name" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_res_partner__property_account_position_id +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_sale_order__fiscal_position_id +msgid "Fiscal Position" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,help:connector_woocommerce.field_woocommerce_sale_order__fiscal_position_id +msgid "" +"Fiscal positions are used to adapt taxes and accounts for particular " +"customers or sales orders/invoices.The default value comes from the " +"customer." +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_product__fix_price +msgid "Fix Price" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_product__message_follower_ids +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_template__message_follower_ids +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_res_partner__message_follower_ids +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_sale_order__message_follower_ids +msgid "Followers" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_product__message_channel_ids +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_template__message_channel_ids +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_res_partner__message_channel_ids +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_sale_order__message_channel_ids +msgid "Followers (Channels)" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_product__message_partner_ids +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_template__message_partner_ids +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_res_partner__message_partner_ids +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_sale_order__message_partner_ids +msgid "Followers (Partners)" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,help:connector_woocommerce.field_woocommerce_product_product__activity_type_icon +#: model:ir.model.fields,help:connector_woocommerce.field_woocommerce_product_template__activity_type_icon +#: model:ir.model.fields,help:connector_woocommerce.field_woocommerce_res_partner__activity_type_icon +#: model:ir.model.fields,help:connector_woocommerce.field_woocommerce_sale_order__activity_type_icon +msgid "Font awesome icon e.g. fa-tasks" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_sale_order_line__forecast_expected_date +msgid "Forecast Expected Date" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_product__virtual_available +msgid "Forecast Quantity" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,help:connector_woocommerce.field_woocommerce_product_product__virtual_available +msgid "" +"Forecast quantity (computed as Quantity On Hand - Outgoing + Incoming)\n" +"In a context with a single Stock Location, this includes goods stored in this location, or any of its children.\n" +"In a context with a single Warehouse, this includes goods stored in the Stock Location of this Warehouse, or any of its children.\n" +"Otherwise, this includes goods stored in any Stock Location with 'internal' type." +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,help:connector_woocommerce.field_woocommerce_product_product__free_qty +msgid "" +"Forecast quantity (computed as Quantity On Hand - reserved quantity)\n" +"In a context with a single Stock Location, this includes goods stored in this location, or any of its children.\n" +"In a context with a single Warehouse, this includes goods stored in the Stock Location of this Warehouse, or any of its children.\n" +"Otherwise, this includes goods stored in any Stock Location with 'internal' type." +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_template__virtual_available +msgid "Forecasted Quantity" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,help:connector_woocommerce.field_woocommerce_res_partner__email_formatted +msgid "Format email address \"Name \"" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_res_partner__email_formatted +msgid "Formatted Email" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_sale_order_line__free_qty_today +msgid "Free Qty Today" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_product__free_qty +msgid "Free To Use Quantity " +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_sale_order_line__project_id +msgid "Generated Project" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_sale_order_line__purchase_line_ids +msgid "Generated Purchase Lines" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_sale_order_line__task_id +msgid "Generated Task" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_res_partner__partner_latitude +msgid "Geo Latitude" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_res_partner__partner_longitude +msgid "Geo Longitude" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,help:connector_woocommerce.field_woocommerce_product_product__packaging_ids +#: model:ir.model.fields,help:connector_woocommerce.field_woocommerce_product_template__packaging_ids +msgid "Gives the different ways to package the same product." +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,help:connector_woocommerce.field_woocommerce_product_public_category__sequence +msgid "Gives the sequence order when displaying a list of product categories." +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,help:connector_woocommerce.field_woocommerce_product_product__sequence +#: model:ir.model.fields,help:connector_woocommerce.field_woocommerce_product_template__sequence +msgid "Gives the sequence order when displaying a product list" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_product__hs_code +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_template__hs_code +msgid "HS Code" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_product_product__has_attributes +#: model:ir.model.fields,field_description:connector_woocommerce.field_product_template__has_attributes +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_product__has_attributes +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_template__has_attributes +msgid "Has Attributes" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_sale_order__show_update_pricelist +msgid "Has Pricelist Changed" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_res_partner__has_unreconciled_entries +msgid "Has Unreconciled Entries" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_sale_order__show_json_popover +msgid "Has late picking" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,help:connector_woocommerce.field_woocommerce_product_attribute_value__html_color +msgid "" +"Here you can set a specific HTML color index (e.g. #ff0000) to display the " +"color if the attribute type is 'Color'." +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_product_attachment__id +#: model:ir.model.fields,field_description:connector_woocommerce.field_product_attribute__id +#: model:ir.model.fields,field_description:connector_woocommerce.field_product_attribute_value__id +#: model:ir.model.fields,field_description:connector_woocommerce.field_product_product__id +#: model:ir.model.fields,field_description:connector_woocommerce.field_product_public_category__id +#: model:ir.model.fields,field_description:connector_woocommerce.field_product_template__id +#: model:ir.model.fields,field_description:connector_woocommerce.field_res_partner__id +#: model:ir.model.fields,field_description:connector_woocommerce.field_sale_order__id +#: model:ir.model.fields,field_description:connector_woocommerce.field_sale_order_line__id +#: model:ir.model.fields,field_description:connector_woocommerce.field_stock_picking__id +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_backend__id +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_backend_account_tax__id +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_backend_payment_mode__id +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_backend_tax_class__id +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_binding__id +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_attribute__id +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_attribute_value__id +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_product__id +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_public_category__id +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_template__id +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_res_partner__id +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_sale_order__id +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_sale_order_line__id +msgid "ID" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_res_partner__im_status +msgid "IM Status" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_product__activity_exception_icon +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_template__activity_exception_icon +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_res_partner__activity_exception_icon +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_sale_order__activity_exception_icon +msgid "Icon" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,help:connector_woocommerce.field_woocommerce_product_product__activity_exception_icon +#: model:ir.model.fields,help:connector_woocommerce.field_woocommerce_product_template__activity_exception_icon +#: model:ir.model.fields,help:connector_woocommerce.field_woocommerce_res_partner__activity_exception_icon +#: model:ir.model.fields,help:connector_woocommerce.field_woocommerce_sale_order__activity_exception_icon +msgid "Icon to indicate an exception activity." +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,help:connector_woocommerce.field_woocommerce_res_partner__aeat_identification +msgid "Identification for AEAT purposes" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,help:connector_woocommerce.field_woocommerce_product_product__message_needaction +#: model:ir.model.fields,help:connector_woocommerce.field_woocommerce_product_product__message_unread +#: model:ir.model.fields,help:connector_woocommerce.field_woocommerce_product_template__message_needaction +#: model:ir.model.fields,help:connector_woocommerce.field_woocommerce_product_template__message_unread +#: model:ir.model.fields,help:connector_woocommerce.field_woocommerce_res_partner__message_needaction +#: model:ir.model.fields,help:connector_woocommerce.field_woocommerce_res_partner__message_unread +#: model:ir.model.fields,help:connector_woocommerce.field_woocommerce_sale_order__message_needaction +#: model:ir.model.fields,help:connector_woocommerce.field_woocommerce_sale_order__message_unread +msgid "If checked, new messages require your attention." +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,help:connector_woocommerce.field_woocommerce_product_product__message_has_error +#: model:ir.model.fields,help:connector_woocommerce.field_woocommerce_product_product__message_has_sms_error +#: model:ir.model.fields,help:connector_woocommerce.field_woocommerce_product_template__message_has_error +#: model:ir.model.fields,help:connector_woocommerce.field_woocommerce_product_template__message_has_sms_error +#: model:ir.model.fields,help:connector_woocommerce.field_woocommerce_res_partner__message_has_error +#: model:ir.model.fields,help:connector_woocommerce.field_woocommerce_res_partner__message_has_sms_error +#: model:ir.model.fields,help:connector_woocommerce.field_woocommerce_sale_order__message_has_error +#: model:ir.model.fields,help:connector_woocommerce.field_woocommerce_sale_order__message_has_sms_error +msgid "If checked, some messages have a delivery error." +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,help:connector_woocommerce.field_woocommerce_res_partner__sale_invoicing_grouping_criteria_id +msgid "If empty, company default (if any) or default will be applied." +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,help:connector_woocommerce.field_woocommerce_res_partner__team_id +msgid "" +"If set, this Sales Team will be used for sales and assignments related to " +"this partner" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,help:connector_woocommerce.field_woocommerce_res_partner__is_blacklisted +msgid "" +"If the email address is on the blacklist, the contact won't receive mass " +"mailing anymore, from any list" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,help:connector_woocommerce.field_woocommerce_res_partner__phone_sanitized_blacklisted +msgid "" +"If the sanitized phone number is on the blacklist, the contact won't receive" +" mass mailing sms anymore, from any list" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,help:connector_woocommerce.field_woocommerce_product_product__allow_negative_stock +#: model:ir.model.fields,help:connector_woocommerce.field_woocommerce_product_template__allow_negative_stock +msgid "" +"If this option is not active on this product nor on its product category and" +" that this product is a stockable product, then the validation of the " +"related stock moves will be blocked if the stock level becomes negative with" +" the stock move." +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,help:connector_woocommerce.field_woocommerce_product_product__service_to_purchase +#: model:ir.model.fields,help:connector_woocommerce.field_woocommerce_product_template__service_to_purchase +msgid "" +"If ticked, each time you sell this product through a SO, a RfQ is " +"automatically created to buy the product. Tip: don't forget to set a vendor " +"on the product." +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,help:connector_woocommerce.field_woocommerce_product_product__active +#: model:ir.model.fields,help:connector_woocommerce.field_woocommerce_product_template__active +msgid "" +"If unchecked, it will allow you to hide the product without removing it." +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,help:connector_woocommerce.field_woocommerce_sale_order__pricelist_id +msgid "If you change the pricelist, only newly added lines will be affected." +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,help:connector_woocommerce.field_woocommerce_sale_order__picking_policy +msgid "" +"If you deliver all products at once, the delivery order will be scheduled " +"based on the greatest product lead time. Otherwise, it will be based on the " +"shortest." +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,help:connector_woocommerce.field_woocommerce_res_partner__not_in_mod347 +msgid "" +"If you mark this field, this partner will not be included in any AEAT 347 " +"model report, independently from the total amount of its operations." +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_product__image_1920 +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_public_category__image_1920 +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_template__image_1920 +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_res_partner__image_1920 +msgid "Image" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_product__image_1024 +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_public_category__image_1024 +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_template__image_1024 +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_res_partner__image_1024 +msgid "Image 1024" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_product__image_128 +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_public_category__image_128 +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_template__image_128 +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_res_partner__image_128 +msgid "Image 128" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_product__image_256 +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_public_category__image_256 +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_template__image_256 +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_res_partner__image_256 +msgid "Image 256" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_product__image_512 +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_public_category__image_512 +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_template__image_512 +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_res_partner__image_512 +msgid "Image 512" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_backend__import_sale_order_since_date +msgid "Import Sale Order Since" +msgstr "" + +#. module: connector_woocommerce +#: model_terms:ir.ui.view,arch_db:connector_woocommerce.woocommerce_backend_view_form +msgid "Import Sale Orders Since" +msgstr "" + +#. module: connector_woocommerce +#: model_terms:ir.ui.view,arch_db:connector_woocommerce.woocommerce_backend_view_form +msgid "Import in background" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_product__in_repair_ids +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_template__in_repair_ids +msgid "In Repair" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,help:connector_woocommerce.field_woocommerce_product_product__standard_price +#: model:ir.model.fields,help:connector_woocommerce.field_woocommerce_product_template__standard_price +msgid "" +"In Standard Price & AVCO: value of the product (automatically computed in AVCO).\n" +" In FIFO: value of the next unit that will leave the stock (automatically computed).\n" +" Used to value the product when the purchase cost is not known (e.g. inventory adjustment).\n" +" Used to compute margins on sale orders." +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_product__property_account_income_id +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_template__property_account_income_id +msgid "Income Account" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_product__incoming_qty +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_template__incoming_qty +msgid "Incoming" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_sale_order__incoterm +msgid "Incoterm" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,help:connector_woocommerce.field_woocommerce_res_partner__mobile_blacklisted +msgid "" +"Indicates if a blacklisted sanitized phone number is a mobile number. Helps " +"distinguish which number is blacklisted when there is both a " +"mobile and phone field in a model." +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,help:connector_woocommerce.field_woocommerce_res_partner__phone_blacklisted +msgid "" +"Indicates if a blacklisted sanitized phone number is a phone number. Helps " +"distinguish which number is blacklisted when there is both a " +"mobile and phone field in a model." +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_res_partner__industry_id +msgid "Industry" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_sale_order__insured_ident_cardnum +msgid "Insured identity card number" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_sale_order__insured_name +msgid "Insured person's name" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_product__default_code +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_template__default_code +msgid "Internal Reference" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,help:connector_woocommerce.field_woocommerce_product_product__barcode +msgid "International Article Number used for product identification." +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,help:connector_woocommerce.field_woocommerce_sale_order__incoterm +msgid "" +"International Commercial Terms are a series of predefined commercial terms " +"used in international transactions." +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_product_product__inventory_availability +#: model:ir.model.fields,field_description:connector_woocommerce.field_product_product__variant_inventory_availability +#: model:ir.model.fields,field_description:connector_woocommerce.field_product_template__inventory_availability +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_product__inventory_availability +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_product__variant_inventory_availability +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_template__inventory_availability +msgid "Inventory Availability" +msgstr "Disponibilitat d’inventari" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_product__property_stock_inventory +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_template__property_stock_inventory +msgid "Inventory Location" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_product__valuation +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_template__valuation +msgid "Inventory Valuation" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_res_partner__invoice_warn +msgid "Invoice" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,help:connector_woocommerce.field_woocommerce_res_partner__type +msgid "" +"Invoice & Delivery addresses are used in sales orders. Private addresses are" +" only visible by authorized users." +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_sale_order__partner_invoice_id +msgid "Invoice Address" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_res_partner__invoice_batch_email_partner_id +msgid "Invoice Batch Contact" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_res_partner__invoice_batch_sending_method +msgid "Invoice Batch Sending method" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_sale_order__invoice_count +msgid "Invoice Count" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_sale_order_line__invoice_lines +msgid "Invoice Lines" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_product__invoice_state +msgid "Invoice State" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_sale_order__invoice_status +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_sale_order_line__invoice_status +msgid "Invoice Status" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_sale_order_line__qty_invoiced +msgid "Invoiced Quantity" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_res_partner__invoice_ids +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_sale_order__invoice_ids +msgid "Invoices" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_product__invoice_policy +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_template__invoice_policy +msgid "Invoicing Policy" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_product__message_is_follower +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_template__message_is_follower +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_res_partner__message_is_follower +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_sale_order__message_is_follower +msgid "Is Follower" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_sale_order_line__is_mto +msgid "Is Mto" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_product__is_product_variant +msgid "Is Product Variant" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_res_partner__is_published +msgid "Is Published" +msgstr "Està publicat" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_sale_order__is_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_sale_order__is_woocommerce +msgid "Is Woocommerce" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_res_partner__is_company +msgid "Is a Company" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_sale_order_line__is_delivery +msgid "Is a Delivery" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_sale_order_line__is_service +msgid "Is a Service" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_product__has_configurable_attributes +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_template__has_configurable_attributes +msgid "Is a configurable product" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_sale_order_line__is_downpayment +msgid "Is a down payment" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_template__is_product_variant +msgid "Is a product variant" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_attribute_value__is_custom +msgid "Is custom value" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_sale_order_line__is_expense +msgid "Is expense" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_sale_order__is_expired +msgid "Is expired" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,help:connector_woocommerce.field_woocommerce_sale_order_line__is_expense +msgid "" +"Is true if the sales order line comes from an expense or a vendor bills" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_sale_order__json_popover +msgid "JSON data for the popover widget" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_res_partner__function +msgid "Job Position" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_res_partner__journal_item_count +msgid "Journal Items" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,help:connector_woocommerce.field_woocommerce_product_product__property_account_income_id +#: model:ir.model.fields,help:connector_woocommerce.field_woocommerce_product_template__property_account_income_id +msgid "" +"Keep this field empty to use the default value from the product category." +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,help:connector_woocommerce.field_woocommerce_product_product__property_account_expense_id +#: model:ir.model.fields,help:connector_woocommerce.field_woocommerce_product_template__property_account_expense_id +msgid "" +"Keep this field empty to use the default value from the product category. If" +" anglo-saxon accounting with automated valuation method is configured, the " +"expense account on the product category will be used." +msgstr "" + +#. module: connector_woocommerce +#: code:addons/connector_woocommerce/models/common/tools.py:0 +#, python-format +msgid "Key %s already exists" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_backend__language_id +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_res_partner__lang +msgid "Language" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_product_attachment____last_update +#: model:ir.model.fields,field_description:connector_woocommerce.field_product_attribute____last_update +#: model:ir.model.fields,field_description:connector_woocommerce.field_product_attribute_value____last_update +#: model:ir.model.fields,field_description:connector_woocommerce.field_product_product____last_update +#: model:ir.model.fields,field_description:connector_woocommerce.field_product_public_category____last_update +#: model:ir.model.fields,field_description:connector_woocommerce.field_product_template____last_update +#: model:ir.model.fields,field_description:connector_woocommerce.field_res_partner____last_update +#: model:ir.model.fields,field_description:connector_woocommerce.field_sale_order____last_update +#: model:ir.model.fields,field_description:connector_woocommerce.field_sale_order_line____last_update +#: model:ir.model.fields,field_description:connector_woocommerce.field_stock_picking____last_update +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_backend____last_update +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_backend_account_tax____last_update +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_backend_payment_mode____last_update +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_backend_tax_class____last_update +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_binding____last_update +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_attribute____last_update +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_attribute_value____last_update +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_product____last_update +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_public_category____last_update +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_template____last_update +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_res_partner____last_update +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_sale_order____last_update +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_sale_order_line____last_update +msgid "Last Modified on" +msgstr "Última modificació el " + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_res_partner__last_website_so_id +msgid "Last Online Sales Order" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_product_attachment__write_uid +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_backend__write_uid +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_backend_account_tax__write_uid +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_backend_payment_mode__write_uid +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_backend_tax_class__write_uid +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_attribute__write_uid +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_attribute_value__write_uid +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_product__write_uid +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_public_category__write_uid +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_template__write_uid +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_res_partner__write_uid +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_sale_order__write_uid +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_sale_order_line__write_uid +msgid "Last Updated by" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_product_attachment__write_date +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_backend__write_date +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_backend_account_tax__write_date +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_backend_payment_mode__write_date +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_backend_tax_class__write_date +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_attribute__write_date +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_attribute_value__write_date +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_product__write_date +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_public_category__write_date +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_template__write_date +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_res_partner__write_date +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_sale_order__write_date +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_sale_order_line__write_date +msgid "Last Updated on" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_res_partner__lastname +msgid "Last name" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_res_partner__calendar_last_notif_ack +msgid "Last notification marked as read from base Calendar" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_binding__sync_date +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_attribute__sync_date +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_attribute_value__sync_date +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_product__sync_date +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_public_category__sync_date +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_template__sync_date +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_res_partner__sync_date +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_sale_order__sync_date +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_sale_order_line__sync_date +msgid "Last synchronization date" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,help:connector_woocommerce.field_woocommerce_res_partner__last_time_entries_checked +msgid "" +"Last time the invoices & payments matching was performed for this partner. " +"It is set either if there's not at least an unreconciled debit and an " +"unreconciled credit or if you click the \"Done\" button." +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_res_partner__last_time_entries_checked +msgid "Latest Invoices & Payments Matching Date" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_sale_order_line__customer_lead +msgid "Lead Time" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_attribute__attribute_line_ids +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_attribute_value__pav_attribute_line_ids +msgid "Lines" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_sale_order_line__linked_line_id +msgid "Linked Order Line" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_product__list_price +msgid "List Price" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_product__location_id +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_template__location_id +msgid "Location" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_backend__stock_location_ids +msgid "Locations" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_product__message_main_attachment_id +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_template__message_main_attachment_id +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_res_partner__message_main_attachment_id +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_sale_order__message_main_attachment_id +msgid "Main Attachment" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_product__barcode +msgid "Main barcode" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,help:connector_woocommerce.field_woocommerce_product_product__valuation +#: model:ir.model.fields,help:connector_woocommerce.field_woocommerce_product_template__valuation +msgid "" +"Manual: The accounting entries to value the inventory are not posted automatically.\n" +" Automated: An accounting entry is automatically created to value the inventory when a product enters or leaves the company.\n" +" " +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,help:connector_woocommerce.field_woocommerce_product_product__service_type +#: model:ir.model.fields,help:connector_woocommerce.field_woocommerce_product_template__service_type +msgid "" +"Manually set quantities on order: Invoice based on the manually entered quantity, without creating an analytic account.\n" +"Timesheets on contract: Invoice based on the tracked hours on the related timesheet.\n" +"Create a task and track hours: Create a task on the sales order validation and track the work hours." +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_product__mrp_product_qty +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_template__mrp_product_qty +msgid "Manufactured" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_product__produce_delay +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_template__produce_delay +msgid "Manufacturing Lead Time" +msgstr "" + +#. module: connector_woocommerce +#: model_terms:ir.ui.view,arch_db:connector_woocommerce.woocommerce_backend_view_form +msgid "Mappings" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_sale_order__margin +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_sale_order_line__margin +msgid "Margin" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_sale_order__margin_percent +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_sale_order__oxigen_margin_percent +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_sale_order_line__margin_percent +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_sale_order_line__oxigen_margin_percent +msgid "Margin (%)" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_product__date_from +msgid "Margin Date From" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_product__date_to +msgid "Margin Date To" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_sale_order__medium_id +msgid "Medium" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_res_partner__meeting_ids +msgid "Meetings" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_product__message_has_error +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_template__message_has_error +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_res_partner__message_has_error +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_sale_order__message_has_error +msgid "Message Delivery error" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_res_partner__invoice_warn_msg +msgid "Message for Invoice" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_res_partner__purchase_warn_msg +msgid "Message for Purchase Order" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_product__purchase_line_warn_msg +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_template__purchase_line_warn_msg +msgid "Message for Purchase Order Line" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_res_partner__sale_warn_msg +msgid "Message for Sales Order" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_product__sale_line_warn_msg +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_template__sale_line_warn_msg +msgid "Message for Sales Order Line" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_res_partner__picking_warn_msg +msgid "Message for Stock Picking" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_product__message_ids +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_template__message_ids +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_res_partner__message_ids +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_sale_order__message_ids +msgid "Messages" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_sale_order_line__qty_delivered_method +msgid "Method to update delivered qty" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_product__orderpoint_ids +msgid "Minimum Stock Rules" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,help:connector_woocommerce.field_woocommerce_backend__sync_offset +msgid "" +"Minutes to start the synchronization before(negative)/after(positive) the " +"last one" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_res_partner__mobile +msgid "Mobile" +msgstr "" + +#. module: connector_woocommerce +#: code:addons/connector_woocommerce/models/sale_order/adapter.py:0 +#, python-format +msgid "More than one order found with the same id: %s" +msgstr "" + +#. module: connector_woocommerce +#: code:addons/connector_woocommerce/models/sale_order/importer.py:0 +#, python-format +msgid "More than one product found with sku %s" +msgstr "" + +#. module: connector_woocommerce +#: code:addons/connector_woocommerce/models/product_attribute_value/adapter.py:0 +#, python-format +msgid "More than one product parent found" +msgstr "" + +#. module: connector_woocommerce +#: code:addons/connector_woocommerce/models/product_product/adapter.py:0 +#: code:addons/connector_woocommerce/models/product_template/adapter.py:0 +#, python-format +msgid "More than one simple product found with the same id: %s" +msgstr "" + +#. module: connector_woocommerce +#: code:addons/connector_woocommerce/models/common/tools.py:0 +#, python-format +msgid "Multiple values found for '%s'" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_product__my_activity_date_deadline +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_template__my_activity_date_deadline +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_res_partner__my_activity_date_deadline +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_sale_order__my_activity_date_deadline +msgid "My Activity Deadline" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_product__nos_enabled +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_template__nos_enabled +msgid "NOS" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_backend__name +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_product__name +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_public_category__name +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_template__name +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_res_partner__name +msgid "Name" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_sale_order_line__name_short +msgid "Name Short" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,help:connector_woocommerce.field_woocommerce_sale_order__signed_by +msgid "Name of the person that signed the SO." +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_product__activity_date_deadline +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_template__activity_date_deadline +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_res_partner__activity_date_deadline +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_sale_order__activity_date_deadline +msgid "Next Activity Deadline" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_product__activity_summary +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_template__activity_summary +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_res_partner__activity_summary +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_sale_order__activity_summary +msgid "Next Activity Summary" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_product__activity_type_id +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_template__activity_type_id +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_res_partner__activity_type_id +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_sale_order__activity_type_id +msgid "Next Activity Type" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_product__normal_cost +msgid "Normal Cost" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,help:connector_woocommerce.field_woocommerce_product_product__purchase_gap +msgid "Normal Cost - Total Cost" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_res_partner__email_normalized +msgid "Normalized Email" +msgstr "" + +#. module: connector_woocommerce +#: code:addons/connector_woocommerce/models/common/tools.py:0 +#, python-format +msgid "Not equal operation not supported for non boolean fields" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_res_partner__not_in_mod347 +msgid "Not included in 347 report" +msgstr "" + +#. module: connector_woocommerce +#: code:addons/connector_woocommerce/models/product_public_category/product_public_category.py:0 +#, python-format +msgid "" +"Not supported: It's not possible delete a category '%s' with WooCommerce " +"bindings if it has children with WooCommerce bindings. Delete first the " +"children %s" +msgstr "" + +#. module: connector_woocommerce +#: code:addons/connector_woocommerce/models/product_public_category/product_public_category.py:0 +#, python-format +msgid "" +"Not supported: It's not possible delete more than one category with " +"WooCommerce bindings at the same time" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_res_partner__comment +msgid "Notes" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_product__message_needaction_counter +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_template__message_needaction_counter +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_res_partner__message_needaction_counter +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_sale_order__message_needaction_counter +msgid "Number of Actions" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_res_partner__mandate_count +msgid "Number of Mandates" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_sale_order__purchase_order_count +msgid "Number of Purchase Order Generated" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,help:connector_woocommerce.field_woocommerce_product_product__repair_count +#: model:ir.model.fields,help:connector_woocommerce.field_woocommerce_product_template__repair_count +msgid "Number of Repair Orders where the product appears as a Part" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,help:connector_woocommerce.field_woocommerce_product_product__expiration_time +#: model:ir.model.fields,help:connector_woocommerce.field_woocommerce_product_template__expiration_time +msgid "" +"Number of days after the receipt of the products (from the vendor or in " +"stock after production) after which the goods may become dangerous and must " +"not be consumed. It will be computed on the lot/serial number." +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,help:connector_woocommerce.field_woocommerce_product_product__alert_time +#: model:ir.model.fields,help:connector_woocommerce.field_woocommerce_product_template__alert_time +msgid "" +"Number of days before the Expiration Date after which an alert should be " +"raised on the lot/serial number. It will be computed on the lot/serial " +"number." +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,help:connector_woocommerce.field_woocommerce_product_product__removal_time +#: model:ir.model.fields,help:connector_woocommerce.field_woocommerce_product_template__removal_time +msgid "" +"Number of days before the Expiration Date after which the goods should be " +"removed from the stock. It will be computed on the lot/serial number." +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,help:connector_woocommerce.field_woocommerce_product_product__use_time +#: model:ir.model.fields,help:connector_woocommerce.field_woocommerce_product_template__use_time +msgid "" +"Number of days before the Expiration Date after which the goods starts " +"deteriorating, without being dangerous yet. It will be computed on the " +"lot/serial number." +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,help:connector_woocommerce.field_woocommerce_sale_order_line__customer_lead +msgid "" +"Number of days between the order confirmation and the shipping of the " +"products to the customer" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,help:connector_woocommerce.field_woocommerce_res_partner__reminder_date_before_receipt +msgid "Number of days to send reminder email before the promised receipt date" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_product__message_has_error_counter +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_template__message_has_error_counter +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_res_partner__message_has_error_counter +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_sale_order__message_has_error_counter +msgid "Number of errors" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_sale_order_line__purchase_line_count +msgid "Number of generated purchase items" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,help:connector_woocommerce.field_woocommerce_product_product__message_needaction_counter +#: model:ir.model.fields,help:connector_woocommerce.field_woocommerce_product_template__message_needaction_counter +#: model:ir.model.fields,help:connector_woocommerce.field_woocommerce_res_partner__message_needaction_counter +#: model:ir.model.fields,help:connector_woocommerce.field_woocommerce_sale_order__message_needaction_counter +msgid "Number of messages which requires an action" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,help:connector_woocommerce.field_woocommerce_product_product__message_has_error_counter +#: model:ir.model.fields,help:connector_woocommerce.field_woocommerce_product_template__message_has_error_counter +#: model:ir.model.fields,help:connector_woocommerce.field_woocommerce_res_partner__message_has_error_counter +#: model:ir.model.fields,help:connector_woocommerce.field_woocommerce_sale_order__message_has_error_counter +msgid "Number of messages with delivery error" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_product__pricelist_item_count +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_template__pricelist_item_count +msgid "Number of price rules" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,help:connector_woocommerce.field_woocommerce_backend__page_size +msgid "Number of records to fetch at a time. Max: 100" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,help:connector_woocommerce.field_woocommerce_product_product__message_unread_counter +#: model:ir.model.fields,help:connector_woocommerce.field_woocommerce_product_template__message_unread_counter +#: model:ir.model.fields,help:connector_woocommerce.field_woocommerce_res_partner__message_unread_counter +#: model:ir.model.fields,help:connector_woocommerce.field_woocommerce_sale_order__message_unread_counter +msgid "Number of unread messages" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_res_partner__oficina_contable +msgid "Oficina contable" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,help:connector_woocommerce.field_woocommerce_product_product__service_tracking +#: model:ir.model.fields,help:connector_woocommerce.field_woocommerce_product_template__service_tracking +msgid "" +"On Sales order confirmation, this product can generate a project and/or task. From those, you can track the service you are selling.\n" +" 'In sale order's project': Will use the sale order's configured project if defined or fallback to creating a new project based on the selected template." +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,help:connector_woocommerce.field_woocommerce_product_product__purchase_method +#: model:ir.model.fields,help:connector_woocommerce.field_woocommerce_product_template__purchase_method +msgid "" +"On ordered quantities: Control bills based on ordered quantities.\n" +"On received quantities: Control bills based on received quantities." +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_res_partner__on_time_rate +msgid "On-Time Delivery Rate" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_sale_order__require_payment +msgid "Online Payment" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_sale_order__require_signature +msgid "Online Signature" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_sale_order__only_services +msgid "Only Services" +msgstr "" + +#. module: connector_woocommerce +#: code:addons/connector_woocommerce/models/product_template/export_mapper.py:0 +#, python-format +msgid "" +"Only one tax is allowed per product. Please review taxes in product {%s} %s" +msgstr "" + +#. module: connector_woocommerce +#: code:addons/connector_woocommerce/models/common/tools.py:0 +#, python-format +msgid "Operator %s not supported" +msgstr "" + +#. module: connector_woocommerce +#: code:addons/connector_woocommerce/models/common/tools.py:0 +#, python-format +msgid "Operator '%(OPERATOR)s' only supports tuples or lists, not %(TYPES)s" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_res_partner__opportunity_ids +msgid "Opportunities" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_res_partner__opportunity_count +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_sale_order__opportunity_id +msgid "Opportunity" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_sale_order__sale_order_option_ids +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_sale_order_line__sale_order_option_ids +msgid "Optional Products Lines" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_sale_order_line__option_line_ids +msgid "Options Linked" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_sale_order__date_order +msgid "Order Date" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_sale_order__date_order_tz +msgid "Order Date TZ" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_sale_order__order_line +msgid "Order Lines" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_sale_order__website_order_line +msgid "Order Lines displayed on Website" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,help:connector_woocommerce.field_woocommerce_sale_order__woocommerce_order_line_ids +msgid "Order Lines in WooCommerce sale orders" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,help:connector_woocommerce.field_woocommerce_sale_order__website_order_line +msgid "" +"Order Lines to be displayed on the website. They should not be used for " +"computation purpose." +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_sale_order__name +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_sale_order_line__order_id +msgid "Order Reference" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_sale_order_line__state +msgid "Order Status" +msgstr "" + +#. module: connector_woocommerce +#: model_terms:ir.ui.view,arch_db:connector_woocommerce.woocommerce_backend_view_form +msgid "Order Tax" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_sale_order_line__odoo_id +msgid "Order line" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,help:connector_woocommerce.field_woocommerce_product_product__invoice_policy +#: model:ir.model.fields,help:connector_woocommerce.field_woocommerce_product_template__invoice_policy +msgid "" +"Ordered Quantity: Invoice quantities ordered by the customer.\n" +"Delivered Quantity: Invoice quantities delivered to the customer." +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_sale_order__origin +msgid "Origin" +msgstr "" + +#. module: connector_woocommerce +#: model_terms:ir.ui.view,arch_db:connector_woocommerce.woocommerce_backend_view_form +msgid "Other Info" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_product__outgoing_qty +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_template__outgoing_qty +msgid "Outgoing" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,help:connector_woocommerce.field_woocommerce_res_partner__on_time_rate +msgid "" +"Over the past x days; the number of products received on time divided by the" +" number of ordered products.x is either the System Parameter " +"purchase_stock.on_time_delivery_days or the default 365" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_sale_order_line__product_packaging +msgid "Package" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_res_partner__es_folio +msgid "Page" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_backend__page_size +msgid "Page Size" +msgstr "" + +#. module: connector_woocommerce +#: code:addons/connector_woocommerce/models/backend/backend.py:0 +#, python-format +msgid "Page size must be less than 100" +msgstr "" + +#. module: connector_woocommerce +#: code:addons/connector_woocommerce/models/product_product/adapter.py:0 +#, python-format +msgid "Params required" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_public_category__parent_id +msgid "Parent Category" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_public_category__parent_path +msgid "Parent Path" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_res_partner__parent_name +msgid "Parent name" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_public_category__parents_and_self +msgid "Parents And Self" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.actions.act_window,name:connector_woocommerce.woocommerce_partner_action +msgid "Partner" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_res_partner__same_vat_partner_id +msgid "Partner with same Tax ID" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_res_partner__debit_limit +msgid "Payable Limit" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_backend__payment_mode_ids +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_backend_payment_mode__payment_mode_id +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_sale_order__payment_mode_id +#: model_terms:ir.ui.view,arch_db:connector_woocommerce.woocommerce_backend_view_form +msgid "Payment Mode" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_sale_order__reference +msgid "Payment Ref." +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_sale_order__payment_term_id +msgid "Payment Terms" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_res_partner__payment_token_ids +msgid "Payment Tokens" +msgstr "" + +#. module: connector_woocommerce +#: code:addons/connector_woocommerce/models/sale_order/import_mapper.py:0 +#, python-format +msgid "Payment method '%s' is not defined on backend" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_res_partner__phone +msgid "Phone" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_res_partner__phone_sanitized_blacklisted +msgid "Phone Blacklisted" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_res_partner__plan_to_change_car +msgid "Plan To Change Car" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_sale_order__plate_number +msgid "Plate" +msgstr "" + +#. module: connector_woocommerce +#: model_terms:ir.ui.view,arch_db:connector_woocommerce.connector_product_product_view_form +msgid "" +"Please note that WooCommerce allows only one image per product variant. " +"Additional images will not be exported to WooCommerce and will be ignored." +msgstr "Tingui en compte que WooCommerce només permet una imatge per variant de producte. " +"Les imatges addicionals seran ignorades no s'exportaran a WooCommerce." + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_sale_order__policy_number +msgid "Policy number" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_sale_order__access_url +msgid "Portal Access URL" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,help:connector_woocommerce.field_woocommerce_backend__client_order_ref_prefix +msgid "Prefix to add to the client order reference" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_product__price +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_template__price +msgid "Price" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_product__property_account_creditor_price_difference +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_template__property_account_creditor_price_difference +msgid "Price Difference Account" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_sale_order_line__price_reduce +msgid "Price Reduce" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_sale_order_line__price_reduce_taxexcl +msgid "Price Reduce Tax excl" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_sale_order_line__price_reduce_taxinc +msgid "Price Reduce Tax inc" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,help:connector_woocommerce.field_woocommerce_product_template__list_price +#: model:ir.model.fields,help:connector_woocommerce.field_woocommerce_product_template__lst_price +msgid "Price at which the product is sold to customers." +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_product__pricelist_id +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_template__pricelist_id +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_res_partner__property_product_pricelist +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_sale_order__pricelist_id +msgid "Pricelist" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields.selection,name:connector_woocommerce.selection__sale_order__woocommerce_order_state__processing +#: model:ir.model.fields.selection,name:connector_woocommerce.selection__stock_picking__woocommerce_stock_picking_state__processing +msgid "Processing" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_sale_order__procurement_group_id +msgid "Procurement Group" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model,name:connector_woocommerce.model_product_product +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_product__product_variant_id +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_template__product_variant_id +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_sale_order_line__product_id +msgid "Product" +msgstr "Producte" + +#. module: connector_woocommerce +#: model:ir.actions.act_window,name:connector_woocommerce.woocommerce_product_attribute_action +#: model:ir.model,name:connector_woocommerce.model_product_attribute +msgid "Product Attribute" +msgstr "Atribut del producte" + +#. module: connector_woocommerce +#: model:ir.actions.act_window,name:connector_woocommerce.woocommerce_product_attribute_value_action +msgid "Product Attribute Value" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_product__attribute_line_ids +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_template__attribute_line_ids +msgid "Product Attributes" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_product__categ_id +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_template__categ_id +msgid "Product Category" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_product_product__product_document_attachment_ids +#: model:ir.model.fields,field_description:connector_woocommerce.field_product_template__product_document_attachment_ids +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_product__product_document_attachment_ids +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_template__product_document_attachment_ids +msgid "Product Document Attachment" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_product_product__product_image_attachment_ids +#: model:ir.model.fields,field_description:connector_woocommerce.field_product_template__product_image_attachment_ids +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_product__product_image_attachment_ids +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_template__product_image_attachment_ids +msgid "Product Image Attachment" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_product__packaging_ids +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_template__packaging_ids +msgid "Product Packages" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.actions.act_window,name:connector_woocommerce.woocommerce_product_public_category_action +msgid "Product Public Category" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_sale_order_line__product_qty +msgid "Product Qty" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.actions.act_window,name:connector_woocommerce.woocommerce_product_template_action +#: model:ir.model,name:connector_woocommerce.model_product_template +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_product__product_tmpl_id +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_sale_order_line__product_template_id +msgid "Product Template" +msgstr "Plantilla de producte" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_public_category__product_tmpl_ids +msgid "Product Tmpl" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_product__type +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_template__type +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_sale_order_line__product_type +msgid "Product Type" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_sale_order_line__product_uom_readonly +msgid "Product Uom Readonly" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_attribute__odoo_id +msgid "Product attribute" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_attribute_value__odoo_id +msgid "Product attribute value" +msgstr "" + +#. module: connector_woocommerce +#: code:addons/connector_woocommerce/models/sale_order_line/import_mapper.py:0 +#, python-format +msgid "" +"Product not found in order line. Probably this product has been deleted in " +"WooCommerce." +msgstr "" + +#. module: connector_woocommerce +#: code:addons/connector_woocommerce/models/sale_order/importer.py:0 +#: code:addons/connector_woocommerce/models/sale_order/importer.py:0 +#, python-format +msgid "Product not found on Odoo" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_product__odoo_id +msgid "Product product" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_public_category__odoo_id +msgid "Product public category" +msgstr "" + +#. module: connector_woocommerce +#: model_terms:ir.ui.view,arch_db:connector_woocommerce.woocommerce_backend_view_form +msgid "Product tax" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_template__odoo_id +msgid "Product template" +msgstr "" + +#. module: connector_woocommerce +#: code:addons/connector_woocommerce/models/product_template/adapter.py:0 +#, python-format +msgid "Product type not supported" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_product__property_stock_production +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_template__property_stock_production +msgid "Production Location" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.actions.act_window,name:connector_woocommerce.woocommerce_product_product_action +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_product__product_variant_ids +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_template__product_variant_ids +msgid "Products" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_product__project_id +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_template__project_id +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_sale_order__project_id +msgid "Project" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_product__project_template_id +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_template__project_template_id +msgid "Project Template" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,help:connector_woocommerce.field_woocommerce_sale_order_line__project_id +msgid "Project generated by the sales order item" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_sale_order__project_ids +msgid "Projects" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,help:connector_woocommerce.field_woocommerce_sale_order__project_ids +msgid "Projects used in this sales order." +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_product_product__public_description +#: model:ir.model.fields,field_description:connector_woocommerce.field_product_template__public_description +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_product__public_description +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_template__public_description +msgid "Public Description" +msgstr "Descripció pública" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_product__lst_price +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_template__lst_price +msgid "Public Price" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_product_product__public_short_description +#: model:ir.model.fields,field_description:connector_woocommerce.field_product_template__public_short_description +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_product__public_short_description +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_template__public_short_description +msgid "Public Short Description" +msgstr "Descripció pública curta" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_product__service_to_purchase +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_template__service_to_purchase +msgid "Purchase Automatically" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_res_partner__purchase_contract_count +msgid "Purchase Contracts" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_product__description_purchase +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_template__description_purchase +msgid "Purchase Description" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_product__purchase_gap +msgid "Purchase Gap" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_res_partner__purchase_line_ids +msgid "Purchase Lines" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_res_partner__purchase_warn +msgid "Purchase Order" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_res_partner__purchase_order_count +msgid "Purchase Order Count" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_product__purchase_order_line_ids +msgid "Purchase Order Line" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_product__purchase_line_warn +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_template__purchase_line_warn +msgid "Purchase Order Line Warning" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_product__uom_po_id +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_template__uom_po_id +msgid "Purchase Unit of Measure" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,help:connector_woocommerce.field_woocommerce_sale_order_line__purchase_line_ids +msgid "" +"Purchase line generated by this Sales item on order confirmation, or when " +"the quantity was increased." +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_product__purchased_product_qty +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_template__purchased_product_qty +msgid "Purchased" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_product__purchase_lines_count +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_template__purchase_lines_count +msgid "Purchased products" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_product__putaway_rule_ids +msgid "Putaway Rules" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_sale_order_line__qty_available_today +msgid "Qty Available Today" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_sale_order_line__qty_to_deliver +msgid "Qty To Deliver" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_sale_order_line__product_uom_qty +msgid "Quantity" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_product__qty_available +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_template__qty_available +msgid "Quantity On Hand" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_product__quantity_svl +msgid "Quantity Svl" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,help:connector_woocommerce.field_woocommerce_product_product__incoming_qty +msgid "" +"Quantity of planned incoming products.\n" +"In a context with a single Stock Location, this includes goods arriving to this Location, or any of its children.\n" +"In a context with a single Warehouse, this includes goods arriving to the Stock Location of this Warehouse, or any of its children.\n" +"Otherwise, this includes goods arriving to any Stock Location with 'internal' type." +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,help:connector_woocommerce.field_woocommerce_product_product__outgoing_qty +msgid "" +"Quantity of planned outgoing products.\n" +"In a context with a single Stock Location, this includes goods leaving this Location, or any of its children.\n" +"In a context with a single Warehouse, this includes goods leaving the Stock Location of this Warehouse, or any of its children.\n" +"Otherwise, this includes goods leaving any Stock Location with 'internal' type." +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_product__visible_qty_configurator +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_template__visible_qty_configurator +msgid "Quantity visible in configurator" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_sale_order__sale_order_template_id +msgid "Quotation Template" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_product__rating_ids +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_template__rating_ids +msgid "Rating" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_product__rating_avg +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_template__rating_avg +msgid "Rating Average" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_product__rating_last_feedback +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_template__rating_last_feedback +msgid "Rating Last Feedback" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_product__rating_last_image +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_template__rating_last_image +msgid "Rating Last Image" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_product__rating_last_value +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_template__rating_last_value +msgid "Rating Last Value" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_product__rating_count +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_template__rating_count +msgid "Rating count" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_product__expense_policy +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_template__expense_policy +msgid "Re-Invoice Expenses" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_product__visible_expense_policy +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_template__visible_expense_policy +msgid "Re-Invoice Policy visible" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,help:connector_woocommerce.field_woocommerce_product_product__rating_last_feedback +#: model:ir.model.fields,help:connector_woocommerce.field_woocommerce_product_template__rating_last_feedback +msgid "Reason of the rating" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_res_partner__receipt_reminder_email +msgid "Receipt Reminder" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_product__code +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_res_partner__ref +msgid "Reference" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,help:connector_woocommerce.field_woocommerce_sale_order__origin +msgid "Reference of the document that generated this sales order request." +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_res_partner__parent_id +msgid "Related Company" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_attribute__product_tmpl_ids +msgid "Related Products" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_res_partner__helpdesk_ticket_ids +msgid "Related tickets" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_sale_order_line__remaining_hours_available +msgid "Remaining Hours Available" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_sale_order_line__remaining_hours +msgid "Remaining Hours on SO" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_product__removal_time +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_template__removal_time +msgid "Removal Time" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_product__reordering_max_qty +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_template__reordering_max_qty +msgid "Reordering Max Qty" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_product__reordering_min_qty +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_template__reordering_min_qty +msgid "Reordering Min Qty" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_product__nbr_reordering_rules +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_template__nbr_reordering_rules +msgid "Reordering Rules" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_product__repair_count +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_template__repair_count +msgid "Repairs" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,help:connector_woocommerce.field_woocommerce_sale_order__require_signature +msgid "" +"Request a online signature to the customer in order to confirm orders " +"automatically." +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,help:connector_woocommerce.field_woocommerce_sale_order__require_payment +msgid "" +"Request an online payment to the customer in order to confirm orders " +"automatically." +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_res_partner__odoo_id +msgid "Res Partner" +msgstr "" + +#. module: connector_woocommerce +#: model_terms:ir.ui.view,arch_db:connector_woocommerce.woocommerce_backend_view_form +msgid "Reset To draft Connection" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_product__responsible_id +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_template__responsible_id +msgid "Responsible" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_product__activity_user_id +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_template__activity_user_id +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_res_partner__activity_user_id +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_sale_order__activity_user_id +msgid "Responsible User" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,help:connector_woocommerce.field_woocommerce_product_product__website_id +#: model:ir.model.fields,help:connector_woocommerce.field_woocommerce_product_public_category__website_id +#: model:ir.model.fields,help:connector_woocommerce.field_woocommerce_product_template__website_id +#: model:ir.model.fields,help:connector_woocommerce.field_woocommerce_res_partner__website_id +msgid "Restrict publishing to this website." +msgstr "" + +#. module: connector_woocommerce +#: model_terms:ir.ui.view,arch_db:connector_woocommerce.woocommerce_partner_view_tree +#: model_terms:ir.ui.view,arch_db:connector_woocommerce.woocommerce_product_attribute_value_view_tree +#: model_terms:ir.ui.view,arch_db:connector_woocommerce.woocommerce_product_attribute_view_tree +#: model_terms:ir.ui.view,arch_db:connector_woocommerce.woocommerce_product_product_view_tree +#: model_terms:ir.ui.view,arch_db:connector_woocommerce.woocommerce_product_public_category_view_tree +#: model_terms:ir.ui.view,arch_db:connector_woocommerce.woocommerce_product_template_view_tree +msgid "Resynchronize" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_sale_order__return_service +msgid "Return service" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_product__website_ribbon_id +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_template__website_ribbon_id +msgid "Ribbon" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_sale_order__round_trip_code +msgid "Round trip code" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_sale_order_line__route_id +msgid "Route" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_product__route_ids +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_template__route_ids +msgid "Routes" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_product__has_available_route_ids +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_template__has_available_route_ids +msgid "Routes can be selected on this product" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_product__is_seo_optimized +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_public_category__is_seo_optimized +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_template__is_seo_optimized +msgid "SEO optimized" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_product__sii_exempt_cause +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_template__sii_exempt_cause +msgid "SII Exempt Cause" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_product__message_has_sms_error +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_template__message_has_sms_error +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_res_partner__message_has_sms_error +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_sale_order__message_has_sms_error +msgid "SMS Delivery error" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_res_partner__sage_bind_ids +msgid "Sage Bindings" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_res_partner__sale_contract_count +msgid "Sale Contracts" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_sale_order__odoo_id +msgid "Sale Order" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_res_partner__sale_order_count +msgid "Sale Order Count" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_product__description_sale +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_template__description_sale +msgid "Sales Description" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_product__sales_gap +msgid "Sales Gap" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_res_partner__sale_invoicing_grouping_criteria_id +msgid "Sales Invoicing Grouping Criteria" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model,name:connector_woocommerce.model_sale_order +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_res_partner__sale_order_ids +msgid "Sales Order" +msgstr "Comanda de venda" + +#. module: connector_woocommerce +#: model:ir.model,name:connector_woocommerce.model_sale_order_line +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_product__sale_line_warn +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_template__sale_line_warn +msgid "Sales Order Line" +msgstr "Línia comanda de venda" + +#. module: connector_woocommerce +#: model:ir.model.fields,help:connector_woocommerce.field_woocommerce_sale_order_line__is_service +msgid "" +"Sales Order item should generate a task and/or a project, depending on the " +"product settings." +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_template__list_price +msgid "Sales Price" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_res_partner__team_id +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_sale_order__team_id +msgid "Sales Team" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_res_partner__sale_warn +msgid "Sales Warnings" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_res_partner__user_id +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_sale_order__user_id +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_sale_order_line__salesman_id +msgid "Salesperson" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_res_partner__phone_sanitized +msgid "Sanitized Number" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_sale_order_line__scheduled_date +msgid "Scheduled Date" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_res_partner__es_seccion +msgid "Section" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_sale_order__access_token +msgid "Security Token" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,help:connector_woocommerce.field_woocommerce_product_product__project_id +#: model:ir.model.fields,help:connector_woocommerce.field_woocommerce_product_template__project_id +msgid "" +"Select a billable project on which tasks can be created. This setting must " +"be set for each company." +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,help:connector_woocommerce.field_woocommerce_product_product__project_template_id +#: model:ir.model.fields,help:connector_woocommerce.field_woocommerce_product_template__project_template_id +msgid "" +"Select a billable project to be the skeleton of the new created project when" +" selling the current product. Its stages and tasks will be duplicated." +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,help:connector_woocommerce.field_woocommerce_product_product__product_brand_id +#: model:ir.model.fields,help:connector_woocommerce.field_woocommerce_product_template__product_brand_id +msgid "Select a brand for this product" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,help:connector_woocommerce.field_woocommerce_sale_order__project_id +msgid "Select a non billable project on which tasks can be created." +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,help:connector_woocommerce.field_woocommerce_product_product__categ_id +#: model:ir.model.fields,help:connector_woocommerce.field_woocommerce_product_template__categ_id +msgid "Select category for the current product" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,help:connector_woocommerce.field_woocommerce_res_partner__customer_payment_mode_id +msgid "Select the default payment mode for this customer." +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,help:connector_woocommerce.field_woocommerce_res_partner__supplier_payment_mode_id +msgid "Select the default payment mode for this supplier." +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,help:connector_woocommerce.field_woocommerce_product_product__purchase_line_warn +#: model:ir.model.fields,help:connector_woocommerce.field_woocommerce_product_product__sale_line_warn +#: model:ir.model.fields,help:connector_woocommerce.field_woocommerce_product_template__purchase_line_warn +#: model:ir.model.fields,help:connector_woocommerce.field_woocommerce_product_template__sale_line_warn +#: model:ir.model.fields,help:connector_woocommerce.field_woocommerce_res_partner__invoice_warn +#: model:ir.model.fields,help:connector_woocommerce.field_woocommerce_res_partner__picking_warn +#: model:ir.model.fields,help:connector_woocommerce.field_woocommerce_res_partner__purchase_warn +#: model:ir.model.fields,help:connector_woocommerce.field_woocommerce_res_partner__sale_warn +msgid "" +"Selecting the \"Warning\" option will notify user with the message, " +"Selecting \"Blocking Message\" will throw an exception with the message and " +"block the flow. The Message has to be written in the next field." +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_res_partner__self +msgid "Self" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields.selection,name:connector_woocommerce.selection__product_product__variant_inventory_availability__never +msgid "Sell regardless of inventory" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_res_partner__l10n_es_facturae_sending_code +msgid "Sending method" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_product__seo_name +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_public_category__seo_name +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_template__seo_name +msgid "Seo name" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_product_attachment__sequence +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_attribute__sequence +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_attribute_value__sequence +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_product__sequence +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_public_category__sequence +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_template__sequence +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_sale_order_line__sequence +msgid "Sequence" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_product__service_policy +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_template__service_policy +msgid "Service Invoicing Policy" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_sale_order__is_all_service +msgid "Service Product" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_product__service_tracking +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_template__service_tracking +msgid "Service Tracking" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_sale_order__service_date +msgid "Service date" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_sale_order__service_number +msgid "Service number" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.actions.act_window,name:connector_woocommerce.woocommerce_sale_order_action +msgid "Services" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_res_partner__partner_share +msgid "Share Partner" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_res_partner__es_hoja +msgid "Sheet" +msgstr "" + +#. module: connector_woocommerce +#: model_terms:ir.ui.view,arch_db:connector_woocommerce.woocommerce_backend_view_form +msgid "Shipping" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_sale_order__picking_policy +msgid "Shipping Policy" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_backend__shipping_product_id +msgid "Shipping Product" +msgstr "" + +#. module: connector_woocommerce +#: code:addons/connector_woocommerce/models/sale_order_line/import_mapper.py:0 +#, python-format +msgid "Shipping product not found, please define it on Backend" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_product__show_on_hand_qty_status_button +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_template__show_on_hand_qty_status_button +msgid "Show On Hand Qty Status Button" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields.selection,name:connector_woocommerce.selection__product_product__variant_inventory_availability__always +msgid "Show inventory on website and prevent sales if not enough stock" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_sale_order__signature +msgid "Signature" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,help:connector_woocommerce.field_woocommerce_sale_order__signature +msgid "Signature received through the portal." +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_sale_order__signed_by +msgid "Signed By" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_sale_order__signed_on +msgid "Signed On" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_res_partner__signup_expiration +msgid "Signup Expiration" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_res_partner__signup_token +msgid "Signup Token" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_res_partner__signup_type +msgid "Signup Token Type" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_res_partner__signup_valid +msgid "Signup Token is Valid" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_res_partner__signup_url +msgid "Signup URL" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_res_partner__sii_enabled +msgid "Sii Enabled" +msgstr "" + +#. module: connector_woocommerce +#: code:addons/connector_woocommerce/models/product_template/adapter.py:0 +#, python-format +msgid "Simple products can only have one variant" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_res_partner__sii_simplified_invoice +msgid "Simplified invoices in SII?" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_product__website_size_x +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_template__website_size_x +msgid "Size X" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_product__website_size_y +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_template__website_size_y +msgid "Size Y" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_product_product__slug_name +#: model:ir.model.fields,field_description:connector_woocommerce.field_product_template__slug_name +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_product__slug_name +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_template__slug_name +msgid "Slug Name" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_product__sale_lines_count +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_product__sales_count +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_template__sale_lines_count +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_template__sales_count +msgid "Sold" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_sale_order__source_id +msgid "Source" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,help:connector_woocommerce.field_woocommerce_product_product__can_be_expensed +#: model:ir.model.fields,help:connector_woocommerce.field_woocommerce_product_template__can_be_expensed +msgid "Specify whether the product can be selected in an expense." +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,help:connector_woocommerce.field_woocommerce_product_product__cost_method +#: model:ir.model.fields,help:connector_woocommerce.field_woocommerce_product_template__cost_method +msgid "" +"Standard Price: The products are valued at their standard cost defined on the product.\n" +" Average Cost (AVCO): The products are valued at weighted average cost.\n" +" First In First Out (FIFO): The products are valued supposing those that enter the company first will also leave it first.\n" +" " +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,help:connector_woocommerce.field_woocommerce_product_product__hs_code +#: model:ir.model.fields,help:connector_woocommerce.field_woocommerce_product_template__hs_code +msgid "" +"Standardized code for international shipping and goods declaration. At the " +"moment, only used for the FedEx shipping provider." +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_backend__state +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_res_partner__state_id +msgid "State" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_sale_order__state +msgid "Status" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,help:connector_woocommerce.field_woocommerce_product_product__activity_state +#: model:ir.model.fields,help:connector_woocommerce.field_woocommerce_product_template__activity_state +#: model:ir.model.fields,help:connector_woocommerce.field_woocommerce_res_partner__activity_state +#: model:ir.model.fields,help:connector_woocommerce.field_woocommerce_sale_order__activity_state +msgid "" +"Status based on activities\n" +"Overdue: Due date is already passed\n" +"Today: Activity date is today\n" +"Planned: Future activities." +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_sale_order_line__stock_move_ids +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_product__stock_move_ids +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_sale_order_line__stock_move_ids +msgid "Stock Move" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_sale_order_line__move_ids +msgid "Stock Moves" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_res_partner__picking_warn +msgid "Stock Picking" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_product__stock_quant_ids +msgid "Stock Quant" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_product__stock_valuation_layer_ids +msgid "Stock Valuation Layer" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_res_partner__street +msgid "Street" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_res_partner__street2 +msgid "Street2" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_sale_order_line__price_subtotal +msgid "Subtotal" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,help:connector_woocommerce.field_woocommerce_product_product__alternative_product_ids +#: model:ir.model.fields,help:connector_woocommerce.field_woocommerce_product_template__alternative_product_ids +msgid "" +"Suggest alternatives to your customer (upsell strategy). Those products show" +" up on the product page." +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,help:connector_woocommerce.field_woocommerce_product_product__normal_cost +msgid "Sum of Multiplication of Cost price and quantity of Vendor Bills" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,help:connector_woocommerce.field_woocommerce_product_product__turnover +msgid "" +"Sum of Multiplication of Invoice price and quantity of Customer Invoices" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,help:connector_woocommerce.field_woocommerce_product_product__total_cost +msgid "Sum of Multiplication of Invoice price and quantity of Vendor Bills " +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,help:connector_woocommerce.field_woocommerce_product_product__sale_expected +msgid "" +"Sum of Multiplication of Sale Catalog price and quantity of Customer " +"Invoices" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,help:connector_woocommerce.field_woocommerce_product_product__sale_num_invoiced +msgid "Sum of Quantity in Customer Invoices" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,help:connector_woocommerce.field_woocommerce_product_product__purchase_num_invoiced +msgid "Sum of Quantity in Vendor Bills" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_res_partner__property_purchase_currency_id +msgid "Supplier Currency" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_res_partner__supplier_payment_mode_id +msgid "Supplier Payment Mode" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_res_partner__supplier_rank +msgid "Supplier Rank" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_backend__sync_offset +msgid "Sync Offset" +msgstr "" + +#. module: connector_woocommerce +#: model_terms:ir.ui.view,arch_db:connector_woocommerce.woocommerce_backend_view_form +msgid "Synchronizers" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_res_partner__category_id +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_sale_order__tag_ids +msgid "Tags" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,help:connector_woocommerce.field_woocommerce_sale_order_line__task_id +msgid "Task generated by the sales order item" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_res_partner__task_ids +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_sale_order__tasks_count +msgid "Tasks" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_sale_order__tasks_ids +msgid "Tasks associated to this sale" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_backend__tax_class_ids +msgid "Tax Class" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_res_partner__vat +msgid "Tax ID" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_backend__tax_map_ids +msgid "Tax Mapping" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_sale_order__amount_by_group +msgid "Tax amount by group" +msgstr "" + +#. module: connector_woocommerce +#: code:addons/connector_woocommerce/models/product_template/export_mapper.py:0 +#, python-format +msgid "Tax class is not defined on backend for tax %s" +msgstr "" + +#. module: connector_woocommerce +#: code:addons/connector_woocommerce/models/sale_order_line/import_mapper.py:0 +#, python-format +msgid "Tax rate %s not found in backend mapping." +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_sale_order__amount_tax +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_sale_order_line__tax_id +msgid "Taxes" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,help:connector_woocommerce.field_woocommerce_sale_order__show_update_pricelist +msgid "" +"Technical Field, True if the pricelist was changed;\n" +" this will then display a recomputation button" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,help:connector_woocommerce.field_woocommerce_product_product__valid_product_template_attribute_line_ids +#: model:ir.model.fields,help:connector_woocommerce.field_woocommerce_product_template__valid_product_template_attribute_line_ids +msgid "Technical compute" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,help:connector_woocommerce.field_woocommerce_sale_order_line__display_type +msgid "Technical field for UX purpose." +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,help:connector_woocommerce.field_woocommerce_product_product__pricelist_id +#: model:ir.model.fields,help:connector_woocommerce.field_woocommerce_product_template__pricelist_id +msgid "" +"Technical field. Used for searching on pricelists, not stored in database." +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,help:connector_woocommerce.field_woocommerce_product_product__purchase_order_line_ids +#: model:ir.model.fields,help:connector_woocommerce.field_woocommerce_product_product__stock_move_ids +#: model:ir.model.fields,help:connector_woocommerce.field_woocommerce_product_product__stock_quant_ids +msgid "Technical: used to compute quantities." +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_sale_order__note +msgid "Terms and conditions" +msgstr "" + +#. module: connector_woocommerce +#: code:addons/connector_woocommerce/models/sale_order/importer.py:0 +#, python-format +msgid "The Order %s is already imported -> Update not allowed" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,help:connector_woocommerce.field_woocommerce_res_partner__vat +msgid "" +"The Tax Identification Number. Complete it if the contact is subjected to " +"government taxes. Used in some legal statements." +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,help:connector_woocommerce.field_woocommerce_sale_order__amount_delivery +msgid "The amount without tax." +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,help:connector_woocommerce.field_woocommerce_sale_order__analytic_account_id +msgid "The analytic account related to a sales order." +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,help:connector_woocommerce.field_woocommerce_product_attribute_value__attribute_id +msgid "" +"The attribute cannot be changed once the value is used on at least one " +"product." +msgstr "" + +#. module: connector_woocommerce +#: code:addons/connector_woocommerce/models/product_public_category/export_mapper.py:0 +#, python-format +msgid "" +"The category '%s' has a double space in the name. WooCommerce only allow one" +" space. Please, remove it before export." +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,help:connector_woocommerce.field_woocommerce_product_attribute__display_type +#: model:ir.model.fields,help:connector_woocommerce.field_woocommerce_product_attribute_value__display_type +msgid "The display type used in the Product Configurator." +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,help:connector_woocommerce.field_woocommerce_res_partner__property_account_position_id +msgid "" +"The fiscal position determines the taxes/accounts used for this contact." +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,help:connector_woocommerce.field_woocommerce_product_product__website_url +#: model:ir.model.fields,help:connector_woocommerce.field_woocommerce_product_template__website_url +#: model:ir.model.fields,help:connector_woocommerce.field_woocommerce_res_partner__website_url +msgid "The full URL to access the document through the website." +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,help:connector_woocommerce.field_woocommerce_res_partner__user_id +msgid "The internal user in charge of this contact." +msgstr "" + +#. module: connector_woocommerce +#: code:addons/connector_woocommerce/models/product_template/export_mapper.py:0 +#, python-format +msgid "" +"The inventory availability '%s' is not supported by WooCommerce. Review " +"product template {%s}%s." +msgstr "" + +#. module: connector_woocommerce +#: code:addons/connector_woocommerce/models/product_product/export_mapper.py:0 +#, python-format +msgid "" +"The inventory availability '%s' is not supported by WooCommerce. Review " +"product variant {%s}%s." +msgstr "" + +#. module: connector_woocommerce +#: code:addons/connector_woocommerce/models/sale_order/import_mapper.py:0 +#, python-format +msgid "The partner %s, with id:%s is archived, please, enable it" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,help:connector_woocommerce.field_woocommerce_res_partner__has_unreconciled_entries +msgid "" +"The partner has at least one unreconciled debit and credit since last time " +"the invoices & payments matching was performed." +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,help:connector_woocommerce.field_woocommerce_sale_order__reference +msgid "The payment communication of this sale order." +msgstr "" + +#. module: connector_woocommerce +#: code:addons/connector_woocommerce/models/sale_order/importer.py:0 +#: code:addons/connector_woocommerce/models/sale_order/importer.py:0 +#, python-format +msgid "" +"The product '%s' in the order has been deleted on WooCommerce. This order " +"cannot be imported." +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,help:connector_woocommerce.field_woocommerce_product_product__public_categ_ids +#: model:ir.model.fields,help:connector_woocommerce.field_woocommerce_product_template__public_categ_ids +msgid "" +"The product will be available in each mentioned eCommerce category. Go to " +"Shop > Customize and enable 'eCommerce categories' to view all eCommerce " +"categories." +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,help:connector_woocommerce.field_woocommerce_sale_order__currency_rate +msgid "" +"The rate of the currency to the currency of rate 1 applicable at the date of" +" the order" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,help:connector_woocommerce.field_woocommerce_product_product__lst_price +msgid "" +"The sale price is managed from the product template. Click on the 'Configure" +" Variants' button to set the extra attribute prices." +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,help:connector_woocommerce.field_woocommerce_res_partner__property_stock_customer +msgid "" +"The stock location used as destination when sending goods to this contact." +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,help:connector_woocommerce.field_woocommerce_res_partner__property_stock_supplier +msgid "" +"The stock location used as source when receiving goods from this contact." +msgstr "" + +#. module: connector_woocommerce +#: code:addons/connector_woocommerce/models/sale_order/adapter.py:0 +#, python-format +msgid "There are more than one partner with the same name" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,help:connector_woocommerce.field_woocommerce_product_product__property_account_creditor_price_difference +#: model:ir.model.fields,help:connector_woocommerce.field_woocommerce_product_template__property_account_creditor_price_difference +msgid "" +"This account is used in automated inventory valuation to record the price " +"difference between a purchase order and its related vendor bill when " +"validating this vendor bill." +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,help:connector_woocommerce.field_woocommerce_res_partner__property_account_payable_id +msgid "" +"This account will be used instead of the default one as the payable account " +"for the current partner" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,help:connector_woocommerce.field_woocommerce_res_partner__property_account_receivable_id +msgid "" +"This account will be used instead of the default one as the receivable " +"account for the current partner" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,help:connector_woocommerce.field_woocommerce_res_partner__property_purchase_currency_id +msgid "" +"This currency will be used, instead of the default one, for purchases from " +"the current partner" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,help:connector_woocommerce.field_woocommerce_backend__tz +msgid "This field is used to define in which timezone the backend will work." +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,help:connector_woocommerce.field_woocommerce_backend__chunk_size +msgid "" +"This field is used to define the chunk size to import from the backend." +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,help:connector_woocommerce.field_woocommerce_res_partner__email_normalized +msgid "" +"This field is used to search on email address as the primary email field can" +" contain more than strictly an email address." +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,help:connector_woocommerce.field_woocommerce_sale_order__campaign_id +msgid "" +"This is a name that helps you keep track of your different campaign efforts," +" e.g. Fall_Drive, Christmas_Special" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,help:connector_woocommerce.field_woocommerce_sale_order__commitment_date +msgid "" +"This is the delivery date promised to the customer. If set, the delivery " +"order will be scheduled based on this date rather than product lead times." +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,help:connector_woocommerce.field_woocommerce_sale_order__medium_id +msgid "This is the method of delivery, e.g. Postcard, Email, or Banner Ad" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,help:connector_woocommerce.field_woocommerce_sale_order__source_id +msgid "" +"This is the source of the link, e.g. Search Engine, another domain, or name " +"of email list" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,help:connector_woocommerce.field_woocommerce_product_product__price_extra +msgid "This is the sum of the extra price of all attributes" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,help:connector_woocommerce.field_woocommerce_res_partner__property_supplier_payment_term_id +msgid "" +"This payment term will be used instead of the default one for purchase " +"orders and vendor bills" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,help:connector_woocommerce.field_woocommerce_res_partner__property_payment_term_id +msgid "" +"This payment term will be used instead of the default one for sales orders " +"and customer invoices" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,help:connector_woocommerce.field_woocommerce_res_partner__property_product_pricelist +msgid "" +"This pricelist will be used, instead of the default one, for sales to the " +"current partner" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,help:connector_woocommerce.field_woocommerce_product_product__property_stock_production +#: model:ir.model.fields,help:connector_woocommerce.field_woocommerce_product_template__property_stock_production +msgid "" +"This stock location will be used, instead of the default one, as the source " +"location for stock moves generated by manufacturing orders." +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,help:connector_woocommerce.field_woocommerce_product_product__property_stock_inventory +#: model:ir.model.fields,help:connector_woocommerce.field_woocommerce_product_template__property_stock_inventory +msgid "" +"This stock location will be used, instead of the default one, as the source " +"location for stock moves generated when you do an inventory." +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,help:connector_woocommerce.field_woocommerce_product_product__responsible_id +#: model:ir.model.fields,help:connector_woocommerce.field_woocommerce_product_template__responsible_id +msgid "" +"This user will be responsible of the next activities related to logistic " +"operations for this product." +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,help:connector_woocommerce.field_woocommerce_res_partner__default_supplierinfo_discount +#: model:ir.model.fields,help:connector_woocommerce.field_woocommerce_res_partner__default_supplierinfo_discount2 +#: model:ir.model.fields,help:connector_woocommerce.field_woocommerce_res_partner__default_supplierinfo_discount3 +msgid "" +"This value will be used as the default one, for each new supplierinfo line " +"depending on that supplier." +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,help:connector_woocommerce.field_woocommerce_sale_order__timesheet_encode_uom_id +msgid "" +"This will set the unit of measure used to encode timesheet. This will simply provide tools\n" +" and widgets to help the encoding. All reporting will still be expressed in hours (default value)." +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_res_partner__helpdesk_ticket_active_count +msgid "Ticket active count" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_res_partner__helpdesk_ticket_count +msgid "Ticket count" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_res_partner__helpdesk_ticket_count_string +msgid "Tickets" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_sale_order__timesheet_encode_uom_id +msgid "Timesheet Encoding Unit" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_sale_order__timesheet_total_duration +msgid "Timesheet Total Duration" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_sale_order__timesheet_count +msgid "Timesheet activities" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_sale_order__timesheet_ids +msgid "Timesheet activities associated to this sale" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_backend__tz +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_res_partner__tz +msgid "Timezone" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_res_partner__tz_offset +msgid "Timezone offset" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_res_partner__title +msgid "Title" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_sale_order_line__qty_to_invoice +msgid "To Invoice Quantity" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_res_partner__to_review +msgid "To review" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_sale_order__amount_total +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_sale_order_line__price_total +msgid "Total" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_product__total_cost +msgid "Total Cost" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_res_partner__total_invoiced +msgid "Total Invoiced" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_product__total_margin +msgid "Total Margin" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_product__total_margin_rate +msgid "Total Margin Rate(%)" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_res_partner__debit +msgid "Total Payable" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_sale_order__total_purchase_price +msgid "Total Purchase Price" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_res_partner__credit +msgid "Total Receivable" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_sale_order_line__price_tax +msgid "Total Tax" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,help:connector_woocommerce.field_woocommerce_res_partner__credit +msgid "Total amount this customer owes you." +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,help:connector_woocommerce.field_woocommerce_res_partner__debit +msgid "Total amount you have to pay to this vendor." +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,help:connector_woocommerce.field_woocommerce_product_product__total_margin_rate +msgid "Total margin * 100 / Turnover" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,help:connector_woocommerce.field_woocommerce_sale_order__timesheet_total_duration +msgid "" +"Total recorded duration, expressed in the encoding UoM, and rounded to the " +"unit" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_product__service_type +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_template__service_type +msgid "Track Service" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_product__tracking +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_template__tracking +msgid "Tracking" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_res_partner__tracking_emails_count +msgid "Tracking Emails Count" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_res_partner__comercial +msgid "Trade name" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_sale_order__transaction_ids +msgid "Transactions" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model,name:connector_woocommerce.model_stock_picking +msgid "Transfer" +msgstr "Transferència" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_sale_order__picking_ids +msgid "Transfers" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_product__turnover +msgid "Turnover" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,help:connector_woocommerce.field_woocommerce_product_product__total_margin +msgid "Turnover - Standard price" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_sale_order__type_name +msgid "Type Name" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,help:connector_woocommerce.field_woocommerce_product_product__activity_exception_decoration +#: model:ir.model.fields,help:connector_woocommerce.field_woocommerce_product_template__activity_exception_decoration +#: model:ir.model.fields,help:connector_woocommerce.field_woocommerce_res_partner__activity_exception_decoration +#: model:ir.model.fields,help:connector_woocommerce.field_woocommerce_sale_order__activity_exception_decoration +msgid "Type of the exception activity on record." +msgstr "" + +#. module: connector_woocommerce +#: code:addons/connector_woocommerce/models/common/tools.py:0 +#, python-format +msgid "Type {} not supported for operator {}" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_res_partner__unidad_tramitadora +msgid "Unidad tramitadora" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_sale_order_line__price_unit +msgid "Unit Price" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_product__uom_id +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_template__uom_id +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_sale_order_line__product_uom +msgid "Unit of Measure" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_product__uom_name +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_template__uom_name +msgid "Unit of Measure Name" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_product__message_unread +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_template__message_unread +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_res_partner__message_unread +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_sale_order__message_unread +msgid "Unread Messages" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_product__message_unread_counter +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_template__message_unread_counter +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_res_partner__message_unread_counter +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_sale_order__message_unread_counter +msgid "Unread Messages Counter" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_sale_order__amount_untaxed +msgid "Untaxed Amount" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_sale_order_line__untaxed_amount_to_invoice +msgid "Untaxed Amount To Invoice" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_sale_order_line__untaxed_amount_invoiced +msgid "Untaxed Invoiced Amount" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_backend__url +msgid "Url" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_backend__use_main_product_image +msgid "Use Main Product Image" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,help:connector_woocommerce.field_woocommerce_res_partner__barcode +msgid "Use a barcode to identify this contact." +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields.selection,name:connector_woocommerce.selection__woocommerce_backend__use_main_product_image__first +msgid "Use main image as first image" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields.selection,name:connector_woocommerce.selection__woocommerce_backend__use_main_product_image__last +msgid "Use main image as last image" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_attribute__is_used_on_products +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_attribute_value__is_used_on_products +msgid "Used on Products" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,help:connector_woocommerce.field_woocommerce_res_partner__aeat_identification_type +msgid "" +"Used to specify an identification type to send to SII. Normally for sending " +"national and export invoices to SII where the customer country is not Spain," +" it would calculate an identification type of 04 if the VAT field is filled " +"and 06 if it was not. This field is to specify types of 03 through 05, in " +"the event that the customer doesn't identify with a foreign VAT and instead " +"with their passport or residential certificate. If there is no value it will" +" work as before." +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_res_partner__user_ids +msgid "Users" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,help:connector_woocommerce.field_woocommerce_res_partner__currency_id +msgid "Utility field to express amount currency" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_product__valid_product_template_attribute_line_ids +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_template__valid_product_template_attribute_line_ids +msgid "Valid Product Attribute Lines" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_attribute_value__name +msgid "Value" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_product__value_svl +msgid "Value Svl" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_attribute__value_ids +msgid "Values" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_product__image_variant_1920 +msgid "Variant Image" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_product__image_variant_1024 +msgid "Variant Image 1024" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_product__image_variant_128 +msgid "Variant Image 128" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_product__image_variant_256 +msgid "Variant Image 256" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_product__image_variant_512 +msgid "Variant Image 512" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_product__price_extra +msgid "Variant Price Extra" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_product_product__variant_public_description +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_product__variant_public_description +msgid "Variant Public Description" +msgstr "Descripció Pública de la Variant" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_product__variant_description_sale +msgid "Variant Sale Description" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_product__variant_seller_ids +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_template__variant_seller_ids +msgid "Variant Seller" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_attribute__create_variant +msgid "Variants Creation Mode" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_res_partner__property_stock_supplier +msgid "Vendor Location" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_res_partner__property_supplier_payment_term_id +msgid "Vendor Payment Terms" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_product__supplier_taxes_id +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_template__supplier_taxes_id +msgid "Vendor Taxes" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_product__seller_ids +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_template__seller_ids +msgid "Vendors" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_backend__verify_ssl +msgid "Verify Ssl" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_backend__version +msgid "Version" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_sale_order_line__virtual_available_at_date +msgid "Virtual Available At Date" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_product__website_published +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_template__website_published +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_res_partner__website_published +msgid "Visible on current website" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_res_partner__visitor_ids +msgid "Visitors" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_product__volume +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_template__volume +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_res_partner__es_tomo +msgid "Volume" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_product__volume_uom_name +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_template__volume_uom_name +msgid "Volume unit of measure label" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_product__warehouse_id +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_template__warehouse_id +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_sale_order__warehouse_id +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_sale_order_line__warehouse_id +msgid "Warehouse" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_sale_order__warning_stock +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_sale_order_line__warning_stock +msgid "Warning" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_product__website_id +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_public_category__website_id +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_template__website_id +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_res_partner__website_id +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_sale_order__website_id +msgid "Website" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_res_partner__website +msgid "Website Link" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_product__website_message_ids +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_template__website_message_ids +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_res_partner__website_message_ids +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_sale_order__website_message_ids +msgid "Website Messages" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_product_product__website_name +#: model:ir.model.fields,field_description:connector_woocommerce.field_product_template__website_name +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_product__website_name +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_template__website_name +msgid "Website Name" +msgstr "Nom del lloc web" + +#. module: connector_woocommerce +#: model:ir.model,name:connector_woocommerce.model_product_public_category +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_product__public_categ_ids +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_template__public_categ_ids +msgid "Website Product Category" +msgstr "Categoria web del producte" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_product__website_sequence +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_template__website_sequence +msgid "Website Sequence" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_product__website_url +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_template__website_url +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_res_partner__website_url +msgid "Website URL" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,help:connector_woocommerce.field_woocommerce_product_product__website_message_ids +#: model:ir.model.fields,help:connector_woocommerce.field_woocommerce_product_template__website_message_ids +#: model:ir.model.fields,help:connector_woocommerce.field_woocommerce_res_partner__website_message_ids +#: model:ir.model.fields,help:connector_woocommerce.field_woocommerce_sale_order__website_message_ids +msgid "Website communication history" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_product__website_meta_description +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_public_category__website_meta_description +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_template__website_meta_description +msgid "Website meta description" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_product__website_meta_keywords +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_public_category__website_meta_keywords +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_template__website_meta_keywords +msgid "Website meta keywords" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_product__website_meta_title +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_public_category__website_meta_title +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_template__website_meta_title +msgid "Website meta title" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_product__website_meta_og_img +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_public_category__website_meta_og_img +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_template__website_meta_og_img +msgid "Website opengraph image" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,help:connector_woocommerce.field_woocommerce_sale_order__website_id +msgid "Website through which this order was placed." +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_product__weight +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_template__weight +msgid "Weight" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_product__weight_uom_name +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_template__weight_uom_name +msgid "Weight unit of measure label" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,help:connector_woocommerce.field_woocommerce_res_partner__tz +msgid "" +"When printing documents and exporting/importing data, time values are computed according to this timezone.\n" +"If the timezone is not set, UTC (Coordinated Universal Time) is used.\n" +"Anywhere else, time values are computed according to the time offset of your web client." +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,help:connector_woocommerce.field_woocommerce_product_product__use_expiration_date +#: model:ir.model.fields,help:connector_woocommerce.field_woocommerce_product_template__use_expiration_date +msgid "" +"When this box is ticked, you have the possibility to specify dates to manage" +" product expiration, on the product and on the corresponding lot/serial " +"numbers" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.ui.menu,name:connector_woocommerce.woocommerce_menu_root +#: model_terms:ir.ui.view,arch_db:connector_woocommerce.connector_sale_order_view_form +#: model_terms:ir.ui.view,arch_db:connector_woocommerce.woocommerce_sale_order_view_filter +msgid "WooCommerce" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.actions.server,name:connector_woocommerce.ir_cron_woocommerce_export_product_attribute_ir_actions_server +#: model:ir.cron,cron_name:connector_woocommerce.ir_cron_woocommerce_export_product_attribute +#: model:ir.cron,name:connector_woocommerce.ir_cron_woocommerce_export_product_attribute +msgid "WooCommerce - Export Product Attribute" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.actions.server,name:connector_woocommerce.ir_cron_woocommerce_export_product_ir_actions_server +#: model:ir.cron,cron_name:connector_woocommerce.ir_cron_woocommerce_export_product +#: model:ir.cron,name:connector_woocommerce.ir_cron_woocommerce_export_product +msgid "WooCommerce - Export Product Product" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.actions.server,name:connector_woocommerce.ir_cron_woocommerce_export_product_attribute_value_ir_actions_server +#: model:ir.cron,cron_name:connector_woocommerce.ir_cron_woocommerce_export_product_attribute_value +#: model:ir.cron,name:connector_woocommerce.ir_cron_woocommerce_export_product_attribute_value +msgid "WooCommerce - Export Product Product Attribute Value" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.actions.server,name:connector_woocommerce.ir_cron_woocommerce_export_product_public_category_ir_actions_server +#: model:ir.cron,cron_name:connector_woocommerce.ir_cron_woocommerce_export_product_public_category +#: model:ir.cron,name:connector_woocommerce.ir_cron_woocommerce_export_product_public_category +msgid "WooCommerce - Export Product Public Category" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.actions.server,name:connector_woocommerce.ir_cron_woocommerce_export_product_template_ir_actions_server +#: model:ir.cron,cron_name:connector_woocommerce.ir_cron_woocommerce_export_product_template +#: model:ir.cron,name:connector_woocommerce.ir_cron_woocommerce_export_product_template +msgid "WooCommerce - Export Product Template" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.actions.server,name:connector_woocommerce.ir_cron_woocommerce_export_sale_order_ir_actions_server +#: model:ir.cron,cron_name:connector_woocommerce.ir_cron_woocommerce_export_sale_order +#: model:ir.cron,name:connector_woocommerce.ir_cron_woocommerce_export_sale_order +msgid "WooCommerce - Export Sale Orders" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.actions.server,name:connector_woocommerce.ir_cron_woocommerce_import_sale_order_ir_actions_server +#: model:ir.cron,cron_name:connector_woocommerce.ir_cron_woocommerce_import_sale_order +#: model:ir.cron,name:connector_woocommerce.ir_cron_woocommerce_import_sale_order +msgid "WooCommerce - Import Sale Orders" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model,name:connector_woocommerce.model_woocommerce_backend +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_binding__backend_id +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_attribute__backend_id +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_attribute_value__backend_id +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_product__backend_id +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_public_category__backend_id +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_template__backend_id +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_res_partner__backend_id +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_sale_order__backend_id +msgid "WooCommerce Backend" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model,name:connector_woocommerce.model_woocommerce_backend_account_tax +msgid "WooCommerce Backend Account Tax" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model,name:connector_woocommerce.model_woocommerce_backend_payment_mode +msgid "WooCommerce Backend Payment Mode" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model,name:connector_woocommerce.model_woocommerce_backend_tax_class +msgid "WooCommerce Backend Tax Class" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.actions.act_window,name:connector_woocommerce.woocommerce_backend_action +msgid "WooCommerce Backends" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model,name:connector_woocommerce.model_woocommerce_binding +msgid "WooCommerce Binding" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_product_attribute__woocommerce_bind_ids +#: model:ir.model.fields,field_description:connector_woocommerce.field_product_attribute_value__woocommerce_bind_ids +#: model:ir.model.fields,field_description:connector_woocommerce.field_product_product__woocommerce_bind_ids +#: model:ir.model.fields,field_description:connector_woocommerce.field_product_public_category__woocommerce_bind_ids +#: model:ir.model.fields,field_description:connector_woocommerce.field_product_template__woocommerce_bind_ids +#: model:ir.model.fields,field_description:connector_woocommerce.field_res_partner__woocommerce_bind_ids +#: model:ir.model.fields,field_description:connector_woocommerce.field_res_users__woocommerce_bind_ids +#: model:ir.model.fields,field_description:connector_woocommerce.field_sage_res_partner__woocommerce_bind_ids +#: model:ir.model.fields,field_description:connector_woocommerce.field_sale_order__woocommerce_bind_ids +#: model:ir.model.fields,field_description:connector_woocommerce.field_sale_order_line__woocommerce_bind_ids +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_attribute__woocommerce_bind_ids +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_attribute_value__woocommerce_bind_ids +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_product__woocommerce_bind_ids +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_public_category__woocommerce_bind_ids +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_template__woocommerce_bind_ids +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_res_partner__woocommerce_bind_ids +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_sale_order__woocommerce_bind_ids +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_sale_order_line__woocommerce_bind_ids +#: model_terms:ir.ui.view,arch_db:connector_woocommerce.connector_product_attribute_view_form +#: model_terms:ir.ui.view,arch_db:connector_woocommerce.connector_product_product_view_form +#: model_terms:ir.ui.view,arch_db:connector_woocommerce.connector_product_template_view_form +#: model_terms:ir.ui.view,arch_db:connector_woocommerce.connector_res_partner_view_form +#: model_terms:ir.ui.view,arch_db:connector_woocommerce.connector_sale_order_view_form +#: model_terms:ir.ui.view,arch_db:connector_woocommerce.connector_woocommerce_product_public_category_view_form +msgid "WooCommerce Bindings" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,help:connector_woocommerce.field_woocommerce_backend__consumer_key +msgid "WooCommerce Consumer Key" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_attribute__woocommerce_idattribute +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_attribute_value__woocommerce_idattribute +msgid "WooCommerce ID Attribute" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_attribute_value__woocommerce_idattributevalue +msgid "WooCommerce ID Attribute Value" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_product__woocommerce_idparent +msgid "WooCommerce ID Parent" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_product__woocommerce_idproduct +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_template__woocommerce_idproduct +msgid "WooCommerce ID Product" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_public_category__woocommerce_idpubliccategory +msgid "WooCommerce ID Public Category" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_res_partner__woocommerce_idrespartner +msgid "WooCommerce ID Res Partner" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_sale_order__woocommerce_idsaleorder +msgid "WooCommerce ID Sale Order" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_sale_order_line__woocommerce_order_id +msgid "WooCommerce Order" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_sale_order_line__woocommerce_order_line_id +msgid "WooCommerce Order Line ID" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_sale_order__woocommerce_order_line_ids +msgid "WooCommerce Order Line ids" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_backend_payment_mode__woocommerce_payment_mode +msgid "WooCommerce Payment Mode" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model,name:connector_woocommerce.model_woocommerce_product_attribute +msgid "WooCommerce Product Attribute Binding" +msgstr "" + +#. module: connector_woocommerce +#: model_terms:ir.ui.view,arch_db:connector_woocommerce.woocommerce_product_attribute_value_view_form +msgid "WooCommerce Product Attribute Value" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model,name:connector_woocommerce.model_woocommerce_product_attribute_value +msgid "WooCommerce Product Attribute Value Binding" +msgstr "" + +#. module: connector_woocommerce +#: model_terms:ir.ui.view,arch_db:connector_woocommerce.woocommerce_product_product_view_form +msgid "WooCommerce Product Product" +msgstr "" + +#. module: connector_woocommerce +#: model_terms:ir.ui.view,arch_db:connector_woocommerce.woocommerce_product_public_category_view_form +msgid "WooCommerce Product Public Category" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model,name:connector_woocommerce.model_woocommerce_product_public_category +msgid "WooCommerce Product Public Category Binding" +msgstr "" + +#. module: connector_woocommerce +#: model_terms:ir.ui.view,arch_db:connector_woocommerce.woocommerce_product_attribute_view_form +#: model_terms:ir.ui.view,arch_db:connector_woocommerce.woocommerce_product_template_view_form +msgid "WooCommerce Product Template" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model,name:connector_woocommerce.model_woocommerce_product_product +msgid "WooCommerce Product product Binding" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model,name:connector_woocommerce.model_woocommerce_product_template +msgid "WooCommerce Product template Binding" +msgstr "" + +#. module: connector_woocommerce +#: model_terms:ir.ui.view,arch_db:connector_woocommerce.woocommerce_partner_view_form +msgid "WooCommerce Res Partner" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model,name:connector_woocommerce.model_woocommerce_res_partner +msgid "WooCommerce Res Partner Binding" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model,name:connector_woocommerce.model_woocommerce_sale_order +msgid "WooCommerce Sale Order Binding" +msgstr "" + +#. module: connector_woocommerce +#: model_terms:ir.ui.view,arch_db:connector_woocommerce.woocommerce_sale_order_view_form +msgid "WooCommerce Sale order" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_backend_tax_class__woocommerce_tax_class +msgid "WooCommerce Tax Class" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_backend_account_tax__woocommerce_tax_rate_id +msgid "WooCommerce Tax Rate ID" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_res_partner__woocommerce_address_type +msgid "WooCommerce Type" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,help:connector_woocommerce.field_woocommerce_backend__url +msgid "WooCommerce URL" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_sale_order_line__woocommerce_discount +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_sale_order_line__woocommerce_discount +msgid "Woocommerce Discount" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_product_product__woocommerce_enabled +#: model:ir.model.fields,field_description:connector_woocommerce.field_product_template__woocommerce_enabled +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_product__woocommerce_enabled +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_template__woocommerce_enabled +#: model_terms:ir.ui.view,arch_db:connector_woocommerce.product_template_search_view_website +msgid "Woocommerce Enabled" +msgstr "Habilitat a Woocommerce" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_sale_order__woocommerce_order_state +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_sale_order__woocommerce_order_state +msgid "Woocommerce Order State" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_sale_order_line__woocommerce_sale_order_id +msgid "Woocommerce Sale Order" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_sale_order__woocommerce_status +msgid "Woocommerce Status" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_sale_order__woocommerce_status_write_date +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_sale_order__woocommerce_status_write_date +msgid "Woocommerce Status Write Date" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_stock_picking__woocommerce_stock_picking_state +msgid "Woocommerce Stock Picking State" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_product_product__woocommerce_write_date +#: model:ir.model.fields,field_description:connector_woocommerce.field_product_template__woocommerce_write_date +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_product__woocommerce_write_date +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_template__woocommerce_write_date +msgid "Woocommerce Write Date" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_backend__wordpress_backend_id +msgid "Wordpress Backend" +msgstr "" + +#. module: connector_woocommerce +#: code:addons/connector_woocommerce/models/common/tools.py:0 +#, python-format +msgid "Wrong domain clause format %s" +msgstr "" + +#. module: connector_woocommerce +#: code:addons/connector_woocommerce/models/product_template/product_template.py:0 +#, python-format +msgid "" +"You can't change the attributes if the product has a woocommerce binding" +msgstr "" + +#. module: connector_woocommerce +#: code:addons/connector_woocommerce/models/product_template/export_mapper.py:0 +#, python-format +msgid "You must define a default code for the product %s" +msgstr "" + +#. module: connector_woocommerce +#: code:addons/connector_woocommerce/models/product_product/export_mapper.py:0 +#, python-format +msgid "You must define an internal reference for the product {%s}'%s'" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_res_partner__zip_id +msgid "ZIP Location" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_res_partner__zip +msgid "Zip" +msgstr "" + +#. module: connector_woocommerce +#: model_terms:ir.ui.view,arch_db:connector_woocommerce.product_product_view_form_easy_inherit_connector_woocommerce +msgid "eCommerce" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model,name:connector_woocommerce.model_product_attachment +msgid "product.attachment" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,help:connector_woocommerce.field_woocommerce_sale_order__amount_by_group +msgid "type: [(name, amount, base, formated amount, formated base)]" +msgstr "" + +#. module: connector_woocommerce +#: model_terms:ir.ui.view,arch_db:connector_woocommerce.woocommerce_backend_view_form +msgid "woocommerce Backend" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model,name:connector_woocommerce.model_woocommerce_sale_order_line +msgid "woocommerce.sale.order.line" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_res_partner__organo_gestor +msgid "Órgano gestor" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_res_partner__organo_proponente +msgid "Órgano proponente" +msgstr "" diff --git a/connector_woocommerce/i18n/es.po b/connector_woocommerce/i18n/es.po new file mode 100644 index 000000000..6ea955887 --- /dev/null +++ b/connector_woocommerce/i18n/es.po @@ -0,0 +1,5645 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * connector_woocommerce +# +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 14.0\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2024-08-09 12:54+0000\n" +"PO-Revision-Date: 2024-08-09 12:54+0000\n" +"Last-Translator: \n" +"Language-Team: \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: \n" +"Plural-Forms: \n" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_product__bom_count +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_template__bom_count +msgid "# Bill of Material" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_product__used_in_bom_count +msgid "# BoM Where Used" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_product__purchase_num_invoiced +msgid "# Invoiced in Purchase" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_product__sale_num_invoiced +msgid "# Invoiced in Sale" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_res_partner__meeting_count +msgid "# Meetings" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_product__product_variant_count +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_template__product_variant_count +msgid "# Product Variants" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_res_partner__task_count +msgid "# Tasks" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_res_partner__supplier_invoice_count +msgid "# Vendor Bills" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_template__used_in_bom_count +msgid "# of BoM Where is Used" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_sale_order__expense_count +msgid "# of Expenses" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,help:connector_woocommerce.field_woocommerce_product_attribute__create_variant +msgid "" +"- Instantly: All possible variants are created as soon as the attribute and its values are added to a product.\n" +" - Dynamically: Each variant is created only when its corresponding attributes and values are added to a sales order.\n" +" - Never: Variants are never created for the attribute.\n" +" Note: the variants creation mode cannot be changed once the attribute is used on at least one product." +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.constraint,message:connector_woocommerce.constraint_woocommerce_backend_payment_mode_tax_map_uniq +msgid "" +"A binding already exists with the same (backend, woocommerce_payment_mode) " +"ID." +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.constraint,message:connector_woocommerce.constraint_woocommerce_backend_account_tax_tax_map_uniq +#: model:ir.model.constraint,message:connector_woocommerce.constraint_woocommerce_backend_tax_class_tax_map_uniq +msgid "" +"A binding already exists with the same (backend, woocommerce_tax_rate_id) " +"ID." +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.constraint,message:connector_woocommerce.constraint_woocommerce_sale_order_line_lol_ext_uniq +msgid "A binding already exists with the same External (WooCommerce) ID." +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.constraint,message:connector_woocommerce.constraint_woocommerce_product_attribute_external_uniq +msgid "A binding already exists with the same External (idAttribute) ID." +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.constraint,message:connector_woocommerce.constraint_woocommerce_product_attribute_value_external_uniq +msgid "A binding already exists with the same External (idAttributevalue) ID." +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.constraint,message:connector_woocommerce.constraint_woocommerce_product_product_external_uniq +#: model:ir.model.constraint,message:connector_woocommerce.constraint_woocommerce_product_public_category_external_uniq +#: model:ir.model.constraint,message:connector_woocommerce.constraint_woocommerce_product_template_external_uniq +msgid "A binding already exists with the same External (idProduct) ID." +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.constraint,message:connector_woocommerce.constraint_woocommerce_res_partner_external_uniq +msgid "A binding already exists with the same External (idResPartner) ID." +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.constraint,message:connector_woocommerce.constraint_woocommerce_sale_order_external_uniq +msgid "A binding already exists with the same External (idSaleOrder) ID." +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.constraint,message:connector_woocommerce.constraint_woocommerce_binding_woocommerce_internal_uniq +#: model:ir.model.constraint,message:connector_woocommerce.constraint_woocommerce_product_attribute_value_woocommerce_internal_uniq +#: model:ir.model.constraint,message:connector_woocommerce.constraint_woocommerce_product_attribute_woocommerce_internal_uniq +#: model:ir.model.constraint,message:connector_woocommerce.constraint_woocommerce_product_product_woocommerce_internal_uniq +#: model:ir.model.constraint,message:connector_woocommerce.constraint_woocommerce_product_public_category_woocommerce_internal_uniq +#: model:ir.model.constraint,message:connector_woocommerce.constraint_woocommerce_product_template_woocommerce_internal_uniq +#: model:ir.model.constraint,message:connector_woocommerce.constraint_woocommerce_res_partner_woocommerce_internal_uniq +#: model:ir.model.constraint,message:connector_woocommerce.constraint_woocommerce_sale_order_line_woocommerce_internal_uniq +#: model:ir.model.constraint,message:connector_woocommerce.constraint_woocommerce_sale_order_woocommerce_internal_uniq +msgid "A binding already exists with the same Internal (Odoo) ID." +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,help:connector_woocommerce.field_woocommerce_product_product__description_sale +#: model:ir.model.fields,help:connector_woocommerce.field_woocommerce_product_template__description_sale +msgid "" +"A description of the Product that you want to communicate to your customers." +" This description will be copied to every Sales Order, Delivery Order and " +"Customer Invoice/Credit Note" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,help:connector_woocommerce.field_woocommerce_product_product__variant_description_sale +msgid "" +"A description of the product variant that you want to communicate to your " +"customers.This description will be copied to every Sale Order" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,help:connector_woocommerce.field_woocommerce_product_product__type +#: model:ir.model.fields,help:connector_woocommerce.field_woocommerce_product_template__type +#: model:ir.model.fields,help:connector_woocommerce.field_woocommerce_sale_order_line__product_type +msgid "" +"A storable product is a product for which you manage stock. The Inventory app has to be installed.\n" +"A consumable product is a product for which stock is not managed.\n" +"A service is a non-material product you provide." +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_res_partner__aeat_anonymous_cash_customer +msgid "AEAT - Anonymous customer" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_res_partner__aeat_identification_type +msgid "AEAT Identification type" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_sale_order__is_abandoned_cart +msgid "Abandoned Cart" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_sale_order__access_warning +msgid "Access warning" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,help:connector_woocommerce.field_woocommerce_product_product__accessory_product_ids +#: model:ir.model.fields,help:connector_woocommerce.field_woocommerce_product_template__accessory_product_ids +msgid "" +"Accessories show up when the customer reviews the cart before payment " +"(cross-sell strategy)." +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_product__accessory_product_ids +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_template__accessory_product_ids +msgid "Accessory Products" +msgstr "Productos Accesorios" + +#. module: connector_woocommerce +#: model:ir.model.fields,help:connector_woocommerce.field_woocommerce_sale_order_line__qty_delivered_method +msgid "" +"According to product configuration, the delivered quantity can be automatically computed by mechanism :\n" +" - Manual: the quantity is set manually on the line\n" +" - Analytic From expenses: the quantity is the quantity sum from posted expenses\n" +" - Timesheet: the quantity is the sum of hours recorded on tasks linked to this sale line\n" +" - Stock Moves: the quantity comes from confirmed pickings\n" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_res_partner__property_account_payable_id +msgid "Account Payable" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_res_partner__property_account_receivable_id +msgid "Account Receivable" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_backend_account_tax__account_tax +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_backend_tax_class__account_tax +msgid "Account Tax" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_product__message_needaction +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_template__message_needaction +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_res_partner__message_needaction +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_sale_order__message_needaction +msgid "Action Needed" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_backend__active +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_product__active +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_template__active +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_res_partner__active +msgid "Active" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_res_partner__active_lang_count +msgid "Active Lang Count" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_product__activity_ids +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_template__activity_ids +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_res_partner__activity_ids +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_sale_order__activity_ids +msgid "Activities" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_product__activity_exception_decoration +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_template__activity_exception_decoration +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_res_partner__activity_exception_decoration +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_sale_order__activity_exception_decoration +msgid "Activity Exception Decoration" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_product__activity_state +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_template__activity_state +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_res_partner__activity_state +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_sale_order__activity_state +msgid "Activity State" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_product__activity_type_icon +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_template__activity_type_icon +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_res_partner__activity_type_icon +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_sale_order__activity_type_icon +msgid "Activity Type Icon" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_res_partner__additional_info +msgid "Additional info" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_res_partner__address_hash +#: model:ir.model.fields,field_description:connector_woocommerce.field_res_users__address_hash +#: model:ir.model.fields,field_description:connector_woocommerce.field_sage_res_partner__address_hash +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_res_partner__address_hash +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_res_partner__woocommerce_address_hash +msgid "Address Hash" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_res_partner__type +msgid "Address Type" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,help:connector_woocommerce.field_product_product__inventory_availability +#: model:ir.model.fields,help:connector_woocommerce.field_product_product__variant_inventory_availability +#: model:ir.model.fields,help:connector_woocommerce.field_product_template__inventory_availability +#: model:ir.model.fields,help:connector_woocommerce.field_woocommerce_product_product__inventory_availability +#: model:ir.model.fields,help:connector_woocommerce.field_woocommerce_product_product__variant_inventory_availability +#: model:ir.model.fields,help:connector_woocommerce.field_woocommerce_product_template__inventory_availability +msgid "Adds an inventory availability status on the web product page." +msgstr "" +"Añade un estado de disponibilidad en inventario en la página web del " +"producto." + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_res_partner__aeat_identification +msgid "Aeat Identification" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_product__alert_time +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_template__alert_time +msgid "Alert Time" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,help:connector_woocommerce.field_woocommerce_res_partner__lang +msgid "" +"All the emails and documents sent to this contact will be translated in this" +" language." +msgstr "" + +#. module: connector_woocommerce +#: code:addons/connector_woocommerce/models/product_template/adapter.py:0 +#, python-format +msgid "All variants must belong to the same parent product" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_product__allow_negative_stock +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_template__allow_negative_stock +msgid "Allow Negative Stock" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,help:connector_woocommerce.field_woocommerce_product_attribute_value__is_custom +msgid "Allow users to input custom values for this attribute value" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_product__alternative_product_ids +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_template__alternative_product_ids +msgid "Alternative Products" +msgstr "Productos alternativos" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_sale_order__amount_undiscounted +msgid "Amount Before Discount" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_sale_order__analytic_account_id +msgid "Analytic Account" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_sale_order_line__analytic_tag_ids +msgid "Analytic Tags" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_sale_order_line__analytic_line_ids +msgid "Analytic lines" +msgstr "" + +#. module: connector_woocommerce +#: model_terms:ir.ui.view,arch_db:connector_woocommerce.woocommerce_backend_view_form +msgid "Archived" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_res_partner__attach_invoice_as_annex +msgid "Attach Invoice As Annex" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_product_attachment__attachment_id +msgid "Attachment" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_product__message_attachment_count +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_template__message_attachment_count +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_res_partner__message_attachment_count +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_sale_order__message_attachment_count +msgid "Attachment Count" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_attribute__name +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_attribute_value__attribute_id +msgid "Attribute" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model,name:connector_woocommerce.model_product_attribute_value +msgid "Attribute Value" +msgstr "Valor del Atributo" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_product__product_template_attribute_value_ids +msgid "Attribute Values" +msgstr "" + +#. module: connector_woocommerce +#: code:addons/connector_woocommerce/models/product_attribute_value/adapter.py:0 +#, python-format +msgid "Attribute id is required to create attribute value on woocommerce." +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_sale_order__auth_number +msgid "Authorization Number" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_sale_order__authorized_transaction_ids +msgid "Authorized Transactions" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_res_partner__facturae_auto_dates +msgid "Auto Dates" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,help:connector_woocommerce.field_woocommerce_res_partner__receipt_reminder_email +msgid "" +"Automatically send a confirmation email to the vendor X days before the " +"expected receipt date, asking him to confirm the exact date." +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_product__available_threshold +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_template__available_threshold +msgid "Availability Threshold" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,help:connector_woocommerce.field_woocommerce_product_product__produce_delay +#: model:ir.model.fields,help:connector_woocommerce.field_woocommerce_product_template__produce_delay +msgid "" +"Average lead time in days to manufacture this product. In the case of multi-" +"level BOM, the manufacturing lead times of the components will be added." +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,help:connector_woocommerce.field_woocommerce_product_product__sale_avg_price +msgid "Avg. Price in Customer Invoices." +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,help:connector_woocommerce.field_woocommerce_product_product__purchase_avg_price +msgid "Avg. Price in Vendor Bills " +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_product__purchase_avg_price +msgid "Avg. Purchase Unit Price" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_product__sale_avg_price +msgid "Avg. Sale Unit Price" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_product__variant_bom_ids +msgid "BOM Product Variants" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_sale_order_line__backend_id +msgid "Backend" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_backend_account_tax__backend_id +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_backend_payment_mode__backend_id +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_backend_tax_class__backend_id +msgid "Backend id" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.ui.menu,name:connector_woocommerce.woocommerce_backend_menu_action +msgid "Backends" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_res_partner__bank_account_count +msgid "Bank" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_res_partner__bank_ids +msgid "Banks" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_template__barcode +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_res_partner__barcode +msgid "Barcode" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_product__barcode_ids +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_template__barcode_ids +msgid "Barcodes" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_product__use_time +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_template__use_time +msgid "Best Before Time" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_product__bom_ids +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_template__bom_ids +msgid "Bill of Materials" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_product__message_binary_attachment_count +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_template__message_binary_attachment_count +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_res_partner__message_binary_attachment_count +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_sale_order__message_binary_attachment_count +msgid "Binary Attachment Count" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_res_partner__is_blacklisted +msgid "Blacklist" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_res_partner__mobile_blacklisted +msgid "Blacklisted Phone Is Mobile" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_res_partner__phone_blacklisted +msgid "Blacklisted Phone is Phone" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_product__bom_line_ids +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_template__bom_line_ids +msgid "BoM Components" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_res_partner__es_libro +msgid "Book" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_res_partner__message_bounce +msgid "Bounce" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_product__product_brand_id +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_template__product_brand_id +msgid "Brand" +msgstr "" + +#. module: connector_woocommerce +#: model_terms:ir.ui.view,arch_db:connector_woocommerce.woocommerce_backend_view_form +msgid "" +"By clicking on the buttons,\n" +" you will initiate the\n" +" synchronizations\n" +" with WooCommerce.\n" +" Note that the import or exports\n" +" won't be done directly,\n" +" they will create 'Jobs'\n" +" executed as soon\n" +" as possible." +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_sale_order__campaign_id +msgid "Campaign" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_sale_order_line__product_updatable +msgid "Can Edit Product" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_product__can_image_1024_be_zoomed +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_template__can_image_1024_be_zoomed +msgid "Can Image 1024 be zoomed" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_product__can_publish +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_template__can_publish +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_res_partner__can_publish +msgid "Can Publish" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_product__can_image_variant_1024_be_zoomed +msgid "Can Variant Image 1024 be zoomed" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_product__can_be_expensed +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_template__can_be_expensed +msgid "Can be Expensed" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_product__purchase_ok +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_template__purchase_ok +msgid "Can be Purchased" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_product__sale_ok +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_template__sale_ok +msgid "Can be Sold" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields.selection,name:connector_woocommerce.selection__sale_order__woocommerce_order_state__cancel +#: model:ir.model.fields.selection,name:connector_woocommerce.selection__stock_picking__woocommerce_stock_picking_state__cancel +msgid "Cancel" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_product__cart_qty +msgid "Cart Qty" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_sale_order__cart_quantity +msgid "Cart Quantity" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_sale_order__cart_recovery_email_sent +msgid "Cart recovery email already sent" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_sale_order_line__product_uom_category_id +msgid "Category" +msgstr "Categoria" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_public_category__website_description +msgid "Category Description" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_product__route_from_categ_ids +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_template__route_from_categ_ids +msgid "Category Routes" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_res_partner__certifications_count +msgid "Certifications Count" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_res_partner__channel_ids +msgid "Channels" +msgstr "" + +#. module: connector_woocommerce +#: model_terms:ir.ui.view,arch_db:connector_woocommerce.woocommerce_backend_view_form +msgid "Check Connection" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,help:connector_woocommerce.field_woocommerce_res_partner__is_company +msgid "Check if the contact is a company, otherwise it is a person" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,help:connector_woocommerce.field_woocommerce_res_partner__employee +msgid "Check this box if this contact is an Employee." +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,help:connector_woocommerce.field_woocommerce_res_partner__country_enforce_cities +msgid "" +"Check this box to ensure every address created in that country has a 'City' " +"chosen in the list of the country's cities." +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,help:connector_woocommerce.field_woocommerce_res_partner__aeat_anonymous_cash_customer +msgid "Check this for anonymous cash customer. AEAT communication" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,help:connector_woocommerce.field_woocommerce_res_partner__sii_simplified_invoice +msgid "" +"Checking this mark, invoices done to this partner will be sent to SII as " +"simplified invoices." +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_public_category__child_id +msgid "Children Categories" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_backend__chunk_size +msgid "Chunk Size" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_res_partner__city +msgid "City" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_res_partner__city_id +msgid "City of Address" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_res_partner__quality_classification_id +msgid "Classification" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_backend__client_order_ref_prefix +msgid "Client Order Reference Prefix" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_attribute_value__html_color +msgid "Color" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_product__color +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_template__color +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_res_partner__color +msgid "Color Index" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_product__combination_indices +msgid "Combination Indices" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_res_partner__commercial_partner_id +msgid "Commercial Entity" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_res_partner__es_registro_mercantil +msgid "Commercial Registry" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_res_partner__ref_company_ids +msgid "Companies that refers to partner" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_backend__company_id +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_backend_payment_mode__company_id +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_product__company_id +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_template__company_id +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_res_partner__company_id +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_sale_order__company_id +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_sale_order_line__company_id +msgid "Company" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_res_partner__certifications_company_count +msgid "Company Certifications Count" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_res_partner__company_name +msgid "Company Name" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_res_partner__commercial_company_name +msgid "Company Name Entity" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_res_partner__company_type +msgid "Company Type" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_res_partner__partner_gid +msgid "Company database ID" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_res_partner__contact_address +msgid "Complete Address" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,help:connector_woocommerce.field_woocommerce_sale_order__effective_date +msgid "Completion date of the first delivery order." +msgstr "" + +#. module: connector_woocommerce +#: model_terms:ir.ui.view,arch_db:connector_woocommerce.connector_product_attribute_view_form +#: model_terms:ir.ui.view,arch_db:connector_woocommerce.connector_product_product_view_form +#: model_terms:ir.ui.view,arch_db:connector_woocommerce.connector_product_template_view_form +#: model_terms:ir.ui.view,arch_db:connector_woocommerce.connector_res_partner_view_form +#: model_terms:ir.ui.view,arch_db:connector_woocommerce.connector_sale_order_view_form +#: model_terms:ir.ui.view,arch_db:connector_woocommerce.connector_woocommerce_product_public_category_view_form +msgid "Connector WooCommerce" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_backend__consumer_key +msgid "Consumer Key" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_backend__consumer_secret +msgid "Consumer Secret" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model,name:connector_woocommerce.model_res_partner +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_res_partner__child_ids +msgid "Contact" +msgstr "Contacto" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_sale_order__contract_number +msgid "Contract number" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_res_partner__contract_ids +msgid "Contracts" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_product__purchase_method +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_template__purchase_method +msgid "Control Policy" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,help:connector_woocommerce.field_woocommerce_sale_order_line__product_uom_category_id +msgid "" +"Conversion between Units of Measure can only occur if they belong to the " +"same category. The conversion will be made based on the ratios." +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_product__standard_price +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_template__standard_price +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_sale_order_line__purchase_price +msgid "Cost" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_product__cost_currency_id +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_template__cost_currency_id +msgid "Cost Currency" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_product__cost_method +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_template__cost_method +msgid "Costing Method" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_res_partner__payment_token_count +msgid "Count Payment Token" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_sale_order__mrp_production_count +msgid "Count of MO generated" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,help:connector_woocommerce.field_woocommerce_res_partner__message_bounce +msgid "Counter of the number of bounced emails for this contact" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_res_partner__country_id +msgid "Country" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_product_attachment__create_uid +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_backend__create_uid +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_backend_account_tax__create_uid +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_backend_payment_mode__create_uid +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_backend_tax_class__create_uid +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_attribute__create_uid +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_attribute_value__create_uid +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_product__create_uid +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_public_category__create_uid +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_template__create_uid +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_res_partner__create_uid +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_sale_order__create_uid +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_sale_order_line__create_uid +msgid "Created by" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_product_attachment__create_date +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_backend__create_date +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_backend_account_tax__create_date +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_backend_payment_mode__create_date +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_backend_tax_class__create_date +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_attribute__create_date +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_attribute_value__create_date +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_product__create_date +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_public_category__create_date +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_template__create_date +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_res_partner__create_date +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_sale_order__create_date +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_sale_order_line__create_date +msgid "Created on" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,help:connector_woocommerce.field_woocommerce_sale_order__date_order +msgid "" +"Creation date of draft/sent orders,\n" +"Confirmation date of confirmed orders." +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_res_partner__credit_limit +msgid "Credit Limit" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_product__currency_id +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_template__currency_id +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_res_partner__currency_id +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_sale_order__currency_id +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_sale_order_line__currency_id +msgid "Currency" +msgstr "" + +#. module: connector_woocommerce +#: code:addons/connector_woocommerce/models/sale_order/import_mapper.py:0 +#, python-format +msgid "Currency '%s' is not defined" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_sale_order__currency_rate +msgid "Currency Rate" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,help:connector_woocommerce.field_woocommerce_product_product__qty_available +msgid "" +"Current quantity of products.\n" +"In a context with a single Stock Location, this includes goods stored at this Location, or any of its children.\n" +"In a context with a single Warehouse, this includes goods stored in the Stock Location of this Warehouse, or any of its children.\n" +"stored in the Stock Location of the Warehouse of this Shop, or any of its children.\n" +"Otherwise, this includes goods stored in any Stock Location with 'internal' type." +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,help:connector_woocommerce.field_woocommerce_sale_order_line__oxigen_margin_percent +msgid "Custom %Margin calculated as Margin/Cost" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_product__custom_message +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_template__custom_message +msgid "Custom Message" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_sale_order_line__product_custom_attribute_value_ids +msgid "Custom Values" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_sale_order__partner_id +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_sale_order_line__order_partner_id +msgid "Customer" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_product__sale_delay +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_template__sale_delay +msgid "Customer Lead Time" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_res_partner__property_stock_customer +msgid "Customer Location" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_res_partner__customer_payment_mode_id +msgid "Customer Payment Mode" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_res_partner__property_payment_term_id +msgid "Customer Payment Terms" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,help:connector_woocommerce.field_woocommerce_sale_order__access_url +msgid "Customer Portal URL" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_res_partner__customer_rank +msgid "Customer Rank" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_product__partner_ref +msgid "Customer Ref" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_sale_order__client_order_ref +msgid "Customer Reference" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_product__taxes_id +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_template__taxes_id +msgid "Customer Taxes" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_product__buyer_ids +msgid "Customers" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_product__dn_enabled +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_template__dn_enabled +msgid "D/N" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_res_partner__date +msgid "Date" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,help:connector_woocommerce.field_woocommerce_sale_order__signed_on +msgid "Date of the signature." +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_res_partner__reminder_date_before_receipt +msgid "Days Before Receipt" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_res_partner__default_supplierinfo_discount +msgid "Default Supplier Discount (%)" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_res_partner__default_supplierinfo_discount2 +msgid "Default Supplier Discount 2 (%)" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_res_partner__default_supplierinfo_discount3 +msgid "Default Supplier Discount 3 (%)" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,help:connector_woocommerce.field_woocommerce_res_partner__property_delivery_carrier_id +msgid "Default delivery method used in sales orders." +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_res_partner__purchase_journal_id +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_res_partner__sale_journal_id +msgid "Default journal" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,help:connector_woocommerce.field_woocommerce_product_product__supplier_taxes_id +#: model:ir.model.fields,help:connector_woocommerce.field_woocommerce_product_template__supplier_taxes_id +msgid "Default taxes used when buying the product." +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,help:connector_woocommerce.field_woocommerce_product_product__taxes_id +#: model:ir.model.fields,help:connector_woocommerce.field_woocommerce_product_template__taxes_id +msgid "Default taxes used when selling the product." +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,help:connector_woocommerce.field_woocommerce_product_product__uom_id +#: model:ir.model.fields,help:connector_woocommerce.field_woocommerce_product_template__uom_id +msgid "Default unit of measure used for all stock operations." +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,help:connector_woocommerce.field_woocommerce_product_product__uom_po_id +#: model:ir.model.fields,help:connector_woocommerce.field_woocommerce_product_template__uom_po_id +msgid "" +"Default unit of measure used for purchase orders. It must be in the same " +"category as the default unit of measure." +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,help:connector_woocommerce.field_woocommerce_product_product__seller_ids +#: model:ir.model.fields,help:connector_woocommerce.field_woocommerce_product_template__seller_ids +msgid "Define vendor pricelists." +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_res_partner__trust +msgid "Degree of trust you have in this debtor" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_sale_order_line__qty_delivered_manual +msgid "Delivered Manually" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_sale_order_line__qty_delivered +msgid "Delivered Quantity" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_sale_order__partner_shipping_id +msgid "Delivery Address" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_sale_order__amount_delivery +msgid "Delivery Amount" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_sale_order__commitment_date +msgid "Delivery Date" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_sale_order__delivery_message +msgid "Delivery Message" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_res_partner__property_delivery_carrier_id +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_sale_order__carrier_id +msgid "Delivery Method" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_sale_order__delivery_count +msgid "Delivery Orders" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_sale_order__delivery_rating_success +msgid "Delivery Rating Success" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_sale_order__delivery_set +msgid "Delivery Set" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_sale_order__recompute_delivery_price +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_sale_order_line__recompute_delivery_price +msgid "Delivery cost should be recomputed" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,help:connector_woocommerce.field_woocommerce_sale_order__expected_date +msgid "" +"Delivery date you can promise to the customer, computed from the minimum " +"lead time of the order lines in case of Service products. In case of " +"shipping, the shipping policy of the order will be taken into account to " +"either use the minimum or maximum lead time of the order lines." +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,help:connector_woocommerce.field_woocommerce_product_product__sale_delay +#: model:ir.model.fields,help:connector_woocommerce.field_woocommerce_product_template__sale_delay +msgid "" +"Delivery lead time, in days. It's the number of days, promised to the " +"customer, between the confirmation of the sales order and the delivery." +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,help:connector_woocommerce.field_woocommerce_product_product__route_ids +#: model:ir.model.fields,help:connector_woocommerce.field_woocommerce_product_template__route_ids +msgid "" +"Depending on the modules installed, this will allow you to define the route " +"of the product: whether it will be bought, manufactured, replenished on " +"order, etc." +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_product__description +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_template__description +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_sale_order_line__name +msgid "Description" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_product__website_description +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_template__website_description +msgid "Description for the website" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_product__description_pickingout +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_template__description_pickingout +msgid "Description on Delivery Orders" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_product__description_picking +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_template__description_picking +msgid "Description on Picking" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_product__description_pickingin +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_template__description_pickingin +msgid "Description on Receptions" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_sale_order__destination +msgid "Destination" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,help:connector_woocommerce.field_woocommerce_product_attribute__sequence +#: model:ir.model.fields,help:connector_woocommerce.field_woocommerce_product_attribute_value__sequence +msgid "Determine the display order" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,help:connector_woocommerce.field_woocommerce_product_product__website_sequence +#: model:ir.model.fields,help:connector_woocommerce.field_woocommerce_product_template__website_sequence +msgid "Determine the display order in the Website E-commerce" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_sale_order_line__discount +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_sale_order_line__discount +msgid "Discount (%)" +msgstr "Descuento (%)" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_backend__discount_pricelist_id +msgid "Discount Pricelist" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_product_attachment__display_name +#: model:ir.model.fields,field_description:connector_woocommerce.field_product_attribute__display_name +#: model:ir.model.fields,field_description:connector_woocommerce.field_product_attribute_value__display_name +#: model:ir.model.fields,field_description:connector_woocommerce.field_product_product__display_name +#: model:ir.model.fields,field_description:connector_woocommerce.field_product_public_category__display_name +#: model:ir.model.fields,field_description:connector_woocommerce.field_product_template__display_name +#: model:ir.model.fields,field_description:connector_woocommerce.field_res_partner__display_name +#: model:ir.model.fields,field_description:connector_woocommerce.field_sale_order__display_name +#: model:ir.model.fields,field_description:connector_woocommerce.field_sale_order_line__display_name +#: model:ir.model.fields,field_description:connector_woocommerce.field_stock_picking__display_name +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_backend__display_name +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_backend_account_tax__display_name +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_backend_payment_mode__display_name +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_backend_tax_class__display_name +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_binding__display_name +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_attribute__display_name +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_attribute_value__display_name +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_product__display_name +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_public_category__display_name +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_template__display_name +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_res_partner__display_name +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_sale_order__display_name +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_sale_order_line__display_name +msgid "Display Name" +msgstr "Nombre mostrado" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_sale_order_line__display_qty_widget +msgid "Display Qty Widget" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_attribute__display_type +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_attribute_value__display_type +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_sale_order_line__display_type +msgid "Display Type" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_sale_order__visible_project +msgid "Display project" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_product__document_ids +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_template__document_ids +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_res_partner__quality_document_ids +#: model_terms:ir.ui.view,arch_db:connector_woocommerce.product_product_view_form_easy_inherit_connector_woocommerce +msgid "Documents" +msgstr "Documentos" + +#. module: connector_woocommerce +#: model:ir.model.fields.selection,name:connector_woocommerce.selection__woocommerce_backend__use_main_product_image__no +msgid "Don't use main image" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields.selection,name:connector_woocommerce.selection__sale_order__woocommerce_order_state__done +#: model:ir.model.fields.selection,name:connector_woocommerce.selection__stock_picking__woocommerce_stock_picking_state__done +msgid "Done" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,help:connector_woocommerce.field_woocommerce_sale_order_line__is_downpayment +msgid "" +"Down payments are made when creating invoices from a sales order. They are " +"not copied when duplicating a sales order." +msgstr "" + +#. module: connector_woocommerce +#: code:addons/connector_woocommerce/models/common/tools.py:0 +#: code:addons/connector_woocommerce/models/common/tools.py:0 +#: code:addons/connector_woocommerce/models/common/tools.py:0 +#, python-format +msgid "Duplicated field %s" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_sale_order__effective_date +msgid "Effective Date" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,help:connector_woocommerce.field_woocommerce_res_partner__partner_share +msgid "" +"Either customer (not a user), either shared user. Indicated the current " +"partner is a customer without access or with a limited access created for " +"sharing data." +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_res_partner__email +msgid "Email" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_res_partner__email_bounced +msgid "Email Bounced" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_res_partner__email_score +msgid "Email Score" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_res_partner__employee +msgid "Employee" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_res_partner__country_enforce_cities +msgid "Enforce Cities" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,help:connector_woocommerce.field_woocommerce_product_product__tracking +#: model:ir.model.fields,help:connector_woocommerce.field_woocommerce_product_template__tracking +msgid "Ensure the traceability of a storable product in your warehouse." +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_sale_order__sale_invoicing_exclude_from_invoicing +msgid "Exclude from invoicing" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_sale_order__expected_date +msgid "Expected Date" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_product__expected_margin +msgid "Expected Margin" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_product__expected_margin_rate +msgid "Expected Margin (%)" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_product__sale_expected +msgid "Expected Sale" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,help:connector_woocommerce.field_woocommerce_product_product__expected_margin +msgid "Expected Sale - Normal Cost" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,help:connector_woocommerce.field_woocommerce_product_product__sales_gap +msgid "Expected Sale - Turn Over" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,help:connector_woocommerce.field_woocommerce_product_product__expected_margin_rate +msgid "Expected margin * 100 / Expected Sale" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_product__property_account_expense_id +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_template__property_account_expense_id +msgid "Expense Account" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_sale_order__expense_ids +msgid "Expenses" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,help:connector_woocommerce.field_woocommerce_product_product__expense_policy +#: model:ir.model.fields,help:connector_woocommerce.field_woocommerce_product_template__expense_policy +msgid "" +"Expenses and vendor bills can be re-invoiced to a customer.With this option," +" a validated expense can be re-invoice to a customer at its cost or sales " +"price." +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_sale_order__validity_date +msgid "Expiration" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_product__use_expiration_date +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_template__use_expiration_date +msgid "Expiration Date" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_product__expiration_time +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_template__expiration_time +msgid "Expiration Time" +msgstr "" + +#. module: connector_woocommerce +#: model_terms:ir.ui.view,arch_db:connector_woocommerce.woocommerce_backend_view_form +msgid "Export Product Attribute Since" +msgstr "" + +#. module: connector_woocommerce +#: model_terms:ir.ui.view,arch_db:connector_woocommerce.woocommerce_backend_view_form +msgid "Export Product Attribute Value Since" +msgstr "" + +#. module: connector_woocommerce +#: model_terms:ir.ui.view,arch_db:connector_woocommerce.woocommerce_backend_view_form +msgid "Export Product Public Categories Since" +msgstr "" + +#. module: connector_woocommerce +#: model_terms:ir.ui.view,arch_db:connector_woocommerce.woocommerce_backend_view_form +msgid "Export Product Template Since" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_backend__export_product_tmpl_since_date +msgid "Export Product Templates Since" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_backend__export_product_attribute_value_since_date +msgid "Export Product attribute values Since" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_backend__export_product_attribute_since_date +msgid "Export Product attributes Since" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_backend__export_product_public_category_since_date +msgid "Export Product public category Since" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_backend__export_products_since_date +#: model_terms:ir.ui.view,arch_db:connector_woocommerce.woocommerce_backend_view_form +msgid "Export Products Since" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_backend__export_sale_orders_since_date +#: model_terms:ir.ui.view,arch_db:connector_woocommerce.woocommerce_backend_view_form +msgid "Export Sale Orders Since" +msgstr "" + +#. module: connector_woocommerce +#: model_terms:ir.ui.view,arch_db:connector_woocommerce.woocommerce_backend_view_form +msgid "Export in background" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.ui.menu,name:connector_woocommerce.woocommerce_external_objects_menu +msgid "External Objects" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.ui.menu,name:connector_woocommerce.woocommerce_external_sale_order_menu +msgid "External Orders" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.ui.menu,name:connector_woocommerce.woocommerce_external_partner_menu +msgid "External Partners" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.ui.menu,name:connector_woocommerce.woocommerce_external_product_attribute_value_menu +msgid "External Product Attribute Values" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.ui.menu,name:connector_woocommerce.woocommerce_external_product_attribute_menu +msgid "External Product Attributes" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.ui.menu,name:connector_woocommerce.woocommerce_external_product_public_category_menu +msgid "External Product Public Categories" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.ui.menu,name:connector_woocommerce.woocommerce_external_product_template_menu +msgid "External Product Templates" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.ui.menu,name:connector_woocommerce.woocommerce_external_product_variant_menu +msgid "External Product product" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_product__product_template_image_ids +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_template__product_template_image_ids +msgid "Extra Product Media" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_sale_order_line__product_no_variant_attribute_value_ids +msgid "Extra Values" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_product__product_variant_image_ids +msgid "Extra Variant Images" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_res_partner__facturae +msgid "Factura electrónica" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_res_partner__facturae_version +msgid "Facturae Version" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_product__failed_message_ids +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_template__failed_message_ids +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_res_partner__failed_message_ids +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_sale_order__failed_message_ids +msgid "Failed Messages" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_res_partner__fax +msgid "Fax" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,help:connector_woocommerce.field_woocommerce_res_partner__phone_sanitized +msgid "" +"Field used to store sanitized phone number. Helps speeding up searches and " +"comparisons." +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,help:connector_woocommerce.field_woocommerce_sale_order__carrier_id +msgid "Fill this field if you plan to invoice the shipping based on picking." +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_res_partner__valid_mandate_id +msgid "First Valid Mandate" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_res_partner__firstname +msgid "First name" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_res_partner__property_account_position_id +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_sale_order__fiscal_position_id +msgid "Fiscal Position" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,help:connector_woocommerce.field_woocommerce_sale_order__fiscal_position_id +msgid "" +"Fiscal positions are used to adapt taxes and accounts for particular " +"customers or sales orders/invoices.The default value comes from the " +"customer." +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_product__fix_price +msgid "Fix Price" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_product__message_follower_ids +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_template__message_follower_ids +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_res_partner__message_follower_ids +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_sale_order__message_follower_ids +msgid "Followers" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_product__message_channel_ids +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_template__message_channel_ids +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_res_partner__message_channel_ids +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_sale_order__message_channel_ids +msgid "Followers (Channels)" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_product__message_partner_ids +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_template__message_partner_ids +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_res_partner__message_partner_ids +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_sale_order__message_partner_ids +msgid "Followers (Partners)" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,help:connector_woocommerce.field_woocommerce_product_product__activity_type_icon +#: model:ir.model.fields,help:connector_woocommerce.field_woocommerce_product_template__activity_type_icon +#: model:ir.model.fields,help:connector_woocommerce.field_woocommerce_res_partner__activity_type_icon +#: model:ir.model.fields,help:connector_woocommerce.field_woocommerce_sale_order__activity_type_icon +msgid "Font awesome icon e.g. fa-tasks" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_sale_order_line__forecast_expected_date +msgid "Forecast Expected Date" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_product__virtual_available +msgid "Forecast Quantity" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,help:connector_woocommerce.field_woocommerce_product_product__virtual_available +msgid "" +"Forecast quantity (computed as Quantity On Hand - Outgoing + Incoming)\n" +"In a context with a single Stock Location, this includes goods stored in this location, or any of its children.\n" +"In a context with a single Warehouse, this includes goods stored in the Stock Location of this Warehouse, or any of its children.\n" +"Otherwise, this includes goods stored in any Stock Location with 'internal' type." +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,help:connector_woocommerce.field_woocommerce_product_product__free_qty +msgid "" +"Forecast quantity (computed as Quantity On Hand - reserved quantity)\n" +"In a context with a single Stock Location, this includes goods stored in this location, or any of its children.\n" +"In a context with a single Warehouse, this includes goods stored in the Stock Location of this Warehouse, or any of its children.\n" +"Otherwise, this includes goods stored in any Stock Location with 'internal' type." +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_template__virtual_available +msgid "Forecasted Quantity" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,help:connector_woocommerce.field_woocommerce_res_partner__email_formatted +msgid "Format email address \"Name \"" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_res_partner__email_formatted +msgid "Formatted Email" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_sale_order_line__free_qty_today +msgid "Free Qty Today" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_product__free_qty +msgid "Free To Use Quantity " +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_sale_order_line__project_id +msgid "Generated Project" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_sale_order_line__purchase_line_ids +msgid "Generated Purchase Lines" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_sale_order_line__task_id +msgid "Generated Task" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_res_partner__partner_latitude +msgid "Geo Latitude" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_res_partner__partner_longitude +msgid "Geo Longitude" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,help:connector_woocommerce.field_woocommerce_product_product__packaging_ids +#: model:ir.model.fields,help:connector_woocommerce.field_woocommerce_product_template__packaging_ids +msgid "Gives the different ways to package the same product." +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,help:connector_woocommerce.field_woocommerce_product_public_category__sequence +msgid "Gives the sequence order when displaying a list of product categories." +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,help:connector_woocommerce.field_woocommerce_product_product__sequence +#: model:ir.model.fields,help:connector_woocommerce.field_woocommerce_product_template__sequence +msgid "Gives the sequence order when displaying a product list" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_product__hs_code +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_template__hs_code +msgid "HS Code" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_product_product__has_attributes +#: model:ir.model.fields,field_description:connector_woocommerce.field_product_template__has_attributes +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_product__has_attributes +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_template__has_attributes +msgid "Has Attributes" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_sale_order__show_update_pricelist +msgid "Has Pricelist Changed" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_res_partner__has_unreconciled_entries +msgid "Has Unreconciled Entries" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_sale_order__show_json_popover +msgid "Has late picking" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,help:connector_woocommerce.field_woocommerce_product_attribute_value__html_color +msgid "" +"Here you can set a specific HTML color index (e.g. #ff0000) to display the " +"color if the attribute type is 'Color'." +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_product_attachment__id +#: model:ir.model.fields,field_description:connector_woocommerce.field_product_attribute__id +#: model:ir.model.fields,field_description:connector_woocommerce.field_product_attribute_value__id +#: model:ir.model.fields,field_description:connector_woocommerce.field_product_product__id +#: model:ir.model.fields,field_description:connector_woocommerce.field_product_public_category__id +#: model:ir.model.fields,field_description:connector_woocommerce.field_product_template__id +#: model:ir.model.fields,field_description:connector_woocommerce.field_res_partner__id +#: model:ir.model.fields,field_description:connector_woocommerce.field_sale_order__id +#: model:ir.model.fields,field_description:connector_woocommerce.field_sale_order_line__id +#: model:ir.model.fields,field_description:connector_woocommerce.field_stock_picking__id +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_backend__id +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_backend_account_tax__id +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_backend_payment_mode__id +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_backend_tax_class__id +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_binding__id +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_attribute__id +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_attribute_value__id +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_product__id +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_public_category__id +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_template__id +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_res_partner__id +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_sale_order__id +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_sale_order_line__id +msgid "ID" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_res_partner__im_status +msgid "IM Status" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_product__activity_exception_icon +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_template__activity_exception_icon +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_res_partner__activity_exception_icon +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_sale_order__activity_exception_icon +msgid "Icon" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,help:connector_woocommerce.field_woocommerce_product_product__activity_exception_icon +#: model:ir.model.fields,help:connector_woocommerce.field_woocommerce_product_template__activity_exception_icon +#: model:ir.model.fields,help:connector_woocommerce.field_woocommerce_res_partner__activity_exception_icon +#: model:ir.model.fields,help:connector_woocommerce.field_woocommerce_sale_order__activity_exception_icon +msgid "Icon to indicate an exception activity." +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,help:connector_woocommerce.field_woocommerce_res_partner__aeat_identification +msgid "Identification for AEAT purposes" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,help:connector_woocommerce.field_woocommerce_product_product__message_needaction +#: model:ir.model.fields,help:connector_woocommerce.field_woocommerce_product_product__message_unread +#: model:ir.model.fields,help:connector_woocommerce.field_woocommerce_product_template__message_needaction +#: model:ir.model.fields,help:connector_woocommerce.field_woocommerce_product_template__message_unread +#: model:ir.model.fields,help:connector_woocommerce.field_woocommerce_res_partner__message_needaction +#: model:ir.model.fields,help:connector_woocommerce.field_woocommerce_res_partner__message_unread +#: model:ir.model.fields,help:connector_woocommerce.field_woocommerce_sale_order__message_needaction +#: model:ir.model.fields,help:connector_woocommerce.field_woocommerce_sale_order__message_unread +msgid "If checked, new messages require your attention." +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,help:connector_woocommerce.field_woocommerce_product_product__message_has_error +#: model:ir.model.fields,help:connector_woocommerce.field_woocommerce_product_product__message_has_sms_error +#: model:ir.model.fields,help:connector_woocommerce.field_woocommerce_product_template__message_has_error +#: model:ir.model.fields,help:connector_woocommerce.field_woocommerce_product_template__message_has_sms_error +#: model:ir.model.fields,help:connector_woocommerce.field_woocommerce_res_partner__message_has_error +#: model:ir.model.fields,help:connector_woocommerce.field_woocommerce_res_partner__message_has_sms_error +#: model:ir.model.fields,help:connector_woocommerce.field_woocommerce_sale_order__message_has_error +#: model:ir.model.fields,help:connector_woocommerce.field_woocommerce_sale_order__message_has_sms_error +msgid "If checked, some messages have a delivery error." +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,help:connector_woocommerce.field_woocommerce_res_partner__sale_invoicing_grouping_criteria_id +msgid "If empty, company default (if any) or default will be applied." +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,help:connector_woocommerce.field_woocommerce_res_partner__team_id +msgid "" +"If set, this Sales Team will be used for sales and assignments related to " +"this partner" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,help:connector_woocommerce.field_woocommerce_res_partner__is_blacklisted +msgid "" +"If the email address is on the blacklist, the contact won't receive mass " +"mailing anymore, from any list" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,help:connector_woocommerce.field_woocommerce_res_partner__phone_sanitized_blacklisted +msgid "" +"If the sanitized phone number is on the blacklist, the contact won't receive" +" mass mailing sms anymore, from any list" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,help:connector_woocommerce.field_woocommerce_product_product__allow_negative_stock +#: model:ir.model.fields,help:connector_woocommerce.field_woocommerce_product_template__allow_negative_stock +msgid "" +"If this option is not active on this product nor on its product category and" +" that this product is a stockable product, then the validation of the " +"related stock moves will be blocked if the stock level becomes negative with" +" the stock move." +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,help:connector_woocommerce.field_woocommerce_product_product__service_to_purchase +#: model:ir.model.fields,help:connector_woocommerce.field_woocommerce_product_template__service_to_purchase +msgid "" +"If ticked, each time you sell this product through a SO, a RfQ is " +"automatically created to buy the product. Tip: don't forget to set a vendor " +"on the product." +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,help:connector_woocommerce.field_woocommerce_product_product__active +#: model:ir.model.fields,help:connector_woocommerce.field_woocommerce_product_template__active +msgid "" +"If unchecked, it will allow you to hide the product without removing it." +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,help:connector_woocommerce.field_woocommerce_sale_order__pricelist_id +msgid "If you change the pricelist, only newly added lines will be affected." +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,help:connector_woocommerce.field_woocommerce_sale_order__picking_policy +msgid "" +"If you deliver all products at once, the delivery order will be scheduled " +"based on the greatest product lead time. Otherwise, it will be based on the " +"shortest." +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,help:connector_woocommerce.field_woocommerce_res_partner__not_in_mod347 +msgid "" +"If you mark this field, this partner will not be included in any AEAT 347 " +"model report, independently from the total amount of its operations." +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_product__image_1920 +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_public_category__image_1920 +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_template__image_1920 +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_res_partner__image_1920 +msgid "Image" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_product__image_1024 +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_public_category__image_1024 +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_template__image_1024 +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_res_partner__image_1024 +msgid "Image 1024" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_product__image_128 +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_public_category__image_128 +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_template__image_128 +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_res_partner__image_128 +msgid "Image 128" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_product__image_256 +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_public_category__image_256 +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_template__image_256 +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_res_partner__image_256 +msgid "Image 256" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_product__image_512 +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_public_category__image_512 +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_template__image_512 +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_res_partner__image_512 +msgid "Image 512" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_backend__import_sale_order_since_date +msgid "Import Sale Order Since" +msgstr "" + +#. module: connector_woocommerce +#: model_terms:ir.ui.view,arch_db:connector_woocommerce.woocommerce_backend_view_form +msgid "Import Sale Orders Since" +msgstr "" + +#. module: connector_woocommerce +#: model_terms:ir.ui.view,arch_db:connector_woocommerce.woocommerce_backend_view_form +msgid "Import in background" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_product__in_repair_ids +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_template__in_repair_ids +msgid "In Repair" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,help:connector_woocommerce.field_woocommerce_product_product__standard_price +#: model:ir.model.fields,help:connector_woocommerce.field_woocommerce_product_template__standard_price +msgid "" +"In Standard Price & AVCO: value of the product (automatically computed in AVCO).\n" +" In FIFO: value of the next unit that will leave the stock (automatically computed).\n" +" Used to value the product when the purchase cost is not known (e.g. inventory adjustment).\n" +" Used to compute margins on sale orders." +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_product__property_account_income_id +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_template__property_account_income_id +msgid "Income Account" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_product__incoming_qty +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_template__incoming_qty +msgid "Incoming" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_sale_order__incoterm +msgid "Incoterm" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,help:connector_woocommerce.field_woocommerce_res_partner__mobile_blacklisted +msgid "" +"Indicates if a blacklisted sanitized phone number is a mobile number. Helps " +"distinguish which number is blacklisted when there is both a " +"mobile and phone field in a model." +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,help:connector_woocommerce.field_woocommerce_res_partner__phone_blacklisted +msgid "" +"Indicates if a blacklisted sanitized phone number is a phone number. Helps " +"distinguish which number is blacklisted when there is both a " +"mobile and phone field in a model." +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_res_partner__industry_id +msgid "Industry" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_sale_order__insured_ident_cardnum +msgid "Insured identity card number" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_sale_order__insured_name +msgid "Insured person's name" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_product__default_code +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_template__default_code +msgid "Internal Reference" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,help:connector_woocommerce.field_woocommerce_product_product__barcode +msgid "International Article Number used for product identification." +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,help:connector_woocommerce.field_woocommerce_sale_order__incoterm +msgid "" +"International Commercial Terms are a series of predefined commercial terms " +"used in international transactions." +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_product_product__inventory_availability +#: model:ir.model.fields,field_description:connector_woocommerce.field_product_product__variant_inventory_availability +#: model:ir.model.fields,field_description:connector_woocommerce.field_product_template__inventory_availability +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_product__inventory_availability +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_product__variant_inventory_availability +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_template__inventory_availability +msgid "Inventory Availability" +msgstr "Disponibilidad del inventario" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_product__property_stock_inventory +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_template__property_stock_inventory +msgid "Inventory Location" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_product__valuation +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_template__valuation +msgid "Inventory Valuation" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_res_partner__invoice_warn +msgid "Invoice" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,help:connector_woocommerce.field_woocommerce_res_partner__type +msgid "" +"Invoice & Delivery addresses are used in sales orders. Private addresses are" +" only visible by authorized users." +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_sale_order__partner_invoice_id +msgid "Invoice Address" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_res_partner__invoice_batch_email_partner_id +msgid "Invoice Batch Contact" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_res_partner__invoice_batch_sending_method +msgid "Invoice Batch Sending method" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_sale_order__invoice_count +msgid "Invoice Count" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_sale_order_line__invoice_lines +msgid "Invoice Lines" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_product__invoice_state +msgid "Invoice State" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_sale_order__invoice_status +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_sale_order_line__invoice_status +msgid "Invoice Status" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_sale_order_line__qty_invoiced +msgid "Invoiced Quantity" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_res_partner__invoice_ids +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_sale_order__invoice_ids +msgid "Invoices" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_product__invoice_policy +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_template__invoice_policy +msgid "Invoicing Policy" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_product__message_is_follower +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_template__message_is_follower +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_res_partner__message_is_follower +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_sale_order__message_is_follower +msgid "Is Follower" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_sale_order_line__is_mto +msgid "Is Mto" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_product__is_product_variant +msgid "Is Product Variant" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_res_partner__is_published +msgid "Is Published" +msgstr "Está publicado" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_sale_order__is_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_sale_order__is_woocommerce +msgid "Is Woocommerce" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_res_partner__is_company +msgid "Is a Company" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_sale_order_line__is_delivery +msgid "Is a Delivery" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_sale_order_line__is_service +msgid "Is a Service" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_product__has_configurable_attributes +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_template__has_configurable_attributes +msgid "Is a configurable product" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_sale_order_line__is_downpayment +msgid "Is a down payment" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_template__is_product_variant +msgid "Is a product variant" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_attribute_value__is_custom +msgid "Is custom value" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_sale_order_line__is_expense +msgid "Is expense" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_sale_order__is_expired +msgid "Is expired" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,help:connector_woocommerce.field_woocommerce_sale_order_line__is_expense +msgid "" +"Is true if the sales order line comes from an expense or a vendor bills" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_sale_order__json_popover +msgid "JSON data for the popover widget" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_res_partner__function +msgid "Job Position" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_res_partner__journal_item_count +msgid "Journal Items" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,help:connector_woocommerce.field_woocommerce_product_product__property_account_income_id +#: model:ir.model.fields,help:connector_woocommerce.field_woocommerce_product_template__property_account_income_id +msgid "" +"Keep this field empty to use the default value from the product category." +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,help:connector_woocommerce.field_woocommerce_product_product__property_account_expense_id +#: model:ir.model.fields,help:connector_woocommerce.field_woocommerce_product_template__property_account_expense_id +msgid "" +"Keep this field empty to use the default value from the product category. If" +" anglo-saxon accounting with automated valuation method is configured, the " +"expense account on the product category will be used." +msgstr "" + +#. module: connector_woocommerce +#: code:addons/connector_woocommerce/models/common/tools.py:0 +#, python-format +msgid "Key %s already exists" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_backend__language_id +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_res_partner__lang +msgid "Language" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_product_attachment____last_update +#: model:ir.model.fields,field_description:connector_woocommerce.field_product_attribute____last_update +#: model:ir.model.fields,field_description:connector_woocommerce.field_product_attribute_value____last_update +#: model:ir.model.fields,field_description:connector_woocommerce.field_product_product____last_update +#: model:ir.model.fields,field_description:connector_woocommerce.field_product_public_category____last_update +#: model:ir.model.fields,field_description:connector_woocommerce.field_product_template____last_update +#: model:ir.model.fields,field_description:connector_woocommerce.field_res_partner____last_update +#: model:ir.model.fields,field_description:connector_woocommerce.field_sale_order____last_update +#: model:ir.model.fields,field_description:connector_woocommerce.field_sale_order_line____last_update +#: model:ir.model.fields,field_description:connector_woocommerce.field_stock_picking____last_update +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_backend____last_update +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_backend_account_tax____last_update +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_backend_payment_mode____last_update +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_backend_tax_class____last_update +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_binding____last_update +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_attribute____last_update +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_attribute_value____last_update +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_product____last_update +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_public_category____last_update +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_template____last_update +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_res_partner____last_update +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_sale_order____last_update +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_sale_order_line____last_update +msgid "Last Modified on" +msgstr "Última modificación el" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_res_partner__last_website_so_id +msgid "Last Online Sales Order" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_product_attachment__write_uid +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_backend__write_uid +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_backend_account_tax__write_uid +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_backend_payment_mode__write_uid +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_backend_tax_class__write_uid +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_attribute__write_uid +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_attribute_value__write_uid +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_product__write_uid +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_public_category__write_uid +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_template__write_uid +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_res_partner__write_uid +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_sale_order__write_uid +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_sale_order_line__write_uid +msgid "Last Updated by" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_product_attachment__write_date +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_backend__write_date +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_backend_account_tax__write_date +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_backend_payment_mode__write_date +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_backend_tax_class__write_date +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_attribute__write_date +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_attribute_value__write_date +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_product__write_date +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_public_category__write_date +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_template__write_date +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_res_partner__write_date +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_sale_order__write_date +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_sale_order_line__write_date +msgid "Last Updated on" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_res_partner__lastname +msgid "Last name" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_res_partner__calendar_last_notif_ack +msgid "Last notification marked as read from base Calendar" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_binding__sync_date +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_attribute__sync_date +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_attribute_value__sync_date +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_product__sync_date +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_public_category__sync_date +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_template__sync_date +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_res_partner__sync_date +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_sale_order__sync_date +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_sale_order_line__sync_date +msgid "Last synchronization date" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,help:connector_woocommerce.field_woocommerce_res_partner__last_time_entries_checked +msgid "" +"Last time the invoices & payments matching was performed for this partner. " +"It is set either if there's not at least an unreconciled debit and an " +"unreconciled credit or if you click the \"Done\" button." +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_res_partner__last_time_entries_checked +msgid "Latest Invoices & Payments Matching Date" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_sale_order_line__customer_lead +msgid "Lead Time" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_attribute__attribute_line_ids +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_attribute_value__pav_attribute_line_ids +msgid "Lines" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_sale_order_line__linked_line_id +msgid "Linked Order Line" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_product__list_price +msgid "List Price" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_product__location_id +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_template__location_id +msgid "Location" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_backend__stock_location_ids +msgid "Locations" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_product__message_main_attachment_id +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_template__message_main_attachment_id +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_res_partner__message_main_attachment_id +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_sale_order__message_main_attachment_id +msgid "Main Attachment" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_product__barcode +msgid "Main barcode" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,help:connector_woocommerce.field_woocommerce_product_product__valuation +#: model:ir.model.fields,help:connector_woocommerce.field_woocommerce_product_template__valuation +msgid "" +"Manual: The accounting entries to value the inventory are not posted automatically.\n" +" Automated: An accounting entry is automatically created to value the inventory when a product enters or leaves the company.\n" +" " +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,help:connector_woocommerce.field_woocommerce_product_product__service_type +#: model:ir.model.fields,help:connector_woocommerce.field_woocommerce_product_template__service_type +msgid "" +"Manually set quantities on order: Invoice based on the manually entered quantity, without creating an analytic account.\n" +"Timesheets on contract: Invoice based on the tracked hours on the related timesheet.\n" +"Create a task and track hours: Create a task on the sales order validation and track the work hours." +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_product__mrp_product_qty +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_template__mrp_product_qty +msgid "Manufactured" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_product__produce_delay +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_template__produce_delay +msgid "Manufacturing Lead Time" +msgstr "" + +#. module: connector_woocommerce +#: model_terms:ir.ui.view,arch_db:connector_woocommerce.woocommerce_backend_view_form +msgid "Mappings" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_sale_order__margin +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_sale_order_line__margin +msgid "Margin" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_sale_order__margin_percent +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_sale_order__oxigen_margin_percent +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_sale_order_line__margin_percent +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_sale_order_line__oxigen_margin_percent +msgid "Margin (%)" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_product__date_from +msgid "Margin Date From" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_product__date_to +msgid "Margin Date To" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_sale_order__medium_id +msgid "Medium" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_res_partner__meeting_ids +msgid "Meetings" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_product__message_has_error +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_template__message_has_error +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_res_partner__message_has_error +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_sale_order__message_has_error +msgid "Message Delivery error" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_res_partner__invoice_warn_msg +msgid "Message for Invoice" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_res_partner__purchase_warn_msg +msgid "Message for Purchase Order" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_product__purchase_line_warn_msg +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_template__purchase_line_warn_msg +msgid "Message for Purchase Order Line" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_res_partner__sale_warn_msg +msgid "Message for Sales Order" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_product__sale_line_warn_msg +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_template__sale_line_warn_msg +msgid "Message for Sales Order Line" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_res_partner__picking_warn_msg +msgid "Message for Stock Picking" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_product__message_ids +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_template__message_ids +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_res_partner__message_ids +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_sale_order__message_ids +msgid "Messages" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_sale_order_line__qty_delivered_method +msgid "Method to update delivered qty" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_product__orderpoint_ids +msgid "Minimum Stock Rules" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,help:connector_woocommerce.field_woocommerce_backend__sync_offset +msgid "" +"Minutes to start the synchronization before(negative)/after(positive) the " +"last one" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_res_partner__mobile +msgid "Mobile" +msgstr "" + +#. module: connector_woocommerce +#: code:addons/connector_woocommerce/models/sale_order/adapter.py:0 +#, python-format +msgid "More than one order found with the same id: %s" +msgstr "" + +#. module: connector_woocommerce +#: code:addons/connector_woocommerce/models/sale_order/importer.py:0 +#, python-format +msgid "More than one product found with sku %s" +msgstr "" + +#. module: connector_woocommerce +#: code:addons/connector_woocommerce/models/product_attribute_value/adapter.py:0 +#, python-format +msgid "More than one product parent found" +msgstr "" + +#. module: connector_woocommerce +#: code:addons/connector_woocommerce/models/product_product/adapter.py:0 +#: code:addons/connector_woocommerce/models/product_template/adapter.py:0 +#, python-format +msgid "More than one simple product found with the same id: %s" +msgstr "" + +#. module: connector_woocommerce +#: code:addons/connector_woocommerce/models/common/tools.py:0 +#, python-format +msgid "Multiple values found for '%s'" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_product__my_activity_date_deadline +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_template__my_activity_date_deadline +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_res_partner__my_activity_date_deadline +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_sale_order__my_activity_date_deadline +msgid "My Activity Deadline" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_product__nos_enabled +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_template__nos_enabled +msgid "NOS" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_backend__name +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_product__name +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_public_category__name +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_template__name +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_res_partner__name +msgid "Name" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_sale_order_line__name_short +msgid "Name Short" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,help:connector_woocommerce.field_woocommerce_sale_order__signed_by +msgid "Name of the person that signed the SO." +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_product__activity_date_deadline +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_template__activity_date_deadline +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_res_partner__activity_date_deadline +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_sale_order__activity_date_deadline +msgid "Next Activity Deadline" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_product__activity_summary +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_template__activity_summary +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_res_partner__activity_summary +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_sale_order__activity_summary +msgid "Next Activity Summary" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_product__activity_type_id +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_template__activity_type_id +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_res_partner__activity_type_id +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_sale_order__activity_type_id +msgid "Next Activity Type" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_product__normal_cost +msgid "Normal Cost" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,help:connector_woocommerce.field_woocommerce_product_product__purchase_gap +msgid "Normal Cost - Total Cost" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_res_partner__email_normalized +msgid "Normalized Email" +msgstr "" + +#. module: connector_woocommerce +#: code:addons/connector_woocommerce/models/common/tools.py:0 +#, python-format +msgid "Not equal operation not supported for non boolean fields" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_res_partner__not_in_mod347 +msgid "Not included in 347 report" +msgstr "" + +#. module: connector_woocommerce +#: code:addons/connector_woocommerce/models/product_public_category/product_public_category.py:0 +#, python-format +msgid "" +"Not supported: It's not possible delete a category '%s' with WooCommerce " +"bindings if it has children with WooCommerce bindings. Delete first the " +"children %s" +msgstr "" + +#. module: connector_woocommerce +#: code:addons/connector_woocommerce/models/product_public_category/product_public_category.py:0 +#, python-format +msgid "" +"Not supported: It's not possible delete more than one category with " +"WooCommerce bindings at the same time" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_res_partner__comment +msgid "Notes" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_product__message_needaction_counter +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_template__message_needaction_counter +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_res_partner__message_needaction_counter +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_sale_order__message_needaction_counter +msgid "Number of Actions" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_res_partner__mandate_count +msgid "Number of Mandates" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_sale_order__purchase_order_count +msgid "Number of Purchase Order Generated" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,help:connector_woocommerce.field_woocommerce_product_product__repair_count +#: model:ir.model.fields,help:connector_woocommerce.field_woocommerce_product_template__repair_count +msgid "Number of Repair Orders where the product appears as a Part" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,help:connector_woocommerce.field_woocommerce_product_product__expiration_time +#: model:ir.model.fields,help:connector_woocommerce.field_woocommerce_product_template__expiration_time +msgid "" +"Number of days after the receipt of the products (from the vendor or in " +"stock after production) after which the goods may become dangerous and must " +"not be consumed. It will be computed on the lot/serial number." +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,help:connector_woocommerce.field_woocommerce_product_product__alert_time +#: model:ir.model.fields,help:connector_woocommerce.field_woocommerce_product_template__alert_time +msgid "" +"Number of days before the Expiration Date after which an alert should be " +"raised on the lot/serial number. It will be computed on the lot/serial " +"number." +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,help:connector_woocommerce.field_woocommerce_product_product__removal_time +#: model:ir.model.fields,help:connector_woocommerce.field_woocommerce_product_template__removal_time +msgid "" +"Number of days before the Expiration Date after which the goods should be " +"removed from the stock. It will be computed on the lot/serial number." +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,help:connector_woocommerce.field_woocommerce_product_product__use_time +#: model:ir.model.fields,help:connector_woocommerce.field_woocommerce_product_template__use_time +msgid "" +"Number of days before the Expiration Date after which the goods starts " +"deteriorating, without being dangerous yet. It will be computed on the " +"lot/serial number." +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,help:connector_woocommerce.field_woocommerce_sale_order_line__customer_lead +msgid "" +"Number of days between the order confirmation and the shipping of the " +"products to the customer" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,help:connector_woocommerce.field_woocommerce_res_partner__reminder_date_before_receipt +msgid "Number of days to send reminder email before the promised receipt date" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_product__message_has_error_counter +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_template__message_has_error_counter +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_res_partner__message_has_error_counter +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_sale_order__message_has_error_counter +msgid "Number of errors" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_sale_order_line__purchase_line_count +msgid "Number of generated purchase items" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,help:connector_woocommerce.field_woocommerce_product_product__message_needaction_counter +#: model:ir.model.fields,help:connector_woocommerce.field_woocommerce_product_template__message_needaction_counter +#: model:ir.model.fields,help:connector_woocommerce.field_woocommerce_res_partner__message_needaction_counter +#: model:ir.model.fields,help:connector_woocommerce.field_woocommerce_sale_order__message_needaction_counter +msgid "Number of messages which requires an action" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,help:connector_woocommerce.field_woocommerce_product_product__message_has_error_counter +#: model:ir.model.fields,help:connector_woocommerce.field_woocommerce_product_template__message_has_error_counter +#: model:ir.model.fields,help:connector_woocommerce.field_woocommerce_res_partner__message_has_error_counter +#: model:ir.model.fields,help:connector_woocommerce.field_woocommerce_sale_order__message_has_error_counter +msgid "Number of messages with delivery error" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_product__pricelist_item_count +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_template__pricelist_item_count +msgid "Number of price rules" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,help:connector_woocommerce.field_woocommerce_backend__page_size +msgid "Number of records to fetch at a time. Max: 100" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,help:connector_woocommerce.field_woocommerce_product_product__message_unread_counter +#: model:ir.model.fields,help:connector_woocommerce.field_woocommerce_product_template__message_unread_counter +#: model:ir.model.fields,help:connector_woocommerce.field_woocommerce_res_partner__message_unread_counter +#: model:ir.model.fields,help:connector_woocommerce.field_woocommerce_sale_order__message_unread_counter +msgid "Number of unread messages" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_res_partner__oficina_contable +msgid "Oficina contable" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,help:connector_woocommerce.field_woocommerce_product_product__service_tracking +#: model:ir.model.fields,help:connector_woocommerce.field_woocommerce_product_template__service_tracking +msgid "" +"On Sales order confirmation, this product can generate a project and/or task. From those, you can track the service you are selling.\n" +" 'In sale order's project': Will use the sale order's configured project if defined or fallback to creating a new project based on the selected template." +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,help:connector_woocommerce.field_woocommerce_product_product__purchase_method +#: model:ir.model.fields,help:connector_woocommerce.field_woocommerce_product_template__purchase_method +msgid "" +"On ordered quantities: Control bills based on ordered quantities.\n" +"On received quantities: Control bills based on received quantities." +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_res_partner__on_time_rate +msgid "On-Time Delivery Rate" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_sale_order__require_payment +msgid "Online Payment" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_sale_order__require_signature +msgid "Online Signature" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_sale_order__only_services +msgid "Only Services" +msgstr "" + +#. module: connector_woocommerce +#: code:addons/connector_woocommerce/models/product_template/export_mapper.py:0 +#, python-format +msgid "" +"Only one tax is allowed per product. Please review taxes in product {%s} %s" +msgstr "" + +#. module: connector_woocommerce +#: code:addons/connector_woocommerce/models/common/tools.py:0 +#, python-format +msgid "Operator %s not supported" +msgstr "" + +#. module: connector_woocommerce +#: code:addons/connector_woocommerce/models/common/tools.py:0 +#, python-format +msgid "Operator '%(OPERATOR)s' only supports tuples or lists, not %(TYPES)s" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_res_partner__opportunity_ids +msgid "Opportunities" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_res_partner__opportunity_count +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_sale_order__opportunity_id +msgid "Opportunity" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_sale_order__sale_order_option_ids +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_sale_order_line__sale_order_option_ids +msgid "Optional Products Lines" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_sale_order_line__option_line_ids +msgid "Options Linked" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_sale_order__date_order +msgid "Order Date" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_sale_order__date_order_tz +msgid "Order Date TZ" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_sale_order__order_line +msgid "Order Lines" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_sale_order__website_order_line +msgid "Order Lines displayed on Website" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,help:connector_woocommerce.field_woocommerce_sale_order__woocommerce_order_line_ids +msgid "Order Lines in WooCommerce sale orders" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,help:connector_woocommerce.field_woocommerce_sale_order__website_order_line +msgid "" +"Order Lines to be displayed on the website. They should not be used for " +"computation purpose." +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_sale_order__name +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_sale_order_line__order_id +msgid "Order Reference" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_sale_order_line__state +msgid "Order Status" +msgstr "" + +#. module: connector_woocommerce +#: model_terms:ir.ui.view,arch_db:connector_woocommerce.woocommerce_backend_view_form +msgid "Order Tax" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_sale_order_line__odoo_id +msgid "Order line" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,help:connector_woocommerce.field_woocommerce_product_product__invoice_policy +#: model:ir.model.fields,help:connector_woocommerce.field_woocommerce_product_template__invoice_policy +msgid "" +"Ordered Quantity: Invoice quantities ordered by the customer.\n" +"Delivered Quantity: Invoice quantities delivered to the customer." +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_sale_order__origin +msgid "Origin" +msgstr "" + +#. module: connector_woocommerce +#: model_terms:ir.ui.view,arch_db:connector_woocommerce.woocommerce_backend_view_form +msgid "Other Info" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_product__outgoing_qty +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_template__outgoing_qty +msgid "Outgoing" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,help:connector_woocommerce.field_woocommerce_res_partner__on_time_rate +msgid "" +"Over the past x days; the number of products received on time divided by the" +" number of ordered products.x is either the System Parameter " +"purchase_stock.on_time_delivery_days or the default 365" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_sale_order_line__product_packaging +msgid "Package" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_res_partner__es_folio +msgid "Page" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_backend__page_size +msgid "Page Size" +msgstr "" + +#. module: connector_woocommerce +#: code:addons/connector_woocommerce/models/backend/backend.py:0 +#, python-format +msgid "Page size must be less than 100" +msgstr "" + +#. module: connector_woocommerce +#: code:addons/connector_woocommerce/models/product_product/adapter.py:0 +#, python-format +msgid "Params required" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_public_category__parent_id +msgid "Parent Category" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_public_category__parent_path +msgid "Parent Path" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_res_partner__parent_name +msgid "Parent name" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_public_category__parents_and_self +msgid "Parents And Self" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.actions.act_window,name:connector_woocommerce.woocommerce_partner_action +msgid "Partner" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_res_partner__same_vat_partner_id +msgid "Partner with same Tax ID" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_res_partner__debit_limit +msgid "Payable Limit" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_backend__payment_mode_ids +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_backend_payment_mode__payment_mode_id +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_sale_order__payment_mode_id +#: model_terms:ir.ui.view,arch_db:connector_woocommerce.woocommerce_backend_view_form +msgid "Payment Mode" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_sale_order__reference +msgid "Payment Ref." +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_sale_order__payment_term_id +msgid "Payment Terms" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_res_partner__payment_token_ids +msgid "Payment Tokens" +msgstr "" + +#. module: connector_woocommerce +#: code:addons/connector_woocommerce/models/sale_order/import_mapper.py:0 +#, python-format +msgid "Payment method '%s' is not defined on backend" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_res_partner__phone +msgid "Phone" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_res_partner__phone_sanitized_blacklisted +msgid "Phone Blacklisted" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_res_partner__plan_to_change_car +msgid "Plan To Change Car" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_sale_order__plate_number +msgid "Plate" +msgstr "" + +#. module: connector_woocommerce +#: model_terms:ir.ui.view,arch_db:connector_woocommerce.connector_product_product_view_form +msgid "" +"Please note that WooCommerce allows only one image per product variant. " +"Additional images will not be exported to WooCommerce and will be ignored." +msgstr "Tenga en cuenta que WooCommerce solo permite una imagen por variante de producto. " +"Las imágenes adicionales se ignorarán y no se exportarán a WooCommerce." + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_sale_order__policy_number +msgid "Policy number" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_sale_order__access_url +msgid "Portal Access URL" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,help:connector_woocommerce.field_woocommerce_backend__client_order_ref_prefix +msgid "Prefix to add to the client order reference" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_product__price +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_template__price +msgid "Price" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_product__property_account_creditor_price_difference +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_template__property_account_creditor_price_difference +msgid "Price Difference Account" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_sale_order_line__price_reduce +msgid "Price Reduce" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_sale_order_line__price_reduce_taxexcl +msgid "Price Reduce Tax excl" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_sale_order_line__price_reduce_taxinc +msgid "Price Reduce Tax inc" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,help:connector_woocommerce.field_woocommerce_product_template__list_price +#: model:ir.model.fields,help:connector_woocommerce.field_woocommerce_product_template__lst_price +msgid "Price at which the product is sold to customers." +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_product__pricelist_id +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_template__pricelist_id +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_res_partner__property_product_pricelist +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_sale_order__pricelist_id +msgid "Pricelist" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields.selection,name:connector_woocommerce.selection__sale_order__woocommerce_order_state__processing +#: model:ir.model.fields.selection,name:connector_woocommerce.selection__stock_picking__woocommerce_stock_picking_state__processing +msgid "Processing" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_sale_order__procurement_group_id +msgid "Procurement Group" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model,name:connector_woocommerce.model_product_product +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_product__product_variant_id +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_template__product_variant_id +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_sale_order_line__product_id +msgid "Product" +msgstr "Producto" + +#. module: connector_woocommerce +#: model:ir.actions.act_window,name:connector_woocommerce.woocommerce_product_attribute_action +#: model:ir.model,name:connector_woocommerce.model_product_attribute +msgid "Product Attribute" +msgstr "Atributo de producto" + +#. module: connector_woocommerce +#: model:ir.actions.act_window,name:connector_woocommerce.woocommerce_product_attribute_value_action +msgid "Product Attribute Value" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_product__attribute_line_ids +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_template__attribute_line_ids +msgid "Product Attributes" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_product__categ_id +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_template__categ_id +msgid "Product Category" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_product_product__product_document_attachment_ids +#: model:ir.model.fields,field_description:connector_woocommerce.field_product_template__product_document_attachment_ids +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_product__product_document_attachment_ids +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_template__product_document_attachment_ids +msgid "Product Document Attachment" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_product_product__product_image_attachment_ids +#: model:ir.model.fields,field_description:connector_woocommerce.field_product_template__product_image_attachment_ids +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_product__product_image_attachment_ids +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_template__product_image_attachment_ids +msgid "Product Image Attachment" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_product__packaging_ids +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_template__packaging_ids +msgid "Product Packages" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.actions.act_window,name:connector_woocommerce.woocommerce_product_public_category_action +msgid "Product Public Category" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_sale_order_line__product_qty +msgid "Product Qty" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.actions.act_window,name:connector_woocommerce.woocommerce_product_template_action +#: model:ir.model,name:connector_woocommerce.model_product_template +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_product__product_tmpl_id +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_sale_order_line__product_template_id +msgid "Product Template" +msgstr "Plantilla de producto" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_public_category__product_tmpl_ids +msgid "Product Tmpl" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_product__type +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_template__type +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_sale_order_line__product_type +msgid "Product Type" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_sale_order_line__product_uom_readonly +msgid "Product Uom Readonly" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_attribute__odoo_id +msgid "Product attribute" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_attribute_value__odoo_id +msgid "Product attribute value" +msgstr "" + +#. module: connector_woocommerce +#: code:addons/connector_woocommerce/models/sale_order_line/import_mapper.py:0 +#, python-format +msgid "" +"Product not found in order line. Probably this product has been deleted in " +"WooCommerce." +msgstr "" + +#. module: connector_woocommerce +#: code:addons/connector_woocommerce/models/sale_order/importer.py:0 +#: code:addons/connector_woocommerce/models/sale_order/importer.py:0 +#, python-format +msgid "Product not found on Odoo" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_product__odoo_id +msgid "Product product" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_public_category__odoo_id +msgid "Product public category" +msgstr "" + +#. module: connector_woocommerce +#: model_terms:ir.ui.view,arch_db:connector_woocommerce.woocommerce_backend_view_form +msgid "Product tax" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_template__odoo_id +msgid "Product template" +msgstr "" + +#. module: connector_woocommerce +#: code:addons/connector_woocommerce/models/product_template/adapter.py:0 +#, python-format +msgid "Product type not supported" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_product__property_stock_production +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_template__property_stock_production +msgid "Production Location" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.actions.act_window,name:connector_woocommerce.woocommerce_product_product_action +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_product__product_variant_ids +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_template__product_variant_ids +msgid "Products" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_product__project_id +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_template__project_id +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_sale_order__project_id +msgid "Project" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_product__project_template_id +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_template__project_template_id +msgid "Project Template" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,help:connector_woocommerce.field_woocommerce_sale_order_line__project_id +msgid "Project generated by the sales order item" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_sale_order__project_ids +msgid "Projects" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,help:connector_woocommerce.field_woocommerce_sale_order__project_ids +msgid "Projects used in this sales order." +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_product_product__public_description +#: model:ir.model.fields,field_description:connector_woocommerce.field_product_template__public_description +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_product__public_description +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_template__public_description +msgid "Public Description" +msgstr "Descripción pública" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_product__lst_price +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_template__lst_price +msgid "Public Price" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_product_product__public_short_description +#: model:ir.model.fields,field_description:connector_woocommerce.field_product_template__public_short_description +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_product__public_short_description +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_template__public_short_description +msgid "Public Short Description" +msgstr "Descripción pública corta" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_product__service_to_purchase +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_template__service_to_purchase +msgid "Purchase Automatically" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_res_partner__purchase_contract_count +msgid "Purchase Contracts" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_product__description_purchase +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_template__description_purchase +msgid "Purchase Description" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_product__purchase_gap +msgid "Purchase Gap" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_res_partner__purchase_line_ids +msgid "Purchase Lines" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_res_partner__purchase_warn +msgid "Purchase Order" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_res_partner__purchase_order_count +msgid "Purchase Order Count" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_product__purchase_order_line_ids +msgid "Purchase Order Line" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_product__purchase_line_warn +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_template__purchase_line_warn +msgid "Purchase Order Line Warning" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_product__uom_po_id +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_template__uom_po_id +msgid "Purchase Unit of Measure" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,help:connector_woocommerce.field_woocommerce_sale_order_line__purchase_line_ids +msgid "" +"Purchase line generated by this Sales item on order confirmation, or when " +"the quantity was increased." +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_product__purchased_product_qty +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_template__purchased_product_qty +msgid "Purchased" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_product__purchase_lines_count +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_template__purchase_lines_count +msgid "Purchased products" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_product__putaway_rule_ids +msgid "Putaway Rules" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_sale_order_line__qty_available_today +msgid "Qty Available Today" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_sale_order_line__qty_to_deliver +msgid "Qty To Deliver" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_sale_order_line__product_uom_qty +msgid "Quantity" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_product__qty_available +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_template__qty_available +msgid "Quantity On Hand" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_product__quantity_svl +msgid "Quantity Svl" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,help:connector_woocommerce.field_woocommerce_product_product__incoming_qty +msgid "" +"Quantity of planned incoming products.\n" +"In a context with a single Stock Location, this includes goods arriving to this Location, or any of its children.\n" +"In a context with a single Warehouse, this includes goods arriving to the Stock Location of this Warehouse, or any of its children.\n" +"Otherwise, this includes goods arriving to any Stock Location with 'internal' type." +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,help:connector_woocommerce.field_woocommerce_product_product__outgoing_qty +msgid "" +"Quantity of planned outgoing products.\n" +"In a context with a single Stock Location, this includes goods leaving this Location, or any of its children.\n" +"In a context with a single Warehouse, this includes goods leaving the Stock Location of this Warehouse, or any of its children.\n" +"Otherwise, this includes goods leaving any Stock Location with 'internal' type." +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_product__visible_qty_configurator +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_template__visible_qty_configurator +msgid "Quantity visible in configurator" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_sale_order__sale_order_template_id +msgid "Quotation Template" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_product__rating_ids +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_template__rating_ids +msgid "Rating" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_product__rating_avg +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_template__rating_avg +msgid "Rating Average" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_product__rating_last_feedback +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_template__rating_last_feedback +msgid "Rating Last Feedback" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_product__rating_last_image +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_template__rating_last_image +msgid "Rating Last Image" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_product__rating_last_value +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_template__rating_last_value +msgid "Rating Last Value" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_product__rating_count +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_template__rating_count +msgid "Rating count" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_product__expense_policy +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_template__expense_policy +msgid "Re-Invoice Expenses" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_product__visible_expense_policy +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_template__visible_expense_policy +msgid "Re-Invoice Policy visible" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,help:connector_woocommerce.field_woocommerce_product_product__rating_last_feedback +#: model:ir.model.fields,help:connector_woocommerce.field_woocommerce_product_template__rating_last_feedback +msgid "Reason of the rating" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_res_partner__receipt_reminder_email +msgid "Receipt Reminder" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_product__code +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_res_partner__ref +msgid "Reference" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,help:connector_woocommerce.field_woocommerce_sale_order__origin +msgid "Reference of the document that generated this sales order request." +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_res_partner__parent_id +msgid "Related Company" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_attribute__product_tmpl_ids +msgid "Related Products" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_res_partner__helpdesk_ticket_ids +msgid "Related tickets" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_sale_order_line__remaining_hours_available +msgid "Remaining Hours Available" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_sale_order_line__remaining_hours +msgid "Remaining Hours on SO" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_product__removal_time +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_template__removal_time +msgid "Removal Time" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_product__reordering_max_qty +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_template__reordering_max_qty +msgid "Reordering Max Qty" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_product__reordering_min_qty +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_template__reordering_min_qty +msgid "Reordering Min Qty" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_product__nbr_reordering_rules +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_template__nbr_reordering_rules +msgid "Reordering Rules" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_product__repair_count +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_template__repair_count +msgid "Repairs" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,help:connector_woocommerce.field_woocommerce_sale_order__require_signature +msgid "" +"Request a online signature to the customer in order to confirm orders " +"automatically." +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,help:connector_woocommerce.field_woocommerce_sale_order__require_payment +msgid "" +"Request an online payment to the customer in order to confirm orders " +"automatically." +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_res_partner__odoo_id +msgid "Res Partner" +msgstr "" + +#. module: connector_woocommerce +#: model_terms:ir.ui.view,arch_db:connector_woocommerce.woocommerce_backend_view_form +msgid "Reset To draft Connection" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_product__responsible_id +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_template__responsible_id +msgid "Responsible" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_product__activity_user_id +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_template__activity_user_id +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_res_partner__activity_user_id +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_sale_order__activity_user_id +msgid "Responsible User" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,help:connector_woocommerce.field_woocommerce_product_product__website_id +#: model:ir.model.fields,help:connector_woocommerce.field_woocommerce_product_public_category__website_id +#: model:ir.model.fields,help:connector_woocommerce.field_woocommerce_product_template__website_id +#: model:ir.model.fields,help:connector_woocommerce.field_woocommerce_res_partner__website_id +msgid "Restrict publishing to this website." +msgstr "" + +#. module: connector_woocommerce +#: model_terms:ir.ui.view,arch_db:connector_woocommerce.woocommerce_partner_view_tree +#: model_terms:ir.ui.view,arch_db:connector_woocommerce.woocommerce_product_attribute_value_view_tree +#: model_terms:ir.ui.view,arch_db:connector_woocommerce.woocommerce_product_attribute_view_tree +#: model_terms:ir.ui.view,arch_db:connector_woocommerce.woocommerce_product_product_view_tree +#: model_terms:ir.ui.view,arch_db:connector_woocommerce.woocommerce_product_public_category_view_tree +#: model_terms:ir.ui.view,arch_db:connector_woocommerce.woocommerce_product_template_view_tree +msgid "Resynchronize" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_sale_order__return_service +msgid "Return service" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_product__website_ribbon_id +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_template__website_ribbon_id +msgid "Ribbon" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_sale_order__round_trip_code +msgid "Round trip code" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_sale_order_line__route_id +msgid "Route" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_product__route_ids +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_template__route_ids +msgid "Routes" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_product__has_available_route_ids +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_template__has_available_route_ids +msgid "Routes can be selected on this product" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_product__is_seo_optimized +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_public_category__is_seo_optimized +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_template__is_seo_optimized +msgid "SEO optimized" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_product__sii_exempt_cause +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_template__sii_exempt_cause +msgid "SII Exempt Cause" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_product__message_has_sms_error +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_template__message_has_sms_error +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_res_partner__message_has_sms_error +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_sale_order__message_has_sms_error +msgid "SMS Delivery error" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_res_partner__sage_bind_ids +msgid "Sage Bindings" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_res_partner__sale_contract_count +msgid "Sale Contracts" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_sale_order__odoo_id +msgid "Sale Order" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_res_partner__sale_order_count +msgid "Sale Order Count" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_product__description_sale +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_template__description_sale +msgid "Sales Description" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_product__sales_gap +msgid "Sales Gap" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_res_partner__sale_invoicing_grouping_criteria_id +msgid "Sales Invoicing Grouping Criteria" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model,name:connector_woocommerce.model_sale_order +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_res_partner__sale_order_ids +msgid "Sales Order" +msgstr "Pedido de venta" + +#. module: connector_woocommerce +#: model:ir.model,name:connector_woocommerce.model_sale_order_line +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_product__sale_line_warn +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_template__sale_line_warn +msgid "Sales Order Line" +msgstr "Línea de pedido de venta" + +#. module: connector_woocommerce +#: model:ir.model.fields,help:connector_woocommerce.field_woocommerce_sale_order_line__is_service +msgid "" +"Sales Order item should generate a task and/or a project, depending on the " +"product settings." +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_template__list_price +msgid "Sales Price" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_res_partner__team_id +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_sale_order__team_id +msgid "Sales Team" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_res_partner__sale_warn +msgid "Sales Warnings" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_res_partner__user_id +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_sale_order__user_id +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_sale_order_line__salesman_id +msgid "Salesperson" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_res_partner__phone_sanitized +msgid "Sanitized Number" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_sale_order_line__scheduled_date +msgid "Scheduled Date" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_res_partner__es_seccion +msgid "Section" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_sale_order__access_token +msgid "Security Token" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,help:connector_woocommerce.field_woocommerce_product_product__project_id +#: model:ir.model.fields,help:connector_woocommerce.field_woocommerce_product_template__project_id +msgid "" +"Select a billable project on which tasks can be created. This setting must " +"be set for each company." +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,help:connector_woocommerce.field_woocommerce_product_product__project_template_id +#: model:ir.model.fields,help:connector_woocommerce.field_woocommerce_product_template__project_template_id +msgid "" +"Select a billable project to be the skeleton of the new created project when" +" selling the current product. Its stages and tasks will be duplicated." +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,help:connector_woocommerce.field_woocommerce_product_product__product_brand_id +#: model:ir.model.fields,help:connector_woocommerce.field_woocommerce_product_template__product_brand_id +msgid "Select a brand for this product" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,help:connector_woocommerce.field_woocommerce_sale_order__project_id +msgid "Select a non billable project on which tasks can be created." +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,help:connector_woocommerce.field_woocommerce_product_product__categ_id +#: model:ir.model.fields,help:connector_woocommerce.field_woocommerce_product_template__categ_id +msgid "Select category for the current product" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,help:connector_woocommerce.field_woocommerce_res_partner__customer_payment_mode_id +msgid "Select the default payment mode for this customer." +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,help:connector_woocommerce.field_woocommerce_res_partner__supplier_payment_mode_id +msgid "Select the default payment mode for this supplier." +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,help:connector_woocommerce.field_woocommerce_product_product__purchase_line_warn +#: model:ir.model.fields,help:connector_woocommerce.field_woocommerce_product_product__sale_line_warn +#: model:ir.model.fields,help:connector_woocommerce.field_woocommerce_product_template__purchase_line_warn +#: model:ir.model.fields,help:connector_woocommerce.field_woocommerce_product_template__sale_line_warn +#: model:ir.model.fields,help:connector_woocommerce.field_woocommerce_res_partner__invoice_warn +#: model:ir.model.fields,help:connector_woocommerce.field_woocommerce_res_partner__picking_warn +#: model:ir.model.fields,help:connector_woocommerce.field_woocommerce_res_partner__purchase_warn +#: model:ir.model.fields,help:connector_woocommerce.field_woocommerce_res_partner__sale_warn +msgid "" +"Selecting the \"Warning\" option will notify user with the message, " +"Selecting \"Blocking Message\" will throw an exception with the message and " +"block the flow. The Message has to be written in the next field." +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_res_partner__self +msgid "Self" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields.selection,name:connector_woocommerce.selection__product_product__variant_inventory_availability__never +msgid "Sell regardless of inventory" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_res_partner__l10n_es_facturae_sending_code +msgid "Sending method" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_product__seo_name +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_public_category__seo_name +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_template__seo_name +msgid "Seo name" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_product_attachment__sequence +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_attribute__sequence +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_attribute_value__sequence +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_product__sequence +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_public_category__sequence +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_template__sequence +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_sale_order_line__sequence +msgid "Sequence" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_product__service_policy +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_template__service_policy +msgid "Service Invoicing Policy" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_sale_order__is_all_service +msgid "Service Product" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_product__service_tracking +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_template__service_tracking +msgid "Service Tracking" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_sale_order__service_date +msgid "Service date" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_sale_order__service_number +msgid "Service number" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.actions.act_window,name:connector_woocommerce.woocommerce_sale_order_action +msgid "Services" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_res_partner__partner_share +msgid "Share Partner" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_res_partner__es_hoja +msgid "Sheet" +msgstr "" + +#. module: connector_woocommerce +#: model_terms:ir.ui.view,arch_db:connector_woocommerce.woocommerce_backend_view_form +msgid "Shipping" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_sale_order__picking_policy +msgid "Shipping Policy" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_backend__shipping_product_id +msgid "Shipping Product" +msgstr "" + +#. module: connector_woocommerce +#: code:addons/connector_woocommerce/models/sale_order_line/import_mapper.py:0 +#, python-format +msgid "Shipping product not found, please define it on Backend" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_product__show_on_hand_qty_status_button +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_template__show_on_hand_qty_status_button +msgid "Show On Hand Qty Status Button" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields.selection,name:connector_woocommerce.selection__product_product__variant_inventory_availability__always +msgid "Show inventory on website and prevent sales if not enough stock" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_sale_order__signature +msgid "Signature" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,help:connector_woocommerce.field_woocommerce_sale_order__signature +msgid "Signature received through the portal." +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_sale_order__signed_by +msgid "Signed By" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_sale_order__signed_on +msgid "Signed On" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_res_partner__signup_expiration +msgid "Signup Expiration" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_res_partner__signup_token +msgid "Signup Token" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_res_partner__signup_type +msgid "Signup Token Type" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_res_partner__signup_valid +msgid "Signup Token is Valid" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_res_partner__signup_url +msgid "Signup URL" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_res_partner__sii_enabled +msgid "Sii Enabled" +msgstr "" + +#. module: connector_woocommerce +#: code:addons/connector_woocommerce/models/product_template/adapter.py:0 +#, python-format +msgid "Simple products can only have one variant" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_res_partner__sii_simplified_invoice +msgid "Simplified invoices in SII?" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_product__website_size_x +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_template__website_size_x +msgid "Size X" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_product__website_size_y +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_template__website_size_y +msgid "Size Y" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_product_product__slug_name +#: model:ir.model.fields,field_description:connector_woocommerce.field_product_template__slug_name +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_product__slug_name +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_template__slug_name +msgid "Slug Name" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_product__sale_lines_count +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_product__sales_count +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_template__sale_lines_count +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_template__sales_count +msgid "Sold" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_sale_order__source_id +msgid "Source" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,help:connector_woocommerce.field_woocommerce_product_product__can_be_expensed +#: model:ir.model.fields,help:connector_woocommerce.field_woocommerce_product_template__can_be_expensed +msgid "Specify whether the product can be selected in an expense." +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,help:connector_woocommerce.field_woocommerce_product_product__cost_method +#: model:ir.model.fields,help:connector_woocommerce.field_woocommerce_product_template__cost_method +msgid "" +"Standard Price: The products are valued at their standard cost defined on the product.\n" +" Average Cost (AVCO): The products are valued at weighted average cost.\n" +" First In First Out (FIFO): The products are valued supposing those that enter the company first will also leave it first.\n" +" " +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,help:connector_woocommerce.field_woocommerce_product_product__hs_code +#: model:ir.model.fields,help:connector_woocommerce.field_woocommerce_product_template__hs_code +msgid "" +"Standardized code for international shipping and goods declaration. At the " +"moment, only used for the FedEx shipping provider." +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_backend__state +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_res_partner__state_id +msgid "State" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_sale_order__state +msgid "Status" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,help:connector_woocommerce.field_woocommerce_product_product__activity_state +#: model:ir.model.fields,help:connector_woocommerce.field_woocommerce_product_template__activity_state +#: model:ir.model.fields,help:connector_woocommerce.field_woocommerce_res_partner__activity_state +#: model:ir.model.fields,help:connector_woocommerce.field_woocommerce_sale_order__activity_state +msgid "" +"Status based on activities\n" +"Overdue: Due date is already passed\n" +"Today: Activity date is today\n" +"Planned: Future activities." +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_sale_order_line__stock_move_ids +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_product__stock_move_ids +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_sale_order_line__stock_move_ids +msgid "Stock Move" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_sale_order_line__move_ids +msgid "Stock Moves" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_res_partner__picking_warn +msgid "Stock Picking" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_product__stock_quant_ids +msgid "Stock Quant" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_product__stock_valuation_layer_ids +msgid "Stock Valuation Layer" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_res_partner__street +msgid "Street" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_res_partner__street2 +msgid "Street2" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_sale_order_line__price_subtotal +msgid "Subtotal" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,help:connector_woocommerce.field_woocommerce_product_product__alternative_product_ids +#: model:ir.model.fields,help:connector_woocommerce.field_woocommerce_product_template__alternative_product_ids +msgid "" +"Suggest alternatives to your customer (upsell strategy). Those products show" +" up on the product page." +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,help:connector_woocommerce.field_woocommerce_product_product__normal_cost +msgid "Sum of Multiplication of Cost price and quantity of Vendor Bills" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,help:connector_woocommerce.field_woocommerce_product_product__turnover +msgid "" +"Sum of Multiplication of Invoice price and quantity of Customer Invoices" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,help:connector_woocommerce.field_woocommerce_product_product__total_cost +msgid "Sum of Multiplication of Invoice price and quantity of Vendor Bills " +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,help:connector_woocommerce.field_woocommerce_product_product__sale_expected +msgid "" +"Sum of Multiplication of Sale Catalog price and quantity of Customer " +"Invoices" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,help:connector_woocommerce.field_woocommerce_product_product__sale_num_invoiced +msgid "Sum of Quantity in Customer Invoices" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,help:connector_woocommerce.field_woocommerce_product_product__purchase_num_invoiced +msgid "Sum of Quantity in Vendor Bills" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_res_partner__property_purchase_currency_id +msgid "Supplier Currency" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_res_partner__supplier_payment_mode_id +msgid "Supplier Payment Mode" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_res_partner__supplier_rank +msgid "Supplier Rank" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_backend__sync_offset +msgid "Sync Offset" +msgstr "" + +#. module: connector_woocommerce +#: model_terms:ir.ui.view,arch_db:connector_woocommerce.woocommerce_backend_view_form +msgid "Synchronizers" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_res_partner__category_id +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_sale_order__tag_ids +msgid "Tags" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,help:connector_woocommerce.field_woocommerce_sale_order_line__task_id +msgid "Task generated by the sales order item" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_res_partner__task_ids +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_sale_order__tasks_count +msgid "Tasks" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_sale_order__tasks_ids +msgid "Tasks associated to this sale" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_backend__tax_class_ids +msgid "Tax Class" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_res_partner__vat +msgid "Tax ID" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_backend__tax_map_ids +msgid "Tax Mapping" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_sale_order__amount_by_group +msgid "Tax amount by group" +msgstr "" + +#. module: connector_woocommerce +#: code:addons/connector_woocommerce/models/product_template/export_mapper.py:0 +#, python-format +msgid "Tax class is not defined on backend for tax %s" +msgstr "" + +#. module: connector_woocommerce +#: code:addons/connector_woocommerce/models/sale_order_line/import_mapper.py:0 +#, python-format +msgid "Tax rate %s not found in backend mapping." +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_sale_order__amount_tax +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_sale_order_line__tax_id +msgid "Taxes" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,help:connector_woocommerce.field_woocommerce_sale_order__show_update_pricelist +msgid "" +"Technical Field, True if the pricelist was changed;\n" +" this will then display a recomputation button" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,help:connector_woocommerce.field_woocommerce_product_product__valid_product_template_attribute_line_ids +#: model:ir.model.fields,help:connector_woocommerce.field_woocommerce_product_template__valid_product_template_attribute_line_ids +msgid "Technical compute" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,help:connector_woocommerce.field_woocommerce_sale_order_line__display_type +msgid "Technical field for UX purpose." +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,help:connector_woocommerce.field_woocommerce_product_product__pricelist_id +#: model:ir.model.fields,help:connector_woocommerce.field_woocommerce_product_template__pricelist_id +msgid "" +"Technical field. Used for searching on pricelists, not stored in database." +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,help:connector_woocommerce.field_woocommerce_product_product__purchase_order_line_ids +#: model:ir.model.fields,help:connector_woocommerce.field_woocommerce_product_product__stock_move_ids +#: model:ir.model.fields,help:connector_woocommerce.field_woocommerce_product_product__stock_quant_ids +msgid "Technical: used to compute quantities." +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_sale_order__note +msgid "Terms and conditions" +msgstr "" + +#. module: connector_woocommerce +#: code:addons/connector_woocommerce/models/sale_order/importer.py:0 +#, python-format +msgid "The Order %s is already imported -> Update not allowed" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,help:connector_woocommerce.field_woocommerce_res_partner__vat +msgid "" +"The Tax Identification Number. Complete it if the contact is subjected to " +"government taxes. Used in some legal statements." +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,help:connector_woocommerce.field_woocommerce_sale_order__amount_delivery +msgid "The amount without tax." +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,help:connector_woocommerce.field_woocommerce_sale_order__analytic_account_id +msgid "The analytic account related to a sales order." +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,help:connector_woocommerce.field_woocommerce_product_attribute_value__attribute_id +msgid "" +"The attribute cannot be changed once the value is used on at least one " +"product." +msgstr "" + +#. module: connector_woocommerce +#: code:addons/connector_woocommerce/models/product_public_category/export_mapper.py:0 +#, python-format +msgid "" +"The category '%s' has a double space in the name. WooCommerce only allow one" +" space. Please, remove it before export." +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,help:connector_woocommerce.field_woocommerce_product_attribute__display_type +#: model:ir.model.fields,help:connector_woocommerce.field_woocommerce_product_attribute_value__display_type +msgid "The display type used in the Product Configurator." +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,help:connector_woocommerce.field_woocommerce_res_partner__property_account_position_id +msgid "" +"The fiscal position determines the taxes/accounts used for this contact." +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,help:connector_woocommerce.field_woocommerce_product_product__website_url +#: model:ir.model.fields,help:connector_woocommerce.field_woocommerce_product_template__website_url +#: model:ir.model.fields,help:connector_woocommerce.field_woocommerce_res_partner__website_url +msgid "The full URL to access the document through the website." +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,help:connector_woocommerce.field_woocommerce_res_partner__user_id +msgid "The internal user in charge of this contact." +msgstr "" + +#. module: connector_woocommerce +#: code:addons/connector_woocommerce/models/product_template/export_mapper.py:0 +#, python-format +msgid "" +"The inventory availability '%s' is not supported by WooCommerce. Review " +"product template {%s}%s." +msgstr "" + +#. module: connector_woocommerce +#: code:addons/connector_woocommerce/models/product_product/export_mapper.py:0 +#, python-format +msgid "" +"The inventory availability '%s' is not supported by WooCommerce. Review " +"product variant {%s}%s." +msgstr "" + +#. module: connector_woocommerce +#: code:addons/connector_woocommerce/models/sale_order/import_mapper.py:0 +#, python-format +msgid "The partner %s, with id:%s is archived, please, enable it" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,help:connector_woocommerce.field_woocommerce_res_partner__has_unreconciled_entries +msgid "" +"The partner has at least one unreconciled debit and credit since last time " +"the invoices & payments matching was performed." +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,help:connector_woocommerce.field_woocommerce_sale_order__reference +msgid "The payment communication of this sale order." +msgstr "" + +#. module: connector_woocommerce +#: code:addons/connector_woocommerce/models/sale_order/importer.py:0 +#: code:addons/connector_woocommerce/models/sale_order/importer.py:0 +#, python-format +msgid "" +"The product '%s' in the order has been deleted on WooCommerce. This order " +"cannot be imported." +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,help:connector_woocommerce.field_woocommerce_product_product__public_categ_ids +#: model:ir.model.fields,help:connector_woocommerce.field_woocommerce_product_template__public_categ_ids +msgid "" +"The product will be available in each mentioned eCommerce category. Go to " +"Shop > Customize and enable 'eCommerce categories' to view all eCommerce " +"categories." +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,help:connector_woocommerce.field_woocommerce_sale_order__currency_rate +msgid "" +"The rate of the currency to the currency of rate 1 applicable at the date of" +" the order" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,help:connector_woocommerce.field_woocommerce_product_product__lst_price +msgid "" +"The sale price is managed from the product template. Click on the 'Configure" +" Variants' button to set the extra attribute prices." +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,help:connector_woocommerce.field_woocommerce_res_partner__property_stock_customer +msgid "" +"The stock location used as destination when sending goods to this contact." +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,help:connector_woocommerce.field_woocommerce_res_partner__property_stock_supplier +msgid "" +"The stock location used as source when receiving goods from this contact." +msgstr "" + +#. module: connector_woocommerce +#: code:addons/connector_woocommerce/models/sale_order/adapter.py:0 +#, python-format +msgid "There are more than one partner with the same name" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,help:connector_woocommerce.field_woocommerce_product_product__property_account_creditor_price_difference +#: model:ir.model.fields,help:connector_woocommerce.field_woocommerce_product_template__property_account_creditor_price_difference +msgid "" +"This account is used in automated inventory valuation to record the price " +"difference between a purchase order and its related vendor bill when " +"validating this vendor bill." +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,help:connector_woocommerce.field_woocommerce_res_partner__property_account_payable_id +msgid "" +"This account will be used instead of the default one as the payable account " +"for the current partner" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,help:connector_woocommerce.field_woocommerce_res_partner__property_account_receivable_id +msgid "" +"This account will be used instead of the default one as the receivable " +"account for the current partner" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,help:connector_woocommerce.field_woocommerce_res_partner__property_purchase_currency_id +msgid "" +"This currency will be used, instead of the default one, for purchases from " +"the current partner" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,help:connector_woocommerce.field_woocommerce_backend__tz +msgid "This field is used to define in which timezone the backend will work." +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,help:connector_woocommerce.field_woocommerce_backend__chunk_size +msgid "" +"This field is used to define the chunk size to import from the backend." +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,help:connector_woocommerce.field_woocommerce_res_partner__email_normalized +msgid "" +"This field is used to search on email address as the primary email field can" +" contain more than strictly an email address." +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,help:connector_woocommerce.field_woocommerce_sale_order__campaign_id +msgid "" +"This is a name that helps you keep track of your different campaign efforts," +" e.g. Fall_Drive, Christmas_Special" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,help:connector_woocommerce.field_woocommerce_sale_order__commitment_date +msgid "" +"This is the delivery date promised to the customer. If set, the delivery " +"order will be scheduled based on this date rather than product lead times." +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,help:connector_woocommerce.field_woocommerce_sale_order__medium_id +msgid "This is the method of delivery, e.g. Postcard, Email, or Banner Ad" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,help:connector_woocommerce.field_woocommerce_sale_order__source_id +msgid "" +"This is the source of the link, e.g. Search Engine, another domain, or name " +"of email list" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,help:connector_woocommerce.field_woocommerce_product_product__price_extra +msgid "This is the sum of the extra price of all attributes" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,help:connector_woocommerce.field_woocommerce_res_partner__property_supplier_payment_term_id +msgid "" +"This payment term will be used instead of the default one for purchase " +"orders and vendor bills" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,help:connector_woocommerce.field_woocommerce_res_partner__property_payment_term_id +msgid "" +"This payment term will be used instead of the default one for sales orders " +"and customer invoices" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,help:connector_woocommerce.field_woocommerce_res_partner__property_product_pricelist +msgid "" +"This pricelist will be used, instead of the default one, for sales to the " +"current partner" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,help:connector_woocommerce.field_woocommerce_product_product__property_stock_production +#: model:ir.model.fields,help:connector_woocommerce.field_woocommerce_product_template__property_stock_production +msgid "" +"This stock location will be used, instead of the default one, as the source " +"location for stock moves generated by manufacturing orders." +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,help:connector_woocommerce.field_woocommerce_product_product__property_stock_inventory +#: model:ir.model.fields,help:connector_woocommerce.field_woocommerce_product_template__property_stock_inventory +msgid "" +"This stock location will be used, instead of the default one, as the source " +"location for stock moves generated when you do an inventory." +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,help:connector_woocommerce.field_woocommerce_product_product__responsible_id +#: model:ir.model.fields,help:connector_woocommerce.field_woocommerce_product_template__responsible_id +msgid "" +"This user will be responsible of the next activities related to logistic " +"operations for this product." +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,help:connector_woocommerce.field_woocommerce_res_partner__default_supplierinfo_discount +#: model:ir.model.fields,help:connector_woocommerce.field_woocommerce_res_partner__default_supplierinfo_discount2 +#: model:ir.model.fields,help:connector_woocommerce.field_woocommerce_res_partner__default_supplierinfo_discount3 +msgid "" +"This value will be used as the default one, for each new supplierinfo line " +"depending on that supplier." +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,help:connector_woocommerce.field_woocommerce_sale_order__timesheet_encode_uom_id +msgid "" +"This will set the unit of measure used to encode timesheet. This will simply provide tools\n" +" and widgets to help the encoding. All reporting will still be expressed in hours (default value)." +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_res_partner__helpdesk_ticket_active_count +msgid "Ticket active count" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_res_partner__helpdesk_ticket_count +msgid "Ticket count" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_res_partner__helpdesk_ticket_count_string +msgid "Tickets" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_sale_order__timesheet_encode_uom_id +msgid "Timesheet Encoding Unit" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_sale_order__timesheet_total_duration +msgid "Timesheet Total Duration" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_sale_order__timesheet_count +msgid "Timesheet activities" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_sale_order__timesheet_ids +msgid "Timesheet activities associated to this sale" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_backend__tz +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_res_partner__tz +msgid "Timezone" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_res_partner__tz_offset +msgid "Timezone offset" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_res_partner__title +msgid "Title" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_sale_order_line__qty_to_invoice +msgid "To Invoice Quantity" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_res_partner__to_review +msgid "To review" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_sale_order__amount_total +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_sale_order_line__price_total +msgid "Total" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_product__total_cost +msgid "Total Cost" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_res_partner__total_invoiced +msgid "Total Invoiced" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_product__total_margin +msgid "Total Margin" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_product__total_margin_rate +msgid "Total Margin Rate(%)" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_res_partner__debit +msgid "Total Payable" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_sale_order__total_purchase_price +msgid "Total Purchase Price" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_res_partner__credit +msgid "Total Receivable" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_sale_order_line__price_tax +msgid "Total Tax" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,help:connector_woocommerce.field_woocommerce_res_partner__credit +msgid "Total amount this customer owes you." +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,help:connector_woocommerce.field_woocommerce_res_partner__debit +msgid "Total amount you have to pay to this vendor." +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,help:connector_woocommerce.field_woocommerce_product_product__total_margin_rate +msgid "Total margin * 100 / Turnover" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,help:connector_woocommerce.field_woocommerce_sale_order__timesheet_total_duration +msgid "" +"Total recorded duration, expressed in the encoding UoM, and rounded to the " +"unit" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_product__service_type +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_template__service_type +msgid "Track Service" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_product__tracking +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_template__tracking +msgid "Tracking" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_res_partner__tracking_emails_count +msgid "Tracking Emails Count" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_res_partner__comercial +msgid "Trade name" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_sale_order__transaction_ids +msgid "Transactions" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model,name:connector_woocommerce.model_stock_picking +msgid "Transfer" +msgstr "Albarán" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_sale_order__picking_ids +msgid "Transfers" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_product__turnover +msgid "Turnover" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,help:connector_woocommerce.field_woocommerce_product_product__total_margin +msgid "Turnover - Standard price" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_sale_order__type_name +msgid "Type Name" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,help:connector_woocommerce.field_woocommerce_product_product__activity_exception_decoration +#: model:ir.model.fields,help:connector_woocommerce.field_woocommerce_product_template__activity_exception_decoration +#: model:ir.model.fields,help:connector_woocommerce.field_woocommerce_res_partner__activity_exception_decoration +#: model:ir.model.fields,help:connector_woocommerce.field_woocommerce_sale_order__activity_exception_decoration +msgid "Type of the exception activity on record." +msgstr "" + +#. module: connector_woocommerce +#: code:addons/connector_woocommerce/models/common/tools.py:0 +#, python-format +msgid "Type {} not supported for operator {}" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_res_partner__unidad_tramitadora +msgid "Unidad tramitadora" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_sale_order_line__price_unit +msgid "Unit Price" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_product__uom_id +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_template__uom_id +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_sale_order_line__product_uom +msgid "Unit of Measure" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_product__uom_name +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_template__uom_name +msgid "Unit of Measure Name" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_product__message_unread +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_template__message_unread +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_res_partner__message_unread +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_sale_order__message_unread +msgid "Unread Messages" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_product__message_unread_counter +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_template__message_unread_counter +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_res_partner__message_unread_counter +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_sale_order__message_unread_counter +msgid "Unread Messages Counter" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_sale_order__amount_untaxed +msgid "Untaxed Amount" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_sale_order_line__untaxed_amount_to_invoice +msgid "Untaxed Amount To Invoice" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_sale_order_line__untaxed_amount_invoiced +msgid "Untaxed Invoiced Amount" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_backend__url +msgid "Url" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_backend__use_main_product_image +msgid "Use Main Product Image" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,help:connector_woocommerce.field_woocommerce_res_partner__barcode +msgid "Use a barcode to identify this contact." +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields.selection,name:connector_woocommerce.selection__woocommerce_backend__use_main_product_image__first +msgid "Use main image as first image" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields.selection,name:connector_woocommerce.selection__woocommerce_backend__use_main_product_image__last +msgid "Use main image as last image" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_attribute__is_used_on_products +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_attribute_value__is_used_on_products +msgid "Used on Products" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,help:connector_woocommerce.field_woocommerce_res_partner__aeat_identification_type +msgid "" +"Used to specify an identification type to send to SII. Normally for sending " +"national and export invoices to SII where the customer country is not Spain," +" it would calculate an identification type of 04 if the VAT field is filled " +"and 06 if it was not. This field is to specify types of 03 through 05, in " +"the event that the customer doesn't identify with a foreign VAT and instead " +"with their passport or residential certificate. If there is no value it will" +" work as before." +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_res_partner__user_ids +msgid "Users" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,help:connector_woocommerce.field_woocommerce_res_partner__currency_id +msgid "Utility field to express amount currency" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_product__valid_product_template_attribute_line_ids +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_template__valid_product_template_attribute_line_ids +msgid "Valid Product Attribute Lines" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_attribute_value__name +msgid "Value" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_product__value_svl +msgid "Value Svl" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_attribute__value_ids +msgid "Values" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_product__image_variant_1920 +msgid "Variant Image" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_product__image_variant_1024 +msgid "Variant Image 1024" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_product__image_variant_128 +msgid "Variant Image 128" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_product__image_variant_256 +msgid "Variant Image 256" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_product__image_variant_512 +msgid "Variant Image 512" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_product__price_extra +msgid "Variant Price Extra" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_product_product__variant_public_description +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_product__variant_public_description +msgid "Variant Public Description" +msgstr "Descripción Pública de la Variante" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_product__variant_description_sale +msgid "Variant Sale Description" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_product__variant_seller_ids +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_template__variant_seller_ids +msgid "Variant Seller" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_attribute__create_variant +msgid "Variants Creation Mode" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_res_partner__property_stock_supplier +msgid "Vendor Location" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_res_partner__property_supplier_payment_term_id +msgid "Vendor Payment Terms" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_product__supplier_taxes_id +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_template__supplier_taxes_id +msgid "Vendor Taxes" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_product__seller_ids +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_template__seller_ids +msgid "Vendors" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_backend__verify_ssl +msgid "Verify Ssl" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_backend__version +msgid "Version" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_sale_order_line__virtual_available_at_date +msgid "Virtual Available At Date" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_product__website_published +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_template__website_published +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_res_partner__website_published +msgid "Visible on current website" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_res_partner__visitor_ids +msgid "Visitors" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_product__volume +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_template__volume +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_res_partner__es_tomo +msgid "Volume" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_product__volume_uom_name +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_template__volume_uom_name +msgid "Volume unit of measure label" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_product__warehouse_id +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_template__warehouse_id +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_sale_order__warehouse_id +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_sale_order_line__warehouse_id +msgid "Warehouse" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_sale_order__warning_stock +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_sale_order_line__warning_stock +msgid "Warning" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_product__website_id +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_public_category__website_id +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_template__website_id +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_res_partner__website_id +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_sale_order__website_id +msgid "Website" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_res_partner__website +msgid "Website Link" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_product__website_message_ids +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_template__website_message_ids +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_res_partner__website_message_ids +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_sale_order__website_message_ids +msgid "Website Messages" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_product_product__website_name +#: model:ir.model.fields,field_description:connector_woocommerce.field_product_template__website_name +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_product__website_name +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_template__website_name +msgid "Website Name" +msgstr "Nombre del sitio web" + +#. module: connector_woocommerce +#: model:ir.model,name:connector_woocommerce.model_product_public_category +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_product__public_categ_ids +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_template__public_categ_ids +msgid "Website Product Category" +msgstr "Categoría del Producto" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_product__website_sequence +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_template__website_sequence +msgid "Website Sequence" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_product__website_url +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_template__website_url +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_res_partner__website_url +msgid "Website URL" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,help:connector_woocommerce.field_woocommerce_product_product__website_message_ids +#: model:ir.model.fields,help:connector_woocommerce.field_woocommerce_product_template__website_message_ids +#: model:ir.model.fields,help:connector_woocommerce.field_woocommerce_res_partner__website_message_ids +#: model:ir.model.fields,help:connector_woocommerce.field_woocommerce_sale_order__website_message_ids +msgid "Website communication history" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_product__website_meta_description +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_public_category__website_meta_description +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_template__website_meta_description +msgid "Website meta description" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_product__website_meta_keywords +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_public_category__website_meta_keywords +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_template__website_meta_keywords +msgid "Website meta keywords" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_product__website_meta_title +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_public_category__website_meta_title +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_template__website_meta_title +msgid "Website meta title" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_product__website_meta_og_img +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_public_category__website_meta_og_img +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_template__website_meta_og_img +msgid "Website opengraph image" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,help:connector_woocommerce.field_woocommerce_sale_order__website_id +msgid "Website through which this order was placed." +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_product__weight +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_template__weight +msgid "Weight" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_product__weight_uom_name +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_template__weight_uom_name +msgid "Weight unit of measure label" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,help:connector_woocommerce.field_woocommerce_res_partner__tz +msgid "" +"When printing documents and exporting/importing data, time values are computed according to this timezone.\n" +"If the timezone is not set, UTC (Coordinated Universal Time) is used.\n" +"Anywhere else, time values are computed according to the time offset of your web client." +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,help:connector_woocommerce.field_woocommerce_product_product__use_expiration_date +#: model:ir.model.fields,help:connector_woocommerce.field_woocommerce_product_template__use_expiration_date +msgid "" +"When this box is ticked, you have the possibility to specify dates to manage" +" product expiration, on the product and on the corresponding lot/serial " +"numbers" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.ui.menu,name:connector_woocommerce.woocommerce_menu_root +#: model_terms:ir.ui.view,arch_db:connector_woocommerce.connector_sale_order_view_form +#: model_terms:ir.ui.view,arch_db:connector_woocommerce.woocommerce_sale_order_view_filter +msgid "WooCommerce" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.actions.server,name:connector_woocommerce.ir_cron_woocommerce_export_product_attribute_ir_actions_server +#: model:ir.cron,cron_name:connector_woocommerce.ir_cron_woocommerce_export_product_attribute +#: model:ir.cron,name:connector_woocommerce.ir_cron_woocommerce_export_product_attribute +msgid "WooCommerce - Export Product Attribute" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.actions.server,name:connector_woocommerce.ir_cron_woocommerce_export_product_ir_actions_server +#: model:ir.cron,cron_name:connector_woocommerce.ir_cron_woocommerce_export_product +#: model:ir.cron,name:connector_woocommerce.ir_cron_woocommerce_export_product +msgid "WooCommerce - Export Product Product" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.actions.server,name:connector_woocommerce.ir_cron_woocommerce_export_product_attribute_value_ir_actions_server +#: model:ir.cron,cron_name:connector_woocommerce.ir_cron_woocommerce_export_product_attribute_value +#: model:ir.cron,name:connector_woocommerce.ir_cron_woocommerce_export_product_attribute_value +msgid "WooCommerce - Export Product Product Attribute Value" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.actions.server,name:connector_woocommerce.ir_cron_woocommerce_export_product_public_category_ir_actions_server +#: model:ir.cron,cron_name:connector_woocommerce.ir_cron_woocommerce_export_product_public_category +#: model:ir.cron,name:connector_woocommerce.ir_cron_woocommerce_export_product_public_category +msgid "WooCommerce - Export Product Public Category" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.actions.server,name:connector_woocommerce.ir_cron_woocommerce_export_product_template_ir_actions_server +#: model:ir.cron,cron_name:connector_woocommerce.ir_cron_woocommerce_export_product_template +#: model:ir.cron,name:connector_woocommerce.ir_cron_woocommerce_export_product_template +msgid "WooCommerce - Export Product Template" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.actions.server,name:connector_woocommerce.ir_cron_woocommerce_export_sale_order_ir_actions_server +#: model:ir.cron,cron_name:connector_woocommerce.ir_cron_woocommerce_export_sale_order +#: model:ir.cron,name:connector_woocommerce.ir_cron_woocommerce_export_sale_order +msgid "WooCommerce - Export Sale Orders" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.actions.server,name:connector_woocommerce.ir_cron_woocommerce_import_sale_order_ir_actions_server +#: model:ir.cron,cron_name:connector_woocommerce.ir_cron_woocommerce_import_sale_order +#: model:ir.cron,name:connector_woocommerce.ir_cron_woocommerce_import_sale_order +msgid "WooCommerce - Import Sale Orders" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model,name:connector_woocommerce.model_woocommerce_backend +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_binding__backend_id +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_attribute__backend_id +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_attribute_value__backend_id +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_product__backend_id +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_public_category__backend_id +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_template__backend_id +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_res_partner__backend_id +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_sale_order__backend_id +msgid "WooCommerce Backend" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model,name:connector_woocommerce.model_woocommerce_backend_account_tax +msgid "WooCommerce Backend Account Tax" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model,name:connector_woocommerce.model_woocommerce_backend_payment_mode +msgid "WooCommerce Backend Payment Mode" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model,name:connector_woocommerce.model_woocommerce_backend_tax_class +msgid "WooCommerce Backend Tax Class" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.actions.act_window,name:connector_woocommerce.woocommerce_backend_action +msgid "WooCommerce Backends" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model,name:connector_woocommerce.model_woocommerce_binding +msgid "WooCommerce Binding" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_product_attribute__woocommerce_bind_ids +#: model:ir.model.fields,field_description:connector_woocommerce.field_product_attribute_value__woocommerce_bind_ids +#: model:ir.model.fields,field_description:connector_woocommerce.field_product_product__woocommerce_bind_ids +#: model:ir.model.fields,field_description:connector_woocommerce.field_product_public_category__woocommerce_bind_ids +#: model:ir.model.fields,field_description:connector_woocommerce.field_product_template__woocommerce_bind_ids +#: model:ir.model.fields,field_description:connector_woocommerce.field_res_partner__woocommerce_bind_ids +#: model:ir.model.fields,field_description:connector_woocommerce.field_res_users__woocommerce_bind_ids +#: model:ir.model.fields,field_description:connector_woocommerce.field_sage_res_partner__woocommerce_bind_ids +#: model:ir.model.fields,field_description:connector_woocommerce.field_sale_order__woocommerce_bind_ids +#: model:ir.model.fields,field_description:connector_woocommerce.field_sale_order_line__woocommerce_bind_ids +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_attribute__woocommerce_bind_ids +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_attribute_value__woocommerce_bind_ids +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_product__woocommerce_bind_ids +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_public_category__woocommerce_bind_ids +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_template__woocommerce_bind_ids +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_res_partner__woocommerce_bind_ids +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_sale_order__woocommerce_bind_ids +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_sale_order_line__woocommerce_bind_ids +#: model_terms:ir.ui.view,arch_db:connector_woocommerce.connector_product_attribute_view_form +#: model_terms:ir.ui.view,arch_db:connector_woocommerce.connector_product_product_view_form +#: model_terms:ir.ui.view,arch_db:connector_woocommerce.connector_product_template_view_form +#: model_terms:ir.ui.view,arch_db:connector_woocommerce.connector_res_partner_view_form +#: model_terms:ir.ui.view,arch_db:connector_woocommerce.connector_sale_order_view_form +#: model_terms:ir.ui.view,arch_db:connector_woocommerce.connector_woocommerce_product_public_category_view_form +msgid "WooCommerce Bindings" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,help:connector_woocommerce.field_woocommerce_backend__consumer_key +msgid "WooCommerce Consumer Key" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_attribute__woocommerce_idattribute +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_attribute_value__woocommerce_idattribute +msgid "WooCommerce ID Attribute" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_attribute_value__woocommerce_idattributevalue +msgid "WooCommerce ID Attribute Value" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_product__woocommerce_idparent +msgid "WooCommerce ID Parent" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_product__woocommerce_idproduct +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_template__woocommerce_idproduct +msgid "WooCommerce ID Product" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_public_category__woocommerce_idpubliccategory +msgid "WooCommerce ID Public Category" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_res_partner__woocommerce_idrespartner +msgid "WooCommerce ID Res Partner" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_sale_order__woocommerce_idsaleorder +msgid "WooCommerce ID Sale Order" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_sale_order_line__woocommerce_order_id +msgid "WooCommerce Order" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_sale_order_line__woocommerce_order_line_id +msgid "WooCommerce Order Line ID" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_sale_order__woocommerce_order_line_ids +msgid "WooCommerce Order Line ids" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_backend_payment_mode__woocommerce_payment_mode +msgid "WooCommerce Payment Mode" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model,name:connector_woocommerce.model_woocommerce_product_attribute +msgid "WooCommerce Product Attribute Binding" +msgstr "" + +#. module: connector_woocommerce +#: model_terms:ir.ui.view,arch_db:connector_woocommerce.woocommerce_product_attribute_value_view_form +msgid "WooCommerce Product Attribute Value" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model,name:connector_woocommerce.model_woocommerce_product_attribute_value +msgid "WooCommerce Product Attribute Value Binding" +msgstr "" + +#. module: connector_woocommerce +#: model_terms:ir.ui.view,arch_db:connector_woocommerce.woocommerce_product_product_view_form +msgid "WooCommerce Product Product" +msgstr "" + +#. module: connector_woocommerce +#: model_terms:ir.ui.view,arch_db:connector_woocommerce.woocommerce_product_public_category_view_form +msgid "WooCommerce Product Public Category" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model,name:connector_woocommerce.model_woocommerce_product_public_category +msgid "WooCommerce Product Public Category Binding" +msgstr "" + +#. module: connector_woocommerce +#: model_terms:ir.ui.view,arch_db:connector_woocommerce.woocommerce_product_attribute_view_form +#: model_terms:ir.ui.view,arch_db:connector_woocommerce.woocommerce_product_template_view_form +msgid "WooCommerce Product Template" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model,name:connector_woocommerce.model_woocommerce_product_product +msgid "WooCommerce Product product Binding" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model,name:connector_woocommerce.model_woocommerce_product_template +msgid "WooCommerce Product template Binding" +msgstr "" + +#. module: connector_woocommerce +#: model_terms:ir.ui.view,arch_db:connector_woocommerce.woocommerce_partner_view_form +msgid "WooCommerce Res Partner" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model,name:connector_woocommerce.model_woocommerce_res_partner +msgid "WooCommerce Res Partner Binding" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model,name:connector_woocommerce.model_woocommerce_sale_order +msgid "WooCommerce Sale Order Binding" +msgstr "" + +#. module: connector_woocommerce +#: model_terms:ir.ui.view,arch_db:connector_woocommerce.woocommerce_sale_order_view_form +msgid "WooCommerce Sale order" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_backend_tax_class__woocommerce_tax_class +msgid "WooCommerce Tax Class" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_backend_account_tax__woocommerce_tax_rate_id +msgid "WooCommerce Tax Rate ID" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_res_partner__woocommerce_address_type +msgid "WooCommerce Type" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,help:connector_woocommerce.field_woocommerce_backend__url +msgid "WooCommerce URL" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_sale_order_line__woocommerce_discount +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_sale_order_line__woocommerce_discount +msgid "Woocommerce Discount" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_product_product__woocommerce_enabled +#: model:ir.model.fields,field_description:connector_woocommerce.field_product_template__woocommerce_enabled +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_product__woocommerce_enabled +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_template__woocommerce_enabled +#: model_terms:ir.ui.view,arch_db:connector_woocommerce.product_template_search_view_website +msgid "Woocommerce Enabled" +msgstr "Habilitado en Woocommerce" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_sale_order__woocommerce_order_state +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_sale_order__woocommerce_order_state +msgid "Woocommerce Order State" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_sale_order_line__woocommerce_sale_order_id +msgid "Woocommerce Sale Order" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_sale_order__woocommerce_status +msgid "Woocommerce Status" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_sale_order__woocommerce_status_write_date +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_sale_order__woocommerce_status_write_date +msgid "Woocommerce Status Write Date" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_stock_picking__woocommerce_stock_picking_state +msgid "Woocommerce Stock Picking State" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_product_product__woocommerce_write_date +#: model:ir.model.fields,field_description:connector_woocommerce.field_product_template__woocommerce_write_date +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_product__woocommerce_write_date +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_product_template__woocommerce_write_date +msgid "Woocommerce Write Date" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_backend__wordpress_backend_id +msgid "Wordpress Backend" +msgstr "" + +#. module: connector_woocommerce +#: code:addons/connector_woocommerce/models/common/tools.py:0 +#, python-format +msgid "Wrong domain clause format %s" +msgstr "" + +#. module: connector_woocommerce +#: code:addons/connector_woocommerce/models/product_template/product_template.py:0 +#, python-format +msgid "" +"You can't change the attributes if the product has a woocommerce binding" +msgstr "" + +#. module: connector_woocommerce +#: code:addons/connector_woocommerce/models/product_template/export_mapper.py:0 +#, python-format +msgid "You must define a default code for the product %s" +msgstr "" + +#. module: connector_woocommerce +#: code:addons/connector_woocommerce/models/product_product/export_mapper.py:0 +#, python-format +msgid "You must define an internal reference for the product {%s}'%s'" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_res_partner__zip_id +msgid "ZIP Location" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_res_partner__zip +msgid "Zip" +msgstr "" + +#. module: connector_woocommerce +#: model_terms:ir.ui.view,arch_db:connector_woocommerce.product_product_view_form_easy_inherit_connector_woocommerce +msgid "eCommerce" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model,name:connector_woocommerce.model_product_attachment +msgid "product.attachment" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,help:connector_woocommerce.field_woocommerce_sale_order__amount_by_group +msgid "type: [(name, amount, base, formated amount, formated base)]" +msgstr "" + +#. module: connector_woocommerce +#: model_terms:ir.ui.view,arch_db:connector_woocommerce.woocommerce_backend_view_form +msgid "woocommerce Backend" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model,name:connector_woocommerce.model_woocommerce_sale_order_line +msgid "woocommerce.sale.order.line" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_res_partner__organo_gestor +msgid "Órgano gestor" +msgstr "" + +#. module: connector_woocommerce +#: model:ir.model.fields,field_description:connector_woocommerce.field_woocommerce_res_partner__organo_proponente +msgid "Órgano proponente" +msgstr "" diff --git a/connector_woocommerce/models/__init__.py b/connector_woocommerce/models/__init__.py new file mode 100644 index 000000000..914a2bac9 --- /dev/null +++ b/connector_woocommerce/models/__init__.py @@ -0,0 +1,14 @@ +from . import backend +from . import binding +from . import common +from . import ir_attachment +from . import product_public_category +from . import product_attribute +from . import product_attribute_value +from . import product +from . import product_template +from . import product_product +from . import res_partner +from . import sale_order_line +from . import sale_order +from . import stock_picking diff --git a/connector_woocommerce/models/backend/__init__.py b/connector_woocommerce/models/backend/__init__.py new file mode 100644 index 000000000..65be80dff --- /dev/null +++ b/connector_woocommerce/models/backend/__init__.py @@ -0,0 +1,5 @@ +from . import adapter +from . import backend +from . import backend_account_tax +from . import backend_payment_mode +from . import backend_tax_class diff --git a/connector_woocommerce/models/backend/adapter.py b/connector_woocommerce/models/backend/adapter.py new file mode 100644 index 000000000..51919cc9a --- /dev/null +++ b/connector_woocommerce/models/backend/adapter.py @@ -0,0 +1,15 @@ +# Copyright NuoBiT Solutions - Kilian Niubo +# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl) +import logging + +from odoo.addons.component.core import Component + +_logger = logging.getLogger(__name__) + + +class WooCommerceBackendAdapter(Component): + _name = "connector.woocommerce.backend.adapter" + _inherit = "connector.woocommerce.adapter" + _description = "WooCommerce Backend Adapter" + + _apply_on = "woocommerce.backend" diff --git a/connector_woocommerce/models/backend/backend.py b/connector_woocommerce/models/backend/backend.py new file mode 100644 index 000000000..d42d48964 --- /dev/null +++ b/connector_woocommerce/models/backend/backend.py @@ -0,0 +1,239 @@ +# Copyright NuoBiT Solutions - Kilian Niubo +# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl). +import logging + +from odoo import _, api, fields, models +from odoo.exceptions import ValidationError + +_logger = logging.getLogger(__name__) + + +class WooCommerceBackend(models.Model): + _name = "woocommerce.backend" + _inherit = "connector.extension.backend" + _description = "WooCommerce Backend" + + url = fields.Char( + help="WooCommerce URL", + required=True, + ) + consumer_key = fields.Char( + help="WooCommerce Consumer Key", + required=True, + ) + consumer_secret = fields.Char( + required=True, + ) + payment_mode_ids = fields.One2many( + comodel_name="woocommerce.backend.payment.mode", + inverse_name="backend_id", + string="Payment Mode", + ) + tax_map_ids = fields.One2many( + comodel_name="woocommerce.backend.account.tax", + inverse_name="backend_id", + string="Tax Mapping", + ) + tax_class_ids = fields.One2many( + comodel_name="woocommerce.backend.tax.class", + inverse_name="backend_id", + string="Tax Class", + ) + shipping_product_id = fields.Many2one( + comodel_name="product.product", + ) + + page_size = fields.Integer( + help="Number of records to fetch at a time. Max: 100", + ) + + @api.constrains("page_size") + def _check_page_size(self): + for rec in self: + if rec.page_size > 100: + raise ValidationError(_("Page size must be less than 100")) + + language_id = fields.Many2one( + comodel_name="res.lang", + string="Language", + required=True, + ) + client_order_ref_prefix = fields.Char( + string="Client Order Reference Prefix", + help="Prefix to add to the client order reference", + required=True, + ) + verify_ssl = fields.Boolean( + default=True, + ) + discount_pricelist_id = fields.Many2one( + comodel_name="product.pricelist", + ) + wordpress_backend_id = fields.Many2one( + comodel_name="wordpress.backend", + ) + use_main_product_image = fields.Selection( + selection=[ + ("no", "Don't use main image"), + ("first", "Use main image as first image"), + ("last", "Use main image as last image"), + ], + default="first", + ) + export_product_tmpl_since_date = fields.Datetime( + string="Export Product Templates Since", + ) + export_products_since_date = fields.Datetime( + string="Export Products Since", + ) + export_sale_orders_since_date = fields.Datetime( + string="Export Sale Orders Since", + ) + export_product_public_category_since_date = fields.Datetime( + string="Export Product public category Since", + ) + export_product_attribute_since_date = fields.Datetime( + string="Export Product attributes Since", + ) + export_product_attribute_value_since_date = fields.Datetime( + string="Export Product attribute values Since", + ) + export_product_attachment_since_date = fields.Datetime( + string="Export Product Attachment Since", + ) + import_sale_order_since_date = fields.Datetime( + string="Import Sale Order Since", + ) + stock_location_ids = fields.Many2many( + string="Locations", + comodel_name="stock.location", + readonly=False, + required=True, + domain="[('usage', 'in', ['internal','view'])]", + ) + + def export_product_tmpl_since(self): + self.env.user.company_id = self.company_id + for rec in self: + since_date = fields.Datetime.from_string(rec.export_product_tmpl_since_date) + rec.export_product_tmpl_since_date = fields.Datetime.now() + self.env["woocommerce.product.template"].export_product_tmpl_since( + backend_record=rec, since_date=since_date + ) + + def export_products_since(self): + self.env.user.company_id = self.company_id + for rec in self: + since_date = fields.Datetime.from_string(rec.export_products_since_date) + rec.export_products_since_date = fields.Datetime.now() + self.env["woocommerce.product.product"].export_products_since( + backend_record=rec, since_date=since_date + ) + + def export_sale_orders_since(self): + self.env.user.company_id = self.company_id + for rec in self: + since_date = fields.Datetime.from_string(rec.export_sale_orders_since_date) + rec.export_sale_orders_since_date = fields.Datetime.now() + self.env["woocommerce.sale.order"].export_sale_orders_since( + backend_record=rec, since_date=since_date + ) + + def export_product_public_category_since(self): + self.env.user.company_id = self.company_id + for rec in self: + since_date = fields.Datetime.from_string( + rec.export_product_public_category_since_date + ) + rec.export_product_public_category_since_date = fields.Datetime.now() + self.env[ + "woocommerce.product.public.category" + ].export_product_public_category_since( + backend_record=rec, since_date=since_date + ) + + def export_product_attribute_since(self): + self.env.user.company_id = self.company_id + for rec in self: + since_date = fields.Datetime.from_string( + rec.export_product_attribute_since_date + ) + rec.export_product_attribute_since_date = fields.Datetime.now() + self.env["woocommerce.product.attribute"].export_product_attribute_since( + backend_record=rec, since_date=since_date + ) + + def export_product_attribute_value_since(self): + self.env.user.company_id = self.company_id + for rec in self: + since_date = fields.Datetime.from_string( + rec.export_product_attribute_value_since_date + ) + rec.export_product_attribute_value_since_date = fields.Datetime.now() + self.env[ + "woocommerce.product.attribute.value" + ].export_product_attribute_value_since( + backend_record=rec, since_date=since_date + ) + + def export_product_attachment_since(self): + self.env.user.company_id = self.company_id + for rec in self: + since_date = fields.Datetime.from_string( + rec.export_product_attachment_since_date + ) + rec.export_product_attachment_since_date = fields.Datetime.now() + self.env["wordpress.ir.attachment"].export_product_attachment_since( + backend_record=rec, since_date=since_date + ) + + def import_sale_orders_since(self): + self.env.user.company_id = self.company_id + for rec in self: + since_date = fields.Datetime.from_string(rec.import_sale_order_since_date) + rec.import_sale_order_since_date = fields.Datetime.now() + self.env["woocommerce.sale.order"].import_sale_orders_since( + backend_record=rec, since_date=since_date + ) + + # scheduler + @api.model + def _scheduler_export_products(self): + for backend in self.env[self._name].search([("state", "=", "validated")]): + backend.export_products_since() + + # scheduler + @api.model + def _scheduler_export_product_tmpl(self): + for backend in self.env[self._name].search([("state", "=", "validated")]): + backend.export_product_tmpl_since() + + @api.model + def _scheduler_export_sale_orders(self): + for backend in self.env[self._name].search([("state", "=", "validated")]): + backend.export_sale_orders_since() + + @api.model + def _scheduler_import_sale_orders(self): + for backend in self.env[self._name].search([("state", "=", "validated")]): + backend.import_sale_orders_since() + + @api.model + def _scheduler_export_product_public_category(self): + for backend in self.env[self._name].search([("state", "=", "validated")]): + backend.export_product_public_category_since() + + @api.model + def _scheduler_export_product_attribute(self): + for backend in self.env[self._name].search([("state", "=", "validated")]): + backend.export_product_attribute_since() + + @api.model + def _scheduler_export_product_attribute_value(self): + for backend in self.env[self._name].search([("state", "=", "validated")]): + backend.export_product_attribute_value_since() + + @api.model + def _scheduler_export_product_attachment(self): + for backend in self.env[self._name].search([("state", "=", "validated")]): + backend.export_product_attachment_since() diff --git a/connector_woocommerce/models/backend/backend_account_tax.py b/connector_woocommerce/models/backend/backend_account_tax.py new file mode 100644 index 000000000..49ed108ec --- /dev/null +++ b/connector_woocommerce/models/backend/backend_account_tax.py @@ -0,0 +1,35 @@ +# Copyright NuoBiT Solutions - Kilian Niubo +# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl). +import logging + +from odoo import fields, models + +_logger = logging.getLogger(__name__) + + +class WooCommerceBackendAccountTax(models.Model): + _name = "woocommerce.backend.account.tax" + _description = "WooCommerce Backend Account Tax" + + backend_id = fields.Many2one( + string="Backend id", + comodel_name="woocommerce.backend", + required=True, + ondelete="cascade", + ) + woocommerce_tax_rate_id = fields.Integer( + string="WooCommerce Tax Rate ID", + required=True, + ) + account_tax = fields.Many2one( + comodel_name="account.tax", + required=True, + ) + + _sql_constraints = [ + ( + "tax_map_uniq", + "unique(backend_id, woocommerce_tax_rate_id)", + "A binding already exists with the same (backend, woocommerce_tax_rate_id) ID.", + ), + ] diff --git a/connector_woocommerce/models/backend/backend_payment_mode.py b/connector_woocommerce/models/backend/backend_payment_mode.py new file mode 100644 index 000000000..2e4e25e36 --- /dev/null +++ b/connector_woocommerce/models/backend/backend_payment_mode.py @@ -0,0 +1,43 @@ +# Copyright NuoBiT Solutions - Kilian Niubo +# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl). +import logging + +from odoo import fields, models + +_logger = logging.getLogger(__name__) + + +class WooCommerceBackendAccountTax(models.Model): + _name = "woocommerce.backend.payment.mode" + _description = "WooCommerce Backend Payment Mode" + + backend_id = fields.Many2one( + string="Backend id", + comodel_name="woocommerce.backend", + required=True, + ondelete="cascade", + ) + company_id = fields.Many2one( + comodel_name="res.company", + required=True, + default=lambda self: self.env.company, + ondelete="restrict", + ) + woocommerce_payment_mode = fields.Char( + string="WooCommerce Payment Mode", + required=True, + ) + payment_mode_id = fields.Many2one( + comodel_name="account.payment.mode", + required=True, + check_company=True, + domain="[('payment_type', '=', 'inbound'), ('company_id', '=', company_id)]", + ) + + _sql_constraints = [ + ( + "tax_map_uniq", + "unique(backend_id, woocommerce_payment_mode)", + "A binding already exists with the same (backend, woocommerce_payment_mode) ID.", + ), + ] diff --git a/connector_woocommerce/models/backend/backend_tax_class.py b/connector_woocommerce/models/backend/backend_tax_class.py new file mode 100644 index 000000000..af844813c --- /dev/null +++ b/connector_woocommerce/models/backend/backend_tax_class.py @@ -0,0 +1,34 @@ +# Copyright NuoBiT Solutions - Kilian Niubo +# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl). +import logging + +from odoo import fields, models + +_logger = logging.getLogger(__name__) + + +class WooCommerceBackendTaxClass(models.Model): + _name = "woocommerce.backend.tax.class" + _description = "WooCommerce Backend Tax Class" + + backend_id = fields.Many2one( + string="Backend id", + comodel_name="woocommerce.backend", + required=True, + ondelete="cascade", + ) + account_tax = fields.Many2one( + comodel_name="account.tax", + required=True, + ) + woocommerce_tax_class = fields.Char( + string="WooCommerce Tax Class", + required=True, + ) + _sql_constraints = [ + ( + "tax_map_uniq", + "unique(backend_id, woocommerce_tax_class)", + "A binding already exists with the same (backend, woocommerce_tax_rate_id) ID.", + ), + ] diff --git a/connector_woocommerce/models/binding/__init__.py b/connector_woocommerce/models/binding/__init__.py new file mode 100644 index 000000000..0fec82e8a --- /dev/null +++ b/connector_woocommerce/models/binding/__init__.py @@ -0,0 +1 @@ +from . import binding diff --git a/connector_woocommerce/models/binding/binding.py b/connector_woocommerce/models/binding/binding.py new file mode 100644 index 000000000..767798929 --- /dev/null +++ b/connector_woocommerce/models/binding/binding.py @@ -0,0 +1,25 @@ +# Copyright NuoBiT Solutions - Kilian Niubo +# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl). + +from odoo import fields, models + + +class WoocommerceBinding(models.AbstractModel): + _name = "woocommerce.binding" + _inherit = "connector.extension.external.binding" + _description = "WooCommerce Binding" + + backend_id = fields.Many2one( + comodel_name="woocommerce.backend", + string="WooCommerce Backend", + required=True, + ondelete="restrict", + ) + + _sql_constraints = [ + ( + "internal_uniq", + "unique(backend_id, odoo_id)", + "A binding already exists with the same Internal (Odoo) ID.", + ), + ] diff --git a/connector_woocommerce/models/common/tools.py b/connector_woocommerce/models/common/tools.py new file mode 100644 index 000000000..bab1c47ac --- /dev/null +++ b/connector_woocommerce/models/common/tools.py @@ -0,0 +1,121 @@ +# Copyright NuoBiT Solutions - Eric Antones +# Copyright NuoBiT Solutions - Kilian Niubo +# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl) +import datetime +import hashlib +import unicodedata + +from odoo import _ +from odoo.exceptions import ValidationError + + +def list2hash(_list): + _hash = hashlib.sha256() + for e in _list: + if isinstance(e, int): + e9 = str(e) + elif isinstance(e, str): + e9 = e + elif isinstance(e, float): + e9 = str(e) + elif e is None: + e9 = "" + else: + raise Exception("Unexpected type for a key: type %s" % type(e)) + _hash.update(e9.encode("utf8")) + return _hash.hexdigest() + + +def domain_to_normalized_dict(self, domain): + """Convert, if possible, standard Odoo domain to a dictionary. + To do so it is necessary to convert all operators to + equal '=' operator. + """ + res = {} + for elem in domain: + if len(elem) != 3: + raise ValidationError(_("Wrong domain clause format %s") % elem) + field, op, value = elem + if op == "=": + if field in res: + raise ValidationError(_("Duplicated field %s") % field) + res[field] = self._normalize_value(value) + elif op == "!=": + if not isinstance(value, bool): + raise ValidationError( + _("Not equal operation not supported for non boolean fields") + ) + if field in res: + raise ValidationError(_("Duplicated field %s") % field) + res[field] = self._normalize_value(not value) + elif op == "in": + if not isinstance(value, (tuple, list)): + raise ValidationError( + _( + "Operator '%(OPERATOR)s' only supports tuples or lists, not %(TYPES)s" + ) + % { + "OPERATOR": op, + "TYPES": type(value), + } + ) + if field in res: + raise ValidationError(_("Duplicated field %s") % field) + res[field] = self._normalize_value(value) + elif op in (">", ">=", "<", "<="): + if not isinstance(value, (datetime.date, datetime.datetime, int)): + raise ValidationError( + _("Type {} not supported for operator {}").format(type(value), op) + ) + if op in (">", "<"): + adj = 1 + if isinstance(value, (datetime.date, datetime.datetime)): + adj = datetime.timedelta(days=adj) + if op == "<": + op, value = "<=", value - adj + else: + op, value = ">=", value + adj + + res[field] = self._normalize_value(value) + else: + raise ValidationError(_("Operator %s not supported") % op) + + return res + + +def convert_item_to_json(item, ct, namespace): + jitem = {} + for path, func, key, multi in ct: + if key in jitem: + raise ValidationError(_("Key %s already exists") % key) + value = item.xpath(path, namespaces=namespace) + if not value: + jitem[key] = None + else: + if multi: + jitem[key] = func(value) + else: + if len(value) > 1: + raise ValidationError(_("Multiple values found for '%s'") % path) + else: + jitem[key] = func(value[0]) + return jitem + + +def convert_to_json(data, ct, namespace): + res = [] + for d in data: + res.append(convert_item_to_json(d, ct, namespace)) + return res + + +def slugify(value): + if not value: + return None + return ( + unicodedata.normalize("NFKD", value) + .encode("ascii", "ignore") + .decode("ascii") + .lower() + .replace(" ", "") + ) diff --git a/connector_woocommerce/models/ir_attachment/__init__.py b/connector_woocommerce/models/ir_attachment/__init__.py new file mode 100644 index 000000000..0fec82e8a --- /dev/null +++ b/connector_woocommerce/models/ir_attachment/__init__.py @@ -0,0 +1 @@ +from . import binding diff --git a/connector_woocommerce/models/ir_attachment/binding.py b/connector_woocommerce/models/ir_attachment/binding.py new file mode 100644 index 000000000..e924bf0de --- /dev/null +++ b/connector_woocommerce/models/ir_attachment/binding.py @@ -0,0 +1,53 @@ +# Copyright NuoBiT Solutions - Kilian Niubo +# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl) + +from odoo import api, models + + +class WordPressIrAttachment(models.Model): + _inherit = "wordpress.ir.attachment" + + @api.model + def _get_woocommerce_base_domain(self): + product_template = ( + self.env["product.template"] + .with_context(active_test=False) + .search( + [ + ("woocommerce_enabled", "=", True), + ("has_attributes", "!=", False), + ] + ) + ) + product_variant = ( + self.env["product.product"] + .with_context(active_test=False) + .search( + [ + ("product_tmpl_id.woocommerce_enabled", "=", True), + ("product_tmpl_id.has_attributes", "=", True), + ] + ) + ) + attachments = ( + product_template.product_image_attachment_ids.attachment_id + + product_template.product_document_attachment_ids.attachment_id + + product_variant.product_variant_image_attachment_ids.attachment_id + + product_variant.product_document_attachment_ids.attachment_id + ) + return [("id", "in", attachments.ids)] + + def export_product_attachment_since(self, backend_record=None, since_date=None): + domain = self._get_woocommerce_base_domain() + if since_date: + domain += [ + ( + "write_date", + ">", + since_date.strftime("%Y-%m-%dT%H:%M:%S"), + ) + ] + self.with_delay().export_batch( + backend_record.wordpress_backend_id, domain=domain + ) + return True diff --git a/connector_woocommerce/models/product/__init__.py b/connector_woocommerce/models/product/__init__.py new file mode 100644 index 000000000..34ea264d2 --- /dev/null +++ b/connector_woocommerce/models/product/__init__.py @@ -0,0 +1 @@ +from . import export_mapper diff --git a/connector_woocommerce/models/product/export_mapper.py b/connector_woocommerce/models/product/export_mapper.py new file mode 100644 index 000000000..edd47e508 --- /dev/null +++ b/connector_woocommerce/models/product/export_mapper.py @@ -0,0 +1,51 @@ +# Copyright NuoBiT Solutions - Kilian Niubo +# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl) + +from odoo.addons.component.core import AbstractComponent + + +class WooCommerceProductExportMapper(AbstractComponent): + _name = "woocommerce.product.export.mapper" + _inherit = "woocommerce.export.mapper" + + def _prepare_url(self, binding, document): + return binding.wordpress_source_url + + def _get_lang(self, document): + return self.backend_record.language_id.code + + def _prepare_document_description(self, documents): + document_description = [] + if self.backend_record.wordpress_backend_id: + with self.backend_record.wordpress_backend_id.work_on( + "wordpress.ir.attachment" + ) as work: + binder = work.component(usage="binder") + for document in documents: + external_id = binder.get_external_dict_ids( + document.attachment_id, check_external_id=False + ) + if external_id: + binding = binder.wrap_record(document.attachment_id) + document_description.append( + "

%s

" + % ( + self._prepare_url(binding, document), + document.with_context( + lang=self._get_lang(document) + ).name, + ) + ) + else: + if ( + not self.backend_record.wordpress_backend_id.test_database + and self.backend_record.wordpress_backend_id + ): + assert external_id, ( + "Unexpected error on %s:" + "The backend id cannot be obtained." + "At this stage, the backend record should " + "have been already linked via " + "._export_dependencies. " % document.product_id._name + ) + return "\n".join(document_description) or None diff --git a/connector_woocommerce/models/product_attribute/__init__.py b/connector_woocommerce/models/product_attribute/__init__.py new file mode 100644 index 000000000..fd2c9b08c --- /dev/null +++ b/connector_woocommerce/models/product_attribute/__init__.py @@ -0,0 +1,6 @@ +from . import adapter +from . import binder +from . import binding +from . import export_mapper +from . import exporter +from . import product_attribute diff --git a/connector_woocommerce/models/product_attribute/adapter.py b/connector_woocommerce/models/product_attribute/adapter.py new file mode 100644 index 000000000..c529d8fce --- /dev/null +++ b/connector_woocommerce/models/product_attribute/adapter.py @@ -0,0 +1,30 @@ +# Copyright NuoBiT Solutions - Kilian Niubo +# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl) + +from odoo.addons.component.core import Component + + +class WooCommerceProductAttributeAdapter(Component): + _name = "cwoocommerce.product.attribute.adapter" + _inherit = "connector.woocommerce.adapter" + + _apply_on = "woocommerce.product.attribute" + + def read(self, _id): # pylint: disable=W8106 + url_l = ["products/attributes", str(_id)] + return self._exec("get", "/".join(url_l)) + + def search_read(self, domain=None): + return self._exec("get", "products/attributes", domain=domain) + + def create(self, data): # pylint: disable=W8106 + return self._exec("post", "products/attributes", data=data) + + def write(self, external_id, data): # pylint: disable=W8106 + url_l = ["products/attributes", str(external_id[0])] + return self._exec("put", "/".join(url_l), data=data) + + def _get_search_fields(self): + res = super()._get_search_fields() + res.append("slug") + return res diff --git a/connector_woocommerce/models/product_attribute/binder.py b/connector_woocommerce/models/product_attribute/binder.py new file mode 100644 index 000000000..a0968baab --- /dev/null +++ b/connector_woocommerce/models/product_attribute/binder.py @@ -0,0 +1,23 @@ +# Copyright NuoBiT Solutions - Kilian Niubo +# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl) + +from odoo.addons.component.core import Component + + +class WooCommerceProductAttributeBinder(Component): + _name = "woocommerce.product.attribute.binder" + _inherit = "woocommerce.binder" + + _apply_on = "woocommerce.product.attribute" + + @property + def external_id(self): + return ["id"] + + @property + def internal_id(self): + return ["woocommerce_idattribute"] + + @property + def external_alt_id(self): + return ["name"] diff --git a/connector_woocommerce/models/product_attribute/binding.py b/connector_woocommerce/models/product_attribute/binding.py new file mode 100644 index 000000000..af684ffbe --- /dev/null +++ b/connector_woocommerce/models/product_attribute/binding.py @@ -0,0 +1,47 @@ +# Copyright NuoBiT Solutions - Kilian Niubo +# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl) + +from odoo import api, fields, models + + +class WooCommerceProductAttribute(models.Model): + _name = "woocommerce.product.attribute" + _inherit = "woocommerce.binding" + _inherits = {"product.attribute": "odoo_id"} + _description = "WooCommerce Product Attribute Binding" + + odoo_id = fields.Many2one( + comodel_name="product.attribute", + string="Product attribute", + required=True, + ondelete="cascade", + ) + woocommerce_idattribute = fields.Integer( + string="WooCommerce ID Attribute", + readonly=True, + ) + + _sql_constraints = [ + ( + "external_uniq", + "unique(backend_id, woocommerce_idattribute)", + "A binding already exists with the same External (idAttribute) ID.", + ), + ] + + @api.model + def _get_base_domain(self): + return [] + + def export_product_attribute_since(self, backend_record=None, since_date=None): + domain = self._get_base_domain() + if since_date: + domain += [ + ( + "write_date", + ">", + since_date.strftime("%Y-%m-%dT%H:%M:%S"), + ) + ] + self.with_delay().export_batch(backend_record, domain=domain) + return True diff --git a/connector_woocommerce/models/product_attribute/export_mapper.py b/connector_woocommerce/models/product_attribute/export_mapper.py new file mode 100644 index 000000000..926aa182d --- /dev/null +++ b/connector_woocommerce/models/product_attribute/export_mapper.py @@ -0,0 +1,19 @@ +# Copyright NuoBiT Solutions - Kilian Niubo +# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl) + +from odoo.addons.component.core import Component +from odoo.addons.connector.components.mapper import changed_by, mapping + + +class WooCommerceProductAttributeExportMapper(Component): + _name = "woocommerce.product.attribute.export.mapper" + _inherit = "woocommerce.export.mapper" + + _apply_on = "woocommerce.product.attribute" + + @changed_by("name") + @mapping + def name(self, record): + return { + "name": record.with_context(lang=self.backend_record.language_id.code).name + } diff --git a/connector_woocommerce/models/product_attribute/exporter.py b/connector_woocommerce/models/product_attribute/exporter.py new file mode 100644 index 000000000..e2fa17686 --- /dev/null +++ b/connector_woocommerce/models/product_attribute/exporter.py @@ -0,0 +1,35 @@ +# Copyright NuoBiT Solutions - Kilian Niubo +# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl) + +from odoo.addons.component.core import Component + + +class WooCommerceProductAttributeBatchDirectExporter(Component): + """Export the WooCommerce Product Attibute. + + For every Product Attibute in the list, execute inmediately. + """ + + _name = "woocommerce.product.attribute.batch.direct.exporter" + _inherit = "connector.extension.generic.batch.direct.exporter" + + _apply_on = "woocommerce.product.attribute" + + +class WooCommerceProductAttributeBatchDelayedExporter(Component): + """Export the WooCommerce Product Attibute. + + For every Product Attibute in the list, a delayed job is created. + """ + + _name = "woocommerce.product.attribute.batch.delayed.exporter" + _inherit = "connector.extension.generic.batch.delayed.exporter" + + _apply_on = "woocommerce.product.attribute" + + +class WooCommerceProductAttributeExporter(Component): + _name = "woocommerce.product.attribute.record.direct.exporter" + _inherit = "woocommerce.record.direct.exporter" + + _apply_on = "woocommerce.product.attribute" diff --git a/connector_woocommerce/models/product_attribute/product_attribute.py b/connector_woocommerce/models/product_attribute/product_attribute.py new file mode 100644 index 000000000..91e903744 --- /dev/null +++ b/connector_woocommerce/models/product_attribute/product_attribute.py @@ -0,0 +1,15 @@ +# Copyright NuoBiT Solutions - Kilian Niubo +# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl) + +from odoo import fields, models + + +class ProductAttribute(models.Model): + _inherit = "product.attribute" + + woocommerce_bind_ids = fields.One2many( + comodel_name="woocommerce.product.attribute", + inverse_name="odoo_id", + string="WooCommerce Bindings", + context={"active_test": False}, + ) diff --git a/connector_woocommerce/models/product_attribute_value/__init__.py b/connector_woocommerce/models/product_attribute_value/__init__.py new file mode 100644 index 000000000..47eac9b0c --- /dev/null +++ b/connector_woocommerce/models/product_attribute_value/__init__.py @@ -0,0 +1,6 @@ +from . import adapter +from . import binder +from . import binding +from . import export_mapper +from . import exporter +from . import product_attribute_value diff --git a/connector_woocommerce/models/product_attribute_value/adapter.py b/connector_woocommerce/models/product_attribute_value/adapter.py new file mode 100644 index 000000000..f4413fac9 --- /dev/null +++ b/connector_woocommerce/models/product_attribute_value/adapter.py @@ -0,0 +1,86 @@ +# Copyright NuoBiT Solutions - Kilian Niubo +# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl) +from odoo import _ +from odoo.exceptions import ValidationError + +from odoo.addons.component.core import Component + + +class WooCommerceProductAttributeValueAdapter(Component): + _name = "woocommerce.product.attribute.value.adapter" + _inherit = "connector.woocommerce.adapter" + + _apply_on = "woocommerce.product.attribute.value" + + def read(self, external_id): # pylint: disable=W8106 + external_id = self.binder_for().id2dict(external_id, in_field=False) + url = "products/attributes/%s/terms/%s" % ( + external_id["parent_id"], + external_id["id"], + ) + return self._exec("get", url) + + def search_read(self, domain=None): + binder = self.binder_for() + domain_dict = self._domain_to_normalized_dict(domain) + external_id_fields = binder.get_id_fields(in_field=False) + _, common_domain = self._extract_domain_clauses(domain, external_id_fields) + external_id = binder.dict2id(domain_dict, in_field=False) + if external_id: + res = self.read(external_id) + else: + # We have parent id but not the woocommerce attribute value id + if "parent_id" in domain_dict: + _, common_domain = self._extract_domain_clauses( + common_domain, "parent_name" + ) + url = "products/attributes/%s/terms" % domain_dict["parent_id"] + res = self._exec("get", url, domain=common_domain) + if res: + res[0]["parent_id"] = domain_dict["parent_id"] + elif "parent_name" in domain_dict: + partner_name, common_domain = self._extract_domain_clauses( + common_domain, ["parent_name"] + ) + url = "products/attributes" + res = self._exec( + "get", url, domain=[("name", "=", domain_dict["parent_name"])] + ) + if not res: + return [] + if len(res) != 1: + raise ValidationError(_("More than one product parent found")) + parent_id = res[0]["id"] + url = "products/attributes/%s/terms" % parent_id + res = self._exec("get", url, domain=common_domain) + for elem in res: + elem["parent_id"] = parent_id + else: + return [] + return res + + def create(self, data): # pylint: disable=W8106 + if "parent_id" not in data: + raise ValidationError( + _("Attribute id is required to create attribute value on woocommerce.") + ) + res = self._exec( + "post", + "products/attributes/%s/terms" % data["parent_id"], + data=data, + ) + if res: + res.update({"parent_id": data["parent_id"]}) + return res + + def write(self, external_id, data): # pylint: disable=W8106 + return self._exec( + "put", + "products/attributes/%s/terms/%s" % (external_id[0], external_id[1]), + data=data, + ) + + def _get_search_fields(self): + res = super()._get_search_fields() + res.append("slug") + return res diff --git a/connector_woocommerce/models/product_attribute_value/binder.py b/connector_woocommerce/models/product_attribute_value/binder.py new file mode 100644 index 000000000..4e478e4c2 --- /dev/null +++ b/connector_woocommerce/models/product_attribute_value/binder.py @@ -0,0 +1,25 @@ +# Copyright NuoBiT Solutions - Kilian Niubo +# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl) + +from odoo.addons.component.core import Component + + +class WooCommerceProductAttributeValueBinder(Component): + _name = "woocommerce.product.attribute.value.binder" + _inherit = "woocommerce.binder" + + _apply_on = "woocommerce.product.attribute.value" + + # TODO: Review: Parent_id is a required field to search but if we try + # to rebind we need export parents(attributes) before + @property + def external_id(self): + return ["parent_id", "id"] + + @property + def internal_id(self): + return ["woocommerce_idattribute", "woocommerce_idattributevalue"] + + @property + def external_alt_id(self): + return ["parent_name", "name"] diff --git a/connector_woocommerce/models/product_attribute_value/binding.py b/connector_woocommerce/models/product_attribute_value/binding.py new file mode 100644 index 000000000..f5644e570 --- /dev/null +++ b/connector_woocommerce/models/product_attribute_value/binding.py @@ -0,0 +1,53 @@ +# Copyright NuoBiT Solutions - Kilian Niubo +# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl) + +from odoo import api, fields, models + + +class WooCommerceProductAttributeValue(models.Model): + _name = "woocommerce.product.attribute.value" + _inherit = "woocommerce.binding" + _inherits = {"product.attribute.value": "odoo_id"} + _description = "WooCommerce Product Attribute Value Binding" + + odoo_id = fields.Many2one( + comodel_name="product.attribute.value", + string="Product attribute value", + required=True, + ondelete="cascade", + ) + woocommerce_idattribute = fields.Integer( + string="WooCommerce ID Attribute", + readonly=True, + ) + woocommerce_idattributevalue = fields.Integer( + string="WooCommerce ID Attribute Value", + readonly=True, + ) + + _sql_constraints = [ + ( + "external_uniq", + "unique(backend_id, woocommerce_idattribute, woocommerce_idattributevalue)", + "A binding already exists with the same External (idAttributevalue) ID.", + ), + ] + + @api.model + def _get_base_domain(self): + return [] + + def export_product_attribute_value_since( + self, backend_record=None, since_date=None + ): + domain = self._get_base_domain() + if since_date: + domain += [ + ( + "write_date", + ">", + since_date.strftime("%Y-%m-%dT%H:%M:%S"), + ) + ] + self.with_delay().export_batch(backend_record, domain=domain) + return True diff --git a/connector_woocommerce/models/product_attribute_value/export_mapper.py b/connector_woocommerce/models/product_attribute_value/export_mapper.py new file mode 100644 index 000000000..c00ca3dbc --- /dev/null +++ b/connector_woocommerce/models/product_attribute_value/export_mapper.py @@ -0,0 +1,46 @@ +# Copyright NuoBiT Solutions - Kilian Niubo +# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl) + +from odoo.addons.component.core import Component +from odoo.addons.connector.components.mapper import changed_by, mapping +from odoo.addons.connector_extension.components.mapper import required + + +def nullif(field): + def modifier(self, record, to_attr): + value = record[field] + return value and value.strip() or None + + return modifier + + +class WooCommerceProductAttributeValueExportMapper(Component): + _name = "woocommerce.product.attribute.value.export.mapper" + _inherit = "woocommerce.export.mapper" + + _apply_on = "woocommerce.product.attribute.value" + + @required("name") + @changed_by("name") + @mapping + def name(self, record): + return { + "name": record.with_context(lang=self.backend_record.language_id.code).name + } + + @required("parent_id") + @changed_by("attribute_id") + @mapping + def parent_id(self, record): + binder = self.binder_for("woocommerce.product.attribute") + values = binder.get_external_dict_ids(record.attribute_id) + return {"parent_id": values["id"] or None} + + @changed_by("attribute_id") + @mapping + def parent_name(self, record): + return { + "parent_name": record.attribute_id.with_context( + lang=self.backend_record.language_id.code + ).name + } diff --git a/connector_woocommerce/models/product_attribute_value/exporter.py b/connector_woocommerce/models/product_attribute_value/exporter.py new file mode 100644 index 000000000..f91abdf86 --- /dev/null +++ b/connector_woocommerce/models/product_attribute_value/exporter.py @@ -0,0 +1,41 @@ +# Copyright NuoBiT Solutions - Kilian Niubo +# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl) + +from odoo.addons.component.core import Component + + +class WooCommerceProductAttributeValueBatchDirectExporter(Component): + """Export the WooCommerce Product Attibute Value. + + For every Product Attibute Value in the list, execute inmediately. + """ + + _name = "woocommerce.product.attribute.value.batch.direct.exporter" + _inherit = "connector.extension.generic.batch.direct.exporter" + + _apply_on = "woocommerce.product.attribute.value" + + +class WooCommerceProductAttributeValueBatchDelayedExporter(Component): + """Export the WooCommerce Product Attibute Value. + + For every Product Attibute Value in the list, a delayed job is created. + """ + + _name = "woocommerce.product.attribute.value.batch.delayed.exporter" + _inherit = "connector.extension.generic.batch.delayed.exporter" + + _apply_on = "woocommerce.product.attribute.value" + + +class WooCommerceProductAttributeValueExporter(Component): + _name = "woocommerce.product.attribute.value.record.direct.exporter" + _inherit = "woocommerce.record.direct.exporter" + + _apply_on = "woocommerce.product.attribute.value" + + def _export_dependencies(self, relation): + self._export_dependency( + relation.attribute_id, + "woocommerce.product.attribute", + ) diff --git a/connector_woocommerce/models/product_attribute_value/product_attribute_value.py b/connector_woocommerce/models/product_attribute_value/product_attribute_value.py new file mode 100644 index 000000000..ff18d2b04 --- /dev/null +++ b/connector_woocommerce/models/product_attribute_value/product_attribute_value.py @@ -0,0 +1,15 @@ +# Copyright NuoBiT Solutions - Kilian Niubo +# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl) + +from odoo import fields, models + + +class ProductAttributeValue(models.Model): + _inherit = "product.attribute.value" + + woocommerce_bind_ids = fields.One2many( + comodel_name="woocommerce.product.attribute.value", + inverse_name="odoo_id", + string="WooCommerce Bindings", + context={"active_test": False}, + ) diff --git a/connector_woocommerce/models/product_product/__init__.py b/connector_woocommerce/models/product_product/__init__.py new file mode 100644 index 000000000..c9a5e56eb --- /dev/null +++ b/connector_woocommerce/models/product_product/__init__.py @@ -0,0 +1,7 @@ +from . import adapter +from . import binder +from . import binding +from . import export_mapper +from . import exporter +from . import product +from . import product_pricelist_item diff --git a/connector_woocommerce/models/product_product/adapter.py b/connector_woocommerce/models/product_product/adapter.py new file mode 100644 index 000000000..df7176be0 --- /dev/null +++ b/connector_woocommerce/models/product_product/adapter.py @@ -0,0 +1,90 @@ +# Copyright NuoBiT Solutions - Kilian Niubo +# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl) +from odoo import _ +from odoo.exceptions import ValidationError + +from odoo.addons.component.core import Component + + +class WooCommerceProductProductAdapter(Component): + _name = "woocommerce.product.product.adapter" + _inherit = "connector.woocommerce.adapter" + + _apply_on = "woocommerce.product.product" + + def _reorg_product_data(self, data): + return + + def read(self, external_id): # pylint: disable=W8106 + external_id_values = self.binder_for().id2dict(external_id, in_field=False) + url = "products/%s/variations/%s" % ( + external_id_values["parent_id"], + external_id_values["id"], + ) + res = self._exec("get", url, limit=1) + self._reorg_product_data(res) + if len(res) > 1: + raise ValidationError( + _("More than one simple product found with the same id: %s") + % (external_id_values["id"]) + ) + return res[0] + + def create(self, data): # pylint: disable=W8106 + self._prepare_data(data) + url_l = ["products"] + parent = data.pop("parent_id") + url_l.append("%s/variations" % parent) + res = self._exec("post", "/".join(url_l), data=data) + res["parent_id"] = parent + return res + + def write(self, external_id, data): # pylint: disable=W8106 + self._prepare_data(data) + return self._exec( + "put", + "products/%s/variations/%s" % (external_id[0], external_id[1]), + data=data, + ) + + def search_read(self, domain=None): + binder = self.binder_for() + external_id_fields = binder.get_id_fields(in_field=False) + _, common_domain = self._extract_domain_clauses(domain, external_id_fields) + domain_dict = self._domain_to_normalized_dict(domain) + external_id_values = binder.dict2id2dict(domain_dict, in_field=False) + if external_id_values: + url = "products/%s/variations/%s" % ( + external_id_values["parent_id"], + external_id_values["id"], + ) + res = self._exec("get", url, domain=common_domain) + else: + # if "id" in domain_dict and "parent_id" in domain_dict: + # url = "products/%s/variations/%s" % ( + # domain_dict["parent_id"], + # domain_dict["id"], + # ) + # res = self._exec("get", url, domain=common_domain) + # if "sku" in domain_dict: + url = "products" + domain.append(("parent_id", "!=", 0)) + res = self._exec("get", url, domain=domain) + # else: + # raise ValidationError(_("Params required")) + return res + + def _get_search_fields(self): + res = super()._get_search_fields() + res.extend(["sku", "parent"]) + return res + + def _format_product_product(self, data): + conv_mapper = { + "/regular_price": lambda x: str(round(x, 10)) if x is not None else None, + "/sale_price": lambda x: str(round(x, 10)) if x is not None else None, + } + self._convert_format(data, conv_mapper) + + def _prepare_data(self, data): + self._format_product_product(data) diff --git a/connector_woocommerce/models/product_product/binder.py b/connector_woocommerce/models/product_product/binder.py new file mode 100644 index 000000000..70cb2fc42 --- /dev/null +++ b/connector_woocommerce/models/product_product/binder.py @@ -0,0 +1,27 @@ +# Copyright NuoBiT Solutions - Kilian Niubo +# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl) + +from odoo.addons.component.core import Component + + +class WooCommerceProductProductBinder(Component): + _name = "woocommerce.product.product.binder" + _inherit = "woocommerce.binder" + + _apply_on = "woocommerce.product.product" + + @property + def external_id(self): + return ["parent_id", "id"] + + @property + def internal_id(self): + return ["woocommerce_idparent", "woocommerce_idproduct"] + + @property + def external_alt_id(self): + return ["sku"] + + @property + def internal_alt_id(self): + return ["default_code"] diff --git a/connector_woocommerce/models/product_product/binding.py b/connector_woocommerce/models/product_product/binding.py new file mode 100644 index 000000000..b6d253f11 --- /dev/null +++ b/connector_woocommerce/models/product_product/binding.py @@ -0,0 +1,51 @@ +# Copyright NuoBiT Solutions - Kilian Niubo +# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl) + +from odoo import api, fields, models + + +class WooCommerceProductProduct(models.Model): + _name = "woocommerce.product.product" + _inherit = "woocommerce.binding" + _inherits = {"product.product": "odoo_id"} + _description = "WooCommerce Product product Binding" + + odoo_id = fields.Many2one( + comodel_name="product.product", + string="Product product", + required=True, + ondelete="cascade", + ) + woocommerce_idproduct = fields.Integer( + string="WooCommerce ID Product", + readonly=True, + ) + woocommerce_idparent = fields.Integer( + string="WooCommerce ID Parent", + readonly=True, + ) + _sql_constraints = [ + ( + "external_uniq", + "unique(backend_id, woocommerce_idproduct)", + "A binding already exists with the same External (idProduct) ID.", + ), + ] + + @api.model + def _get_base_domain(self): + return [ + ("product_tmpl_id.woocommerce_enabled", "=", True), + ("product_tmpl_id.has_attributes", "=", True), + ] + + # TODO: Review Why is export_products_since used instead of overriding + # the export_data function? + def export_products_since(self, backend_record=None, since_date=None): + domain = self._get_base_domain() + if since_date: + domain.append( + ("woocommerce_write_date", ">", fields.Datetime.to_string(since_date)) + ) + self.with_delay().export_batch(backend_record, domain=domain) + return True diff --git a/connector_woocommerce/models/product_product/export_mapper.py b/connector_woocommerce/models/product_product/export_mapper.py new file mode 100644 index 000000000..0e61a5267 --- /dev/null +++ b/connector_woocommerce/models/product_product/export_mapper.py @@ -0,0 +1,165 @@ +# Copyright NuoBiT Solutions - Kilian Niubo +# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl) +from odoo import _ +from odoo.exceptions import ValidationError + +from odoo.addons.component.core import Component +from odoo.addons.connector.components.mapper import changed_by, mapping +from odoo.addons.connector_extension.common import tools + + +class WooCommerceProductProductExportMapper(Component): + _name = "woocommerce.product.product.export.mapper" + _inherit = "woocommerce.product.export.mapper" + + _apply_on = "woocommerce.product.product" + + @mapping + def price(self, record): + # On WooCommerce regular price is the usually price. + # sales price is the price with discount. + # On odoo we don't have this functionality per product + return { + "regular_price": record.lst_price, + } + + @mapping + def sale_price(self, record): + pricelist = self.backend_record.discount_pricelist_id + if pricelist: + return { + "sale_price": pricelist.price_get(record.id, 1)[pricelist.id], + } + return {"sale_price": None} + + @changed_by("default_code") + @mapping + def sku(self, record): + # This requirement is not needed on WooCommerce + # but it's necessary in e-commerce + if not record.default_code: + raise ValidationError( + _("You must define an internal reference for the product {%s}'%s'") + % (record.id, record.display_name) + ) + return {"sku": record.default_code} + + @changed_by("is_published") + @mapping + def status(self, record): + return { + "status": "publish" + if record.active and record.variant_is_published + else "private" + } + + @mapping + def stock(self, record): + if ( + record.type in ("consu", "service") + or record.variant_inventory_availability == "never" + ): + stock = {"manage_stock": False, "stock_status": "instock"} + # modificar el type + elif record.variant_inventory_availability == "always": + qty = sum( + self.env["stock.quant"] + .search( + [ + ("product_id", "=", record.id), + ( + "location_id", + "child_of", + self.backend_record.stock_location_ids.ids, + ), + ] + ) + .mapped("available_quantity") + ) + stock = { + "manage_stock": True, + # WooCommerce don't accept fractional quantities + "stock_quantity": int(qty), + "stock_status": "instock" if record.qty_available > 0 else "outofstock", + } + else: + raise ValidationError( + _( + "The inventory availability '%s' is not supported by WooCommerce. " + "Review product variant {%s}%s." + ) + % ( + record.variant_inventory_availability, + record.id, + record.display_name, + ) + ) + return stock + + def _get_product_description(self, record): + description = record.with_context( + lang=self.backend_record.language_id.code + ).variant_public_description + if not description: + return False + return tools.color_rgb2hex(description) + + @mapping + def description(self, record): + description = [] + product_description = self._get_product_description(record) + if product_description: + description.append(product_description) + if record.document_ids: + document_description = self._prepare_document_description( + record.document_ids + ) + if document_description: + description.append(document_description) + return {"description": "\n".join(description) or None} + + @mapping + def parent_id(self, record): + binder = self.binder_for("woocommerce.product.template") + values = binder.get_external_dict_ids(record.product_tmpl_id) + return {"parent_id": values["id"]} + + @mapping + def image(self, record): + # WooCommerce only allows one image per variant product + product_image_attachments = record.with_context( + include_main_product_image=self.backend_record.use_main_product_image + ).product_variant_image_attachment_ids + if product_image_attachments and self.backend_record.wordpress_backend_id: + with self.backend_record.wordpress_backend_id.work_on( + "wordpress.ir.attachment" + ) as work: + binder = work.component(usage="binder") + image = product_image_attachments[0].attachment_id + values = binder.get_external_dict_ids(image, check_external_id=False) + if ( + self.backend_record.wordpress_backend_id.test_database + and not values + ): + return None + return { + "image": { + "id": values["id"], + } + } + else: + return {"image": {}} + + @mapping + def attributes(self, record): + binder = self.binder_for("woocommerce.product.attribute") + attr_list = [] + for value in record.product_template_attribute_value_ids: + values = binder.get_external_dict_ids(value.attribute_id) + attr_list.append( + { + "id": values["id"], + "option": value.name, + } + ) + return {"attributes": attr_list} diff --git a/connector_woocommerce/models/product_product/exporter.py b/connector_woocommerce/models/product_product/exporter.py new file mode 100644 index 000000000..bb269bca2 --- /dev/null +++ b/connector_woocommerce/models/product_product/exporter.py @@ -0,0 +1,94 @@ +# Copyright NuoBiT Solutions - Kilian Niubo +# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl) + +from odoo.addons.component.core import Component + + +class WooCommerceProductProductBatchDirectExporter(Component): + """Export the WooCommerce Product product. + + For every Product product in the list, execute inmediately. + """ + + _name = "woocommerce.product.product.batch.direct.exporter" + _inherit = "connector.extension.generic.batch.direct.exporter" + + _apply_on = "woocommerce.product.product" + + +class WooCommerceProductProductBatchDelayedExporter(Component): + """Export the WooCommerce Product Product. + + For every Product product in the list, a delayed job is created. + """ + + _name = "woocommerce.product.product.batch.delayed.exporter" + _inherit = "connector.extension.generic.batch.delayed.exporter" + + _apply_on = "woocommerce.product.product" + + +class WooCommerceProductProductExporter(Component): + _name = "woocommerce.product.product.record.direct.exporter" + _inherit = "woocommerce.record.direct.exporter" + + _apply_on = "woocommerce.product.product" + + def _export_dependencies(self, relation): + # In the case of a woocommerce simple product (Product template with one variant) + # we need to export the dependencies of the product template because + # it's the product template that will be exported instead of product product + if relation.env.context.get("export_wo_acc_p"): + self._export_dependency( + relation.with_context(export_wo_acc_p=True).product_tmpl_id, + "woocommerce.product.template", + ) + else: + self._export_dependency( + relation.product_tmpl_id, + "woocommerce.product.template", + always=True, + ) + for line in relation.product_tmpl_id.attribute_line_ids: + self._export_dependency( + line.attribute_id, + "woocommerce.product.attribute", + ) + for value in line.value_ids: + self._export_dependency( + value, + "woocommerce.product.attribute.value", + ) + # TODO: Duplicated code? + # for attribute_line in relation.attribute_line_ids: + # self._export_dependency( + # attribute_line.attribute_id, + # "woocommerce.product.attribute", + # ) + product_image_attachments = relation.with_context( + include_main_product_image=self.backend_record.use_main_product_image + ).product_variant_image_attachment_ids + if ( + product_image_attachments + and len(relation.product_tmpl_id.product_variant_ids) > 1 + ): + if self.backend_record.wordpress_backend_id: + with self.backend_record.wordpress_backend_id.work_on( + "wordpress.ir.attachment" + ) as work: + exporter = work.component(self._usage) + exporter._export_dependency( + product_image_attachments[0].attachment_id, + "wordpress.ir.attachment", + ) + if relation.product_document_attachment_ids: + if self.backend_record.wordpress_backend_id: + with self.backend_record.wordpress_backend_id.work_on( + "wordpress.ir.attachment" + ) as work: + exporter = work.component(self._usage) + for attachment in relation.product_document_attachment_ids: + exporter._export_dependency( + attachment.attachment_id, + "wordpress.ir.attachment", + ) diff --git a/connector_woocommerce/models/product_product/product.py b/connector_woocommerce/models/product_product/product.py new file mode 100644 index 000000000..1d6409274 --- /dev/null +++ b/connector_woocommerce/models/product_product/product.py @@ -0,0 +1,46 @@ +# Copyright NuoBiT Solutions - Kilian Niubo +# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl) + +from odoo import api, fields, models + + +class ProductProduct(models.Model): + _inherit = "product.product" + + woocommerce_bind_ids = fields.One2many( + comodel_name="woocommerce.product.product", + inverse_name="odoo_id", + string="WooCommerce Bindings", + context={"active_test": False}, + ) + woocommerce_write_date = fields.Datetime( + compute="_compute_woocommerce_write_date", + store=True, + ) + + @api.depends( + "is_published", + "lst_price", + "type", + "default_code", + "image_1920", + "default_code", + "qty_available", + "product_template_attribute_value_ids", + "variant_public_description", + "alternative_product_ids", + "accessory_product_ids", + "variant_inventory_availability", + "document_ids", + "product_tmpl_id", + "product_tmpl_id.has_attributes", + "product_tmpl_id.woocommerce_enabled", + ) + def _compute_woocommerce_write_date(self): + for rec in self: + if ( + rec.product_tmpl_id.woocommerce_enabled + or rec.variant_is_published + or rec.woocommerce_write_date + ): + rec.woocommerce_write_date = fields.Datetime.now() diff --git a/connector_woocommerce/models/product_product/product_pricelist_item.py b/connector_woocommerce/models/product_product/product_pricelist_item.py new file mode 100644 index 000000000..587a2b3f3 --- /dev/null +++ b/connector_woocommerce/models/product_product/product_pricelist_item.py @@ -0,0 +1,49 @@ +# Copyright NuoBiT Solutions - Frank Cespedes +# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl) + +from odoo import api, fields, models + + +class PricelistItem(models.Model): + _inherit = "product.pricelist.item" + + def _update_woocommerce_write_date_by_pricelist(self, values): + product = values.get("product_id") + if product: + product = self.env["product.product"].browse(product).exists() + else: + product = values.get("product_tmpl_id") + if product: + product = self.env["product.template"].browse(product).exists() + product = product.with_context(active_test=False).product_variant_ids + if not product: + product = ( + self.product_id + or self.product_tmpl_id.with_context( + active_test=False + ).product_variant_ids + ) + + if product: + if product.woocommerce_bind_ids: + product.woocommerce_write_date = fields.Datetime.now() + + def _dependent_field_product_woocommerce_write_date(self): + return {"product_id", "product_tmpl_id", "fixed_price", "applied_on"} + + @api.model_create_multi + def create(self, vals_list): + for values in vals_list: + if self._dependent_field_product_woocommerce_write_date() & values.keys(): + self._update_woocommerce_write_date_by_pricelist(values) + return super(PricelistItem, self).create(vals_list) + + def write(self, values): + if self._dependent_field_product_woocommerce_write_date() & values.keys(): + self._update_woocommerce_write_date_by_pricelist(values) + return super(PricelistItem, self).write(values) + + def unlink(self): + for rec in self: + rec._update_woocommerce_write_date_by_pricelist({}) + return super(PricelistItem, self).unlink() diff --git a/connector_woocommerce/models/product_public_category/__init__.py b/connector_woocommerce/models/product_public_category/__init__.py new file mode 100644 index 000000000..5b998a716 --- /dev/null +++ b/connector_woocommerce/models/product_public_category/__init__.py @@ -0,0 +1,8 @@ +from . import adapter +from . import binder +from . import binding +from . import export_deleter +from . import export_mapper +from . import exporter +from . import listener +from . import product_public_category diff --git a/connector_woocommerce/models/product_public_category/adapter.py b/connector_woocommerce/models/product_public_category/adapter.py new file mode 100644 index 000000000..e77513817 --- /dev/null +++ b/connector_woocommerce/models/product_public_category/adapter.py @@ -0,0 +1,34 @@ +# Copyright NuoBiT Solutions - Kilian Niubo +# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl) + +from odoo.addons.component.core import Component + + +class WooCommerceProductPublicCategoryAdapter(Component): + _name = "woocommerce.product.public.category.adapter" + _inherit = "connector.woocommerce.adapter" + + _apply_on = "woocommerce.product.public.category" + + def create(self, data): # pylint: disable=W8106 + return self._exec("post", "products/categories", data=data) + + def write(self, external_id, data): # pylint: disable=W8106 + if self.env.context.get("resync_exported_dependencies"): + return {} + external_id_values = self.binder_for().id2dict(external_id, in_field=False) + url = "products/categories/%s" % external_id_values["id"] + return self._exec("put", url, data=data) + + def search_read(self, domain=None): + return self._exec("get", "products/categories", domain=domain) + + def _get_search_fields(self): + res = super()._get_search_fields() + res.append("slug") + return res + + def delete(self, external_id): + external_id_values = self.binder_for().id2dict(external_id, in_field=False) + url = "products/categories/%s" % external_id_values["id"] + return self._exec("delete", url, params={"force": "1"}) diff --git a/connector_woocommerce/models/product_public_category/binder.py b/connector_woocommerce/models/product_public_category/binder.py new file mode 100644 index 000000000..7d923c369 --- /dev/null +++ b/connector_woocommerce/models/product_public_category/binder.py @@ -0,0 +1,23 @@ +# Copyright NuoBiT Solutions - Kilian Niubo +# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl) + +from odoo.addons.component.core import Component + + +class WooCommerceProductPublicCategoryBinder(Component): + _name = "woocommerce.product.public.category.binder" + _inherit = "woocommerce.binder" + + _apply_on = "woocommerce.product.public.category" + + @property + def external_id(self): + return ["id"] + + @property + def internal_id(self): + return ["woocommerce_idpubliccategory"] + + @property + def external_alt_id(self): + return ["name"] diff --git a/connector_woocommerce/models/product_public_category/binding.py b/connector_woocommerce/models/product_public_category/binding.py new file mode 100644 index 000000000..d22c26262 --- /dev/null +++ b/connector_woocommerce/models/product_public_category/binding.py @@ -0,0 +1,45 @@ +# Copyright NuoBiT Solutions - Kilian Niubo +# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl) + +from odoo import api, fields, models + + +class WooCommerceProductPublicCategory(models.Model): + _name = "woocommerce.product.public.category" + _inherit = "woocommerce.binding" + _inherits = {"product.public.category": "odoo_id"} + _description = "WooCommerce Product Public Category Binding" + + odoo_id = fields.Many2one( + comodel_name="product.public.category", + string="Product public category", + required=True, + ondelete="cascade", + ) + woocommerce_idpubliccategory = fields.Integer( + string="WooCommerce ID Public Category", + readonly=True, + ) + + _sql_constraints = [ + ( + "external_uniq", + "unique(backend_id, woocommerce_idpubliccategory)", + "A binding already exists with the same External (idProduct) ID.", + ), + ] + + @api.model + def _get_base_domain(self): + return [] + + def export_product_public_category_since( + self, backend_record=None, since_date=None + ): + domain = self._get_base_domain() + if since_date: + domain += [ + ("write_date", ">", fields.Datetime.to_string(since_date)), + ] + self.with_delay().export_batch(backend_record, domain=domain) + return True diff --git a/connector_woocommerce/models/product_public_category/export_deleter.py b/connector_woocommerce/models/product_public_category/export_deleter.py new file mode 100644 index 000000000..a6d5360eb --- /dev/null +++ b/connector_woocommerce/models/product_public_category/export_deleter.py @@ -0,0 +1,35 @@ +# Copyright NuoBiT Solutions - Kilian Niubo +# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl) + +from odoo.addons.component.core import Component + + +class WooCommerceProductPublicCategoryBatchDirectExportDeleter(Component): + """Delete the WooCommerce Product Public Category. + + For every Product Public Category in the list, execute inmediately. + """ + + _name = "woocommerce.product.public.category.batch.direct.export.deleter" + _inherit = "connector.extension.batch.direct.export.deleter" + + _apply_on = "woocommerce.product.public.category" + + +class WooCommerceProductPublicCategoryBatchDelayedExportDeleter(Component): + """Delete the WooCommerce Product Public Category. + + For every Product Public Category in the list, a delayed job is created. + """ + + _name = "woocommerce.product.public.category.batch.delayed.export.deleter" + _inherit = "connector.extension.batch.delayed.export.deleter" + + _apply_on = "woocommerce.product.public.category" + + +class WooCommerceProductPublicCategoryExportDeleter(Component): + _name = "woocommerce.product.public.category.record.direct.export.deleter" + _inherit = "woocommerce.record.direct.export.deleter" + + _apply_on = "woocommerce.product.public.category" diff --git a/connector_woocommerce/models/product_public_category/export_mapper.py b/connector_woocommerce/models/product_public_category/export_mapper.py new file mode 100644 index 000000000..a60a1e49f --- /dev/null +++ b/connector_woocommerce/models/product_public_category/export_mapper.py @@ -0,0 +1,54 @@ +# Copyright NuoBiT Solutions - Kilian Niubo +# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl) +from odoo import _ +from odoo.exceptions import ValidationError + +from odoo.addons.component.core import Component +from odoo.addons.connector.components.mapper import changed_by, mapping + + +class WooCommerceProductPublicCategoryExportMapper(Component): + _name = "woocommerce.product.public.category.export.mapper" + _inherit = "woocommerce.export.mapper" + + _apply_on = "woocommerce.product.public.category" + + @mapping + def parent_id(self, record): + binder = self.binder_for("woocommerce.product.public.category") + if record.parent_id: + values = binder.get_external_dict_ids(record.parent_id) + return {"parent": values["id"]} + + @changed_by("name") + @mapping + def name(self, record): + if " " in record.name: + raise ValidationError( + _( + "The category '%s' has a double space in the name. " + "WooCommerce only allow one space. Please, remove it before export." + ) + % record.name + ) + return { + "name": record.with_context(lang=self.backend_record.language_id.code).name + } + + @mapping + def description(self, record): + return { + "description": record.with_context( + lang=self.backend_record.language_id.code + ).description + or None + } + + # TODO: We shoud do this differently, is not a good hook + def _get_slug_name(self, record): + return record.with_context(lang=self.backend_record.language_id.code).slug_name + + @mapping + def slug(self, record): + slug = self._get_slug_name(record) + return {"slug": slug or None} diff --git a/connector_woocommerce/models/product_public_category/exporter.py b/connector_woocommerce/models/product_public_category/exporter.py new file mode 100644 index 000000000..6888e3904 --- /dev/null +++ b/connector_woocommerce/models/product_public_category/exporter.py @@ -0,0 +1,41 @@ +# Copyright NuoBiT Solutions - Kilian Niubo +# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl) + +from odoo.addons.component.core import Component + + +class WooCommerceProductPublicCategoryBatchDirectExporter(Component): + """Export the WooCommerce Product Public Category. + + For every Product Public Category in the list, execute inmediately. + """ + + _name = "woocommerce.product.public.category.batch.direct.exporter" + _inherit = "connector.extension.generic.batch.direct.exporter" + + _apply_on = "woocommerce.product.public.category" + + +class WooCommerceProductPublicCategoryBatchDelayedExporter(Component): + """Export the WooCommerce Product Public Category. + + For every Product Public Category in the list, a delayed job is created. + """ + + _name = "woocommerce.product.public.category.batch.delayed.exporter" + _inherit = "connector.extension.generic.batch.delayed.exporter" + + _apply_on = "woocommerce.product.public.category" + + +class WooCommerceProductPublicCategoryExporter(Component): + _name = "woocommerce.product.public.category.record.direct.exporter" + _inherit = "woocommerce.record.direct.exporter" + + _apply_on = "woocommerce.product.public.category" + + def _export_dependencies(self, relation): + if relation.parent_id: + self._export_dependency( + relation.parent_id, "woocommerce.product.public.category" + ) diff --git a/connector_woocommerce/models/product_public_category/listener.py b/connector_woocommerce/models/product_public_category/listener.py new file mode 100644 index 000000000..e92f242fb --- /dev/null +++ b/connector_woocommerce/models/product_public_category/listener.py @@ -0,0 +1,11 @@ +# Copyright NuoBiT Solutions - Kilian Niubo +# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl) + +from odoo.addons.component.core import Component + + +class ProductPublicCategoryListener(Component): + _name = "woocommerce.product.public.category.listener" + _inherit = "connector.extension.event.listener" + + _apply_on = "product.public.category" diff --git a/connector_woocommerce/models/product_public_category/product_public_category.py b/connector_woocommerce/models/product_public_category/product_public_category.py new file mode 100644 index 000000000..a70fe7537 --- /dev/null +++ b/connector_woocommerce/models/product_public_category/product_public_category.py @@ -0,0 +1,42 @@ +# Copyright NuoBiT Solutions - Kilian Niubo +# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl) + +from odoo import _, fields, models +from odoo.exceptions import ValidationError + + +class ProductPublicCategory(models.Model): + _inherit = "product.public.category" + + woocommerce_bind_ids = fields.One2many( + comodel_name="woocommerce.product.public.category", + inverse_name="odoo_id", + string="WooCommerce Bindings", + context={"active_test": False}, + ) + + def unlink(self): + categories_with_bindings = self.filtered(lambda x: x.woocommerce_bind_ids) + if len(categories_with_bindings) > 1: + raise ValidationError( + _( + "Not supported: It's not possible delete more than one " + "category with WooCommerce bindings at the same time" + ) + ) + children_with_bindings = categories_with_bindings.search( + [("parent_id", "in", self.ids)] + ).filtered(lambda x: x.woocommerce_bind_ids) + if children_with_bindings: + raise ValidationError( + _( + "Not supported: It's not possible delete a category '%s' with " + "WooCommerce bindings if it has children with WooCommerce " + "bindings. Delete first the children %s" + ) + % (categories_with_bindings.name, children_with_bindings.mapped("name")) + ) + return super( + ProductPublicCategory, + self.with_context(binding_field="woocommerce_bind_ids"), + ).unlink() diff --git a/connector_woocommerce/models/product_template/__init__.py b/connector_woocommerce/models/product_template/__init__.py new file mode 100644 index 000000000..7f01959ff --- /dev/null +++ b/connector_woocommerce/models/product_template/__init__.py @@ -0,0 +1,6 @@ +from . import adapter +from . import binder +from . import binding +from . import export_mapper +from . import exporter +from . import product_template diff --git a/connector_woocommerce/models/product_template/adapter.py b/connector_woocommerce/models/product_template/adapter.py new file mode 100644 index 000000000..39b1381fc --- /dev/null +++ b/connector_woocommerce/models/product_template/adapter.py @@ -0,0 +1,105 @@ +# Copyright NuoBiT Solutions - Kilian Niubo +# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl) +from odoo import _ +from odoo.exceptions import ValidationError + +from odoo.addons.component.core import Component + + +class WooCommerceProductTemplateAdapter(Component): + _name = "woocommerce.product.template.adapter" + _inherit = "connector.woocommerce.adapter" + + _apply_on = "woocommerce.product.template" + + def _reorg_product_data(self, data): + return + + def read(self, external_id): # pylint: disable=W8106 + external_id_values = self.binder_for().id2dict(external_id, in_field=False) + url = "products/%s" % external_id_values["id"] + res = self._exec("get", url, limit=1) + self._reorg_product_data(res) + if len(res) > 1: + raise ValidationError( + _("More than one simple product found with the same id: %s") + % (external_id_values["id"]) + ) + return res[0] + + def create(self, data): # pylint: disable=W8106 + self._prepare_data(data) + return self._exec("post", "products", data=data) + + def write(self, external_id, data): # pylint: disable=W8106 + self._prepare_data(data) + url_l = ["products", str(external_id[0])] + res = self._exec("put", "/".join(url_l), data=data) + return res + + def _modify_res_on_search_read(self, parent_ids, domain_dict): + return [{"id": parent_ids.pop()}] + + def search_read(self, domain=None): + binder = self.binder_for() + domain_dict = self._domain_to_normalized_dict(domain) + id_fields = binder.get_id_fields(in_field=False) + __, common_domain = self._extract_domain_clauses(domain, id_fields) + template_id = binder.dict2id(domain_dict, in_field=False, unwrap=True) + if template_id: + url = "products/%s" % template_id + res = self._exec("get", url, domain=common_domain) + else: + res = [] + skus = [] + if "sku" in domain_dict: + skus = domain_dict["sku"] + if skus and len(skus) > 1: + skus = ",".join([f"{sku}" for sku in skus if sku]) + if skus: + products = self._exec("get", "products", domain=domain) + if len(products) == 1 and products[0]["type"] == "simple": + return products + parent_ids = set(filter(None, map(lambda x: x["parent_id"], products))) + if len(parent_ids) > 1: + raise ValidationError( + _("All variants must belong to the same parent product") + ) + if parent_ids: + res = self._modify_res_on_search_read(parent_ids, domain_dict) + else: + res = self._exec("get", "products", domain=domain) + return res + + def _get_search_fields(self): + res = super()._get_search_fields() + res.extend(["sku"]) + return res + + def _format_product_template(self, data): + conv_mapper = { + "/regular_price": lambda x: str(round(x, 10)) if x is not None else None, + "/sale_price": lambda x: str(round(x, 10)) if x is not None else None, + } + self._convert_format(data, conv_mapper) + + def _normalize_simple_sku(self, sku): + if isinstance(sku, list): + if len(sku) > 1: + raise ValidationError(_("Simple products can only have one variant")) + else: + sku = sku[0] + return sku + + def _prepare_data(self, data): + self._format_product_template(data) + meta_data = self.prepare_meta_data(data) + if meta_data: + data["meta_data"] = meta_data + if data.get("sku"): + if data["type"] == "simple": + data["sku"] = self._normalize_simple_sku(data["sku"]) + elif data["type"] == "variable": + data.pop("sku") + else: + raise ValidationError(_("Product type not supported")) diff --git a/connector_woocommerce/models/product_template/binder.py b/connector_woocommerce/models/product_template/binder.py new file mode 100644 index 000000000..2ff317d94 --- /dev/null +++ b/connector_woocommerce/models/product_template/binder.py @@ -0,0 +1,27 @@ +# Copyright NuoBiT Solutions - Kilian Niubo +# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl) + +from odoo.addons.component.core import Component + + +class WooCommerceProductTemplateBinder(Component): + _name = "woocommerce.product.template.binder" + _inherit = "woocommerce.binder" + + _apply_on = "woocommerce.product.template" + + @property + def external_id(self): + return ["id"] + + @property + def internal_id(self): + return ["woocommerce_idproduct"] + + @property + def external_alt_id(self): + return ["sku"] + + @property + def internal_alt_id(self): + return ["default_code"] diff --git a/connector_woocommerce/models/product_template/binding.py b/connector_woocommerce/models/product_template/binding.py new file mode 100644 index 000000000..910bb4b79 --- /dev/null +++ b/connector_woocommerce/models/product_template/binding.py @@ -0,0 +1,57 @@ +# Copyright NuoBiT Solutions - Kilian Niubo +# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl) + +from odoo import api, fields, models + + +class WooCommerceProductTemplate(models.Model): + _name = "woocommerce.product.template" + _inherit = "woocommerce.binding" + _inherits = {"product.template": "odoo_id"} + _description = "WooCommerce Product template Binding" + + odoo_id = fields.Many2one( + comodel_name="product.template", + string="Product template", + required=True, + ondelete="cascade", + ) + woocommerce_idproduct = fields.Integer( + string="WooCommerce ID Product", + readonly=True, + ) + + _sql_constraints = [ + ( + "external_uniq", + "unique(backend_id, woocommerce_idproduct)", + "A binding already exists with the same External (idProduct) ID.", + ), + ] + + @api.model + def _get_base_domain(self): + return [ + ("woocommerce_enabled", "=", True), + ("has_attributes", "=", False), + ] + + def export_product_tmpl_since(self, backend_record=None, since_date=None): + domain = self._get_base_domain() + if since_date: + domain = [ + ( + "woocommerce_write_date", + ">", + fields.Datetime.to_string(since_date), + ) + ] + self.with_delay().export_batch(backend_record, domain=domain) + return True + + def resync_export(self): + super().resync_export() + for rec in self: + rec.product_variant_ids.woocommerce_bind_ids.filtered( + lambda x: x.backend_id == self.backend_id + ).resync_export() diff --git a/connector_woocommerce/models/product_template/export_mapper.py b/connector_woocommerce/models/product_template/export_mapper.py new file mode 100644 index 000000000..9178476a3 --- /dev/null +++ b/connector_woocommerce/models/product_template/export_mapper.py @@ -0,0 +1,295 @@ +# Copyright NuoBiT Solutions - Kilian Niubo +# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl) +from odoo import _ +from odoo.exceptions import ValidationError + +from odoo.addons.component.core import Component +from odoo.addons.connector.components.mapper import changed_by, mapping +from odoo.addons.connector_extension.common import tools + + +class WooCommerceProductTemplateExportMapper(Component): + _name = "woocommerce.product.template.export.mapper" + _inherit = "woocommerce.product.export.mapper" + + _apply_on = "woocommerce.product.template" + + @mapping + def name(self, record): + return {"name": record.website_name if record.website_name else record.name} + + @changed_by("default_code") + @mapping + def sku(self, record): + if record.has_attributes: + return {"sku": None} + + default_codes = ( + record.with_context(active_test=False) + .product_variant_ids.filtered("default_code") + .mapped("default_code") + ) + if not default_codes: + raise ValidationError( + _("You must define a default code for the product %s") % record.name + ) + return {"sku": default_codes or None} + + @mapping + def status(self, record): + return { + "status": "publish" if record.active and record.is_published else "private" + } + + @mapping + def stock(self, record): + if any( + [ + record.inventory_availability == "never", + record.type in ("consu", "service"), + record.has_attributes, + ] + ): + stock = { + "manage_stock": False, + "stock_status": "instock", + } + else: + if record.inventory_availability == "always": + manage_stock = True + qty = sum( + self.env["stock.quant"] + .search( + [ + ("product_id", "=", record.product_variant_id.id), + ( + "location_id", + "child_of", + self.backend_record.stock_location_ids.ids, + ), + ] + ) + .mapped("available_quantity") + ) + stock = { + "manage_stock": manage_stock, + "stock_quantity": int(qty), + "stock_status": "instock" + if record.product_variant_id.qty_available > 0 + or record.type in ("consu", "service") + else "outofstock", + } + else: + raise ValidationError( + _( + "The inventory availability '%s' is not supported by WooCommerce. " + "Review product template {%s}%s." + ) + % (record.inventory_availability, record.id, record.display_name) + ) + return stock + + @mapping + def price(self, record): + if not record.has_attributes: + # On WooCommerce regular price is the usually price. + # sales price is the price with discount. + # On odoo we don't have this functionality per product + return { + "regular_price": record.list_price, + } + return {"regular_price": None} + + @mapping + def sale_price(self, record): + if not record.has_attributes: + pricelist = self.backend_record.discount_pricelist_id + if pricelist: + return { + "sale_price": pricelist.price_get(record.product_variant_id.id, 1)[ + pricelist.id + ], + } + return {"sale_price": None} + + def _get_product_description(self, record): + description = record.with_context( + lang=self.backend_record.language_id.code + ).public_description + if not description: + return False + return tools.color_rgb2hex(description) + + def _get_product_variant_description(self, record): + description = record.product_variant_id.with_context( + lang=self.backend_record.language_id.code + ).variant_public_description + if not description: + return False + return tools.color_rgb2hex(description) + + @mapping + def description(self, record): + description = False + if record.public_description: + description = self._get_product_description(record) + elif ( + len(record.product_variant_ids) == 1 + and record.product_variant_id.variant_public_description + ): + description = self._get_product_variant_description(record) + return {"description": description if description else ""} + + def _get_short_description(self, record): + return record.with_context( + lang=self.backend_record.language_id.code + ).public_short_description + + @mapping + def short_description(self, record): + short_description = [] + public_short_description = self._get_short_description(record) + if public_short_description: + short_description.append(public_short_description) + document_description = self._prepare_document_description(record.document_ids) + if document_description: + short_description.append(document_description) + return {"short_description": "\n".join(short_description) or None} + + @mapping + def product_type(self, record): + return {"type": "variable" if record.has_attributes else "simple"} + + @mapping + def categories(self, record): + categories = [] + binder = self.binder_for("woocommerce.product.public.category") + for category in record.public_categ_ids: + values = binder.get_external_dict_ids(category) + categories.append({"id": values["id"]}) + if categories: + return {"categories": categories} + + def _get_value_ids(self, attribute_line): + return attribute_line.product_template_value_ids.with_context( + lang=self.backend_record.language_id.code + ).mapped("name") + + @mapping + def attributes(self, record): + binder = self.binder_for("woocommerce.product.attribute") + attr_list = [] + # This method is used to ensure that even the attributes of + # archived products are exported + for line in record.with_context( + active_test=False + ).product_variant_ids.product_template_attribute_value_ids.attribute_line_id: + values = binder.get_external_dict_ids(line.attribute_id) + attr_list.append( + { + "id": values["id"], + "options": self._get_value_ids(line), + "visible": "true", + "variation": "true", + } + ) + if attr_list: + return {"attributes": attr_list} + + @mapping + def tax_class(self, record): + if record.taxes_id: + if len(record.taxes_id) > 1: + raise ValidationError( + _( + "Only one tax is allowed per product. " + "Please review taxes in product {%s} %s" + ) + % (record.id, record.display_name) + ) + tax_class = self.backend_record.tax_class_ids.filtered( + lambda x: record["taxes_id"] == x.account_tax + ) + if not tax_class: + raise ValidationError( + _("Tax class is not defined on backend for tax %s") + % record.mapped("taxes_id").name + ) + return {"tax_class": tax_class.woocommerce_tax_class} + + @mapping + def upsell_ids(self, record): + binder = self.binder_for("woocommerce.product.template") + alternate_list = [] + if record.alternative_product_ids and not record.env.context.get( + "export_wo_alt_p" + ): + for product in record.alternative_product_ids: + values = binder.get_external_dict_ids(product) + alternate_list.append(values["id"]) + return {"upsell_ids": alternate_list} + + @mapping + def cross_sell_ids(self, record): + product_binder = self.binder_for("woocommerce.product.product") + template_binder = self.binder_for("woocommerce.product.template") + accessory_list = [] + if record.accessory_product_ids and not record.env.context.get( + "export_wo_acc_p" + ): + for product in record.accessory_product_ids: + if product.product_tmpl_id.has_attributes: + values = product_binder.get_external_dict_ids(product) + else: + values = template_binder.get_external_dict_ids( + product.product_tmpl_id + ) + accessory_list.append(values["id"]) + return {"cross_sell_ids": accessory_list} + + def _get_product_image_attachments(self, record): + return record.with_context( + include_main_product_image=self.backend_record.use_main_product_image + ).product_image_attachment_ids + + @mapping + def images(self, record): + if self.backend_record.wordpress_backend_id: + with self.backend_record.wordpress_backend_id.work_on( + "wordpress.ir.attachment" + ) as work: + binder = work.component(usage="binder") + img_list = [] + product_image_attachments = self._get_product_image_attachments(record) + for image in product_image_attachments.mapped("attachment_id"): + external_id = binder.get_external_dict_ids( + image, check_external_id=False + ) + if external_id: + img_list.append( + { + "id": external_id["id"], + } + ) + else: + if not self.backend_record.wordpress_backend_id.test_database: + assert external_id, ( + "Unexpected error on %s:" + "The backend id cannot be obtained." + "At this stage, the backend record should " + "have been already linked via " + "._export_dependencies. " % record._name + ) + if img_list: + return {"images": img_list} + else: + return {"images": []} + + def _get_slug_name(self, record): + return record.with_context(lang=self.backend_record.language_id.code).slug_name + + @mapping + def slug(self, record): + slug = self._get_slug_name(record) + if slug: + return {"slug": slug} diff --git a/connector_woocommerce/models/product_template/exporter.py b/connector_woocommerce/models/product_template/exporter.py new file mode 100644 index 000000000..450c7da7c --- /dev/null +++ b/connector_woocommerce/models/product_template/exporter.py @@ -0,0 +1,92 @@ +# Copyright NuoBiT Solutions - Kilian Niubo +# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl) + +from odoo.addons.component.core import Component + + +class WooCommerceProductTemplateBatchDirectExporter(Component): + """Export the WooCommerce Product template. + + For every Product template in the list, execute inmediately. + """ + + _name = "woocommerce.product.template.batch.direct.exporter" + _inherit = "connector.extension.generic.batch.direct.exporter" + + _apply_on = "woocommerce.product.template" + + +class WooCommerceProductTemplateBatchDelayedExporter(Component): + """Export the WooCommerce Product Template. + + For every Product template in the list, a delayed job is created. + """ + + _name = "woocommerce.product.template.batch.delayed.exporter" + _inherit = "connector.extension.generic.batch.delayed.exporter" + + _apply_on = "woocommerce.product.template" + + +class WooCommerceProductTemplateExporter(Component): + _name = "woocommerce.product.template.record.direct.exporter" + _inherit = "woocommerce.record.direct.exporter" + + _apply_on = "woocommerce.product.template" + + def _export_dependencies(self, relation): + for category in relation.public_categ_ids: + self._export_dependency(category, "woocommerce.product.public.category") + for line in relation.attribute_line_ids: + self._export_dependency( + line.attribute_id, + "woocommerce.product.attribute", + ) + for value in line.value_ids: + self._export_dependency( + value, + "woocommerce.product.attribute.value", + ) + if not relation.env.context.get("export_wo_alt_p"): + for alternative_product in relation.alternative_product_ids: + self._export_dependency( + alternative_product.with_context(export_wo_alt_p=True), + "woocommerce.product.template", + ) + + # TODO: Review circular reference. If at the same time one product variant + # is an accessory product of the product template, probably we will have + # a circular reference. + if not relation.env.context.get("export_wo_acc_p"): + for accessory_product in relation.accessory_product_ids: + if accessory_product.product_tmpl_id.has_attributes: + self._export_dependency( + accessory_product.with_context(export_wo_acc_p=True), + "woocommerce.product.product", + ) + else: + self._export_dependency( + accessory_product.product_tmpl_id.with_context( + export_wo_acc_p=True + ), + "woocommerce.product.template", + ) + + if self.backend_record.wordpress_backend_id: + with self.backend_record.wordpress_backend_id.work_on( + "wordpress.ir.attachment" + ) as work: + exporter = work.component(self._usage) + product_image_attachments = relation.with_context( + include_main_product_image=self.backend_record.use_main_product_image + ).product_image_attachment_ids + for image_attachment in product_image_attachments: + exporter._export_dependency( + image_attachment.attachment_id, + "wordpress.ir.attachment", + ) + for document_attachment in relation.product_document_attachment_ids: + exporter._export_dependency( + document_attachment.attachment_id, + "wordpress.ir.attachment", + ) diff --git a/connector_woocommerce/models/product_template/product_template.py b/connector_woocommerce/models/product_template/product_template.py new file mode 100644 index 000000000..b7cb18bfe --- /dev/null +++ b/connector_woocommerce/models/product_template/product_template.py @@ -0,0 +1,144 @@ +# Copyright NuoBiT Solutions - Kilian Niubo +# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl) + +from odoo import _, api, fields, models +from odoo.exceptions import ValidationError + + +class ProductTemplate(models.Model): + _inherit = "product.template" + + woocommerce_bind_ids = fields.One2many( + comodel_name="woocommerce.product.template", + inverse_name="odoo_id", + string="WooCommerce Bindings", + context={"active_test": False}, + ) + woocommerce_write_date = fields.Datetime( + compute="_compute_woocommerce_write_date", + store=True, + ) + has_attributes = fields.Boolean( + compute="_compute_has_attributes", + search="_search_has_attributes", + ) + + @api.depends("attribute_line_ids") + def _compute_has_attributes(self): + for rec in self: + rec.has_attributes = bool(rec.attribute_line_ids) + + def _search_has_attributes(self, operator, value): + if operator == "=" and value: + return [("attribute_line_ids", "!=", False)] + return [("attribute_line_ids", operator, value)] + + @api.depends( + "is_published", + "name", + "lst_price", + "active", + "qty_available", + "image_1920", + "default_code", + "description", + "public_categ_ids", + "attribute_line_ids", + "public_description", + "inventory_availability", + "has_attributes", + "document_ids", + "woocommerce_enabled", + ) + def _compute_woocommerce_write_date(self): + for rec in self: + if ( + rec.woocommerce_enabled + or rec.is_published + or rec.woocommerce_write_date + ): + rec.woocommerce_write_date = fields.Datetime.now() + + website_name = fields.Char( + translate=True, + ) + public_description = fields.Text( + translate=True, + ) + public_short_description = fields.Text( + translate=True, + ) + slug_name = fields.Char( + translate=True, + ) + is_published = fields.Boolean( + compute="_compute_template_is_published", + inverse="_inverse_template_is_published", + store=True, + readonly=False, + ) + button_is_published = fields.Boolean( + related="is_published", + ) + woocommerce_enabled = fields.Boolean( + compute="_compute_woocommerce_enabled", + store=True, + readonly=False, + ) + + def _compute_woocommerce_enabled(self): + for rec in self: + rec.woocommerce_enabled = rec.is_published + + @api.depends("product_variant_ids.variant_is_published") + def _compute_template_is_published(self): + for rec in self: + published_variants = rec._origin.product_variant_ids.filtered( + lambda x: x.variant_is_published + ) + rec.is_published = bool(published_variants) + + def _inverse_template_is_published(self): + for rec in self: + rec.product_variant_ids.variant_is_published = rec.is_published + + inventory_availability = fields.Selection( + compute="_compute_inventory_availability", + inverse="_inverse_inventory_availability", + store=True, + readonly=False, + ) + + @api.depends("product_variant_ids.variant_inventory_availability") + def _compute_inventory_availability(self): + for rec in self: + never_variants_availability = rec.product_variant_ids.filtered( + lambda x: x.variant_inventory_availability == "never" + ) + if never_variants_availability: + rec.inventory_availability = "never" + else: + rec.inventory_availability = "always" + + def _inverse_inventory_availability(self): + for rec in self: + if rec.inventory_availability in ("always", "never"): + rec.product_variant_ids.variant_inventory_availability = ( + rec.inventory_availability + ) + + def write(self, vals): + res = super().write(vals) + if "has_attributes" in vals: + for rec in self: + if ( + rec.woocommerce_bind_ids + and rec.has_attributes != vals["has_attributes"] + ): + raise ValidationError( + _( + "You can't change the attributes if the " + "product has a woocommerce binding" + ) + ) + return res diff --git a/connector_woocommerce/models/res_partner/__init__.py b/connector_woocommerce/models/res_partner/__init__.py new file mode 100644 index 000000000..fade27bb6 --- /dev/null +++ b/connector_woocommerce/models/res_partner/__init__.py @@ -0,0 +1,6 @@ +from . import adapter +from . import binder +from . import binding +from . import import_mapper +from . import importer +from . import res_partner diff --git a/connector_woocommerce/models/res_partner/adapter.py b/connector_woocommerce/models/res_partner/adapter.py new file mode 100644 index 000000000..b5aae8c4f --- /dev/null +++ b/connector_woocommerce/models/res_partner/adapter.py @@ -0,0 +1,11 @@ +# Copyright NuoBiT Solutions - Kilian Niubo +# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl) + +from odoo.addons.component.core import Component + + +class WooCommerceResPartnerAdapter(Component): + _name = "woocommerce.res.partner.adapter" + _inherit = "connector.woocommerce.adapter" + + _apply_on = "woocommerce.res.partner" diff --git a/connector_woocommerce/models/res_partner/binder.py b/connector_woocommerce/models/res_partner/binder.py new file mode 100644 index 000000000..df7ea1134 --- /dev/null +++ b/connector_woocommerce/models/res_partner/binder.py @@ -0,0 +1,16 @@ +# Copyright NuoBiT Solutions - Kilian Niubo +# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl) + +from odoo.addons.component.core import Component + + +class WooCommerceResPartnerBinder(Component): + _name = "woocommerce.res.partner.binder" + _inherit = "woocommerce.binder" + + _apply_on = "woocommerce.res.partner" + + external_id = ["type", "hash"] + internal_id = ["woocommerce_address_type", "woocommerce_address_hash"] + external_alt_id = ["email", "hash", "type"] + internal_alt_id = ["address_hash", "type"] diff --git a/connector_woocommerce/models/res_partner/binding.py b/connector_woocommerce/models/res_partner/binding.py new file mode 100644 index 000000000..c9f5629e9 --- /dev/null +++ b/connector_woocommerce/models/res_partner/binding.py @@ -0,0 +1,38 @@ +# Copyright NuoBiT Solutions - Kilian Niubo +# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl) + +from odoo import fields, models + + +class WooCommerceResPartner(models.Model): + _name = "woocommerce.res.partner" + _inherit = "woocommerce.binding" + _inherits = {"res.partner": "odoo_id"} + _description = "WooCommerce Res Partner Binding" + + odoo_id = fields.Many2one( + comodel_name="res.partner", + string="Res Partner", + required=True, + ondelete="cascade", + ) + woocommerce_idrespartner = fields.Integer( + string="WooCommerce ID Res Partner", + readonly=True, + ) + woocommerce_address_type = fields.Char( + string="WooCommerce Type", + readonly=True, + ) + woocommerce_address_hash = fields.Char( + string="Address Hash", + readonly=True, + ) + + _sql_constraints = [ + ( + "external_uniq", + "unique(backend_id, woocommerce_idrespartner)", + "A binding already exists with the same External (idResPartner) ID.", + ), + ] diff --git a/connector_woocommerce/models/res_partner/import_mapper.py b/connector_woocommerce/models/res_partner/import_mapper.py new file mode 100644 index 000000000..68841be61 --- /dev/null +++ b/connector_woocommerce/models/res_partner/import_mapper.py @@ -0,0 +1,73 @@ +# Copyright NuoBiT Solutions - Kilian Niubo +# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl) +from odoo.addons.component.core import Component +from odoo.addons.connector.components.mapper import mapping + + +class WooCommerceResPartnerImportMapper(Component): + _name = "woocommerce.res.partner.import.mapper" + _inherit = "woocommerce.import.mapper" + + _apply_on = "woocommerce.res.partner" + + @mapping + def name(self, record): + return {"name": record.get("first_name") + " " + record.get("last_name")} + + @mapping + def parent_id(self, record): + return {"parent_id": record.get("parent") or None} + + @mapping + def street(self, record): + return {"street": record.get("address_1")} + + @mapping + def street2(self, record): + return {"street2": record.get("address_2")} + + @mapping + def city(self, record): + return {"city": record.get("city")} + + @mapping + def type(self, record): + address_type = record.get("type") + if address_type == "billing": + return {"type": "invoice"} + elif address_type == "shipping": + return {"type": "delivery"} + return {"type": record.get("type")} + + @mapping + def hash(self, record): + return {"address_hash": record["hash"]} + + @mapping + def state_id(self, record): + state = self.env["res.country.state"].search( + [ + ("code", "=", record["state"]), + ("country_id.code", "=", record["country"]), + ] + ) + if state: + return {"state_id": state.id} + + @mapping + def zip(self, record): + return {"zip": record.get("postcode")} + + @mapping + def country_id(self, record): + country = self.env["res.country"].search([("code", "=", record.get("country"))]) + if country: + return {"country_id": country.id or None} + + @mapping + def email(self, record): + return {"email": record.get("email")} + + @mapping + def mobile(self, record): + return {"mobile": record.get("phone")} diff --git a/connector_woocommerce/models/res_partner/importer.py b/connector_woocommerce/models/res_partner/importer.py new file mode 100644 index 000000000..adcf93991 --- /dev/null +++ b/connector_woocommerce/models/res_partner/importer.py @@ -0,0 +1,35 @@ +# Copyright NuoBiT Solutions - Kilian Niubo +# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl) + +from odoo.addons.component.core import Component + + +class WooCommerceResPartnerBatchDirectImporter(Component): + """Import the WooCommerce Res Partner. + + For every Res Partner in the list, execute inmediately. + """ + + _name = "woocommerce.res.partner.batch.direct.importer" + _inherit = "connector.extension.generic.batch.direct.importer" + + _apply_on = "woocommerce.res.partner" + + +class WooCommerceResPartnerBatchDelayedImporter(Component): + """Import the WooCommerce Res Partner. + + For every Res Partner in the list, a delayed job is created. + """ + + _name = "woocommerce.res.partner.batch.delayed.importer" + _inherit = "connector.extension.generic.batch.delayed.importer" + + _apply_on = "woocommerce.res.partner" + + +class WooCommerceResPartnerImporter(Component): + _name = "woocommerce.res.partner.record.direct.importer" + _inherit = "woocommerce.record.direct.importer" + + _apply_on = "woocommerce.res.partner" diff --git a/connector_woocommerce/models/res_partner/res_partner.py b/connector_woocommerce/models/res_partner/res_partner.py new file mode 100644 index 000000000..7fe114153 --- /dev/null +++ b/connector_woocommerce/models/res_partner/res_partner.py @@ -0,0 +1,50 @@ +# Copyright NuoBiT Solutions - Kilian Niubo +# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl) + +from odoo import api, fields, models + +from ....connector_extension.common.tools import list2hash + + +class Partner(models.Model): + _inherit = "res.partner" + + woocommerce_bind_ids = fields.One2many( + comodel_name="woocommerce.res.partner", + inverse_name="odoo_id", + string="WooCommerce Bindings", + context={"active_test": False}, + ) + + address_hash = fields.Char( + compute="_compute_address_hash", store=True, readonly=True + ) + + @api.model + def _get_hash_fields(self): + return ["name", "street", "street2", "city", "zip", "email", "mobile"] + + def _set_values_hash(self): + for rec in self: + values = [rec[x] or None for x in self._get_hash_fields()] + values.append(rec.parent_id.name or None) + values.append(rec.state_id.code or None) + values.append(rec.country_id.code or None) + return values + + @api.depends( + "name", + "parent_id", + "street", + "street2", + "city", + "state_id", + "zip", + "country_id", + "email", + "mobile", + ) + def _compute_address_hash(self): + for rec in self: + values = rec._set_values_hash() + rec.address_hash = list2hash(values) diff --git a/connector_woocommerce/models/sale_order/__init__.py b/connector_woocommerce/models/sale_order/__init__.py new file mode 100644 index 000000000..20355b946 --- /dev/null +++ b/connector_woocommerce/models/sale_order/__init__.py @@ -0,0 +1,9 @@ +from . import adapter +from . import binder +from . import binding +from . import export_mapper +from . import exporter +from . import import_mapper +from . import importer +from . import listener +from . import sale_order diff --git a/connector_woocommerce/models/sale_order/adapter.py b/connector_woocommerce/models/sale_order/adapter.py new file mode 100644 index 000000000..627084ee1 --- /dev/null +++ b/connector_woocommerce/models/sale_order/adapter.py @@ -0,0 +1,142 @@ +# Copyright NuoBiT Solutions - Kilian Niubo +# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl) +from odoo import _ +from odoo.exceptions import ValidationError + +from odoo.addons.component.core import Component + +from ....connector_extension.common.tools import list2hash + + +class WooCommerceSaleOrderAdapter(Component): + _name = "woocommerce.sale.order.adapter" + _inherit = "connector.woocommerce.adapter" + + _apply_on = "woocommerce.sale.order" + + def get_total_items(self, resource=None, domain=None): + return super().get_total_items("orders", domain=domain) + + def _prepare_data(self, data): + meta_data = self.prepare_meta_data(data) + if meta_data: + data["meta_data"] = meta_data + + def _get_hash_fields(self): + return [ + "name", + "address_1", + "address_2", + "city", + "postcode", + "email", + "phone", + "company", + "state", + "country", + ] + + def _get_billing(self, value, hash_fields): + if value.get("billing"): + value["billing"]["type"] = "billing" + value["billing"]["name"] = ( + value["billing"]["first_name"] + " " + value["billing"]["last_name"] + ) + value["billing"]["hash"] = list2hash( + value["billing"].get(x) for x in hash_fields + ) + + def _get_shipping(self, value, hash_fields): + if value.get("shipping"): + value["shipping"]["type"] = "shipping" + value["shipping"]["name"] = ( + value["shipping"]["first_name"] + " " + value["shipping"]["last_name"] + ) + value["shipping"]["hash"] = list2hash( + value["shipping"].get(x) for x in hash_fields + ) + else: + value["shipping"] = None + + def _reorg_order_data(self, values): + # reorganize data + for value in values: + hash_fields = self._get_hash_fields() + self._get_billing(value, hash_fields) + self._get_shipping(value, hash_fields) + if not value.get("products"): + value["products"] = [] + for item in value["line_items"]: + item["order_id"] = value["id"] + item["is_shipping"] = False + if not float(item["subtotal"]): + item["discount"] = 0 + else: + item["discount"] = ( + 1 - float(item["total"]) / float(item["subtotal"]) + ) * 100 + product = { + "id": item["variation_id"] + if item.get("variation_id") + else item["product_id"], + "sku": item["sku"], + "name": item["name"], + "type": "variation" if item.get("variation_id") else "simple", + } + if item.get("variation_id"): + product["parent_id"] = item["product_id"] + value["products"].append(product) + for shipping in value["shipping_lines"]: + value["line_items"].append( + { + "order_id": value["id"], + "is_shipping": True, + "taxes": shipping["taxes"], + "total": shipping["total"], + "subtotal": shipping["total"], + "quantity": 1, + "id": shipping["id"], + "discount": 0, + "total_tax": shipping["total_tax"], + } + ) + + def read(self, external_id): # pylint: disable=W8106 + external_id_values = self.binder_for().id2dict(external_id, in_field=False) + url = "orders/%s" % (external_id_values["id"]) + res = self._exec("get", url, limit=1) + self._reorg_order_data(res) + if len(res) > 1: + raise ValidationError( + _("More than one order found with the same id: %s") + % (external_id_values["id"]) + ) + return res[0] + + def search_read(self, domain=None, offset=0, limit=None): + self._convert_format_domain(domain) + if limit: + res = self._exec("get", "orders", domain=domain, offset=offset, limit=limit) + else: + res = self._exec("get", "orders", domain=domain, offset=offset) + self._reorg_order_data(res) + return res, len(res) + + def write(self, external_id, data): # pylint: disable=W8106 + self._prepare_data(data) + url_l = ["orders", str(external_id[0])] + return self._exec("put", "/".join(url_l), data=data) + + def _get_search_fields(self): + res = super()._get_search_fields() + res += [ + "status", + "after", + "date_created_gmt", + "modified_after", + "modified_before", + ] + return res + + def _prepare_domain(self, domain): + self._convert_format_domain(domain) diff --git a/connector_woocommerce/models/sale_order/binder.py b/connector_woocommerce/models/sale_order/binder.py new file mode 100644 index 000000000..f7f244bc6 --- /dev/null +++ b/connector_woocommerce/models/sale_order/binder.py @@ -0,0 +1,16 @@ +# Copyright NuoBiT Solutions - Kilian Niubo +# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl) + +from odoo.addons.component.core import Component + + +class WooCommerceSaleOrderBinder(Component): + _name = "woocommerce.sale.order.binder" + _inherit = "woocommerce.binder" + + _apply_on = "woocommerce.sale.order" + + external_id = "id" + internal_id = "woocommerce_idsaleorder" + + internal_alt_id = "client_order_ref" diff --git a/connector_woocommerce/models/sale_order/binding.py b/connector_woocommerce/models/sale_order/binding.py new file mode 100644 index 000000000..2c1ff3946 --- /dev/null +++ b/connector_woocommerce/models/sale_order/binding.py @@ -0,0 +1,71 @@ +# Copyright NuoBiT Solutions - Kilian Niubo +# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl) + +from odoo import api, fields, models + + +class WooCommerceSaleOrder(models.Model): + _name = "woocommerce.sale.order" + _inherit = "woocommerce.binding" + _inherits = {"sale.order": "odoo_id"} + _description = "WooCommerce Sale Order Binding" + + odoo_id = fields.Many2one( + comodel_name="sale.order", + string="Sale Order", + required=True, + ondelete="cascade", + ) + woocommerce_idsaleorder = fields.Integer( + string="WooCommerce ID Sale Order", + readonly=True, + ) + woocommerce_status = fields.Char( + readonly=True, + ) + woocommerce_order_line_ids = fields.One2many( + string="WooCommerce Order Line ids", + help="Order Lines in WooCommerce sale orders", + comodel_name="woocommerce.sale.order.line", + inverse_name="woocommerce_order_id", + ) + + _sql_constraints = [ + ( + "external_uniq", + "unique(backend_id, woocommerce_idsaleorder)", + "A binding already exists with the same External (idSaleOrder) ID.", + ), + ] + + @api.model + def _get_base_domain(self): + return [] + + def import_sale_orders_since(self, backend_record=None, since_date=None): + domain = self._get_base_domain() + # TODO: El extract_domain_clauses don't accept 'in operator, + # to use get_total_items in status on-hold and processing we have to do two imports. + # We have to find a better way to join this domains. + domain += [("status", "=", "on-hold,processing")] + # domain += [("status", "=", "on-hold")] + # domain += [("status", "in", ["on-hold","processing"])] + + if since_date: + domain += [("modified_after", "=", since_date)] + self.with_delay().import_batch(backend_record, domain=domain) + return True + + def export_sale_orders_since(self, backend_record=None, since_date=None): + domain = self._get_base_domain() + domain += [("woocommerce_bind_ids", "!=", False)] + if since_date: + domain += [ + ( + "woocommerce_status_write_date", + ">", + since_date.strftime("%Y-%m-%dT%H:%M:%S"), + ) + ] + self.with_delay().export_batch(backend_record, domain=domain) + return True diff --git a/connector_woocommerce/models/sale_order/export_mapper.py b/connector_woocommerce/models/sale_order/export_mapper.py new file mode 100644 index 000000000..543ba3bff --- /dev/null +++ b/connector_woocommerce/models/sale_order/export_mapper.py @@ -0,0 +1,22 @@ +# Copyright NuoBiT Solutions - Kilian Niubo +# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl) + +from odoo.addons.component.core import Component +from odoo.addons.connector.components.mapper import mapping + + +class WooCommerceSaleOrderExportMapper(Component): + _name = "woocommerce.sale.order.export.mapper" + _inherit = "woocommerce.export.mapper" + + _apply_on = "woocommerce.sale.order" + + @mapping + def status(self, record): + if record.woocommerce_order_state == "processing": + status = "on-hold" if record.state == "draft" else "processing" + elif record.woocommerce_order_state == "done": + status = "completed" + else: + status = "cancelled" + return {"status": status} diff --git a/connector_woocommerce/models/sale_order/exporter.py b/connector_woocommerce/models/sale_order/exporter.py new file mode 100644 index 000000000..620ffd8b0 --- /dev/null +++ b/connector_woocommerce/models/sale_order/exporter.py @@ -0,0 +1,35 @@ +# Copyright NuoBiT Solutions - Kilian Niubo +# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl) + +from odoo.addons.component.core import Component + + +class WooCommerceSaleOrdertBatchDirectExporter(Component): + """Export the WooCommerce Sale Order. + + For every Sale Order in the list, execute inmediately. + """ + + _name = "woocommerce.sale.order.batch.direct.exporter" + _inherit = "connector.extension.generic.batch.direct.exporter" + + _apply_on = "woocommerce.sale.order" + + +class WooCommerceSaleOrderBatchDelayedExporter(Component): + """Export the WooCommerce Sale Order. + + For every Sale Order in the list, a delayed job is created. + """ + + _name = "woocommerce.sale.order.batch.delayed.exporter" + _inherit = "connector.extension.generic.batch.delayed.exporter" + + _apply_on = "woocommerce.sale.order" + + +class WooCommerceSaleOrderExporter(Component): + _name = "woocommerce.sale.order.record.direct.exporter" + _inherit = "woocommerce.record.direct.exporter" + + _apply_on = "woocommerce.sale.order" diff --git a/connector_woocommerce/models/sale_order/import_mapper.py b/connector_woocommerce/models/sale_order/import_mapper.py new file mode 100644 index 000000000..3cd7f92b2 --- /dev/null +++ b/connector_woocommerce/models/sale_order/import_mapper.py @@ -0,0 +1,119 @@ +# Copyright NuoBiT Solutions - Kilian Niubo +# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl) +from odoo import _ +from odoo.exceptions import ValidationError + +from odoo.addons.component.core import Component +from odoo.addons.connector.components.mapper import mapping, only_create + + +class SaleOrderImportMapChild(Component): + _name = "woocommerce.sale.order.map.child.import" + _inherit = "woocommerce.map.child.import" + + _apply_on = "woocommerce.sale.order.line" + + def get_item_values(self, map_record, to_attr, options): + binder = self.binder_for("woocommerce.sale.order.line") + external_id = binder.dict2id(map_record.source, in_field=False) + woocommerce_order_line = binder.to_internal(external_id, unwrap=False) + if woocommerce_order_line: + map_record.update(id=woocommerce_order_line.id) + return map_record.values(**options) + + def format_items(self, items_values): + ops = [] + for values in items_values: + _id = values.pop("id", None) + if _id: + ops.append((1, _id, values)) + else: + ops.append((0, False, values)) + return ops + + +class WooCommerceSaleOrderImportMapper(Component): + _name = "woocommerce.sale.order.import.mapper" + _inherit = "woocommerce.import.mapper" + + _apply_on = "woocommerce.sale.order" + children = [ + ("line_items", "woocommerce_order_line_ids", "woocommerce.sale.order.line") + ] + + @mapping + def billing(self, record): + if record["billing"]: + binder = self.binder_for("woocommerce.res.partner") + external_id = binder.dict2id(record["billing"], in_field=False) + partner = binder.to_internal(external_id, unwrap=True) + assert partner, ( + "partner_id %s should have been imported in " + "SaleOrderImporter._import_dependencies" % external_id + ) + if not partner.active: + raise ValidationError( + _("The partner %s, with id:%s is archived, please, enable it") + % (partner.name, partner.id) + ) + partner_return = {"partner_invoice_id": partner.id} + if partner.parent_id: + partner_return["partner_id"] = partner.parent_id.id + else: + partner_return["partner_id"] = partner.id + return partner_return + + @mapping + def shipping(self, record): + if record["shipping"]: + binder = self.binder_for("woocommerce.res.partner") + external_id = binder.dict2id(record["shipping"], in_field=False) + partner = binder.to_internal(external_id, unwrap=True) + assert partner, ( + "partner_shipping_id %s should have been imported in " + "SaleOrderImporter._import_dependencies" % external_id + ) + return {"partner_shipping_id": partner.id} + + @mapping + def payment_method(self, record): + payment_mode = self.backend_record.payment_mode_ids.filtered( + lambda x: record["payment_method"] == x.woocommerce_payment_mode + ) + if not payment_mode and record["payment_method"]: + raise ValidationError( + _("Payment method '%s' is not defined on backend") + % record.get("payment_method") + ) + return {"payment_mode_id": payment_mode.payment_mode_id.id} + + @mapping + def currency(self, record): + currency = self.env["res.currency"].search( + [("name", "=", record.get("currency"))] + ) + if not currency: + raise ValidationError( + _("Currency '%s' is not defined") % record.get("currency") + ) + return {"currency_id": currency.id} + + @mapping + def woocommerce_order_id(self, record): + client_order_ref = ( + self.backend_record.client_order_ref_prefix + "-" + str(record["id"]) + ) + return {"client_order_ref": client_order_ref} + + @mapping + def note(self, record): + return {"note": record["customer_note"]} + + @mapping + def status(self, record): + return {"woocommerce_status": record["status"]} + + @only_create + @mapping + def is_woocommerce(self, record): + return {"is_woocommerce": True} diff --git a/connector_woocommerce/models/sale_order/importer.py b/connector_woocommerce/models/sale_order/importer.py new file mode 100644 index 000000000..ace84c6de --- /dev/null +++ b/connector_woocommerce/models/sale_order/importer.py @@ -0,0 +1,175 @@ +# Copyright NuoBiT Solutions - Kilian Niubo +# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl) +from odoo import _ +from odoo.exceptions import ValidationError + +from odoo.addons.component.core import Component + + +class WooCommerceSaleOrderBatchDirectImporter(Component): + """Import the WooCommerce Sale Order. + + For every Sale Order in the list, execute inmediately. + """ + + _name = "woocommerce.sale.order.batch.direct.importer" + _inherit = "connector.extension.generic.batch.direct.importer" + + _apply_on = "woocommerce.sale.order" + + +class WooCommerceSaleOrderBatchDelayedImporter(Component): + """Import the WooCommerce Sale Order. + + For every Sale Order in the list, a delayed job is created. + """ + + _name = "woocommerce.sale.order.batch.delayed.importer" + _inherit = "connector.extension.generic.batch.delayed.importer" + + _apply_on = "woocommerce.sale.order" + + +class WooCommerceSaleOrderImporter(Component): + _name = "woocommerce.sale.order.record.direct.importer" + _inherit = "woocommerce.record.direct.importer" + + _apply_on = "woocommerce.sale.order" + + def _get_partner_parent_domain(self, dir_type, value): + name = value[dir_type].get("company") or value[dir_type].get("name") + return [ + ("company_type", "in", (False, "company")), + ("child_ids", "!=", False), + ("name", "=", name), + ] + + def _additional_partner_parent_fields(self, value, dir_type): + return {} + + def _get_partner_parent(self, dir_type, value): + # TODO: REVIEW: slug for company name? + domain = self._get_partner_parent_domain(dir_type, value) + parent = self.env["res.partner"].search(domain) + if not parent: + parent = self.env["res.partner"].create( + { + "name": value[dir_type].get("company") + or value[dir_type].get("name"), + "company_type": "company", + **self._additional_partner_parent_fields(value, dir_type), + } + ) + elif len(parent) > 1: + raise ValidationError( + _("There are more than one parent partner with the same name %s") + % value[dir_type].get("name") + ) + value[dir_type]["parent"] = parent.id + + def _import_dependencies(self, external_data, sync_date): + # Customer + binder = self.binder_for("woocommerce.res.partner") + billing = external_data.get("billing") + if billing: + self._get_partner_parent("billing", external_data) + self._import_dependency( + binder.dict2id(billing, in_field=False), + "woocommerce.res.partner", + sync_date, + external_data=billing, + ) + shipping = external_data.get("shipping") + if shipping: + self._get_partner_parent("shipping", external_data) + self._import_dependency( + binder.dict2id(shipping, in_field=False), + "woocommerce.res.partner", + sync_date, + external_data=shipping, + ) + # Products + # We have done this so that a product can be linked with external id or sku + # without having to call the export dependency and thus avoid the write. + # Could we do it another way? + products = external_data["products"] + for product in products: + if product["type"] == "simple": + model = "product.template" + if product["id"] == 0: + raise ValidationError( + _( + "The product '%s' in the order has been deleted on WooCommerce. " + "This order cannot be imported." + ) + % product["name"] + ) + else: + model = "product.product" + if product["id"] == 0 and product["parent_id"] == 0: + raise ValidationError( + _( + "The product '%s' in the order has been deleted on WooCommerce. " + "This order cannot be imported." + ) + % product["name"] + ) + + binder = self.binder_for("woocommerce." + model) + external_id = binder.dict2id(product, in_field=False) + binding = binder.to_internal(external_id) + if not binding and product.get("sku"): + relation = self.env[model].search( + [("default_code", "=", product["sku"])] + ) + if not relation: + raise ValidationError( + _("Product with sku %s not found on Odoo") % product["sku"] + ) + if len(relation) > 1: + raise ValidationError( + _("More than one product found with sku %s") % product["sku"] + ) + binding = binder.bind_export(product, relation) + if not binding: + raise ValidationError(_("Product not found on Odoo")) + + def _after_import(self, binding): + sale_order = self.binder_for().unwrap_binding(binding) + if sale_order.state == "draft" and binding.woocommerce_status == "processing": + sale_order.action_confirm() + + def _must_skip(self, binding): + """Return True if the binding must be skipped.""" + res = super()._must_skip(binding) + if binding: + return _( + "The Order %s is already imported " + "-> Update not allowed" + % self.binder_for().unwrap_binding(binding).display_name + ) + return res + + +class WooCommerceSaleOrderChunkDirectImporter(Component): + """Import the Woocommerce Orders. + + For every order in the list, import it directly. + """ + + _name = "woocommerce.sale.order.chunk.direct.importer" + _inherit = "connector.extension.generic.chunk.direct.importer" + + _apply_on = "woocommerce.sale.order" + + +class WooCommerceSaleOrderChunkDelayedImporter(Component): + """Import the Woocommerce Orders. + + For every order in the list, a delayed job is created. + """ + + _name = "woocommerce.sale.order.chunk.delayed.importer" + _inherit = "connector.extension.generic.chunk.delayed.importer" + + _apply_on = "woocommerce.sale.order" diff --git a/connector_woocommerce/models/sale_order/listener.py b/connector_woocommerce/models/sale_order/listener.py new file mode 100644 index 000000000..6638f66e4 --- /dev/null +++ b/connector_woocommerce/models/sale_order/listener.py @@ -0,0 +1,36 @@ +# Copyright NuoBiT Solutions - Eric Antones +# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl) + +from odoo.addons.component.core import Component + + +class WooCommerceSaleOrderListener(Component): + _name = "sale.order.listener" + _inherit = "base.event.listener" + + _apply_on = "sale.order" + + def on_compute_woocommerce_order_state(self, records, fields=None): + self.export_records(records, fields) + + def _get_fields_to_update(self): + return {"woocommerce_order_state"} + + def export_records(self, records, fields=None): + fields_to_update = self._get_fields_to_update() + for rec in records: + if rec.woocommerce_bind_ids: + if set(fields) & fields_to_update: + if records.sudo().woocommerce_bind_ids: + backends = records.sudo().woocommerce_bind_ids.backend_id + else: + backends = self.env["woocommerce.backend"].search( + [("state", "=", "validated")] + ) + Order = self.env["woocommerce.sale.order"] + domain = [ + *Order._get_base_domain(), + ("id", "in", records.ids), + ] + for backend in backends: + Order.export_batch(backend, domain=domain, delayed=False) diff --git a/connector_woocommerce/models/sale_order/sale_order.py b/connector_woocommerce/models/sale_order/sale_order.py new file mode 100644 index 000000000..8facbce8f --- /dev/null +++ b/connector_woocommerce/models/sale_order/sale_order.py @@ -0,0 +1,80 @@ +# Copyright NuoBiT Solutions - Kilian Niubo +# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl) + +from odoo import api, fields, models + + +class SaleOrder(models.Model): + _inherit = "sale.order" + + woocommerce_bind_ids = fields.One2many( + comodel_name="woocommerce.sale.order", + inverse_name="odoo_id", + string="WooCommerce Bindings", + context={"active_test": False}, + ) + is_woocommerce = fields.Boolean( + default=False, + ) + woocommerce_status_write_date = fields.Datetime( + compute="_compute_woocommerce_status_write_date", + store=True, + ) + + @api.depends("state", "picking_ids", "picking_ids.state") + def _compute_woocommerce_status_write_date(self): + for rec in self: + if rec.is_woocommerce: + rec.woocommerce_status_write_date = fields.Datetime.now() + + woocommerce_order_state = fields.Selection( + compute="_compute_woocommerce_order_state", + store=True, + selection=[ + ("processing", "Processing"), + ("done", "Done"), + ("cancel", "Cancel"), + ], + ) + + def _get_woocommerce_order_state(self, picking_states): + self.ensure_one() + if not picking_states or "processing" in picking_states: + woocommerce_order_state = "processing" + else: + if "done" not in self.picking_ids.mapped("state"): + woocommerce_order_state = "cancel" + else: + woocommerce_order_state = "done" + return woocommerce_order_state + + @api.depends( + "state", + "order_line.qty_delivered", + "order_line.product_uom_qty", + "woocommerce_bind_ids", + "picking_ids.woocommerce_stock_picking_state", + "picking_ids.state", + ) + def _compute_woocommerce_order_state(self): + for rec in self: + if rec.is_woocommerce: + picking_states = self.picking_ids.mapped( + "woocommerce_stock_picking_state" + ) + woocommerce_order_state = rec._get_woocommerce_order_state( + picking_states + ) + if woocommerce_order_state != rec.woocommerce_order_state: + rec.woocommerce_order_state = woocommerce_order_state + self._event("on_compute_woocommerce_order_state").notify( + rec, fields={"woocommerce_order_state"} + ) + + def action_confirm(self): + res = super().action_confirm() + if self.woocommerce_bind_ids.woocommerce_status == "on-hold": + self._event("on_compute_woocommerce_order_state").notify( + self, fields={"woocommerce_order_state"} + ) + return res diff --git a/connector_woocommerce/models/sale_order_line/__init__.py b/connector_woocommerce/models/sale_order_line/__init__.py new file mode 100644 index 000000000..1eda1882c --- /dev/null +++ b/connector_woocommerce/models/sale_order_line/__init__.py @@ -0,0 +1,4 @@ +from . import import_mapper +from . import binder +from . import binding +from . import sale_order_line diff --git a/connector_woocommerce/models/sale_order_line/binder.py b/connector_woocommerce/models/sale_order_line/binder.py new file mode 100644 index 000000000..066452329 --- /dev/null +++ b/connector_woocommerce/models/sale_order_line/binder.py @@ -0,0 +1,38 @@ +# Copyright NuoBiT Solutions - Kilian Niubo +# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl) + +from odoo.addons.component.core import Component + + +class SaleOrderLineBinder(Component): + _name = "woocommerce.sale.order.line.binder" + _inherit = "woocommerce.binder" + + _apply_on = "woocommerce.sale.order.line" + + external_id = ["id", "order_id"] + internal_id = [ + "woocommerce_order_line_id", + "woocommerce_sale_order_id", + ] + # internal_alt_id = ["product_id", "price_unit", "product_uom_qty", "order_id"] + + # TODO: REVIEW: Make an heuristic to bind sale order + # lines without binding but with a sale order binded + # def _get_internal_record_alt(self, values): + # model_name = self.unwrap_model() + # product = self.env['product.product'].search([('name', '=', values.pop('name'))]) + # if not product: + # return self.env[model_name] + # values['product_id'] = product.product_variant_ids.ids + # order = self.env['sale.order'].search( + # [('client_order_ref', '=', values.get('order_id'))]) + # if not order: + # return self.env[model_name] + # values['order_id'] = order.id + # line = super()._get_internal_record_alt(values) + # if line: + # if len(line) > 1: + # raise Exception("More than one sale order line found + # for this order, it's not possible to bind it") + # return line diff --git a/connector_woocommerce/models/sale_order_line/binding.py b/connector_woocommerce/models/sale_order_line/binding.py new file mode 100644 index 000000000..ea0439266 --- /dev/null +++ b/connector_woocommerce/models/sale_order_line/binding.py @@ -0,0 +1,60 @@ +# Copyright NuoBiT Solutions - Kilian Niubo +# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl) + +from odoo import api, fields, models + + +class SaleOrderLineBinding(models.Model): + _name = "woocommerce.sale.order.line" + _inherit = "woocommerce.binding" + _inherits = {"sale.order.line": "odoo_id"} + + odoo_id = fields.Many2one( + comodel_name="sale.order.line", + string="Order line", + required=True, + ondelete="cascade", + ) + backend_id = fields.Many2one( + related="woocommerce_order_id.backend_id", + string="Backend", + readonly=True, + store=True, + required=False, + ) + woocommerce_order_id = fields.Many2one( + comodel_name="woocommerce.sale.order", + string="WooCommerce Order", + required=True, + ondelete="cascade", + index=True, + ) + woocommerce_sale_order_id = fields.Integer() + woocommerce_order_line_id = fields.Integer( + string="WooCommerce Order Line ID", + required=True, + ) + + _sql_constraints = [ + ( + "lol_ext_uniq", + "unique(backend_id, woocommerce_order_line_id)", + "A binding already exists with the same External (WooCommerce) ID.", + ), + ] + + @api.model_create_multi + def create(self, vals_list): + for vals in vals_list: + woocommerce_order_id = vals["woocommerce_order_id"] + binding = self.env["woocommerce.sale.order"].browse(woocommerce_order_id) + vals["order_id"] = binding.odoo_id.id + return super().create(vals_list) + # FIXME triggers function field + # The amounts (amount_total, ...) computed fields on 'sale.order' are + # not triggered when magento.sale.order.line are created. + # It might be a v8 regression, because they were triggered in + # v7. Before getting a better correction, force the computation + # by writing again on the line. + # line = binding.odoo_id + # line.write({'price_unit': line.price_unit}) diff --git a/connector_woocommerce/models/sale_order_line/import_mapper.py b/connector_woocommerce/models/sale_order_line/import_mapper.py new file mode 100644 index 000000000..12533d640 --- /dev/null +++ b/connector_woocommerce/models/sale_order_line/import_mapper.py @@ -0,0 +1,108 @@ +# Copyright NuoBiT Solutions - Kilian Niubo +# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl) +from odoo import _ +from odoo.exceptions import ValidationError + +from odoo.addons.component.core import Component +from odoo.addons.connector.components.mapper import mapping, only_create + + +class SaleOrderLineImportMapper(Component): + _name = "woocommerce.sale.order.line.import.mapper" + _inherit = "woocommerce.import.mapper" + + _apply_on = "woocommerce.sale.order.line" + + @only_create + @mapping + def backend_id(self, record): + return {"backend_id": self.backend_record.id} + + @mapping + def woocommerce_line_id(self, record): + binder = self.binder_for() + external_id = binder.dict2id(record, in_field=False) + return binder.id2dict(external_id, in_field=True) + + @mapping + def price_unit(self, record): + return {"price_unit": (float(record["subtotal"])) / record["quantity"]} + + @mapping + def price_total(self, record): + return {"price_total": float(record["subtotal"])} + + @mapping + def price_tax(self, record): + return {"price_tax": float(record["total_tax"])} + + @mapping + def price_subtotal(self, record): + return {"price_subtotal": float(record["total"])} + + @mapping + def product_id(self, record): + if record["is_shipping"]: + shipping_product = self.backend_record.shipping_product_id + if not shipping_product: + raise ValidationError( + _("Shipping product not found, please define it on Backend") + ) + return {"product_id": shipping_product.id} + if record.get("variation_id"): + external_id = [record["product_id"], record["variation_id"]] + binder = self.binder_for("woocommerce.product.product") + product_odoo = binder.to_internal(external_id, unwrap=True) + else: + if not record.get("product_id"): + raise ValidationError( + _( + "Product not found in order line. " + "Probably this product has been deleted in WooCommerce." + ) + ) + external_id = [record["product_id"]] + binder = self.binder_for("woocommerce.product.template") + product_tmpl = binder.to_internal(external_id, unwrap=True) + product_odoo = product_tmpl.product_variant_id + assert product_odoo, ( + "product_id %s should have been imported in " + "SaleOrderImporter._import_dependencies" % (external_id,) + ) + return {"product_id": product_odoo.id} + + @mapping + def tax_id(self, record): + if record.get("taxes"): + taxes = [] + for tax in record.get("taxes"): + if tax["total"]: + tax_map = self.backend_record.tax_map_ids.filtered( + lambda x: tax["id"] == int(x.woocommerce_tax_rate_id) + ) + if not tax_map: + raise ValidationError( + _("Tax rate %s not found in backend mapping.") % tax["id"] + ) + else: + taxes.append(tax_map.account_tax.id) + if taxes: + return {"tax_id": [(6, 0, taxes)]} + + @mapping + def quantity(self, record): + return {"product_uom_qty": record["quantity"]} + + @mapping + def order(self, record): + external_id = [record["order_id"]] + binder = self.binder_for("woocommerce.sale.order") + order = binder.to_internal(external_id, unwrap=True) + return {"order_id": order} + + @mapping + def woocommerce_discount(self, record): + return { + "woocommerce_discount": record["discount"], + "discount": record["discount"], + } diff --git a/connector_woocommerce/models/sale_order_line/sale_order_line.py b/connector_woocommerce/models/sale_order_line/sale_order_line.py new file mode 100644 index 000000000..376a0a170 --- /dev/null +++ b/connector_woocommerce/models/sale_order_line/sale_order_line.py @@ -0,0 +1,49 @@ +# Copyright NuoBiT Solutions - Kilian Niubo +# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl) + +from odoo import api, fields, models +from odoo.tools.float_utils import float_round + + +class SaleOrderLine(models.Model): + _inherit = "sale.order.line" + + # This field is created with digits=False to force + # the creation with type numeric, like discount. + woocommerce_discount = fields.Float( + digits=False, + ) + stock_move_ids = fields.One2many( + comodel_name="stock.move", + inverse_name="sale_line_id", + ) + discount = fields.Float( + digits=False, + ) + + woocommerce_bind_ids = fields.One2many( + comodel_name="woocommerce.sale.order.line", + inverse_name="odoo_id", + string="WooCommerce Bindings", + context={"active_test": False}, + ) + + def write(self, vals): + prec = self.env.ref("product.decimal_discount").digits + if "woocommerce_discount" in vals: + vals["discount"] = vals["woocommerce_discount"] + elif "discount" in vals and not self.woocommerce_discount: + vals["discount"] = float_round(vals["discount"], precision_digits=prec) + return super().write(vals) + + @api.model_create_multi + def create(self, vals_list): + prec = self.env.ref("product.decimal_discount").digits + for values in vals_list: + if "woocommerce_discount" in values: + values["discount"] = values["woocommerce_discount"] + elif "discount" in values: + values["discount"] = float_round( + values["discount"], precision_digits=prec + ) + return super().create(vals_list) diff --git a/connector_woocommerce/models/stock_picking/__init__.py b/connector_woocommerce/models/stock_picking/__init__.py new file mode 100644 index 000000000..ae4c27227 --- /dev/null +++ b/connector_woocommerce/models/stock_picking/__init__.py @@ -0,0 +1 @@ +from . import stock_picking diff --git a/connector_woocommerce/models/stock_picking/stock_picking.py b/connector_woocommerce/models/stock_picking/stock_picking.py new file mode 100644 index 000000000..05fe452f2 --- /dev/null +++ b/connector_woocommerce/models/stock_picking/stock_picking.py @@ -0,0 +1,38 @@ +# Copyright NuoBiT Solutions - Kilian Niubo +# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl) + +from odoo import api, fields, models + + +class Picking(models.Model): + _inherit = "stock.picking" + + woocommerce_stock_picking_state = fields.Selection( + compute="_compute_woocommerce_stock_picking_state", + selection=[ + ("processing", "Processing"), + ("done", "Done"), + ("cancel", "Cancel"), + ], + ) + + def _get_woocommerce_stock_picking_state(self): + self.ensure_one() + if self.state == "done": + woocommerce_stock_picking_state = "done" + elif self.state == "cancel": + woocommerce_stock_picking_state = "cancel" + else: + woocommerce_stock_picking_state = "processing" + return woocommerce_stock_picking_state + + @api.depends("state") + def _compute_woocommerce_stock_picking_state(self): + for rec in self: + if rec.sale_id.is_woocommerce: + woocommerce_stock_picking_state = ( + rec._get_woocommerce_stock_picking_state() + ) + rec.woocommerce_stock_picking_state = woocommerce_stock_picking_state + else: + rec.woocommerce_stock_picking_state = False diff --git a/connector_woocommerce/readme/CONTRIBUTORS.rst b/connector_woocommerce/readme/CONTRIBUTORS.rst new file mode 100644 index 000000000..e468d95a0 --- /dev/null +++ b/connector_woocommerce/readme/CONTRIBUTORS.rst @@ -0,0 +1,4 @@ +* `NuoBiT `__: + + * Kilian Niubo + * Eric Antones diff --git a/connector_woocommerce/readme/DESCRIPTION.rst b/connector_woocommerce/readme/DESCRIPTION.rst new file mode 100644 index 000000000..2de74dba8 --- /dev/null +++ b/connector_woocommerce/readme/DESCRIPTION.rst @@ -0,0 +1 @@ +Connector WooCommerce diff --git a/connector_woocommerce/security/connector_woocommerce.xml b/connector_woocommerce/security/connector_woocommerce.xml new file mode 100644 index 000000000..f81cb9cfc --- /dev/null +++ b/connector_woocommerce/security/connector_woocommerce.xml @@ -0,0 +1,13 @@ + + + + + Connector Woocommerce backend multi-company rule + + ['|', ('company_id', '=', False), ('company_id', 'in', company_ids)] + + + diff --git a/connector_woocommerce/security/ir.model.access.csv b/connector_woocommerce/security/ir.model.access.csv new file mode 100644 index 000000000..7f0f2af45 --- /dev/null +++ b/connector_woocommerce/security/ir.model.access.csv @@ -0,0 +1,25 @@ +id,name,model_id:id,group_id:id,perm_read,perm_write,perm_create,perm_unlink +"access_woocommerce_backend_manager","woocommerce_backend connector manager","model_woocommerce_backend","connector.group_connector_manager",1,1,1,1 +"access_woocommerce_backend_user","woocommerce_backend connector user","model_woocommerce_backend","base.group_user",1,0,0,0 +"access_woocommerce_backend_account_tax_manager","woocommerce_backend_account_tax connector manager","model_woocommerce_backend_account_tax","connector.group_connector_manager",1,1,1,1 +"access_woocommerce_backend_account_tax_user","woocommerce_backend_account_tax connector user","model_woocommerce_backend_account_tax","base.group_user",1,0,0,0 +"access_woocommerce_backend_tax_class_manager","woocommerce_backend_tax_class connector manager","model_woocommerce_backend_tax_class","connector.group_connector_manager",1,1,1,1 +"access_woocommerce_backend_tax_class_user","woocommerce_backend_tax_class connector user","model_woocommerce_backend_tax_class","base.group_user",1,0,0,0 +"access_woocommerce_backend_payment_mode_manager","woocommerce_backend_payment_mode connector manager","model_woocommerce_backend_payment_mode","connector.group_connector_manager",1,1,1,1 +"access_woocommerce_backend_payment_mode_user","woocommerce_backend_payment_mode connector user","model_woocommerce_backend_payment_mode","base.group_user",1,0,0,0 +"access_woocommerce_product_product_manager","woocommerce_product_product connector manager","model_woocommerce_product_product","connector.group_connector_manager",1,1,1,1 +"access_woocommerce_product_product_user","woocommerce_product_product connector user","model_woocommerce_product_product","base.group_user",1,0,0,0 +"access_woocommerce_product_public_category_manager","woocommerce_product_public_category connector manager","model_woocommerce_product_public_category","connector.group_connector_manager",1,1,1,1 +"access_woocommerce_product_public_category_user","woocommerce_product_public_category connector user","model_woocommerce_product_public_category","base.group_user",1,0,0,0 +"access_woocommerce_product_template_manager","woocommerce_product_template connector manager","model_woocommerce_product_template","connector.group_connector_manager",1,1,1,1 +"access_woocommerce_product_template_user","woocommerce_product_template connector user","model_woocommerce_product_template","base.group_user",1,0,0,0 +"access_woocommerce_product_attribute_manager","woocommerce_product_attribute connector manager","model_woocommerce_product_attribute","connector.group_connector_manager",1,1,1,1 +"access_woocommerce_product_attribute_user","woocommerce_product_attribute connector user","model_woocommerce_product_attribute","base.group_user",1,0,0,0 +"access_woocommerce_product_attribute_value_manager","woocommerce_product_attribute_value connector manager","model_woocommerce_product_attribute_value","connector.group_connector_manager",1,1,1,1 +"access_woocommerce_product_attribute_value_user","woocommerce_product_attribute_value connector user","model_woocommerce_product_attribute_value","base.group_user",1,0,0,0 +"access_woocommerce_sale_order_manager","woocommerce_sale_order connector manager","model_woocommerce_sale_order","connector.group_connector_manager",1,1,1,1 +"access_woocommerce_sale_order_user","woocommerce_sale_order connector user","model_woocommerce_sale_order","base.group_user",1,0,0,0 +"access_woocommerce_res_partner_manager","woocommerce_res_partner connector manager","model_woocommerce_res_partner","connector.group_connector_manager",1,1,1,1 +"access_woocommerce_res_partner_user","woocommerce_res_partner connector user","model_woocommerce_res_partner","base.group_user",1,0,0,0 +"access_woocommerce_sale_order_line_manager","woocommerce_sale_order_line connector manager","model_woocommerce_sale_order_line","connector.group_connector_manager",1,1,1,1 +"access_woocommerce_sale_order_line_user","woocommerce_sale_order_line connector user","model_woocommerce_sale_order_line","base.group_user",1,0,0,0 diff --git a/connector_woocommerce/static/description/icon.png b/connector_woocommerce/static/description/icon.png new file mode 100644 index 0000000000000000000000000000000000000000..1cd641e792c30455187ca30940bc0f329ce8bbb0 GIT binary patch literal 6342 zcmd^^hf`C}*TzHWpfm-MZa|7OjYtjE(4`3pP0Eid3J8V{0s)mKJ<q zp^9|rp$mb~2}po9-@oIXJG(oxcjoS%d!O@s&d!Z9HP*e##KQyt0IurmK_64bp8pyH z9i^|ds>-JfbWVo4P{8GX*QeIfbjl2)kDfIG0ALvZuTgp2ZfK=U();NfY11z-vM>r= zo6RyI007+P`cO@apy}VqnaiVCLL`CEUGVGYE&5WpdhhbZv%|*-Y|2t(4~Cq|y`-Nmm-W zxaTf4+R69rVU1b%qjm?yu*PFgHFYd#J82-D8cpXqO&omwG2*Hd6ZIUiK@+ zNCo8Lg{1^vn^0ZQgz*~*ZR3wsULxnnSBN%7p()3EYs>sX9In)T{*nJ2q*qxXPNhFk z=z=+?4VOOdAF!ZYAVisYzF29g?udLQJtx@=HoAK_Kjx;4SO7>H_v*McB7(}RHMa> z+PNao{Hw&Mjo0P}CBR&l(k@iIeRI@PRH6R9^lR3e?TL?ZHra#GHvKmkeVBHG8nv4{ zz$nHGR7`D$ae@TrcXCSA=$~Yvp@J|bKul>6s-`yT7>JaM5?KcltZ)(ilt^74fqLA{ z1k!bKw(GMV*AOgI*glG_($h!cZgArkEAa1SkSG`0yF8JLWTq^J->2CRaqKH1ZSQt7 z29|+OBS3Rj91K1XL~_9&zn1p z)2Ez)&{9Of1X#b+mpgJ`{gurrlYqKrwrWXTOH{M%kEUhcgSp1J2FK4FF`JS|NfaAA6)?-&1}B`@lI2~kKWK) zhQ|}GQ$j(rNS}9?Yu9}MzWxz*HMwR=u8$RYY6sr2pu3x5Yx*P!Z&c|X zFZcC{+kqJV=XTZH=cMb6)MtgWo%C~XU8TEXDKx9;0hEV*74Z6i8vuzXp zw<8QvI~;n;3@<^G0C#HHf2{N6E~2DO3jw!?w}z?_vV6Q>?kJ>IF-kEc*TtP}k7cVd zvtdPgQ^jWhMXAL$Lqn!_A_IL+!hbY37)n@Sqc)6JwD4)3LP`up1cy^EXzh>B{$ce0 zgX~Iat{I@DM|zU|>9DuD?g}h7zCqV;o1*~3Hr=DYjDq;SG?3HS)(x+l@HAa-@>5wH zhw`oqg>hP$e41h5)>$#qFWq?LGX`dC8ph`RyR&_z&og>psSHzZ=_8<-M4yk+3HK-+ zxqe%Ntx88}49jJazM_Vov;)83cSeeLv@taHOL>zP>~bqdmEyfHl9M%`@ivb|7{I;N zzyHw9P7EH0$ww52RejJv>zvSr8v*iuX@X;(Z~NuUv$D0I_>OkcZWSulBUJjHUN=n| zSI$q@$)`(E;^(|}q|2utYl8}>IcXkPX#{6Z%JnhUBly1B@B}sECm2Y88-QrQZd2n2 zKL=1_&Z87xM=GaycA-Ac*R<^bJk>-^k%lt;DjswC+AM`71*2iG?;!3Bc)I>55v)^C zkt+Uzn&dhv|58XAY6{%ybSiVMl-sATTy=SUADQWD+(@-AVqg@Y+_fBV$LJnIEfujI4B5%4a@8S4M*50Lh7NqKSW>K=U5dW@)Hd{^oR4v% zCM2(rAq7Qe-)R0ko{l@iCHGsxhkCNWby zf&gByp!>=?r1ecWMqz5e-BmOED6n!_1V4<)R!!QNwM!AyGty8>p>ebEzdp*_(kAYA z5*F^g_K}%Rm;V}4Q46qJpU+&3bU10WYg{j`T>lv9{B)J}RHC}yzy9x)wm4ju23yQ& zUNm(i_(ChqD8d7AVUFMw zXmia0A{l#}Sfq!GmHjatiTk$f|OvS0iG>W{p<8cZu^6HX`rMuX?l8<+?WVAW6 z3!MLV*VOFpd&STaeN2qdwU* zk1ni(wdh{`{hLj-hCz&59jVIp~SmgtSQDf!FrPYKIF6_c_NJr zn<-BdXVU}OSE{-No~b(6tG)250`-S%YB9Si@&}{d@FUGqjcNE@SlSdG`}H-#!~M1& z;{E-SKUBb6)KwP1XB|S8MB=F>9k$#1$|^*t%%5zq#(35~S#+TgC^oj&COt~T>axhU0t zQff{8Jt+NH^_pqPzec@Iv#L^r?qs$jdiCY&xOU2pve78Pc{a8y+D;2N0aEJe5d#uL}ZkkYQ&XA;NK5v>r@NUaj=<_V$*Ll@&CF!{LWI zh@|EE!!M(B5qeQ40YHy86TVkX6Te=v4ytV_-JnKl93#Z9clghd^lywoBtgj)4%mxKR<#pH0*hxyHFQNJ zGW`7CtD9C6)ehKni=#!gKj#ZO7L$d_i4nJZhR!z$B(rX9j$$L8X1>~^2By%Dp*IJj z8QiI6*w*|IoF{UpFaD{!PWdOxja{DQq9?BK%2(Xuh#Tv2s_ELIvb@YAd{Af)Lph(9 z>DTXZ`|*!Jnw)?`BzPrdYx(?S2&<(1>1>-f=c}gi8^)=KW973rikh?!-B$fOy@x-Rd+?x= zM(0SbmCz!gY#)CqB9J_^v4K$urOnoj|E||~D>%ndVMwe)ef3BuZH0l!Z&M@fyN}{1 zD;n{juZF|*{lehy$NlM{B`Q0Z18O|&=wX!Nt*rLKfak}ww{ zJ$9BJA3Tq4n~%w3V$0UA(+PgZ#j-35$=_xzuk(w5o2f(WOCu%+h>cg3B*aqaQdfeQ zj@VutKTWtH8{S+}vR3Z`KIQl-h!4tFi1vG-Kuh^Lb0N=LN0+1ZP!WL39=Age)HS_E z8khUbE>xA^59Nmj`B0@u0IR<04wqF@ssF4AP6ZVhslN61xT#8o@ymhOWJ5zkUQN07 zyDEYVZ4#Z$(%wnd04Y_^B_4gjFoKPWgD&OUsj^ezcuXa}E4yjc@xi#az zyRy6>?#h2*VNdNO_jYQ1{@qaYoN7moT}cnd8cmK*&R@SeSYZgIBaJklh!n-3#3dyO z!@*@06=Y8#wl9|Bj3=C0Fi!SfzVz7$Stc4_Q`K2P?2|gT!JIBhc*P&-IkB?Mb5I&% z%BN*TF#vYzIW>)|=X`Chr};G5EZXg?_yvlDC|f%AP!ty{i{{pXQnHm<^|{P$D; z9ZAW#l9Cd2($R5@*5}FeUd#l;N11WwITb1nJSm8r@`#sXHPsuq!3S2&h>U)y=3MjV;j3oWLY>5EOvuruXC*WH2G){378-0tpcMF}1(^PSWUe>XEJN%5 zl|m59cX=GC{^$_E-4Wm1=5|!;Ek&{<4lIOt5M&GMq=+JQdyt?WI#6C!)i!s4;k9T0 z{;`B*>VQ%iU)>Zbhgb4|vd=Wy4>107#gyeqi^+-^2E~0Ja&rFpRb<)oirMj4-KuLg zSo1*y98TZlD<3^A&^bRESh~S*Lzqn0l;JfX-fdjA`M#a!@?b?zWdEr3mIiqS{m2J% z3nWGoQG6+FQ~&gQF-DLGWF}WfwHL(4$EUt(5Jcx#l79K-x~qdu!_gs;XaP0`8m(8a z2J#B{UvEhLT=w9*(6bFWp{9CI=Z&Hh)e}}1hnK6fPlSYqu4H|>g|Erg5fVWl5w&~Kdf{3+V{dCaNhFDg<~sELf1dC($hw|SmSkZ zKD6>nsj6Q+aHEZDHC9{UJxPZ9y{6)F5hg5bm*}ihsxQxj~`xNo%QnaTEJn)f#{CK-H5HYAM7kK zL!XvElM^Y!yC=uSu54Gj zTEgKhtTCOqx1EcIl=VA7`!xLiUj%p*eH??_??@gOJJxVX)#(G`=31lw3whFi2Y7Mq z1bXLvi+~U5E4R{v15H@yQI@=d!V9LD&P!p?0u7L&Rg=D<<*+ zouj?2?aYI{Ac%Gx!r&EkXmmvR`!Xl?06WsGs_Ts8ojW?id!X$>C}@~q>BMfGeGohw zkR}NImw2grp7>W(5s*(iPYn$1*t@i%(W7u#6m}l)%TmD-221>N?VBna!@FO-7!xjM z{`_^-yt<@e?fK$Sqzc7O%3&~A>HB|stQr64jx(U3y+}d}vp(r7c=iB8>t~T7HmYg1qJe4SLo$e62=EZUuFS7UqbSP}M^@%aI7g!ztzj{)_R0x*X6OMLAky)_Sv&%2DNGv zxH}pEr{gEYf&ZF&RJoII9*=yd^~fxKtFc@1f_3}Vqqi8_U?;lC`7etN$3$u0dW+-%7P zQ~iX&gr(5xd1M>3yrzZav9ZLIhbS&|=U$t!9iq*i5vy)(RsBw0TU#?~zdTKUXjyIl z%7Q)Vp}YoU$acz-9y_`%Oig!%TPyC=ie3*Qut3@4V`+A4d<*f%jOx>*bX%#Ao+@wM z;NW0DZKvmp%_oxvFw2#S9r8Sc?wXh}`3gVG`rBKr&jpxwTRQ7WtKY06QQVhs$u$!e zs;Y%~2xwpH*9vxfQ~q#gAwn+P+=YE(L>|P(Fl&H27@?);kUI4FW%LjHZKYGk#f~@3 zXW;a;3+{&c`g+uCR+``$V9)N#RBCk_#RQ(K-PxlQ7Ym;XdCqGn$j%JmAwgtkWKn1} z8^>3&)Q05VbBm+t`9B_${w9F7WfM{Jvawk;HDc*{Sa_Sla|zqX!vbKV%>gB|z6BCc z8_bdnPnzloGP1I)!^5hnC6CLZUU`;nO2NF2)FaAkYhQL$Z58+`p75dj7RKse#Z!uacCm z0@|m~U!QZOdb|V~`ktFK4;lg_ZOCjFXeV4`jGj&bh7Q6BEyN8~yGd*JyzwFbIRaAf z#KG$rvQxWFvqwn`i6jBQ?6o+k+oOC)Gj9ChlgabiScr};b5|opxUYjCZOwmhjTj6W zFzJt_htTuopW4IRiQ}r0L}`w=pE{HN<@(9Hl11P5cHmN6A1F^sg2OWXcw<+q2x>I5 zq9Bu>PBob6#^vrr<|IC)m+zJpFRRcCVsqbspNybriu&!R=H^@RcG#aBGz9RH}ZI=>4 zi(m?IA?Vr$Q7?wN6ZW7H`S?3}K8=$7J5MjWKri=_igw1%J?0~*6e_Ii*1&23dGcF} z&=vaMgF!^veGQ1f$3k?WK5Jaw%==+Bb!tI6zQ68&-dQ3Orl+Tqh#Nt?dBEV_w^wkjY+qJ+X*NCMs%J-Lc4%}pKryM#O)O&9 un*HHVB-AlUN`suyDkKONktc!@Ievk;6wT20MOSqhE{1gM*SZGeqiYU literal 0 HcmV?d00001 diff --git a/connector_woocommerce/static/description/index.html b/connector_woocommerce/static/description/index.html new file mode 100644 index 000000000..88d86bffe --- /dev/null +++ b/connector_woocommerce/static/description/index.html @@ -0,0 +1,421 @@ + + + + + +Connector WooCommerce + + + +
+

Connector WooCommerce

+ + +

Beta License: AGPL-3 NuoBiT/odoo-addons

+

Connector WooCommerce

+

Table of contents

+ +
+

Bug Tracker

+

Bugs are tracked on GitHub 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.

+

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

+
+
+

Credits

+
+

Authors

+
    +
  • NuoBiT Solutions
  • +
  • S.L.
  • +
+
+
+

Contributors

+ +
+
+

Maintainers

+

This module is part of the NuoBiT/odoo-addons project on GitHub.

+

You are welcome to contribute.

+
+
+
+ + diff --git a/connector_woocommerce/views/connector_woocommerce_menu.xml b/connector_woocommerce/views/connector_woocommerce_menu.xml new file mode 100644 index 000000000..872f43dfd --- /dev/null +++ b/connector_woocommerce/views/connector_woocommerce_menu.xml @@ -0,0 +1,66 @@ + + + + + + + + + + + + + + + + diff --git a/connector_woocommerce/views/product_attribute.xml b/connector_woocommerce/views/product_attribute.xml new file mode 100644 index 000000000..3cd4bc1a4 --- /dev/null +++ b/connector_woocommerce/views/product_attribute.xml @@ -0,0 +1,60 @@ + + + + + product.attribute.connector.form + product.attribute + + + + + + + + + + + + + + woocommerce.product.attribute.view.form + woocommerce.product.attribute + +
+ + + + + + +
+
+
+ + woocommerce.product.attribute.view.tree + woocommerce.product.attribute + + + + + + +