Mercado Libre Connector - Products
connector_mercadolibre_product · OCA/connector-mercadolibre
-
Security25/25No findings
-
Activity25/25Human commit this month
-
Required by5/250 modules depend on it
-
Maturity5/25In 1 Odoo series since 19.0
Heuristic over the facts below, not an audit · How it's computed
Description
Bind Mercado Libre listings to Odoo products and keep price and seller stock aligned.
Listings are matched by the SELLER_SKU attribute, then by seller_custom_field,
then by the product internal reference. A listing that does not match stays unbound.
Create missing products is off by default.
Price export uses the Mercado Libre Prices API. Stock export sends available_quantity
for legacy items and PUT /user-products/{id}/stock/type/seller_warehouse when the
backend version is User products. Fulfillment stock is read-only.
Dependencies
- Odoo dependencies
- Python dependencies
- requests, openupgradelib, cachetools
- System dependencies
- None
- Required by
- None
Code analysis
Extracted from the source by best-effort static analysis (no code is executed); details may be incomplete.
Views touched 8
| XML ID | Name | Model | Type | Status |
|---|---|---|---|---|
mercadolibre_backend_view_form_catalog |
mercadolibre.backend.form.catalog | mercadolibre.backend | form | Inherits connector_mercadolibre.mercadolibre_backend_view_form |
mercadolibre_category_view_form |
mercadolibre.category.form | mercadolibre.category | form | New |
mercadolibre_category_view_list |
mercadolibre.category.list | mercadolibre.category | list | New |
mercadolibre_product_view_form |
mercadolibre.product.product.form | mercadolibre.product.product | form | New |
mercadolibre_product_view_list |
mercadolibre.product.product.list | mercadolibre.product.product | list | New |
mercadolibre_product_view_search |
mercadolibre.product.product.search | mercadolibre.product.product | search | New |
product_product_view_form_mercadolibre |
product.product.form.mercadolibre | product.product | form | Inherits product.product_normal_form_view |
product_template_view_form_mercadolibre |
product.template.form.mercadolibre | product.template | form | Inherits product.product_template_form_view |
HTTP endpoints 0
No HTTP endpoints found for this module.
Models touched 6
-
create_missing_productsBooleandefault=False -
export_pricesBooleandefault=True -
export_stockBooleandefault=False -
import_productsBooleandefault=True -
last_product_sync_atDatetimecopy=Falsereadonly=True -
product_binding_countIntegercompute='_compute_product_binding_count' -
product_binding_idsOne2many → mercadolibre.product.productcomodel_name='mercadolibre.product.product'inverse_name='backend_id' -
warehouse_mapping_idsOne2many → mercadolibre.warehouse.mappingcomodel_name='mercadolibre.warehouse.mapping'inverse_name='backend_id'
-
action_view_products(self) -
button_import_listings(self) -
button_refresh_categories(self) -
cron_import_listings(self)@api.model
-
attribute_schemaJsonreadonly=True -
backend_idMany2one → mercadolibre.backendcomodel_name='mercadolibre.backend'index=Trueondelete='cascade'required=True -
external_idCharindex=Truerequired=True -
listing_allowedBoolean -
nameChar -
parent_external_idChar -
parent_idMany2one → mercadolibre.categorycomodel_name='mercadolibre.category'index=Trueondelete='cascade' -
parent_pathCharindex=True -
sync_dateDatetimereadonly=True
No public methods.
-
backend_idMany2one → mercadolibre.backendcomodel_name='mercadolibre.backend'index=Trueondelete='restrict'required=True -
category_idMany2one → mercadolibre.categorycomodel_name='mercadolibre.category' -
currency_idMany2one → res.currencycomodel_name='res.currency' -
default_codeCharrelated='odoo_id.default_code' -
external_idCharindex=Truerequired=True -
fulfillmentBoolean -
listing_statusSelectionselection=[('active', 'Active'), ('paused', 'Paused'), ('closed', 'Closed'), ('under_review', 'Under review'), ('inactive', 'Inactive')] -
lst_priceFloatrelated='odoo_id.lst_price' -
marketplace_qtyFloatstring='Marketplace quantity' -
odoo_idMany2one → product.productcomodel_name='product.product'index=Trueondelete='cascade' -
permalinkChar -
picture_url_textTextcompute='_compute_picture_url_text' -
picture_urlsJson -
seller_skuCharindex=Truestring='Seller SKU' -
user_product_idCharindex=True -
variation_idCharindex=True
-
button_export_price(self) -
button_export_stock(self) -
button_match(self) -
init(self)
-
backend_idMany2one → mercadolibre.backendcomodel_name='mercadolibre.backend'index=Trueondelete='cascade'required=True -
company_idMany2one → res.companycomodel_name='res.company'related='backend_id.company_id'store=True -
location_idMany2one → stock.locationcomodel_name='stock.location'related='warehouse_id.lot_stock_id'store=True -
network_node_idChar -
stock_typeSelectiondefault='seller_warehouse'required=Trueselection=[('seller_warehouse', 'Seller warehouse'), ('selling_address', 'Selling address'), ('fulfillment', 'Fulfillment')] -
store_idCharstring='Store ID' -
warehouse_idMany2one → stock.warehousecomodel_name='stock.warehouse'domain="[('company_id', '=', company_id)]"required=True
No public methods.
-
mercadolibre_bind_countIntegercompute='_compute_mercadolibre_bind_count' -
mercadolibre_bind_idsOne2many → mercadolibre.product.productcomodel_name='mercadolibre.product.product'inverse_name='odoo_id'
-
action_view_mercadolibre_bindings(self)
-
mercadolibre_bind_countIntegercompute='_compute_mercadolibre_bind_count'
-
action_view_mercadolibre_bindings(self)