# Product Variants Actualiza variantes de productos en Mercately ## Create Variant - [POST /api/v1/products/product_web_id/variants](https://mercately.redocly.app/apis/product-variants/createvariant.md): Crea una nueva variante (ProductVariantCombination) para un producto existente. ### Creación incremental Este endpoint permite agregar una sola variante a un producto sin afectar las variantes existentes. Ideal para integraciones POS que necesitan agregar SKUs uno por uno sin reenviar todo el catálogo. ### Ejemplo: Crear variante con una opción { "variant": { "option1": "XXL", "price": 35.00, "quantity": 10, "sku": "CAMISETA-XXL" } } ### Ejemplo: Crear variante con múltiples opciones { "variant": { "option1": "XXL", "option2": "Azul", "price": 35.00, "quantity": 10, "sku": "CAMISETA-XXL-AZUL" } } ### Notas importantes - Los valores de option1, option2, option3 deben existir en las opciones del producto. - Si la combinación ya existe, retorna error 409 Conflict. - Las variantes existentes no se ven afectadas. ## Get Variant - [GET /api/v1/variants/{web_id}](https://mercately.redocly.app/apis/product-variants/getvariant.md): Obtiene una variante (ProductVariantCombination) por su web_id. ### Consulta individual Este endpoint retorna una sola variante sin traer el producto completo. Ideal para integraciones POS que necesitan verificar el estado de una variante específica. ## Update Variant - [PATCH /api/v1/variants/{web_id}](https://mercately.redocly.app/apis/product-variants/updatevariant.md): Actualiza una variante (ProductVariantCombination) de forma parcial. ### Actualización parcial Este endpoint permite actualizar solo los campos enviados sin afectar otros atributos de la variante, otras variantes del producto, ni el producto padre. Ideal para integraciones POS que necesitan actualizar precio o stock de una variante específica sin reenviar el producto completo. ### Ejemplo: Actualizar solo el precio { "variant": { "price": 150.00 } } ### Ejemplo: Actualizar precio y stock { "variant": { "price": 150.00, "quantity": 25 } } ### Ejemplo: Actualizar múltiples atributos { "variant": { "price": 200.00, "wholesale_price": 150.00, "quantity": 100, "sku": "NEW-SKU-001", "selling_without_stock": true } } parameters: - name: web_id in: path required: true description: El web_id de la variante a actualizar schema: type: string example: "x0wsCBTIMI" ## Delete Variant - [DELETE /api/v1/variants/{web_id}](https://mercately.redocly.app/apis/product-variants/deletevariant.md): Elimina una variante (ProductVariantCombination) de forma explícita. ### Borrado inteligente Este endpoint elimina solo la variante indicada sin afectar otras variantes del producto ni el producto padre. Comportamiento según integridad: - Si la variante no tiene órdenes asociadas → Hard delete (eliminación permanente) - Si la variante tiene órdenes asociadas → Soft delete (marca deleted_at, preserva historial) Ideal para integraciones POS que necesitan eliminar SKUs descontinuados sin afectar el catálogo completo. ### Notas importantes - El producto padre permanece intacto - Las demás variantes no se ven afectadas - Los ProductVariant y ProductVariantOption no se eliminan - El borrado es explícito, nunca por omisión