Léim ar ábhar
ShopentlyLearn

Tairiscintí · Cruthaigh

Tairiscintí · Cruthaigh. Caithfidh gach cód cead a thabhairt do chomhcheangail. Cuirtear na lascainí i bhfeidhm in ord.

POST/api/v1/discounts/promotions

Fíordheimhniú
Bearer
Ar fáil ó
STANDARD
Ceadanna riachtanacha
discounts.promotions:create

Samplaí cóid

Sampla iarratais

cURL

: "${SHOPENTLY_SHOP_URL:?}"

curl --disable --globoff --fail-with-body --silent --show-error \
  --proto '=https' --connect-timeout 5 --max-time 30 \
  --request POST \
  --header "Authorization: Bearer ${SHOPENTLY_ACCESS_TOKEN:?}" \
  --header 'Idempotency-Key: learn-create_campaign_api_v1_discounts_promotions_post' \
  --header 'Content-Type: application/json' \
  --data-raw '{
  "markets": [
    {
      "currency": "PLN",
      "market_id": "poland",
      "minor_units": 2
    }
  ],
  "name": "Autumn guide offer"
}' \
  --url "${SHOPENTLY_SHOP_URL%/}"/api/v1/discounts/promotions

PHP

<?php
declare(strict_types=1);

$baseUrl = rtrim(getenv('SHOPENTLY_SHOP_URL') ?: '', '/');
$origin = parse_url($baseUrl);
if (!$origin || ($origin['scheme'] ?? '') !== 'https' || empty($origin['host']) ||
    isset($origin['user'], $origin['pass']) || isset($origin['user']) || isset($origin['path']) ||
    isset($origin['query']) || isset($origin['fragment'])) {
    throw new RuntimeException('SHOPENTLY_SHOP_URL must be an HTTPS origin');
}
$credential = getenv('SHOPENTLY_ACCESS_TOKEN') ?: '';
if ($credential === '' || strpbrk($credential, "\r\n") !== false) {
    throw new RuntimeException('Invalid credential');
}
$headers = ['Idempotency-Key: learn-create_campaign_api_v1_discounts_promotions_post', 'Content-Type: application/json'];
$headers[] = 'Authorization: Bearer ' . $credential;
$responseHeaders = [];
$handle = curl_init($baseUrl . '/api/v1/discounts/promotions');
curl_setopt_array($handle, [
    CURLOPT_CUSTOMREQUEST => 'POST',
    CURLOPT_HTTPHEADER => $headers,
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_FOLLOWLOCATION => false,
    CURLOPT_PROTOCOLS => CURLPROTO_HTTPS,
    CURLOPT_SSL_VERIFYPEER => true,
    CURLOPT_SSL_VERIFYHOST => 2,
    CURLOPT_CONNECTTIMEOUT => 5,
    CURLOPT_TIMEOUT => 30,
    CURLOPT_HEADERFUNCTION => static function ($handle, string $line) use (&$responseHeaders): int {
        if (str_contains($line, ':')) {
            [$name, $value] = explode(':', $line, 2);
            $responseHeaders[strtolower(trim($name))] = trim($value);
        }
        return strlen($line);
    },
]);
curl_setopt($handle, CURLOPT_POSTFIELDS, '{
  "markets": [
    {
      "currency": "PLN",
      "market_id": "poland",
      "minor_units": 2
    }
  ],
  "name": "Autumn guide offer"
}');
$raw = curl_exec($handle);
$status = curl_getinfo($handle, CURLINFO_RESPONSE_CODE);
$error = curl_error($handle);
curl_close($handle);
if ($raw === false) {
    throw new RuntimeException('Transport error: ' . $error);
}
if ($status < 200 || $status >= 300) {
    throw new RuntimeException('HTTP ' . $status . '; request_id=' .
        ($responseHeaders['x-request-id'] ?? '') . '; retry_after=' . ($responseHeaders['retry-after'] ?? ''));
}
$result = $raw === '' ? null : json_decode($raw, true, 512, JSON_THROW_ON_ERROR | JSON_BIGINT_AS_STRING);
echo json_encode($result, JSON_THROW_ON_ERROR | JSON_PRETTY_PRINT | JSON_UNESCAPED_UNICODE), PHP_EOL;

Python

from contextlib import ExitStack
import json
import os
from urllib.parse import urlsplit

import requests  # python -m pip install requests

base_url = os.environ["SHOPENTLY_SHOP_URL"].rstrip("/")
origin = urlsplit(base_url)
if origin.scheme != "https" or not origin.hostname or origin.username or origin.password or origin.path or origin.query or origin.fragment:
    raise ValueError("SHOPENTLY_SHOP_URL must be an HTTPS origin")
credential = os.environ['SHOPENTLY_ACCESS_TOKEN']
if not credential or "\r" in credential or "\n" in credential:
    raise ValueError("Invalid credential")
headers = {'Idempotency-Key': 'learn-create_campaign_api_v1_discounts_promotions_post'}
headers["Authorization"] = 'Bearer' + " " + credential
body = '{\n  "markets": [\n    {\n      "currency": "PLN",\n      "market_id": "poland",\n      "minor_units": 2\n    }\n  ],\n  "name": "Autumn guide offer"\n}'
if body is not None:
    headers["Content-Type"] = "application/json"

with ExitStack() as stack:
    session = stack.enter_context(requests.Session())
    files = None
    if False:
        image = stack.enter_context(open(os.environ["SHOPENTLY_IMAGE_FILE"], "rb"))
        if os.fstat(image.fileno()).st_size > 5242880:
            raise ValueError("Image exceeds 5 MiB")
        files = {"file": ("article.png", image, "image/png")}
    response = session.request(
        'POST', base_url + '/api/v1/discounts/promotions', headers=headers,
        data=body.encode("utf-8") if body is not None else None, files=files,
        timeout=(5, 30), allow_redirects=False,
    )
    if not 200 <= response.status_code < 300:
        raise RuntimeError(f"HTTP {response.status_code}; request_id={response.headers.get('X-Request-ID', '')}; retry_after={response.headers.get('Retry-After', '')}")
    if False:
        if response.headers.get("Content-Type") != "image/webp" or len(response.content) > 5242880:
            raise ValueError("Unexpected image response")
        with open(os.environ["SHOPENTLY_OUTPUT_FILE"], "xb") as output:
            output.write(response.content)
    else:
        result = response.json() if response.content else None
        print(json.dumps(result, ensure_ascii=False, indent=2))

Sampla freagra 201

JSON
{
  "data": {
    "deleted": false,
    "id": "example-campaign",
    "version": null
  },
  "meta": {
    "locale": "example",
    "market_code": "example",
    "market_id": "poland",
    "pagination": {
      "has_more": false,
      "limit": 1,
      "next_cursor": null
    },
    "request_id": "learn-example-request"
  }
}

Forléargas

Cuirtear na táirgí agus na catagóirí roghnaithe le chéile. Áirítear táirgí atá sannta go díreach sna catagóirí.

Paraiméadair

Ceanntásca iarratais

Idempotency-KeyTeaghránRiachtanach

Aitheantóir uathúil d'oibríocht loighciúil scríbhneoireachta amháin.

minLength: 1maxLength: 128
Srianta
pattern
"^[A-Za-z0-9][A-Za-z0-9._:-]{0,127}$"
Sampla: "learn-create_campaign_api_v1_discounts_promotions_post"

Corp an iarratais

application/json · Riachtanach

CampaignCreate
audienceTeaghránRoghnach

Custaiméirí

Srianta
enum
["all", "guest", "customer", "selected"]
Réamhshocrú: "all"
benefit_typeTeaghránRoghnach

Leagan den struchtúr sonraí a shainíonn na luachanna ceadaithe.

Srianta
enum
["percentage", "fixed", "none"]
Réamhshocrú: "percentage"
category_idsEagar <Teaghrán> Roghnach

Aitheantóirí catagóirí gaolmhara.

maxItems: 1000
Srianta · Eagar 1
pattern
"^[a-z0-9][a-z0-9_-]{0,62}$"
codeTeaghrán nullRoghnach

Cód cobhsaí atá inléite ag meaisín.

Srianta · Teaghrán 1
pattern
"^[A-Za-z0-9]{6,16}$"
Sampla: "LEARN10"
combine_couponsLuach BooleRoghnach

Cuir le cóid eile

Réamhshocrú: false
combine_promotionsLuach BooleRoghnach

Ceadaigh an cód seo ar tháirgí le tairiscintí uathoibríocha

Réamhshocrú: false
customer_idsEagar <Teaghrán> Roghnach

Eolas custaiméara taifeadta don acmhainn seo.

maxItems: 1000
Srianta · Eagar 1
pattern
"^[a-z0-9][a-z0-9_-]{0,62}$"
ends_atTeaghrán nullRoghnach

Gníomhach go dtí

Teaghrán:format: "date-time"
free_shippingLuach BooleRoghnach

Seachadadh saor in aisce

Réamhshocrú: false
marketsEagar <MarketData-Input > Riachtanach

Margaí atá ar fáil i gcomhthéacs an tsiopa.

minItems: 1maxItems: 1000
Sampla: [{"currency":"PLN","market_id":"poland","minor_units":2}]
minimum_quantitySlánuimhirRoghnach

Íoslíon earraí sa chiseán

minimum: 1maximum: 2147483647
Réamhshocrú: 1
nameTeaghránRiachtanach

Ainm acmhainne sa chomhthéacs cuí.

minLength: 1maxLength: 160
Sampla: "Autumn guide offer"
per_customer_limitSlánuimhirRoghnach

Teorainn úsáide in aghaidh an chustaiméara

minimum: -1maximum: 2147483647
Réamhshocrú: -1
percentageTeaghránRoghnach

Céatadán

maxLength: 19
Srianta
pattern
"^(0|[1-9][0-9]{0,13})(\\.[0-9]{1,4})?$"
Réamhshocrú: "10"
product_idsEagar <Teaghrán> Roghnach

Aitheantóirí táirgí gaolmhara.

maxItems: 1000
Srianta · Eagar 1
pattern
"^[a-z0-9][a-z0-9_-]{0,62}$"
product_scopeTeaghránRoghnach

Táirgí

Srianta
enum
["all", "selected"]
Réamhshocrú: "all"
show_accountLuach BooleRoghnach

I gcuntas an chustaiméara

Réamhshocrú: false
show_cartLuach BooleRoghnach

Sa chiseán

Réamhshocrú: false
show_productLuach BooleRoghnach

Ar leathanaigh táirgí

Réamhshocrú: false
starts_atTeaghrán nullRoghnach

Gníomhach ó

Teaghrán:format: "date-time"
usage_limitSlánuimhirRoghnach

Teorainn úsáide

minimum: -1maximum: 2147483647
Réamhshocrú: -1

Freagraí

Freagra 201

dataMutationData Riachtanach

Sonraí freagra rathúil.

Réimsí · data
deletedLuach BooleRiachtanach

Ar cuireadh an scriosadh i bhfeidhm.

idTeaghránRiachtanach

Aitheantóir acmhainne; coinnigh mar a tugadh ar ais é.

versionSlánuimhir nullRiachtanach

Leagan acmhainne a úsáidtear le haghaidh rialú comhreatha.

metaContextPageMeta ContextMeta PageMeta RequestMeta Riachtanach

Meiteashonraí an fhreagra.

Réimsí · meta

ContextPageMeta

localeTeaghránRiachtanach

Teanga roghnaithe don iarratas seo.

market_codeTeaghránRiachtanach

Cód margaidh a thugann an críochphointe comhthéacs.

market_idTeaghránRiachtanach

Aitheantóir margaidh a thugann an críochphointe comhthéacs.

paginationPagination Riachtanach

Meiteashonraí leathanaithe le cúrsóir.

request_idTeaghránRiachtanach

Aitheantóir iarratais; i meiteashonraí freagra aithníonn sé an t-iarratas HTTP.

minLength: 1maxLength: 100

ContextMeta

localeTeaghránRiachtanach

Teanga roghnaithe don iarratas seo.

market_codeTeaghránRiachtanach

Cód margaidh a thugann an críochphointe comhthéacs.

market_idTeaghránRiachtanach

Aitheantóir margaidh a thugann an críochphointe comhthéacs.

request_idTeaghránRiachtanach

Aitheantóir iarratais; i meiteashonraí freagra aithníonn sé an t-iarratas HTTP.

minLength: 1maxLength: 100

PageMeta

paginationPagination Riachtanach

Meiteashonraí leathanaithe le cúrsóir.

request_idTeaghránRiachtanach

Aitheantóir iarratais; i meiteashonraí freagra aithníonn sé an t-iarratas HTTP.

minLength: 1maxLength: 100

RequestMeta

request_idTeaghránRiachtanach

Aitheantóir iarratais; i meiteashonraí freagra aithníonn sé an t-iarratas HTTP.

minLength: 1maxLength: 100
Sampla freagra

Stádas HTTP

201
Acmhainn cruthaithe Scéim
400
Iarratas neamhbhailí
401
Fíordheimhniú riachtanach
403
Cead diúltaithe
404
Acmhainn gan aimsiú
409
Coinbhleacht leagain
422
Theip ar bhailíochtú
429
Teorainn iarratas sáraithe
Stádais HTTP eile (7)
405
Modh neamhcheadaithe
413
Iarratas rómhór
415
Formáid gan tacaíocht
500
Earráid freastalaí
502
Earráid gheata API
503
Seirbhís gan fáil
504
Teorainn ama sáraithe

Catalóg earráidí: ErrorResponse

Ceanntásca

201

LocationTeaghránRoghnach

URL coibhneasta na hacmhainne cruthaithe.

401

WWW-AuthenticateTeaghránRoghnach

An scéim fíordheimhnithe a éilíonn an freastalaí.

405

AllowTeaghránRoghnach

Modhanna HTTP a thacaíonn an acmhainn seo leo.

429, 503

Retry-AfterSlánuimhirRoghnach

An mhoill íosta roimh atriail, i soicindí.

minimum: 0