La Pyme SDK
import { Lapyme } from "lapyme";
const lapyme = new Lapyme({
bearerAuth: process.env["LAPYME_API_KEY"] ?? "",
});
const adjustment = await lapyme.productBulkAdjustments.create({
idempotencyKey: crypto.randomUUID(),
body: {
target: "price",
operationType: "increase",
adjustmentType: "percentage",
adjustmentValue: 10,
selection: {
type: "specific",
ids: ["9c692e8b-0f9a-4f7c-8b99-061a2eb188ae"],
},
},
});curl --request POST \
--url https://api.lapyme.com.ar/api/v1/products/bulk-adjustments \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--header 'Idempotency-Key: <idempotency-key>' \
--data '
{
"target": "cost",
"operation_type": "increase",
"adjustment_type": "percentage",
"adjustment_value": 5,
"default_supplier_id": "550e8400-e29b-41d4-a716-446655440201",
"selection": {
"type": "all",
"excluded_ids": []
}
}
'import requests
url = "https://api.lapyme.com.ar/api/v1/products/bulk-adjustments"
payload = {
"target": "cost",
"operation_type": "increase",
"adjustment_type": "percentage",
"adjustment_value": 5,
"default_supplier_id": "550e8400-e29b-41d4-a716-446655440201",
"selection": {
"type": "all",
"excluded_ids": []
}
}
headers = {
"Idempotency-Key": "<idempotency-key>",
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {
'Idempotency-Key': '<idempotency-key>',
Authorization: 'Bearer <token>',
'Content-Type': 'application/json'
},
body: JSON.stringify({
target: 'cost',
operation_type: 'increase',
adjustment_type: 'percentage',
adjustment_value: 5,
default_supplier_id: '550e8400-e29b-41d4-a716-446655440201',
selection: {type: 'all', excluded_ids: []}
})
};
fetch('https://api.lapyme.com.ar/api/v1/products/bulk-adjustments', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.lapyme.com.ar/api/v1/products/bulk-adjustments",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'target' => 'cost',
'operation_type' => 'increase',
'adjustment_type' => 'percentage',
'adjustment_value' => 5,
'default_supplier_id' => '550e8400-e29b-41d4-a716-446655440201',
'selection' => [
'type' => 'all',
'excluded_ids' => [
]
]
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: application/json",
"Idempotency-Key: <idempotency-key>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.lapyme.com.ar/api/v1/products/bulk-adjustments"
payload := strings.NewReader("{\n \"target\": \"cost\",\n \"operation_type\": \"increase\",\n \"adjustment_type\": \"percentage\",\n \"adjustment_value\": 5,\n \"default_supplier_id\": \"550e8400-e29b-41d4-a716-446655440201\",\n \"selection\": {\n \"type\": \"all\",\n \"excluded_ids\": []\n }\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Idempotency-Key", "<idempotency-key>")
req.Header.Add("Authorization", "Bearer <token>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://api.lapyme.com.ar/api/v1/products/bulk-adjustments")
.header("Idempotency-Key", "<idempotency-key>")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"target\": \"cost\",\n \"operation_type\": \"increase\",\n \"adjustment_type\": \"percentage\",\n \"adjustment_value\": 5,\n \"default_supplier_id\": \"550e8400-e29b-41d4-a716-446655440201\",\n \"selection\": {\n \"type\": \"all\",\n \"excluded_ids\": []\n }\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.lapyme.com.ar/api/v1/products/bulk-adjustments")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Idempotency-Key"] = '<idempotency-key>'
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"target\": \"cost\",\n \"operation_type\": \"increase\",\n \"adjustment_type\": \"percentage\",\n \"adjustment_value\": 5,\n \"default_supplier_id\": \"550e8400-e29b-41d4-a716-446655440201\",\n \"selection\": {\n \"type\": \"all\",\n \"excluded_ids\": []\n }\n}"
response = http.request(request)
puts response.read_body{
"request_id": "<string>",
"data": {
"product_bulk_adjustment": {
"object": "<string>",
"updated": 1,
"skipped": 1
}
},
"warnings": [
"<unknown>"
]
}{
"request_id": "req_product_bulk_adjust_1",
"error": {
"code": "INVALID_REQUEST",
"message": "Invalid request for bulk adjusting products",
"retryable": false,
"type": "invalid_request_error",
"details": []
}
}{
"request_id": "req_product_bulk_adjust_1",
"error": {
"code": "AUTHENTICATION_REQUIRED",
"message": "API key is required in the Authorization header",
"retryable": false,
"type": "invalid_request_error",
"details": []
}
}{
"request_id": "req_product_bulk_adjust_1",
"error": {
"code": "FORBIDDEN",
"message": "Your API key does not have permission for this operation",
"retryable": false,
"type": "invalid_request_error",
"details": []
}
}{
"request_id": "req_product_bulk_adjust_1",
"error": {
"code": "IDEMPOTENCY_CONFLICT",
"message": "The same Idempotency-Key was already used with a different bulk adjustment.",
"retryable": false,
"type": "invalid_request_error",
"details": []
}
}{
"request_id": "req_rate_limit_1",
"error": {
"type": "rate_limit_error",
"code": "RATE_LIMITED",
"message": "The organization request limit was reached. Try again later.",
"retryable": true,
"details": []
}
}{
"request_id": "req_product_bulk_adjust_1",
"error": {
"code": "INTERNAL_ERROR",
"message": "Could not bulk adjust products",
"retryable": false,
"type": "invalid_request_error",
"details": []
}
}Actualizar productos masivamente
Aplica ajustes masivos de costo o precio base sobre una selección de productos.
POST
/
api
/
v1
/
products
/
bulk-adjustments
La Pyme SDK
import { Lapyme } from "lapyme";
const lapyme = new Lapyme({
bearerAuth: process.env["LAPYME_API_KEY"] ?? "",
});
const adjustment = await lapyme.productBulkAdjustments.create({
idempotencyKey: crypto.randomUUID(),
body: {
target: "price",
operationType: "increase",
adjustmentType: "percentage",
adjustmentValue: 10,
selection: {
type: "specific",
ids: ["9c692e8b-0f9a-4f7c-8b99-061a2eb188ae"],
},
},
});curl --request POST \
--url https://api.lapyme.com.ar/api/v1/products/bulk-adjustments \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--header 'Idempotency-Key: <idempotency-key>' \
--data '
{
"target": "cost",
"operation_type": "increase",
"adjustment_type": "percentage",
"adjustment_value": 5,
"default_supplier_id": "550e8400-e29b-41d4-a716-446655440201",
"selection": {
"type": "all",
"excluded_ids": []
}
}
'import requests
url = "https://api.lapyme.com.ar/api/v1/products/bulk-adjustments"
payload = {
"target": "cost",
"operation_type": "increase",
"adjustment_type": "percentage",
"adjustment_value": 5,
"default_supplier_id": "550e8400-e29b-41d4-a716-446655440201",
"selection": {
"type": "all",
"excluded_ids": []
}
}
headers = {
"Idempotency-Key": "<idempotency-key>",
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {
'Idempotency-Key': '<idempotency-key>',
Authorization: 'Bearer <token>',
'Content-Type': 'application/json'
},
body: JSON.stringify({
target: 'cost',
operation_type: 'increase',
adjustment_type: 'percentage',
adjustment_value: 5,
default_supplier_id: '550e8400-e29b-41d4-a716-446655440201',
selection: {type: 'all', excluded_ids: []}
})
};
fetch('https://api.lapyme.com.ar/api/v1/products/bulk-adjustments', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.lapyme.com.ar/api/v1/products/bulk-adjustments",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'target' => 'cost',
'operation_type' => 'increase',
'adjustment_type' => 'percentage',
'adjustment_value' => 5,
'default_supplier_id' => '550e8400-e29b-41d4-a716-446655440201',
'selection' => [
'type' => 'all',
'excluded_ids' => [
]
]
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: application/json",
"Idempotency-Key: <idempotency-key>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.lapyme.com.ar/api/v1/products/bulk-adjustments"
payload := strings.NewReader("{\n \"target\": \"cost\",\n \"operation_type\": \"increase\",\n \"adjustment_type\": \"percentage\",\n \"adjustment_value\": 5,\n \"default_supplier_id\": \"550e8400-e29b-41d4-a716-446655440201\",\n \"selection\": {\n \"type\": \"all\",\n \"excluded_ids\": []\n }\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Idempotency-Key", "<idempotency-key>")
req.Header.Add("Authorization", "Bearer <token>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://api.lapyme.com.ar/api/v1/products/bulk-adjustments")
.header("Idempotency-Key", "<idempotency-key>")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"target\": \"cost\",\n \"operation_type\": \"increase\",\n \"adjustment_type\": \"percentage\",\n \"adjustment_value\": 5,\n \"default_supplier_id\": \"550e8400-e29b-41d4-a716-446655440201\",\n \"selection\": {\n \"type\": \"all\",\n \"excluded_ids\": []\n }\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.lapyme.com.ar/api/v1/products/bulk-adjustments")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Idempotency-Key"] = '<idempotency-key>'
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"target\": \"cost\",\n \"operation_type\": \"increase\",\n \"adjustment_type\": \"percentage\",\n \"adjustment_value\": 5,\n \"default_supplier_id\": \"550e8400-e29b-41d4-a716-446655440201\",\n \"selection\": {\n \"type\": \"all\",\n \"excluded_ids\": []\n }\n}"
response = http.request(request)
puts response.read_body{
"request_id": "<string>",
"data": {
"product_bulk_adjustment": {
"object": "<string>",
"updated": 1,
"skipped": 1
}
},
"warnings": [
"<unknown>"
]
}{
"request_id": "req_product_bulk_adjust_1",
"error": {
"code": "INVALID_REQUEST",
"message": "Invalid request for bulk adjusting products",
"retryable": false,
"type": "invalid_request_error",
"details": []
}
}{
"request_id": "req_product_bulk_adjust_1",
"error": {
"code": "AUTHENTICATION_REQUIRED",
"message": "API key is required in the Authorization header",
"retryable": false,
"type": "invalid_request_error",
"details": []
}
}{
"request_id": "req_product_bulk_adjust_1",
"error": {
"code": "FORBIDDEN",
"message": "Your API key does not have permission for this operation",
"retryable": false,
"type": "invalid_request_error",
"details": []
}
}{
"request_id": "req_product_bulk_adjust_1",
"error": {
"code": "IDEMPOTENCY_CONFLICT",
"message": "The same Idempotency-Key was already used with a different bulk adjustment.",
"retryable": false,
"type": "invalid_request_error",
"details": []
}
}{
"request_id": "req_rate_limit_1",
"error": {
"type": "rate_limit_error",
"code": "RATE_LIMITED",
"message": "The organization request limit was reached. Try again later.",
"retryable": true,
"details": []
}
}{
"request_id": "req_product_bulk_adjust_1",
"error": {
"code": "INTERNAL_ERROR",
"message": "Could not bulk adjust products",
"retryable": false,
"type": "invalid_request_error",
"details": []
}
}Authorizations
Incluí tu API key en el header Authorization con el prefijo Bearer.
Headers
Clave única para evitar aplicar dos veces el mismo ajuste masivo.
ID opcional de la solicitud para trazabilidad. Si se omite, el servidor genera uno.
Body
application/json
Available options:
cost, price Available options:
increase, decrease Available options:
percentage, fixed - Option 1
- Option 2
Show child attributes
Show child attributes
Available options:
product, service, combo, kit Was this page helpful?
⌘I

