Preisstrategie einer Variante aktualisieren
Weist einer überwachten Variante eine Preisstrategie und optional eine Vorlage zu oder entfernt diese. Die Felder für den Markt für Preisänderungen (priceChangeSource + priceChangeCountry, beide oder keiner) gelten nur für nicht gebundene Varianten. Wenn eine Vorlage gebunden ist (pricingStrategyTemplateId gesetzt), werden sie ignoriert und gelöscht: Die Variante verwendet den Markt der Vorlage. Werden beide weggelassen, bleibt der Markt der Variante unverändert.
curl --request PATCH \
--url https://app.pricepirate.com/api/v1/tracked-variants/pricing-strategy \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--header 'Idempotency-Key: <idempotency-key>' \
--data '
{
"variantId": "gid://shopify/ProductVariant/1001",
"pricingStrategyId": "strategy-lowest-price",
"pricingStrategyArgs": {
"marginPercent": 8
},
"pricingStrategyTemplateId": null,
"priceChangeSource": "IDEALO",
"priceChangeCountry": "DE"
}
'import requests
url = "https://app.pricepirate.com/api/v1/tracked-variants/pricing-strategy"
payload = {
"variantId": "gid://shopify/ProductVariant/1001",
"pricingStrategyId": "strategy-lowest-price",
"pricingStrategyArgs": { "marginPercent": 8 },
"pricingStrategyTemplateId": None,
"priceChangeSource": "IDEALO",
"priceChangeCountry": "DE"
}
headers = {
"Idempotency-Key": "<idempotency-key>",
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.patch(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'PATCH',
headers: {
'Idempotency-Key': '<idempotency-key>',
Authorization: 'Bearer <token>',
'Content-Type': 'application/json'
},
body: JSON.stringify({
variantId: 'gid://shopify/ProductVariant/1001',
pricingStrategyId: 'strategy-lowest-price',
pricingStrategyArgs: {marginPercent: 8},
pricingStrategyTemplateId: null,
priceChangeSource: 'IDEALO',
priceChangeCountry: 'DE'
})
};
fetch('https://app.pricepirate.com/api/v1/tracked-variants/pricing-strategy', 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://app.pricepirate.com/api/v1/tracked-variants/pricing-strategy",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "PATCH",
CURLOPT_POSTFIELDS => json_encode([
'variantId' => 'gid://shopify/ProductVariant/1001',
'pricingStrategyId' => 'strategy-lowest-price',
'pricingStrategyArgs' => [
'marginPercent' => 8
],
'pricingStrategyTemplateId' => null,
'priceChangeSource' => 'IDEALO',
'priceChangeCountry' => 'DE'
]),
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://app.pricepirate.com/api/v1/tracked-variants/pricing-strategy"
payload := strings.NewReader("{\n \"variantId\": \"gid://shopify/ProductVariant/1001\",\n \"pricingStrategyId\": \"strategy-lowest-price\",\n \"pricingStrategyArgs\": {\n \"marginPercent\": 8\n },\n \"pricingStrategyTemplateId\": null,\n \"priceChangeSource\": \"IDEALO\",\n \"priceChangeCountry\": \"DE\"\n}")
req, _ := http.NewRequest("PATCH", 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.patch("https://app.pricepirate.com/api/v1/tracked-variants/pricing-strategy")
.header("Idempotency-Key", "<idempotency-key>")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"variantId\": \"gid://shopify/ProductVariant/1001\",\n \"pricingStrategyId\": \"strategy-lowest-price\",\n \"pricingStrategyArgs\": {\n \"marginPercent\": 8\n },\n \"pricingStrategyTemplateId\": null,\n \"priceChangeSource\": \"IDEALO\",\n \"priceChangeCountry\": \"DE\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://app.pricepirate.com/api/v1/tracked-variants/pricing-strategy")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Patch.new(url)
request["Idempotency-Key"] = '<idempotency-key>'
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"variantId\": \"gid://shopify/ProductVariant/1001\",\n \"pricingStrategyId\": \"strategy-lowest-price\",\n \"pricingStrategyArgs\": {\n \"marginPercent\": 8\n },\n \"pricingStrategyTemplateId\": null,\n \"priceChangeSource\": \"IDEALO\",\n \"priceChangeCountry\": \"DE\"\n}"
response = http.request(request)
puts response.read_body{
"success": true,
"variantId": "gid://shopify/ProductVariant/1001",
"pricingStrategyId": "strategy-lowest-price",
"pricingStrategyArgs": {
"marginPercent": 8
}
}{
"error": {
"code": "BAD_REQUEST",
"message": "JSON body must be an object",
"details": "Validation details may be included for invalid inputs.",
"requestId": "1b11c2c2-7c6f-44d9-9980-02a77681b91f"
}
}{
"error": {
"code": "UNAUTHORIZED",
"message": "Missing or invalid Authorization header",
"requestId": "1b11c2c2-7c6f-44d9-9980-02a77681b91f"
}
}{
"error": {
"code": "FORBIDDEN",
"message": "Forbidden",
"requestId": "1b11c2c2-7c6f-44d9-9980-02a77681b91f"
}
}{
"error": {
"code": "NOT_FOUND",
"message": "Resource not found",
"requestId": "1b11c2c2-7c6f-44d9-9980-02a77681b91f"
}
}{
"error": {
"code": "idempotency_key_reuse",
"message": "Idempotency-Key was already used for a different request",
"requestId": "1b11c2c2-7c6f-44d9-9980-02a77681b91f"
}
}{
"error": {
"code": "TOO_MANY_REQUESTS",
"message": "Rate limit exceeded",
"requestId": "1b11c2c2-7c6f-44d9-9980-02a77681b91f"
}
}{
"error": {
"code": "INTERNAL_SERVER_ERROR",
"message": "Internal server error",
"requestId": "1b11c2c2-7c6f-44d9-9980-02a77681b91f"
}
}{
"error": {
"code": "INTERNAL_SERVER_ERROR",
"message": "Internal server error",
"requestId": "1b11c2c2-7c6f-44d9-9980-02a77681b91f"
}
}Autorisierungen
Public-API-Token, das als Authorization: Bearer übergeben wird.
Header
Erforderlich für Schreibanfragen. Verwenden Sie denselben Schlüssel nur erneut, wenn Sie exakt dieselbe Anfrage wiederholen.
Body
Auswahl der Preisstrategie für eine überwachte Variante.
IDEALO, GOOGLE_SHOPPING, KLARNA, PRICERUNNER, ALLEGRO, AMAZON AE, AT, AU, BE, BG, BR, CA, CH, CN, CZ, DE, DK, ES, FI, FR, GR, HR, HU, IE, IN, IT, JP, NL, NO, PL, PT, RO, MX, SE, SK, UK, US Antwort
Erfolgreiche Antwort.
War diese Seite hilfreich?
curl --request PATCH \
--url https://app.pricepirate.com/api/v1/tracked-variants/pricing-strategy \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--header 'Idempotency-Key: <idempotency-key>' \
--data '
{
"variantId": "gid://shopify/ProductVariant/1001",
"pricingStrategyId": "strategy-lowest-price",
"pricingStrategyArgs": {
"marginPercent": 8
},
"pricingStrategyTemplateId": null,
"priceChangeSource": "IDEALO",
"priceChangeCountry": "DE"
}
'import requests
url = "https://app.pricepirate.com/api/v1/tracked-variants/pricing-strategy"
payload = {
"variantId": "gid://shopify/ProductVariant/1001",
"pricingStrategyId": "strategy-lowest-price",
"pricingStrategyArgs": { "marginPercent": 8 },
"pricingStrategyTemplateId": None,
"priceChangeSource": "IDEALO",
"priceChangeCountry": "DE"
}
headers = {
"Idempotency-Key": "<idempotency-key>",
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.patch(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'PATCH',
headers: {
'Idempotency-Key': '<idempotency-key>',
Authorization: 'Bearer <token>',
'Content-Type': 'application/json'
},
body: JSON.stringify({
variantId: 'gid://shopify/ProductVariant/1001',
pricingStrategyId: 'strategy-lowest-price',
pricingStrategyArgs: {marginPercent: 8},
pricingStrategyTemplateId: null,
priceChangeSource: 'IDEALO',
priceChangeCountry: 'DE'
})
};
fetch('https://app.pricepirate.com/api/v1/tracked-variants/pricing-strategy', 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://app.pricepirate.com/api/v1/tracked-variants/pricing-strategy",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "PATCH",
CURLOPT_POSTFIELDS => json_encode([
'variantId' => 'gid://shopify/ProductVariant/1001',
'pricingStrategyId' => 'strategy-lowest-price',
'pricingStrategyArgs' => [
'marginPercent' => 8
],
'pricingStrategyTemplateId' => null,
'priceChangeSource' => 'IDEALO',
'priceChangeCountry' => 'DE'
]),
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://app.pricepirate.com/api/v1/tracked-variants/pricing-strategy"
payload := strings.NewReader("{\n \"variantId\": \"gid://shopify/ProductVariant/1001\",\n \"pricingStrategyId\": \"strategy-lowest-price\",\n \"pricingStrategyArgs\": {\n \"marginPercent\": 8\n },\n \"pricingStrategyTemplateId\": null,\n \"priceChangeSource\": \"IDEALO\",\n \"priceChangeCountry\": \"DE\"\n}")
req, _ := http.NewRequest("PATCH", 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.patch("https://app.pricepirate.com/api/v1/tracked-variants/pricing-strategy")
.header("Idempotency-Key", "<idempotency-key>")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"variantId\": \"gid://shopify/ProductVariant/1001\",\n \"pricingStrategyId\": \"strategy-lowest-price\",\n \"pricingStrategyArgs\": {\n \"marginPercent\": 8\n },\n \"pricingStrategyTemplateId\": null,\n \"priceChangeSource\": \"IDEALO\",\n \"priceChangeCountry\": \"DE\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://app.pricepirate.com/api/v1/tracked-variants/pricing-strategy")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Patch.new(url)
request["Idempotency-Key"] = '<idempotency-key>'
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"variantId\": \"gid://shopify/ProductVariant/1001\",\n \"pricingStrategyId\": \"strategy-lowest-price\",\n \"pricingStrategyArgs\": {\n \"marginPercent\": 8\n },\n \"pricingStrategyTemplateId\": null,\n \"priceChangeSource\": \"IDEALO\",\n \"priceChangeCountry\": \"DE\"\n}"
response = http.request(request)
puts response.read_body{
"success": true,
"variantId": "gid://shopify/ProductVariant/1001",
"pricingStrategyId": "strategy-lowest-price",
"pricingStrategyArgs": {
"marginPercent": 8
}
}{
"error": {
"code": "BAD_REQUEST",
"message": "JSON body must be an object",
"details": "Validation details may be included for invalid inputs.",
"requestId": "1b11c2c2-7c6f-44d9-9980-02a77681b91f"
}
}{
"error": {
"code": "UNAUTHORIZED",
"message": "Missing or invalid Authorization header",
"requestId": "1b11c2c2-7c6f-44d9-9980-02a77681b91f"
}
}{
"error": {
"code": "FORBIDDEN",
"message": "Forbidden",
"requestId": "1b11c2c2-7c6f-44d9-9980-02a77681b91f"
}
}{
"error": {
"code": "NOT_FOUND",
"message": "Resource not found",
"requestId": "1b11c2c2-7c6f-44d9-9980-02a77681b91f"
}
}{
"error": {
"code": "idempotency_key_reuse",
"message": "Idempotency-Key was already used for a different request",
"requestId": "1b11c2c2-7c6f-44d9-9980-02a77681b91f"
}
}{
"error": {
"code": "TOO_MANY_REQUESTS",
"message": "Rate limit exceeded",
"requestId": "1b11c2c2-7c6f-44d9-9980-02a77681b91f"
}
}{
"error": {
"code": "INTERNAL_SERVER_ERROR",
"message": "Internal server error",
"requestId": "1b11c2c2-7c6f-44d9-9980-02a77681b91f"
}
}{
"error": {
"code": "INTERNAL_SERVER_ERROR",
"message": "Internal server error",
"requestId": "1b11c2c2-7c6f-44d9-9980-02a77681b91f"
}
}