stock se rechaza con 409 si el producto tiene variantes (el stock es un valor derivado de variants[], no editable aquí — usa el panel). translations[] hace merge por code: cada entrada reemplaza por completo los campos de ese idioma (title/description/information/features), no solo lo que cambia. options, variants y files no se editan por este endpoint (solo lectura vía GET, se gestionan desde el panel).curl --location --request PATCH 'https://app.mgpanel.co/api/products/' \
--header 'X-Account-Nick: {{ACCOUNT_NICK}}' \
--header 'Authorization: Bearer {{API_KEY}}' \
--header 'Content-Type: application/json' \
--data '{
"information": "{\"time\":1700000000000,\"blocks\":[{\"type\":\"paragraph\",\"data\":{\"text\":\"Descripción larga actualizada\"}}],\"version\":\"2.28.2\"}",
"features": [
{
"name": "Garantía extendida",
"description": "12 meses de cobertura",
"included": true,
"highlight": true,
"icon": "fa-shield"
}
],
"status": 1,
"online_store": true,
"price": {
"type": "one_time",
"one_time": {
"price": 49.99,
"comparison_price": 69.99,
"exento": false
}
},
"translations": [
{
"code": "us",
"title": "Test Product",
"description": "Short description",
"information": "{\"time\":1700000000000,\"blocks\":[{\"type\":\"paragraph\",\"data\":{\"text\":\"Long description\"}}],\"version\":\"2.28.2\"}",
"features": [
{
"id": "6a7ba23d7e9ee5dbd701f2cc",
"name": "Extended warranty",
"description": "12 months of coverage"
}
]
}
]
}'{
"success": true,
"message": "Producto actualizado",
"product_id": "6a7ba22f7e9ee5dbd701f2cb",
"updated_fields": [
"information",
"status",
"onlineStore",
"features",
"price",
"modified"
],
"stale_langs": []
}