diff --git a/openapi/openapi.yaml b/openapi/openapi.yaml index f158120..6ab40cd 100644 --- a/openapi/openapi.yaml +++ b/openapi/openapi.yaml @@ -2,7 +2,7 @@ openapi: 3.1.0 info: title: 'Shoptet API' version: 1.0.0 - description: "Created in cooperation with the Ministry of Industry and Trade of the Czech Republic within the \"The Country for the Future\" programme.\n\n\nThis documentation provides information about the interface for developers who would like to gain access to Shoptet\ne-shops. For more information about Shoptet, see https://www.shoptet.cz/.\n\nThe API is available in two access modes:\n\n- for \"Shoptet partner” developers who create the interconnection with the services and extend the Shoptet system's\n functions for public usage. For more information about API and conditions, under which\n it can be used, see https://developers.shoptet.com/addons/.\n- direct private access to eshop data for eshop owner - available only for [Premium Members](https://www.shoptetpremium.cz/).\n See https://developers.shoptet.com/premium for more information about API access.\n# Basic principles\n\n## How to call API\n\nAPI supports communication in JSON format. The URL for calling API requests is https://api.myshoptet.com. The API calls\n(endpoints and message formats) are common for private as well as addons access, it however uses different authentication\nand authorization principles.\n\n### For Addons\n\nAPI is made to create the supplements for the Shoptet system and uses OAuth2 authorization principles.\nTo access the API it is necessary to implement a web service at your side, which will communicate with our OAuth server.\n\nIn your e-shop administration, which you are using to work with our API, you must search in the `API Partner` section for the `Access to API` tab.\nHere, you will find your clientID and addresses, from where you can call our OAuth server.\n\nThe work with API begins with e-shop addon installation. (The installation process can be tested in the addon detail in the `Users` section, where you can cause the installation for your e-shop.)\nIn your addon detail, in the `Settings` section, enter URL to gain a OAuth code. The URL must be linked to your server, where the script is prepared, which is able to gain an OAuth access token.\nAt this address, you will receive the HTTP request with a GET parameter `code`, when installing the addon, with unique value (a 255 character long string).\nThe `code` provided only has short-term validity and can be used only once. With this code, request our OAuth server to provide an `OAuth access token`.\nSuch a request shall follow within the same script that received the `code`.\nDo not put off gaining the OAuth access token for a later time, and do not reply to our request with a `200 OK` status, until you gain the OAuth access token.\nThe address for you to call, and an example of implementation, can be found in e-shop administration in the `Access to API` section.\n\nAs a response you will obtain a JSON with your OAuth access token. Save this token securely. Never send this token to the client computer, and use it only\nfor communication between the servers and for gaining the temporary token for access to API.\n\nIf you have successfully received an OAuth access token, your script must end with the HTTP status code “200”.\n\nNow you have your OAuth access token, which links your addon with a specific e-shop, perhaps you would like to communicate with the e-shop via API.\n\nFrom your server, call `https:///action/ApiOAuthServer/getAccessToken` address with HTTP header `Authorization: Bearer `.\nAs the reply, you will receive a JSON containing an API access token value and the token expiration time value. An example of calling can be found in e-shop administration in the `Access to API` section.\nIt is possible to request a maximum of 5 valid tokens.\n\nThe API access token will enable you to call an individual URL of our API, for example `https://api.myshoptet.com/api/eshop`. Send the API access token in each request in the HTTP header`Shoptet-Access-Token`.\nYou can have several valid API access tokens available at any one time. Should the validity of the API access token expire, you will receive a HTTP status code 401 and message about token expiration.\n\n```\n{\n \"data\": 'null',\n \"errors\": [\n {\n \"errorCode\": \"expired-token\",\n \"message\": \"Token is expired. Please ask for new one.\",\n \"instance\": \"unknown\"\n }\n ]\n}\n```\n\nIf your token does not have the access right for a specific endpoint, you will obtain a reply with HTTP status code 403 Forbidden.\n\n```\n{\n \"data\": 'null',\n \"errors\": [\n {\n \"errorCode\": \"invalid-token-no-rights\",\n \"message\": \"Your access token \\\"afd..123\\\" has no defined rights for this resource.\",\n \"instance\": \"access-token\"\n }\n ]\n}\n```\n\n### For private API access (Premium)\n\nYou can create API access tokens simply in the eshop administration. Send them in the request header `Shoptet-Private-API-Token`.\nYou can automatically access all API endpoints.\n\n## Rate limiting\n\nRate limiting is only at the level of server overload protection (DDoS), whereas the quantity of queries or total volume of data are unlimited.\nThese are therefore the limits of the maximum number of coincident active connections. A maximum of 50 from a single IP address, and a maximum of\n3 connections for a single token. If the limit is exceeded, the HTTP code 429 is returned. See also Nginx configuration:\n\n```\n limit_conn per_ip 50;\n limit_conn per_token 3;\n limit_conn_status 429;\n```\n\nSome URLs, for example for bulk operations, can have their own specific limits, which are mentioned in this documentation.\n\n## Locks\n\nWrite endpoints (DELETE, PATCH, POST, PUT methods) can take longer and may be prone to two concurrent matching requests.\nTo avoid problems with retrying identical write requests, we have added the locking function of these requests to the application.\nIf you execute the same request two times in quick succession, the second request receives error response with a 423 code.\nThe lock is only valid for a specific called URL, for the duration of the request processing, but no longer than 5 seconds.\n\n## API versioning\n\nCurrent version of API: v1.0\n\nThe client must send a `Content-Type` header with value of `application/vnd.shoptet.v1.0`,\nwhere `v1.0` is the API version supported by the client. If there is any change in the API, then we are trying to make it\nreverse compatible, therefore it is not necessary to regularly update your connection after each change in our interface.\n\nThe version is the same for all endpoints described here.\n\n## Server response format\n\nAll JSON responses from the server have the same format, as a base.\nIf any of the sections is not present in the response, a `null` value is then received.\n\nExample of call for addons:\n\n```\ncurl --include \\\n -H 'Shoptet-Access-Token: 123456-a-123-XXXXXXXXXXXXXXXXXXXXXXXXX' \\\n -H 'Content-Type: application/vnd.shoptet.v1.0' \\\n 'https://api.myshoptet.com/api/eshop'\n```\n\nExample of call for private API access:\n\n```\ncurl --include \\\n -H 'Shoptet-Private-API-Token: 123456-a-123-XXXXXXXXXXXXXXXXXXXXXXXXX' \\\n -H 'Content-Type: application/vnd.shoptet.v1.0' \\\n 'https://api.myshoptet.com/api/eshop'\n```\n\nExample of response:\n\n```\nHTTP/2 200\ndate: Fri, 13 Jul 2018 15:57:29 GMT\ncontent-type: application/vnd.shoptet.v1.0+json; charset=utf-8\n\n{\n \"data\": {\n \"contactInformation\": {\n \"eshopName\": \"www.domena-eshopu.cz\",\n \"url\": \"https:\\/\\/www.domena-eshopu.cz\\/\",\n \"companyId\": \"28935675\",\n ...\n }\n ...\n },\n \"errors\": 'null'\n}\n```\n\nThe basic structure of the response in the event of an error is as follows:\n\n```\n{\n \"data\": 'null',\n \"errors\": [\n {\n \"errorCode\": \"missing-access-token\",\n \"message\": \"Missing access token. Please add `Shoptet-Access-Token` header to your request.\",\n \"instance\": \"unknown\"\n }\n ]\n}\n```\n\nMost of the endpoints are synchronous, i.e. your answer is provided immediately and contains the data requested. There\nare however some endpoints, where either the request or the response processing takes longer time. These are implemented as\n[Asynchronous requests](https://developers.shoptet.com/asynchronous-requests/). Your request will be queued and you\nreceive only job identification in the response. You will be notified using a\n[webhook](https://developers.shoptet.com/api/documentation/webhooks/) when the job is completed and your results\ndownloadable. Be aware, that registration of webhook `job:finished` is required to be able to run asynchronous requests.\nIf webhook is not registered, you will receive an error response with HTTP status code 403 and job won't be queued.\nWebhook `job:finished` is also emitted when the job is failed so there is need to check the [Detail of job](/tag/Job-endpoints#operation/Job%20detail) to get the result of the job. If an error occurs during an asynchronous request, the job is automatically marked as failed 3 hours after its creation, and in this case, the `job:finished` webhook is not emitted.\n\nSome attributes may be added to the new API version, or the sequence of attributes can be changed.\nYour software, therefore, shall not rely on either of these.\nIf some attributes are renamed or removed, you will be informed in an additional\nheader - see also [API versioning](/#section/Basic-principles-of-working-with-API/API-versioning) and [Deprecated header + Sunset](/#section/Basic-principles-of-working-with-API/Deprecated-header-+-Sunset).\n\n## Deprecated header + Sunset\n\nIf you are calling some endpoint in a version that will not be supported in the future, you will receive a response with the header\n`X-Shoptet-Deprecated`. If you detect this header within the response and its presence is logged,\nyou should be aware of the support termination for a specific endpoint in advance and thus have enough time for correction.\n\nFurthermore, you shall also receive the response with a`Sunset` header with the date when the support for this endpoint is to be terminated.\n\n## Status codes\n\nWhen processing the response, the client shall first detect, what response status code was received.\n\nFor GET requests for responses with 200 code, it is not necessary to explore the `errors` part of the response.\nFor PATCH/PUT requests, which can process more records at the same time and some records\nare not processed successfully, these end with a 200 response code and the errors key contains info\n on skipped rows.\nThe unknown record is returned with a 404 code, etc. These responses have the error field filled in, where you can\nfind detailed info about the error.\n\nThe following errors might be expected:\n\n* 400 - Some of the validations on item level have failed. There is no reason to retry, it will fail always.\n\n* 401 - Invalid token or the token has expired (for addons access tokens). You have to ask for another one.\n\n* 403 - Forbidden. The token has no rights to the endpoint called. The endpoints must be allowed for an addon\n and the eshop must have approved them. Valid for addons access tokens, private tokens can always access all\n endpoints. Can be also returned when required module for request is missing.\n* 404 - Either the endpoint is wrong; or most commonly, an entity identifier, which is part of the URL, does\n not exist.\n* 409 - Conflict - the action could not be completed for some consistency rules, such as duplicate data\n or relation, which would be broken.\n* 413 - Payload too large - update requests can sometimes contain multiple entities to be amended. There is\n however a limit (varying for each request), how many can be specified within one request. If you breach the\n limit, you will get this error and nothing will be updated.\n* 422 - Unprocessable entity - we were not able to parse the request - it does not match the expected format.\n Something is wrong with the request as whole, it might not be a correct JSON or it does not match the expected\n JSON schema. There is no reason to retry, it will always fail.\n* 423 - Locked - for update and some read request we apply locks, usually on an URL level, which should avoid\n consistency problems possibly occuring from parallel updates. See [chapter about locks](/#section/Basic-principles-of-working-with-API/Locks). Retry later,\n try to avoid parallel update requests.\n* 500 - General server error. Yes, this might happen to our software, too. Most commonly this is a temporary\n database issue and it might (but might not), work a few minutes later. We monitor all such errors and we\n try to analyze and fix them.\n* 503 - System maintenance. Most commonly we move a database to another database cluster or a database migration is\n pending and it will be available in a few minutes. Please try later.\n\n## Paging\n\nSome endpoints can return larger quantity of records. Such endpoints do not return the entire result, but support pagination of results.\nYou can page using `page` (int) and `itemsPerPage` (int) parameters. The first page has number 1. If you require a different\nquantity of items per page, use the `itemsPerPage` parameter. CAUTION: the number of items per page can be decreased only, the default\nvalue is maximum. The default value can be different for each endpoint.\n\nWhen paging, check the total number of items, if not altered (`totalCount`), then the\nitems on pages could be shifted and some of them could be missed or processed twice.\n\n## Section on demand\n\nSome endpoints return the data sections as optional, on demand. The request is done by giving the section name in the\n`include` parameter. Part of the data is returned each time, the other section only on demand. This makes the responses smaller for those, who do not need the data\n, thus saving the volume of data transmitted and shortening the time to process the request.\n\nFor example, for \"Eshop Info\" endpoint, you will gain basic info when simply calling `[GET] /api/eshop`, but payment\nmethods and transport options only when using `[GET] /api/eshop?include=paymentMethods,shippingMethods`.\n\nMore values are separated by a comma, no sequencing, no upper/lower case differentiation. Other blocks are available on demand\nand each endpoint informs you which identifier to request.\n\n## Translations\n\nFor proper functionality in translations you will have to get module Foreign languages (Cizí jazyky) activated on customer e-shop. Multi-language support in API is handled by query parameter `language`, which can be used in whole API. If parameter is not set, default shop language is used.\nRead endpoints (HTTP verb GET) will return corresponding language version of texts where applicable.\n\nFor write endpoints, first use POST endpoint to create entity and then use PATCH endpoint with corresponding language query parameter to set language fields.\n\nPlease note that in some endpoints (typically surcharge/filtering/variant parameters) you must use the identifier's currently selected language variant (which is filtered in list).\n\n## Files\n\nFor files upload, there are [Files endpoints](/#tag/Files).\n\nThe file is uploaded to a temporary storage which is not accessible publicly. The file is kept there for 7 days and then deleted.\n\nAfter you upload a file, you may copy it to some API entities in their endpoints - you specify filename returned in response of upload job.\n\nPlease note that currently only images (png, jpg, gif) are allowed filetypes for file upload.\n\n# Product images\n\nShoptet saves the product images in their original size and then prepares several sizes for standardized usage (called\nimage cuts). These cuts are created in advance and saved on the disk, so they are readily available. The list of cuts is\nthe same for each e-shop, and each e-shop can theoretically have different cut sizes. In practice, their size is given\nby the template and most templates use the same sizes. The list of provided cuts is given by\nthe [Image cuts](/#section/Code-lists/Image-cuts) code list.\n\nThe `/api/eshop?include=imageCuts` endpoint returns the `imageCuts` field in the response, where each cut has the actual\nsize defined, and the URL base path. There are two base URLs (example for classic.shoptet.cz, cut `detail`):\n\n- `urlPath`: \"https://classic.shoptet.cz/user/shop/detail/\"\n\n- `cdnPath`: \"https://cdn-api.myshoptet.com/usr/classic.shoptet.cz/user/shop/detail/\"\n\nUse the `urlPath` in case you need an up-to-date image right now. Use the url for your backend processing and you\nwill retrieve the images only once. Images retrieved via `urlPath` are not cached. You can use image name or SEO version\nof the image name - see below.\n\nUse the `cdnPath` in case you want to use the image url on the frontend and users of your application will display it,\ne.g. if you provide an alternative frontend, mobile application etc. The images are cached and provided with lower\nlatency. Use `cdnName` retrieved from the product detail endpoint (or similar) - see below.\n\nOnce you determine the URL based on the purpose and image cut size (for example `detail` for product detail, or `related`\nfor product preview), just append the filename you need. The filename can be retrieved from Product detail endpoint.\n\nAlthough the e-shop is behind the content delivery network (Cloudflare CDN), API still returns the same domain. Whether\nthe e-shop is behind the Cloudflare CDN, you can find out from response headers (`CDN-Loop: cloudflare` header).\n\nThe product detail endpoint `/api/products/{guid}?include=images` returns the image field `data.images[]` in the same\nsequence, as these are entered in administration. The file name `name` (for example `100.jpg`) needs to be connected\nto the URL cut and then you have complete path to the image of a given cut (size), for example\n`https://classic.shoptet.cz/user/shop/detail/100.jpg`. You can also use `seoName`, which also contains a description\nof the image - you will be redirected to the same image. The `cdnName` is intended for use with the `cdnUrl` only.\nThe fields look like: (excerpt)\n\n```json\n \"name\": \"106.png\",\n \"description\": \"shamrock 2115611 640\",\n \"seoName\": \"106_shamrock-2115611-640.png\",\n \"cdnName\": \"106_shamrock-2115611-640.png?5b2a41f5\"\n```\n\nOne of the images mentioned for the product can be selected as the default image for the product variant. The selected\nimage is in `data.variants[].image` item and contains the name of the image – this can be searched for in the image\nlist, in the `name` item. Should the variant have no preselected default image, the parameter `image` is `null`.\nIf `data.variants[].isProductDefaultImage` is true, then the default product image is given. If it is `false`, then it is the default variant image.\nThe item `data.items[].mainImage` contains the main image in order detail - this is either a default variant image,\nor, if not set (or product does not have variants), the default product image is given. The structure is the same as\nin product details, but not all images are given here, only the default one – representative image. The full path can\nbe gained by assembling the `urlPath` from the e-shop info and the `name` or `seoName` items, given for the order item.\n\nSimilarly, the product list gives `data.products[].mainImage`, which mentions the initial image for each product.\n\n# Code lists\n\n## Image cuts\n\nValue | Description\n-------- | ---------\norig | original image (in the original resolution)\nbig | big image (typically 1024x768 px)\ndetail |image detail (typically 360x270 px)\ncategory | size for listing in category (typically 216x105 px)\n\n## Product visibility\n\nValue | Description\n-------- | ---------\nhidden | Hide product\nvisible | Show product\nblocked | Cannot be ordered\nshow-registered | Show only to logged-in users\nblock-unregistered | Do not allow order to logged-out users\ncash-desk-only | Show only in cash desk\ndetail-only | Do not show e-shop navigation\n\n## Product types\n\nValue | Description\n-------- | ---------\nproduct | Product\nbazar | Second-hand product\nservice | Service\ngift-certificate | Gift (deprecated)\nproduct-set | Product set\n\n## Types of order items\n\nValue | Description\n-------- | ---------\nproduct | Product\nbazar | Second-hand product\nservice | Service\nshipping | Transportation\nbilling | Payment method\ndiscount-coupon | Discount coupon\nvolume-discount | Volume discount\ngift | Gift\ngift-certificate | Gift certificate\ngeneric-item | Non-specific item\nproduct-set | Product set\nproduct-set-item | Product set item\ndeposit | Deposit\n\n## Sorting of products in category\n\nValue | Description\n-------- | ---------\ndefault | Default\nmost-selling | Most selling first\ncheapest | Cheapest first\nmost-expensive | Most expensive first\noldest | Oldest first\nnewest | Newest first\nalphabetically | Alphabetically\nalphabetically-desc | Alphabetically, descending\nproduct-code | Per product code\nproduct-code-desc | Per product code, descending\ncategory-priority | Category priority\ncategory-priority-desc | Category priority, descending\n\n## Webhook event types\n\nValue | Description | Identifier meaning\n-------- | --------- | ---------\nbrand:create | Brand creation event | String (`code`) - brand unique code\nbrand:update | Brand change event | String (`code`) - brand unique code\nbrand:delete | Brand deleting event | String (`code`) - brand unique code\ncreditNote:create | Credit note creation event | Number (`code`) of credit note\ncreditNote:delete | Credit note deleting event | Number (`code`) of credit note\ncreditNote:update | Credit note change event | Number (`code`) of credit note\ncustomer:create | New customer was created | Customer GUID\ncustomer:update | Customer was updated. Throws `409 Conflict` when try to register simultaneously with `customer:disableOrders` or `customer:enableOrders` | Customer GUID\ncustomer:disableOrders | An event disabled the customer, and his future orders will be automatically cancelled. Throws `409 Conflict` when try to register simultaneously with `customer:update` | Customer GUID\ncustomer:enableOrders | An event enabled the customer's future orders. Throws `409 Conflict` when try to register simultaneously with `customer:update` | Customer GUID\ncustomer:import | Import of 1 and more customers was executed | Fixed string \"customers\"\ncustomer:delete | Customer was deleted | Customer GUID\ndeliveryNote:create | Delivery note creation event | Number (`code`) of delivery note\ndeliveryNote:delete | Delivery note deleting event | Number (`code`) of delivery note\ndeliveryNote:update | Delivery note change event | Number (`code`) of delivery note\neshop:currencies | Currencies settings change event | ID of eshop\neshop:billingInformation | Billing information (i.e. eshop billing address) change event | ID of eshop\neshop:design | Design settings (template, colors, fonts, layout) | ID of eshop\neshop:mandatoryFields | Mandatory fields of customer were updated | ID of eshop\neshop:projectDomain | Domain of eshop was changed | ID of eshop\ninvoice:create | Invoice creation event | Number (`code`) of invoice\ninvoice:delete | Invoice deleting event | Number (`code`) of invoice\ninvoice:update | Invoice change event | Number (`code`) of invoice\njob:finished | The asynchronous request was finished | Job `id`\nmailingListEmail:create | E-mail addition event into the e-mail distribution list | Name (`code`) of e-mail distribution list\nmailingListEmail:delete | E-mail deleting event from the e-mail distribution list | Name (`code`) of e-mail distribution\norder:cancel | Order cancel event. Webhook is emitted when order status is set to `canceled`. Throws `409 Conflict` when try to register simultaneously with `order:update` | Number (`code`) of order\norder:create | Order creation event | Number (`code`) of order\norder:delete | Order deleting event | Number (`code`) of order\norder:update | Order change event. Throws `409 Conflict` when try to register simultaneously with `order:cancel` | Number (`code`) of order\norderStatusesList:change | Order status list change event. Emitted when order status is created, updated or deleted | Order status `ID`\npaymentMethod:change | Payment method change event | Payment method GUID\nproformaInvoice:create | Proforma invoice creation event | Number (`code`) of proforma invoice\nproformaInvoice:delete | Proforma invoice deleting event | Number (`code`) of proforma invoice\nproformaInvoice:update | Proforma invoice change event | Number (`code`) of proforma invoice\nproofPayment:create | Proof of payment creation event | Number (`code`) of proof payment\nproofPayment:delete | Proof of payment deleting event | Number (`code`) of proof payment\nproofPayment:update | Proof of payment change event | Number (`code`) of proof payment\nshippingMethod:change | Shipping method change event | Shipping method GUID\nshippingRequest:cancelled | Shipping request was not chosen for order delivery | `shippingRequestCode` associated with the cart\nshippingRequest:confirmed | Shipping request was chosen for order delivery | `shippingRequestCode` associated with the cart\nstock:movement | Stock change event | Stock ID\nstock:inStock (*) | Stock change event - sum across all of the stocks raised above 0 (beta, see below) | Number (`code`) of product\nstock:soldOut (*) | Stock change event - sum across all of the stocks reached 0 (beta, see below) | Number (`code`) of product\nstock:minStockSupplyReached (*) | Stock change event - sum across all of the stocks reached minimum stock supply value, if this limit is set for product (beta, see below) | Number (`code`) of product\n(*) These webhooks are considered beta/experimental, for more information, please visit the X-url\n### Mass Webhooks\n\nThese webhooks are sent when a mass change of entities is performed. The payload contains a json serialized list of IDs of changed entities.\nPurpose of these webhooks is to downgrade number of requests, while i.e. administrator performs mass change of orders status at once etc.\nSo instead of emitting one event for every order, we emit one event for all of them.\n\nFor now, if some mass event is performed, we also sent \"single\" webhook event for every updated entity as usual, but it will be changed in future,\nso please watch [release changes](https://developers.shoptet.com/category/api/) for more info \n\nValue | Description | Identifier meaning\n-------- | --------- | ---------\ninvoice:massUpdate | Mass change of invoices event | Json serialized list of number (`code`) of invoices\norder:massUpdate | Mass change of orders event | Json serialized list of number (`code`) of orders\n\n### System Webhooks\n\nThese webhooks cannot be registered via API, they are setup in Partners' Addon administration section instead.\n\nValue | Description\n----- | -----------\naddon:suspend | The addon was suspended by the eshop or by Shoptet operations staff\naddon:approve | The addon was approved (resumed) after it was suspended\naddon:uninstall | The addon was uninstalled by the eshop admin or the eshop was terminated\n\n## URL address from endpoint Eshop info\nSee endpoint [Eshop info](/#tag/Eshop)\nIdent | Description\n------| -----\nadmin-orders-list | Listing of orders in administration\nadmin-customers-list | List of customers in administration\noauth | OAuth server address, used for [e-shop user verification](https://developers.shoptet.com/api/documentation/eshop-verification-using-oauth/)\n\n## List of product catalogues\n\nProvider (identification) | Description\n------| -----\nglami | Glami\ngoogle | Google\nheureka | Heuréka\nzbozi | Zboží.cz\n\n## Invoice Billing Methods\n\nid | Description\n------| -----\n1 | COD (cz: Dobírka)\n2 | Wire transfer (cz: Převodem)\n3 | Cash (cz: Hotově)\n4 | Card (cz: Kartou)\n## VAT modes\n \n \nValue |\n------|\nNormal |\nOne Stop Shop |\nMini One Stop Shop |\n \nReverse charge |\n \nOutside the EU |\n\n# Postman collection\n\nIf you use Postman as an API platform for building and using APIs, we provide you a complex collection of Shoptet API.\nYou have 2 options how to import our postman collection (created from [openApi schema](https://swagger.io/specification/) - openapi.yaml ) into your postman client\n\n## Fork Shoptet API Collection from Shoptet Public API Workspace (recommended)\n\nSee [Shoptet Public API Workspace](https://www.postman.com/shoptet-developers/shoptet-public-api-workspace).\nAlso check postman documentation for more details: [Fork a collection](https://learning.postman.com/docs/collaborating-in-postman/using-version-control/forking-elements/).\n\n### Step 1: Navigate to Shoptet Public API Workspace\n\n- Launch Postman on your desktop or in the browser.\n- In the search bar in the top header of app, type **Shoptet Public API** and select collection from Shoptet public API Workspace.\n\n### Step 2: Locate the Shoptet API Collection\n\n- Once inside the Shoptet Public API Workspace, go to the **Collections** tab.\n- Find the **Shoptet API** collection.\n\n### Step 3: Fork the Collection\n\n- Click on the **Shoptet API** collection to open it.\n- In the collection view, click the **Fork** button in the top-right corner.\n- In the fork dialog, choose a name for your forked collection.\n- Select the workspace where you want to save the forked collection.\n- **It’s recommended to check `watch original collection` to get notified about changes in the original collection.**\n- Click **Fork Collection**.\n\n### Step 4: Access Your Forked Collection\n\n- Navigate to the workspace where you saved the forked collection.\n- You’ll now find the forked **Shoptet API** collection under the **Collections** tab, ready for you to use and modify.\nNow you have your own copy of the Shoptet API collection! If you want to add changes from the original collection, you can do so by click on `pull changes` in collection settings.\n\n## Import openapi.yaml into Postman as a Collection\n\n### Step 1: Upload the `openapi.yaml` File\n\n- Download the [openapi.yaml](/~https://github.com/shoptet/developers/blob/master/openapi/openapi.yaml) file from our developers [repository](/~https://github.com/shoptet/developers).\n- Launch Postman on your desktop or in the browser.\n- In the top-left corner of Postman, click the **Import** button.\n- A pop-up window will appear.\n- Drag and drop your `openapi.yaml` file into the window, or click **Upload Files** and browse to the file's location.\n\n### Step 2: Verify OpenAPI Import\n\n- Postman will automatically recognize the OpenAPI schema.\n- It will display a preview of the API schema.\n\n### Step 3: Import as Collection\n\n- Once the file is recognized, click **Import**.\n- Postman will convert the OpenAPI schema into a collection of requests, based on the defined endpoints in the `openapi.yaml` file.\n\n### Step 4: Access the Imported Collection\n\n- After the import is successful, go to the **Collections** tab.\n- You’ll find your new collection, named after the OpenAPI schema, containing all the API requests generated from the file.\n\nNow you can explore the API endpoints and use them directly within Postman!\n## Collection settings\n1. Click the **Shoptet API** collection name.\n2. Go to **Authorization** tab.\n3. Set your access token into the `value` of `Shoptet-Access-Token` key.\n4. Go to **Variables** tab.\n5. You can set `baseUrl` variable here.\n# Last changes\n\nLast API changes are published on the [API news] page (https://developers.shoptet.com/category/api/)." + description: "Created in cooperation with the Ministry of Industry and Trade of the Czech Republic within the \"The Country for the Future\" programme.\n\n\nThis documentation provides information about the interface for developers who would like to gain access to Shoptet\ne-shops. For more information about Shoptet, see https://www.shoptet.cz/.\n\nThe API is available in two access modes:\n\n- for \"Shoptet partner” developers who create the interconnection with the services and extend the Shoptet system's\n functions for public usage. For more information about API and conditions, under which\n it can be used, see https://developers.shoptet.com/addons/.\n- direct private access to eshop data for eshop owner - available only for [Premium Members](https://www.shoptetpremium.cz/).\n See https://developers.shoptet.com/premium for more information about API access.\n# Basic principles\n\n## How to call API\n\nAPI supports communication in JSON format. The URL for calling API requests is https://api.myshoptet.com. The API calls\n(endpoints and message formats) are common for private as well as addons access, it however uses different authentication\nand authorization principles.\n\n### For Addons\n\nAPI is made to create the supplements for the Shoptet system and uses OAuth2 authorization principles.\nTo access the API it is necessary to implement a web service at your side, which will communicate with our OAuth server.\n\nIn your e-shop administration, which you are using to work with our API, you must search in the `API Partner` section for the `Access to API` tab.\nHere, you will find your clientID and addresses, from where you can call our OAuth server.\n\nThe work with API begins with e-shop addon installation. (The installation process can be tested in the addon detail in the `Users` section, where you can cause the installation for your e-shop.)\nIn your addon detail, in the `Settings` section, enter URL to gain a OAuth code. The URL must be linked to your server, where the script is prepared, which is able to gain an OAuth access token.\nAt this address, you will receive the HTTP request with a GET parameter `code`, when installing the addon, with unique value (a 255 character long string).\nThe `code` provided only has short-term validity and can be used only once. With this code, request our OAuth server to provide an `OAuth access token`.\nSuch a request shall follow within the same script that received the `code`.\nDo not put off gaining the OAuth access token for a later time, and do not reply to our request with a `200 OK` status, until you gain the OAuth access token.\nThe address for you to call, and an example of implementation, can be found in e-shop administration in the `Access to API` section.\n\nAs a response you will obtain a JSON with your OAuth access token. Save this token securely. Never send this token to the client computer, and use it only\nfor communication between the servers and for gaining the temporary token for access to API.\n\nIf you have successfully received an OAuth access token, your script must end with the HTTP status code “200”.\n\nNow you have your OAuth access token, which links your addon with a specific e-shop, perhaps you would like to communicate with the e-shop via API.\n\nFrom your server, call `https:///action/ApiOAuthServer/getAccessToken` address with HTTP header `Authorization: Bearer `.\nAs the reply, you will receive a JSON containing an API access token value and the token expiration time value. An example of calling can be found in e-shop administration in the `Access to API` section.\nIt is possible to request a maximum of 5 valid tokens.\n\nThe API access token will enable you to call an individual URL of our API, for example `https://api.myshoptet.com/api/eshop`. Send the API access token in each request in the HTTP header`Shoptet-Access-Token`.\nYou can have several valid API access tokens available at any one time. Should the validity of the API access token expire, you will receive a HTTP status code 401 and message about token expiration.\n\n```\n{\n \"data\": 'null',\n \"errors\": [\n {\n \"errorCode\": \"expired-token\",\n \"message\": \"Token is expired. Please ask for new one.\",\n \"instance\": \"unknown\"\n }\n ]\n}\n```\n\nIf your token does not have the access right for a specific endpoint, you will obtain a reply with HTTP status code 403 Forbidden.\n\n```\n{\n \"data\": 'null',\n \"errors\": [\n {\n \"errorCode\": \"invalid-token-no-rights\",\n \"message\": \"Your access token \\\"afd..123\\\" has no defined rights for this resource.\",\n \"instance\": \"access-token\"\n }\n ]\n}\n```\n\n### For private API access (Premium)\n\nYou can create API access tokens simply in the eshop administration. Send them in the request header `Shoptet-Private-API-Token`.\nYou can automatically access all API endpoints.\n\n## Rate limiting\n\nRate limiting is only at the level of server overload protection (DDoS), whereas the quantity of queries or total volume of data are unlimited.\nThese are therefore the limits of the maximum number of coincident active connections. A maximum of 50 from a single IP address, and a maximum of\n3 connections for a single token. If the limit is exceeded, the HTTP code 429 is returned. See also Nginx configuration:\n\n```\n limit_conn per_ip 50;\n limit_conn per_token 3;\n limit_conn_status 429;\n```\n\nSome URLs, for example for bulk operations, can have their own specific limits, which are mentioned in this documentation.\n\n## Locks\n\nWrite endpoints (DELETE, PATCH, POST, PUT methods) can take longer and may be prone to two concurrent matching requests.\nTo avoid problems with retrying identical write requests, we have added the locking function of these requests to the application.\nIf you execute the same request two times in quick succession, the second request receives error response with a 423 code.\nThe lock is only valid for a specific called URL, for the duration of the request processing, but no longer than 5 seconds.\n\n## API versioning\n\nCurrent version of API: v1.0\n\nThe client must send a `Content-Type` header with value of `application/vnd.shoptet.v1.0`,\nwhere `v1.0` is the API version supported by the client. If there is any change in the API, then we are trying to make it\nreverse compatible, therefore it is not necessary to regularly update your connection after each change in our interface.\n\nThe version is the same for all endpoints described here.\n\n## Server response format\n\nAll JSON responses from the server have the same format, as a base.\nIf any of the sections is not present in the response, a `null` value is then received.\n\nExample of call for addons:\n\n```\ncurl --include \\\n -H 'Shoptet-Access-Token: 123456-a-123-XXXXXXXXXXXXXXXXXXXXXXXXX' \\\n -H 'Content-Type: application/vnd.shoptet.v1.0' \\\n 'https://api.myshoptet.com/api/eshop'\n```\n\nExample of call for private API access:\n\n```\ncurl --include \\\n -H 'Shoptet-Private-API-Token: 123456-a-123-XXXXXXXXXXXXXXXXXXXXXXXXX' \\\n -H 'Content-Type: application/vnd.shoptet.v1.0' \\\n 'https://api.myshoptet.com/api/eshop'\n```\n\nExample of response:\n\n```\nHTTP/2 200\ndate: Fri, 13 Jul 2018 15:57:29 GMT\ncontent-type: application/vnd.shoptet.v1.0+json; charset=utf-8\n\n{\n \"data\": {\n \"contactInformation\": {\n \"eshopName\": \"www.domena-eshopu.cz\",\n \"url\": \"https:\\/\\/www.domena-eshopu.cz\\/\",\n \"companyId\": \"28935675\",\n ...\n }\n ...\n },\n \"errors\": 'null'\n}\n```\n\nThe basic structure of the response in the event of an error is as follows:\n\n```\n{\n \"data\": 'null',\n \"errors\": [\n {\n \"errorCode\": \"missing-access-token\",\n \"message\": \"Missing access token. Please add `Shoptet-Access-Token` header to your request.\",\n \"instance\": \"unknown\"\n }\n ]\n}\n```\n\nMost of the endpoints are synchronous, i.e. your answer is provided immediately and contains the data requested. There\nare however some endpoints, where either the request or the response processing takes longer time. These are implemented as\n[Asynchronous requests](https://developers.shoptet.com/asynchronous-requests/). Your request will be queued and you\nreceive only job identification in the response. You will be notified using a\n[webhook](https://developers.shoptet.com/api/documentation/webhooks/) when the job is completed and your results\ndownloadable. Be aware, that registration of webhook `job:finished` is required to be able to run asynchronous requests.\nIf webhook is not registered, you will receive an error response with HTTP status code 403 and job won't be queued.\nWebhook `job:finished` is also emitted when the job is failed so there is need to check the [Detail of job](#tag/job-endpoints/getjobdetail) to get the result of the job. If an error occurs during an asynchronous request, the job is automatically marked as failed 3 hours after its creation, and in this case, the `job:finished` webhook is not emitted.\n\nSome attributes may be added to the new API version, or the sequence of attributes can be changed.\nYour software, therefore, shall not rely on either of these.\nIf some attributes are renamed or removed, you will be informed in an additional\nheader - see also [API versioning](#section/Basic-principles-of-working-with-API/API-versioning) and [Deprecated header + Sunset](#section/Basic-principles-of-working-with-API/Deprecated-header-+-Sunset).\n\n## Deprecated header + Sunset\n\nIf you are calling some endpoint in a version that will not be supported in the future, you will receive a response with the header\n`X-Shoptet-Deprecated`. If you detect this header within the response and its presence is logged,\nyou should be aware of the support termination for a specific endpoint in advance and thus have enough time for correction.\n\nFurthermore, you shall also receive the response with a`Sunset` header with the date when the support for this endpoint is to be terminated.\n\n## Status codes\n\nWhen processing the response, the client shall first detect, what response status code was received.\n\nFor GET requests for responses with 200 code, it is not necessary to explore the `errors` part of the response.\nFor PATCH/PUT requests, which can process more records at the same time and some records\nare not processed successfully, these end with a 200 response code and the errors key contains info\n on skipped rows.\nThe unknown record is returned with a 404 code, etc. These responses have the error field filled in, where you can\nfind detailed info about the error.\n\nThe following errors might be expected:\n\n* 400 - Some of the validations on item level have failed. There is no reason to retry, it will fail always.\n\n* 401 - Invalid token or the token has expired (for addons access tokens). You have to ask for another one.\n\n* 403 - Forbidden. The token has no rights to the endpoint called. The endpoints must be allowed for an addon\n and the eshop must have approved them. Valid for addons access tokens, private tokens can always access all\n endpoints. Can be also returned when required module for request is missing.\n* 404 - Either the endpoint is wrong; or most commonly, an entity identifier, which is part of the URL, does\n not exist.\n* 409 - Conflict - the action could not be completed for some consistency rules, such as duplicate data\n or relation, which would be broken.\n* 413 - Payload too large - update requests can sometimes contain multiple entities to be amended. There is\n however a limit (varying for each request), how many can be specified within one request. If you breach the\n limit, you will get this error and nothing will be updated.\n* 422 - Unprocessable entity - we were not able to parse the request - it does not match the expected format.\n Something is wrong with the request as whole, it might not be a correct JSON or it does not match the expected\n JSON schema. There is no reason to retry, it will always fail.\n* 423 - Locked - for update and some read request we apply locks, usually on an URL level, which should avoid\n consistency problems possibly occuring from parallel updates. See [chapter about locks](#section/Basic-principles-of-working-with-API/Locks). Retry later,\n try to avoid parallel update requests.\n* 500 - General server error. Yes, this might happen to our software, too. Most commonly this is a temporary\n database issue and it might (but might not), work a few minutes later. We monitor all such errors and we\n try to analyze and fix them.\n* 503 - System maintenance. Most commonly we move a database to another database cluster or a database migration is\n pending and it will be available in a few minutes. Please try later.\n\n## Paging\n\nSome endpoints can return larger quantity of records. Such endpoints do not return the entire result, but support pagination of results.\nYou can page using `page` (int) and `itemsPerPage` (int) parameters. The first page has number 1. If you require a different\nquantity of items per page, use the `itemsPerPage` parameter. CAUTION: the number of items per page can be decreased only, the default\nvalue is maximum. The default value can be different for each endpoint.\n\nWhen paging, check the total number of items, if not altered (`totalCount`), then the\nitems on pages could be shifted and some of them could be missed or processed twice.\n\n## Section on demand\n\nSome endpoints return the data sections as optional, on demand. The request is done by giving the section name in the\n`include` parameter. Part of the data is returned each time, the other section only on demand. This makes the responses smaller for those, who do not need the data\n, thus saving the volume of data transmitted and shortening the time to process the request.\n\nFor example, for \"Eshop Info\" endpoint, you will gain basic info when simply calling `[GET] /api/eshop`, but payment\nmethods and transport options only when using `[GET] /api/eshop?include=paymentMethods,shippingMethods`.\n\nMore values are separated by a comma, no sequencing, no upper/lower case differentiation. Other blocks are available on demand\nand each endpoint informs you which identifier to request.\n\n## Translations\n\nFor proper functionality in translations you will have to get module Foreign languages (Cizí jazyky) activated on customer e-shop. Multi-language support in API is handled by query parameter `language`, which can be used in whole API. If parameter is not set, default shop language is used.\nRead endpoints (HTTP verb GET) will return corresponding language version of texts where applicable.\n\nFor write endpoints, first use POST endpoint to create entity and then use PATCH endpoint with corresponding language query parameter to set language fields.\n\nPlease note that in some endpoints (typically surcharge/filtering/variant parameters) you must use the identifier's currently selected language variant (which is filtered in list).\n\n## Files\n\nFor files upload, there are [Files endpoints](#tag/Files).\n\nThe file is uploaded to a temporary storage which is not accessible publicly. The file is kept there for 7 days and then deleted.\n\nAfter you upload a file, you may copy it to some API entities in their endpoints - you specify filename returned in response of upload job.\n\nPlease note that currently only images (png, jpg, gif) are allowed filetypes for file upload.\n\n# Product images\n\nShoptet saves the product images in their original size and then prepares several sizes for standardized usage (called\nimage cuts). These cuts are created in advance and saved on the disk, so they are readily available. The list of cuts is\nthe same for each e-shop, and each e-shop can theoretically have different cut sizes. In practice, their size is given\nby the template and most templates use the same sizes. The list of provided cuts is given by\nthe [Image cuts](#section/Code-lists/Image-cuts) code list.\n\nThe `/api/eshop?include=imageCuts` endpoint returns the `imageCuts` field in the response, where each cut has the actual\nsize defined, and the URL base path. There are two base URLs (example for classic.shoptet.cz, cut `detail`):\n\n- `urlPath`: \"https://classic.shoptet.cz/user/shop/detail/\"\n\n- `cdnPath`: \"https://cdn-api.myshoptet.com/usr/classic.shoptet.cz/user/shop/detail/\"\n\nUse the `urlPath` in case you need an up-to-date image right now. Use the url for your backend processing and you\nwill retrieve the images only once. Images retrieved via `urlPath` are not cached. You can use image name or SEO version\nof the image name - see below.\n\nUse the `cdnPath` in case you want to use the image url on the frontend and users of your application will display it,\ne.g. if you provide an alternative frontend, mobile application etc. The images are cached and provided with lower\nlatency. Use `cdnName` retrieved from the product detail endpoint (or similar) - see below.\n\nOnce you determine the URL based on the purpose and image cut size (for example `detail` for product detail, or `related`\nfor product preview), just append the filename you need. The filename can be retrieved from Product detail endpoint.\n\nAlthough the e-shop is behind the content delivery network (Cloudflare CDN), API still returns the same domain. Whether\nthe e-shop is behind the Cloudflare CDN, you can find out from response headers (`CDN-Loop: cloudflare` header).\n\nThe product detail endpoint `/api/products/{guid}?include=images` returns the image field `data.images[]` in the same\nsequence, as these are entered in administration. The file name `name` (for example `100.jpg`) needs to be connected\nto the URL cut and then you have complete path to the image of a given cut (size), for example\n`https://classic.shoptet.cz/user/shop/detail/100.jpg`. You can also use `seoName`, which also contains a description\nof the image - you will be redirected to the same image. The `cdnName` is intended for use with the `cdnUrl` only.\nThe fields look like: (excerpt)\n\n```json\n \"name\": \"106.png\",\n \"description\": \"shamrock 2115611 640\",\n \"seoName\": \"106_shamrock-2115611-640.png\",\n \"cdnName\": \"106_shamrock-2115611-640.png?5b2a41f5\"\n```\n\nOne of the images mentioned for the product can be selected as the default image for the product variant. The selected\nimage is in `data.variants[].image` item and contains the name of the image – this can be searched for in the image\nlist, in the `name` item. Should the variant have no preselected default image, the parameter `image` is `null`.\nIf `data.variants[].isProductDefaultImage` is true, then the default product image is given. If it is `false`, then it is the default variant image.\nThe item `data.items[].mainImage` contains the main image in order detail - this is either a default variant image,\nor, if not set (or product does not have variants), the default product image is given. The structure is the same as\nin product details, but not all images are given here, only the default one – representative image. The full path can\nbe gained by assembling the `urlPath` from the e-shop info and the `name` or `seoName` items, given for the order item.\n\nSimilarly, the product list gives `data.products[].mainImage`, which mentions the initial image for each product.\n\n# Code lists\n\n## Image cuts\n\nValue | Description\n-------- | ---------\norig | original image (in the original resolution)\nbig | big image (typically 1024x768 px)\ndetail |image detail (typically 360x270 px)\ncategory | size for listing in category (typically 216x105 px)\n\n## Product visibility\n\nValue | Description\n-------- | ---------\nhidden | Hide product\nvisible | Show product\nblocked | Cannot be ordered\nshow-registered | Show only to logged-in users\nblock-unregistered | Do not allow order to logged-out users\ncash-desk-only | Show only in cash desk\ndetail-only | Do not show e-shop navigation\n\n## Product types\n\nValue | Description\n-------- | ---------\nproduct | Product\nbazar | Second-hand product\nservice | Service\ngift-certificate | Gift (deprecated)\nproduct-set | Product set\n\n## Types of order items\n\nValue | Description\n-------- | ---------\nproduct | Product\nbazar | Second-hand product\nservice | Service\nshipping | Transportation\nbilling | Payment method\ndiscount-coupon | Discount coupon\nvolume-discount | Volume discount\ngift | Gift\ngift-certificate | Gift certificate\ngeneric-item | Non-specific item\nproduct-set | Product set\nproduct-set-item | Product set item\ndeposit | Deposit\n\n## Sorting of products in category\n\nValue | Description\n-------- | ---------\ndefault | Default\nmost-selling | Most selling first\ncheapest | Cheapest first\nmost-expensive | Most expensive first\noldest | Oldest first\nnewest | Newest first\nalphabetically | Alphabetically\nalphabetically-desc | Alphabetically, descending\nproduct-code | Per product code\nproduct-code-desc | Per product code, descending\ncategory-priority | Category priority\ncategory-priority-desc | Category priority, descending\n\n## Webhook event types\n\nValue | Description | Identifier meaning\n-------- | --------- | ---------\nbrand:create | Brand creation event | String (`code`) - brand unique code\nbrand:update | Brand change event | String (`code`) - brand unique code\nbrand:delete | Brand deleting event | String (`code`) - brand unique code\ncreditNote:create | Credit note creation event | Number (`code`) of credit note\ncreditNote:delete | Credit note deleting event | Number (`code`) of credit note\ncreditNote:update | Credit note change event | Number (`code`) of credit note\ncustomer:create | New customer was created | Customer GUID\ncustomer:update | Customer was updated. Throws `409 Conflict` when try to register simultaneously with `customer:disableOrders` or `customer:enableOrders` | Customer GUID\ncustomer:disableOrders | An event disabled the customer, and his future orders will be automatically cancelled. Throws `409 Conflict` when try to register simultaneously with `customer:update` | Customer GUID\ncustomer:enableOrders | An event enabled the customer's future orders. Throws `409 Conflict` when try to register simultaneously with `customer:update` | Customer GUID\ncustomer:import | Import of 1 and more customers was executed | Fixed string \"customers\"\ncustomer:delete | Customer was deleted | Customer GUID\ndeliveryNote:create | Delivery note creation event | Number (`code`) of delivery note\ndeliveryNote:delete | Delivery note deleting event | Number (`code`) of delivery note\ndeliveryNote:update | Delivery note change event | Number (`code`) of delivery note\neshop:currencies | Currencies settings change event | ID of eshop\neshop:billingInformation | Billing information (i.e. eshop billing address) change event | ID of eshop\neshop:design | Design settings (template, colors, fonts, layout) | ID of eshop\neshop:mandatoryFields | Mandatory fields of customer were updated | ID of eshop\neshop:projectDomain | Domain of eshop was changed | ID of eshop\ninvoice:create | Invoice creation event | Number (`code`) of invoice\ninvoice:delete | Invoice deleting event | Number (`code`) of invoice\ninvoice:update | Invoice change event | Number (`code`) of invoice\njob:finished | The asynchronous request was finished | Job `id`\nmailingListEmail:create | E-mail addition event into the e-mail distribution list | Name (`code`) of e-mail distribution list\nmailingListEmail:delete | E-mail deleting event from the e-mail distribution list | Name (`code`) of e-mail distribution\norder:cancel | Order cancel event. Webhook is emitted when order status is set to `canceled`. Throws `409 Conflict` when try to register simultaneously with `order:update` | Number (`code`) of order\norder:create | Order creation event | Number (`code`) of order\norder:delete | Order deleting event | Number (`code`) of order\norder:update | Order change event. Throws `409 Conflict` when try to register simultaneously with `order:cancel` | Number (`code`) of order\norderStatusesList:change | Order status list change event. Emitted when order status is created, updated or deleted | Order status `ID`\npaymentMethod:change | Payment method change event | Payment method GUID\nproformaInvoice:create | Proforma invoice creation event | Number (`code`) of proforma invoice\nproformaInvoice:delete | Proforma invoice deleting event | Number (`code`) of proforma invoice\nproformaInvoice:update | Proforma invoice change event | Number (`code`) of proforma invoice\nproofPayment:create | Proof of payment creation event | Number (`code`) of proof payment\nproofPayment:delete | Proof of payment deleting event | Number (`code`) of proof payment\nproofPayment:update | Proof of payment change event | Number (`code`) of proof payment\nshippingMethod:change | Shipping method change event | Shipping method GUID\nshippingRequest:cancelled | Shipping request was not chosen for order delivery | `shippingRequestCode` associated with the cart\nshippingRequest:confirmed | Shipping request was chosen for order delivery | `shippingRequestCode` associated with the cart\nstock:movement | Stock change event | Stock ID\nstock:inStock (*) | Stock change event - sum across all of the stocks raised above 0 (beta, see below) | Number (`code`) of product\nstock:soldOut (*) | Stock change event - sum across all of the stocks reached 0 (beta, see below) | Number (`code`) of product\nstock:minStockSupplyReached (*) | Stock change event - sum across all of the stocks reached minimum stock supply value, if this limit is set for product (beta, see below) | Number (`code`) of product\n(*) These webhooks are considered beta/experimental, for more information, please visit the X-url\n### Mass Webhooks\n\nThese webhooks are sent when a mass change of entities is performed. The payload contains a json serialized list of IDs of changed entities.\nPurpose of these webhooks is to downgrade number of requests, while i.e. administrator performs mass change of orders status at once etc.\nSo instead of emitting one event for every order, we emit one event for all of them.\n\nFor now, if some mass event is performed, we also sent \"single\" webhook event for every updated entity as usual, but it will be changed in future,\nso please watch [release changes](https://developers.shoptet.com/category/api/) for more info \n\nValue | Description | Identifier meaning\n-------- | --------- | ---------\ninvoice:massUpdate | Mass change of invoices event | Json serialized list of number (`code`) of invoices\norder:massUpdate | Mass change of orders event | Json serialized list of number (`code`) of orders\n\n### System Webhooks\n\nThese webhooks cannot be registered via API, they are setup in Partners' Addon administration section instead.\n\nValue | Description\n----- | -----------\naddon:suspend | The addon was suspended by the eshop or by Shoptet operations staff\naddon:approve | The addon was approved (resumed) after it was suspended\naddon:terminate | The addon was terminated by the eshop or by Shoptet operations staff\naddon:uninstall | The addon was uninstalled by the eshop admin or the eshop was terminated\n\n## URL address from endpoint Eshop info\nSee endpoint [Eshop info](#tag/Eshop)\nIdent | Description\n------| -----\nadmin-orders-list | Listing of orders in administration\nadmin-customers-list | List of customers in administration\noauth | OAuth server address, used for [e-shop user verification](https://developers.shoptet.com/api/documentation/eshop-verification-using-oauth/)\n\n## List of product catalogues\n\nProvider (identification) | Description\n------| -----\nglami | Glami\ngoogle | Google\nheureka | Heuréka\nzbozi | Zboží.cz\n\n## Invoice Billing Methods\n\nid | Description\n------| -----\n1 | COD (cz: Dobírka)\n2 | Wire transfer (cz: Převodem)\n3 | Cash (cz: Hotově)\n4 | Card (cz: Kartou)\n## VAT modes\n \n \nValue |\n------|\nNormal |\nOne Stop Shop |\nMini One Stop Shop |\n \nReverse charge |\n \nOutside the EU |\n\n# Postman collection\n\nIf you use Postman as an API platform for building and using APIs, we provide you a complex collection of Shoptet API.\nYou have 2 options how to import our postman collection (created from [openApi schema](https://swagger.io/specification/) - openapi.yaml ) into your postman client\n\n## Fork Shoptet API Collection from Shoptet Public API Workspace (recommended)\n\nSee [Shoptet Public API Workspace](https://www.postman.com/shoptet-developers/shoptet-public-api-workspace).\nAlso check postman documentation for more details: [Fork a collection](https://learning.postman.com/docs/collaborating-in-postman/using-version-control/forking-elements/).\n\n### Step 1: Navigate to Shoptet Public API Workspace\n\n- Launch Postman on your desktop or in the browser.\n- In the search bar in the top header of app, type **Shoptet Public API** and select collection from Shoptet public API Workspace.\n\n### Step 2: Locate the Shoptet API Collection\n\n- Once inside the Shoptet Public API Workspace, go to the **Collections** tab.\n- Find the **Shoptet API** collection.\n\n### Step 3: Fork the Collection\n\n- Click on the **Shoptet API** collection to open it.\n- In the collection view, click the **Fork** button in the top-right corner.\n- In the fork dialog, choose a name for your forked collection.\n- Select the workspace where you want to save the forked collection.\n- **It’s recommended to check `watch original collection` to get notified about changes in the original collection.**\n- Click **Fork Collection**.\n\n### Step 4: Access Your Forked Collection\n\n- Navigate to the workspace where you saved the forked collection.\n- You’ll now find the forked **Shoptet API** collection under the **Collections** tab, ready for you to use and modify.\nNow you have your own copy of the Shoptet API collection! If you want to add changes from the original collection, you can do so by click on `pull changes` in collection settings.\n\n## Import openapi.yaml into Postman as a Collection\n\n### Step 1: Upload the `openapi.yaml` File\n\n- Download the [openapi.yaml](/~https://github.com/shoptet/developers/blob/master/openapi/openapi.yaml) file from our developers [repository](/~https://github.com/shoptet/developers).\n- Launch Postman on your desktop or in the browser.\n- In the top-left corner of Postman, click the **Import** button.\n- A pop-up window will appear.\n- Drag and drop your `openapi.yaml` file into the window, or click **Upload Files** and browse to the file's location.\n\n### Step 2: Verify OpenAPI Import\n\n- Postman will automatically recognize the OpenAPI schema.\n- It will display a preview of the API schema.\n\n### Step 3: Import as Collection\n\n- Once the file is recognized, click **Import**.\n- Postman will convert the OpenAPI schema into a collection of requests, based on the defined endpoints in the `openapi.yaml` file.\n\n### Step 4: Access the Imported Collection\n\n- After the import is successful, go to the **Collections** tab.\n- You’ll find your new collection, named after the OpenAPI schema, containing all the API requests generated from the file.\n\nNow you can explore the API endpoints and use them directly within Postman!\n## Collection settings\n1. Click the **Shoptet API** collection name.\n2. Go to **Authorization** tab.\n3. Set your access token into the `value` of `Shoptet-Access-Token` key.\n4. Go to **Variables** tab.\n5. You can set `baseUrl` variable here.\n# Last changes\n\nLast API changes are published on the [API news] page (https://developers.shoptet.com/category/api/)." servers: - url: 'https://api.myshoptet.com' @@ -1028,7 +1028,7 @@ paths: additionalProperties: false summary: 'Eshop info' operationId: getEshopInfo - description: "Information about queried e-shop (defined by token). Returns the contact data and e-shop settings.\n\nThis endpoint has several sections, which are only sent when requested in the `include` parameter (see [Requested sections](/#section/Basic-principles-of-working-with-API/Section-on-demand).\n\nIf you state the `include=imageCuts` parameter within the URL, information about the image cut will also be part of the response. For more information about the chapter [Product images](/#section/Product-images).\n\n**Please note that languages section has meaning only if module foreign languages (Cizí jazyky) is enabled on current eshop. Otherwise you have to follow \"eshopLanguage\" attribute.**\nValue | Section\n--------|------\norderAdditionalFields | The order can contain up to six additional fields, which can be freely used by the e-shop for its individual needs. The field names can be defined in administration and this section returns their names.\norderStatuses | The order statuses, as defined for this e-shop.\npaymentMethods | Payment methods, as defined for this e-shop.\nshippingMethods | Transportation options, as defined for this e-shop.\nimageCuts | The information on image cuts (various sizes of the same image)\ncountries | Informations about eshop supported countries (name, validation patterns, ...)\ncashDesk | Informations about eshop cash desk configuration\nlanguages | Information about eshop languages settings - has meaning only if module foreign languages (Cizí jazyky) is enabled on current eshop" + description: "Information about queried e-shop (defined by token). Returns the contact data and e-shop settings.\n\nThis endpoint has several sections, which are only sent when requested in the `include` parameter (see [Requested sections](#section/basic-principles-of-working-with-api/Section-on-demand).\n\nIf you state the `include=imageCuts` parameter within the URL, information about the image cut will also be part of the response. For more information about the chapter [Product images](#section/Product-images).\n\n**Please note that languages section has meaning only if module foreign languages (Cizí jazyky) is enabled on current eshop. Otherwise you have to follow \"eshopLanguage\" attribute.**\nValue | Section\n--------|------\norderAdditionalFields | The order can contain up to six additional fields, which can be freely used by the e-shop for its individual needs. The field names can be defined in administration and this section returns their names.\norderStatuses | The order statuses, as defined for this e-shop.\npaymentMethods | Payment methods, as defined for this e-shop.\nshippingMethods | Transportation options, as defined for this e-shop.\nimageCuts | The information on image cuts (various sizes of the same image)\ncountries | Informations about eshop supported countries (name, validation patterns, ...)\ncashDesk | Informations about eshop cash desk configuration\nlanguages | Information about eshop languages settings - has meaning only if module foreign languages (Cizí jazyky) is enabled on current eshop" tags: - Eshop parameters: @@ -1481,7 +1481,7 @@ paths: - 'Pelle 1978' type: type: string - description: 'product type (`product`, `bazar`...) - see also [Product type code list](#product-item-types)' + description: 'product type (`product`, `bazar`...) - see also [Product type code list](#section/code-lists/Product-types)' examples: - product url: @@ -1490,7 +1490,7 @@ paths: - 'null' visibility: type: string - description: 'visibility of product (`normal`, `hidden` ...) - see also [Product visibility code list](#product-visibility)' + description: 'visibility of product (`normal`, `hidden` ...) - see also [Product visibility code list](#section/code-lists/Product-visibility)' examples: - normal creationTime: @@ -1612,7 +1612,7 @@ paths: additionalProperties: false summary: 'List of products' operationId: getListOfProducts - description: "Returns the list of products - only basic info and GUID, using this you can determine the details with another API call. Endpoint supports [paging](/#section/Basic-principles-of-working-with-API/Paging).\n\nThis endpoint has several sections, which are sent only when requested in the `include` parameter (see [Requested sections](/#section/Basic-principles-of-working-with-API/Section-on-demand).\n\nIf you state the `include=images` parameter within the URL, then information about main product image will also be part of the response. For more information about the chapter [Product images](/#section/Product-images).\n\nPlease note it is better to use List of all products endpoint for getting all products from eshop." + description: "Returns the list of products - only basic info and GUID, using this you can determine the details with another API call. Endpoint supports [paging](#section/basic-principles-of-working-with-api/Paging).\n\nThis endpoint has several sections, which are sent only when requested in the `include` parameter (see [Requested sections](#section/basic-principles-of-working-with-api/Section-on-demand).\n\nIf you state the `include=images` parameter within the URL, then information about main product image will also be part of the response. For more information about the chapter [Product images](#section/Product-images).\n\nPlease note it is better to use List of all products endpoint for getting all products from eshop." tags: - Products parameters: @@ -1633,14 +1633,14 @@ paths: - name: visibility in: query - description: 'product visibility (visible, hidden, only for logged-in users...) - see also [Product visibility code list](/#section/Code-lists/Product-visibility) Optional.' + description: 'product visibility (visible, hidden, only for logged-in users...) - see also [Product visibility code list](#section/Code-lists/Product-visibility) Optional.' example: visible schema: type: string - name: type in: query - description: 'product type (product, service, bazar...) - see also [Product type code list](/#section/Code-lists/Product-types). Optional.' + description: 'product type (product, service, bazar...) - see also [Product type code list](#section/Code-lists/Product-types). Optional.' example: product schema: type: string @@ -1749,7 +1749,7 @@ paths: $ref: '#/components/parameters/DefaultContentType' requestBody: content: - application/vnd.shoptet.v1.0: + application/vnd.shoptet.v1.0+json: schema: type: object required: @@ -1773,7 +1773,7 @@ paths: - bazar - service - product-set - description: "Product type. Optional, default value 'product'. Please note that 'product-set' requires 'sets' module to be enabled. Enum - see [Product type code list](#product-item-types)" + description: "Product type. Optional, default value 'product'. Please note that 'product-set' requires 'sets' module to be enabled. Enum - see [Product type code list](#section/code-lists/Product-types)" examples: - product - bazar @@ -1789,7 +1789,7 @@ paths: - block-unregistered - cash-desk-only - detail-only - description: 'Product visibility. Optional, default value `visible`. Enum - see [Product visibility code list](#product-visibility)' + description: 'Product visibility. Optional, default value `visible`. Enum - see [Product visibility code list](#section/code-lists/Product-visibility)' examples: - hidden name: @@ -2309,7 +2309,7 @@ paths: - Products requestBody: content: - application/vnd.shoptet.v1.0: + application/vnd.shoptet.v1.0+json: schema: type: object required: @@ -2430,7 +2430,7 @@ paths: $ref: '#/components/schemas/Errors' summary: 'List of all products' operationId: getListOfAllProducts - description: "Using this endpoint, you can get list of all products with detailed info of each product (like in Product Detail endpoint) asynchronously. See how [Asynchronous requests](https://developers.shoptet.com/asynchronous-requests/) work on our developer's portal.\n\nResponse will be in [jsonlines](https://jsonlines.org/) format with each product taking one line of output file. One product in response has the same format as product detail response (in `data` attribute)\n\nThis endpoint has several sections, which are exported only when requested in the `include` parameter (see [Requested sections](/#section/Basic-principles-of-working-with-API/Section-on-demand)).\n\nInclude parameter | Meaning\n--- | ---\nimages | Export will also contain the list of all product images. For more information about the chapter [Product images](#product-images).\nvariantParameters | Export will also contain a field of variant parameters and a variant description, as they are visible to customers.\nallCategories | Export will also contain information on all the categories that the product was assigned into\nflags | Details on product designation\ndescriptiveParameters | Export will also contain descriptive parameters of the product\nmeasureUnit | Export will also contain measure unit info of every variant.\nsurchargeParameters | Export will also contain surcharge parameters of the product.\nsetItems | Export will also contain items, products, in set.\nfilteringParameters | Export will also contain filtering parameters of the product.\nrecyclingFee | Export will also contain recycling fee.\nwarranty | Export will also contain product warranty.\nsortVariants | Product variants will be sorted as in administration.\ngifts | List of gifts (variants) related to product\nalternativeProducts | The response will also contain alternative products.\nrelatedProducts | The response will also contain related products.\nrelatedVideos | The response will also contain related videos.\nrelatedFiles | The response will also contain related files.\nperStockAmounts | The response will also contain amounts/claims per individual stocks.\nperPricelistPrices | The response will also contain prices per individual price lists.\n\nResult file is compressed using GZIP." + description: "Using this endpoint, you can get list of all products with detailed info of each product (like in Product Detail endpoint) asynchronously. See how [Asynchronous requests](https://developers.shoptet.com/asynchronous-requests/) work on our developer's portal.\n\nResponse will be in [jsonlines](https://jsonlines.org/) format with each product taking one line of output file. One product in response has the same format as product detail response (in `data` attribute)\n\nThis endpoint has several sections, which are exported only when requested in the `include` parameter (see [Requested sections](#section/basic-principles-of-working-with-api/Section-on-demand)).\n\nInclude parameter | Meaning\n--- | ---\nimages | Export will also contain the list of all product images. For more information about the chapter [Product images](#product-images).\nvariantParameters | Export will also contain a field of variant parameters and a variant description, as they are visible to customers.\nallCategories | Export will also contain information on all the categories that the product was assigned into\nflags | Details on product designation\ndescriptiveParameters | Export will also contain descriptive parameters of the product\nmeasureUnit | Export will also contain measure unit info of every variant.\nsurchargeParameters | Export will also contain surcharge parameters of the product.\nsetItems | Export will also contain items, products, in set.\nfilteringParameters | Export will also contain filtering parameters of the product.\nrecyclingFee | Export will also contain recycling fee.\nwarranty | Export will also contain product warranty.\nsortVariants | Product variants will be sorted as in administration.\ngifts | List of gifts (variants) related to product\nalternativeProducts | The response will also contain alternative products.\nrelatedProducts | The response will also contain related products.\nrelatedVideos | The response will also contain related videos.\nrelatedFiles | The response will also contain related files.\nperStockAmounts | The response will also contain amounts/claims per individual stocks.\nperPricelistPrices | The response will also contain prices per individual price lists.\n\nResult file is compressed using GZIP." tags: - Products parameters: @@ -2458,14 +2458,14 @@ paths: - name: visibility in: query - description: 'product visibility (visible, hidden, only for logged-in users...) - see also [Product visibility code list](/#section/Code-lists/Product-visibility) Optional.' + description: 'product visibility (visible, hidden, only for logged-in users...) - see also [Product visibility code list](#section/Code-lists/Product-visibility) Optional.' example: visible schema: type: string - name: type in: query - description: 'product type (product, service, bazar...) - see also [Product type code list](/#section/Code-lists/Product-types). Optional.' + description: 'product type (product, service, bazar...) - see also [Product type code list](#section/Code-lists/Product-types). Optional.' example: product schema: type: string @@ -2543,7 +2543,7 @@ paths: $ref: '#/components/schemas/Errors' summary: 'Product detail' operationId: getProductDetail - description: "Returns detailed information about one product. The product includes the variant field. In case the product comes in variants, the field contains all the available variants. If the product does not have any variants, it contains only one variant with product information.\n\nThis endpoint has several sections, which are sent only when requested in the `include` parameter (see [Requested sections](/#section/Basic-principles-of-working-with-API/Section-on-demand)).\nInclude parameter | Meaning\n--- | ---\nimages | The response will also contain the list of all product images. For more information about the chapter [Product images](/#section/Product-images).\nvariantParameters | The response will also contain a field of variant parameters and a variant description, as they are visible to customers.\nallCategories | The response will also contain information on all the categories that the product was assigned into\nflags | Details on product designation\ndescriptiveParameters | The response will also contain descriptive parameters of the product\nmeasureUnit | The response will also contain measure unit info of every variant.\nsurchargeParameters | The response will also contain surcharge parameters of the product.\nsetItems | The response will also contain items, products, in set.\nfilteringParameters | The response will also contain filtering parameters of the product.\nwarranty | The response will also contain product warranty.\nsortVariants | Product variants will be sorted as in administration.\ngifts | Product gifts, will be sorted as in administration\nalternativeProducts | The response will also contain alternative products.\nrelatedProducts | The response will also contain related products.\nrelatedVideos | The response will also contain related videos.\nrelatedFiles | The response will also contain related files.\nperStockAmounts | The response will also contain amounts/claims per individual stocks.\nperPricelistPrices | The response will also contain prices per individual price lists." + description: "Returns detailed information about one product. The product includes the variant field. In case the product comes in variants, the field contains all the available variants. If the product does not have any variants, it contains only one variant with product information.\n\nThis endpoint has several sections, which are sent only when requested in the `include` parameter (see [Requested sections](#section/basic-principles-of-working-with-api/Section-on-demand)).\nInclude parameter | Meaning\n--- | ---\nimages | The response will also contain the list of all product images. For more information about the chapter [Product images](#section/Product-images).\nvariantParameters | The response will also contain a field of variant parameters and a variant description, as they are visible to customers.\nallCategories | The response will also contain information on all the categories that the product was assigned into\nflags | Details on product designation\ndescriptiveParameters | The response will also contain descriptive parameters of the product\nmeasureUnit | The response will also contain measure unit info of every variant.\nsurchargeParameters | The response will also contain surcharge parameters of the product.\nsetItems | The response will also contain items, products, in set.\nfilteringParameters | The response will also contain filtering parameters of the product.\nwarranty | The response will also contain product warranty.\nsortVariants | Product variants will be sorted as in administration.\ngifts | Product gifts, will be sorted as in administration\nalternativeProducts | The response will also contain alternative products.\nrelatedProducts | The response will also contain related products.\nrelatedVideos | The response will also contain related videos.\nrelatedFiles | The response will also contain related files.\nperStockAmounts | The response will also contain amounts/claims per individual stocks.\nperPricelistPrices | The response will also contain prices per individual price lists." tags: - Products parameters: @@ -2606,7 +2606,7 @@ paths: $ref: '#/components/parameters/DefaultContentType' requestBody: content: - application/vnd.shoptet.v1.0: + application/vnd.shoptet.v1.0+json: schema: type: object required: @@ -2627,7 +2627,7 @@ paths: - bazar - service - product-set - description: "Product type. Please note that 'product-set' requires 'sets' module to be enabled. Enum - see [Product type code list](#product-item-types)" + description: "Product type. Please note that 'product-set' requires 'sets' module to be enabled. Enum - see [Product type code list](#section/code-lists/Product-types)" examples: - product - bazar @@ -2643,7 +2643,7 @@ paths: - block-unregistered - cash-desk-only - detail-only - description: 'Product visibility. Optional, default value `visible`. Enum - see [Product visibility code list](#product-visibility)' + description: 'Product visibility. Optional, default value `visible`. Enum - see [Product visibility code list](#section/code-lists/Product-visibility)' examples: - hidden name: @@ -3180,7 +3180,7 @@ paths: - Products requestBody: content: - application/vnd.shoptet.v1.0: + application/vnd.shoptet.v1.0+json: schema: type: object additionalProperties: false @@ -3211,7 +3211,7 @@ paths: $ref: '#/components/schemas/Errors' summary: 'Product detail by code' operationId: getProductDetailByCode - description: 'Retrieve details about one product. Optional sections can be requested using `?include=` parameter The response format is the same as for [Product detail](/tag/Products#operation/Product%20detail) endpoint.' + description: 'Retrieve details about one product. Optional sections can be requested using `?include=` parameter The response format is the same as for [Product detail](#tag/products/getlistofproducts) endpoint.' tags: - Products parameters: @@ -3274,7 +3274,7 @@ paths: $ref: '#/components/parameters/DefaultContentType' requestBody: content: - application/vnd.shoptet.v1.0: + application/vnd.shoptet.v1.0+json: schema: type: object required: @@ -3295,7 +3295,7 @@ paths: - bazar - service - product-set - description: "Product type. Please note that 'product-set' requires 'sets' module to be enabled. Enum - see [Product type code list](#product-item-types)" + description: "Product type. Please note that 'product-set' requires 'sets' module to be enabled. Enum - see [Product type code list](#section/code-lists/Product-types)" examples: - product - bazar @@ -3311,7 +3311,7 @@ paths: - block-unregistered - cash-desk-only - detail-only - description: 'Product visibility. Optional, default value `visible`. Enum - see [Product visibility code list](#product-visibility)' + description: 'Product visibility. Optional, default value `visible`. Enum - see [Product visibility code list](#section/code-lists/Product-visibility)' examples: - hidden name: @@ -4054,7 +4054,7 @@ paths: $ref: '#/components/parameters/DefaultContentType' requestBody: content: - application/vnd.shoptet.v1.0: + application/vnd.shoptet.v1.0+json: schema: type: object additionalProperties: false @@ -4147,7 +4147,7 @@ paths: $ref: '#/components/parameters/DefaultContentType' requestBody: content: - application/vnd.shoptet.v1.0: + application/vnd.shoptet.v1.0+json: schema: type: object additionalProperties: false @@ -4242,7 +4242,7 @@ paths: $ref: '#/components/parameters/DefaultContentType' requestBody: content: - application/vnd.shoptet.v1.0: + application/vnd.shoptet.v1.0+json: schema: type: object additionalProperties: false @@ -4395,7 +4395,7 @@ paths: additionalProperties: false summary: 'Last product changes' operationId: getLastProductChanges - description: "Returns the list of products, which were changed (added/edited or deleted). Endpoint is intended to determine the changes after you have loaded the complete list of products and you need to know if any of these have been changed. Guaranteed history is 30 days, older data are deleted progressively.\n\nEach product in the log is mentioned only with its last change. For example, if the product was modified and then deleted, the log will show only information about its deletion.\n\nCreation is considered as `edit` action. So, when there is a new item created, it will be displayed like `edit` action.\n\nEndpoint supports [pagination](/#section/Basic-principles-of-working-with-API/Paging).\n\nDescription of object attributes with information about changes:\n|Field |Causes product change|Notes. |\n|--------------------------------------|---------------------|---------------------------------------|\n|guid |Yes | |\n|type |Yes | |\n|visibility |Yes | |\n|creationTime |Yes | |\n|changeTime |Yes | |\n|shortDescription |Yes | |\n|description |Yes | |\n|metaDescription |Yes | |\n|name |Yes | |\n|internalNote |Yes | |\n|defaultCategory |Yes |Only category - product relation change|\n|defaultCategory.guid |No | |\n|defaultCategory.name |No | |\n|supplier |Yes |Only supplier - product relation change|\n|supplier.guid |No | |\n|supplier.name |No | |\n|brand |Yes |Only brand - product relation change |\n|brand.code |No | |\n|brand.name |No | |\n|categories |Yes |Only product - category relation |\n|categories.guid |No | |\n|categories.parentGuid |No | |\n|categories.name |No | |\n|url |Yes |Only for relative url. Domain change no|\n|flags |Yes | |\n|flags.code |No | |\n|flags.title |No | |\n|flags.dateFrom |Yes | |\n|flags.dateTo |Yes | |\n|variants |Yes | |\n|variants.code |Yes | |\n|variants.ean |Yes | |\n|variants.stock |no | |\n|variants.unit |yes | |\n|variants.weight |yes | |\n|variants.visible |yes | |\n|variants.minStockSupply |yes | |\n|variants.negativeStockAllowed |yes | |\n|variants.amountDecimalPlaces |yes | |\n|variants.price |yes | |\n|variants.includingVat |yes | |\n|variants.vatRate |yes | |\n|variants.currencyCode |yes | |\n|variants.actionPrice |yes | |\n|variants.commonPrice |yes | |\n|variants.manufacturerCode |yes | |\n|variants.pluCode |yes | |\n|variants.isbn |yes | |\n|variants.serialNo |yes | |\n|variants.mpn |yes | |\n|variants.availability |yes | |\n|variants.availabilityWhenSoldOut |yes | |\n|variants.image |yes | |\n|variants.parameters |yes | |\n|variants.name |yes | |\n|variants.measureUnit |yes | |\n|variants.measureUnit.measureAmount |yes | |\n|variants.measureUnit.measureUnitId |yes | |\n|variants.measureUnit.packagingAmount |yes | |\n|variants.measureUnit.packagingUnitId |yes | |\n|variants.measureUnit.measureUnitName |yes | |\n|variants.measureUnit.packagingUnitName|yes | |\n|variants.measureUnit.measurePrice |yes | |\n|variants.recyclingFee |yes | |\n|images |yes | |\n|images.name |yes | |\n|images.priority |yes | |\n|images.description |yes | |\n|images.changeTime |yes | |\n|images.seoName |yes | |\n|images.cdnName |yes | |\n|descriptiveParameters |yes | |\n|descriptiveParameters.name |yes | |\n|descriptiveParameters.value |yes | |\n|descriptiveParameters.description |yes | |\n|descriptiveParameters.priority |yes | |\n|surchargeParameters |no | |\n|surchargeParameters.code |no | |\n|surchargeParameters.name |no | |\n|surchargeParameters.displayName |no | |\n|surchargeParameters.description |no | |\n|surchargeParameters.priority |no | |\n|surchargeParameters.required |no | |\n|surchargeParameters.currency |no | |\n|surchargeParameters.includingVat |no | |\n|surchargeParameters.values |no | |\n|surchargeParameters.values.valueIndex |no | |\n|surchargeParameters.values.description|no | |\n|surchargeParameters.values.price |no | |\n|surchargeParameters.values.priority |no | |\n|surchargeParameters.values.visible |no | |\n|setItems |yes | |\n|setItems.guid |no | |\n|setItems.code |no | |\n|setItems.amount |no | |\n|filteringParameters |yes |Only relation |\n|filteringParameters.code |no | |\n|filteringParameters.name |no | |\n|filteringParameters.displayName |no | |\n|filteringParameters.description |no | |\n|filteringParameters.priority |yes | |\n|filteringParameters.googleMapping |no | |\n|filteringParameters.values |yes |Only relation |\n|filteringParameters.values.valueIndex |no | |\n|filteringParameters.values.name |no | |\n|filteringParameters.values.priority |no | |\n|filteringParameters.values.color |no | |\n|filteringParameters.values.image |no | |\n|warranty |yes |only relation |\n|warranty.inMonths |no | |\n|warranty.description |no | |" + description: "Returns the list of products, which were changed (added/edited or deleted). Endpoint is intended to determine the changes after you have loaded the complete list of products and you need to know if any of these have been changed. Guaranteed history is 30 days, older data are deleted progressively.\n\nEach product in the log is mentioned only with its last change. For example, if the product was modified and then deleted, the log will show only information about its deletion.\n\nCreation is considered as `edit` action. So, when there is a new item created, it will be displayed like `edit` action.\n\nEndpoint supports [pagination](#section/basic-principles-of-working-with-api/Paging).\n\nDescription of object attributes with information about changes:\n|Field |Causes product change|Notes. |\n|--------------------------------------|---------------------|---------------------------------------|\n|guid |Yes | |\n|type |Yes | |\n|visibility |Yes | |\n|creationTime |Yes | |\n|changeTime |Yes | |\n|shortDescription |Yes | |\n|description |Yes | |\n|metaDescription |Yes | |\n|name |Yes | |\n|internalNote |Yes | |\n|defaultCategory |Yes |Only category - product relation change|\n|defaultCategory.guid |No | |\n|defaultCategory.name |No | |\n|supplier |Yes |Only supplier - product relation change|\n|supplier.guid |No | |\n|supplier.name |No | |\n|brand |Yes |Only brand - product relation change |\n|brand.code |No | |\n|brand.name |No | |\n|categories |Yes |Only product - category relation |\n|categories.guid |No | |\n|categories.parentGuid |No | |\n|categories.name |No | |\n|url |Yes |Only for relative url. Domain change no|\n|flags |Yes | |\n|flags.code |No | |\n|flags.title |No | |\n|flags.dateFrom |Yes | |\n|flags.dateTo |Yes | |\n|variants |Yes | |\n|variants.code |Yes | |\n|variants.ean |Yes | |\n|variants.stock |no | |\n|variants.unit |yes | |\n|variants.weight |yes | |\n|variants.visible |yes | |\n|variants.minStockSupply |yes | |\n|variants.negativeStockAllowed |yes | |\n|variants.amountDecimalPlaces |yes | |\n|variants.price |yes | |\n|variants.includingVat |yes | |\n|variants.vatRate |yes | |\n|variants.currencyCode |yes | |\n|variants.actionPrice |yes | |\n|variants.commonPrice |yes | |\n|variants.manufacturerCode |yes | |\n|variants.pluCode |yes | |\n|variants.isbn |yes | |\n|variants.serialNo |yes | |\n|variants.mpn |yes | |\n|variants.availability |yes | |\n|variants.availabilityWhenSoldOut |yes | |\n|variants.image |yes | |\n|variants.parameters |yes | |\n|variants.name |yes | |\n|variants.measureUnit |yes | |\n|variants.measureUnit.measureAmount |yes | |\n|variants.measureUnit.measureUnitId |yes | |\n|variants.measureUnit.packagingAmount |yes | |\n|variants.measureUnit.packagingUnitId |yes | |\n|variants.measureUnit.measureUnitName |yes | |\n|variants.measureUnit.packagingUnitName|yes | |\n|variants.measureUnit.measurePrice |yes | |\n|variants.recyclingFee |yes | |\n|images |yes | |\n|images.name |yes | |\n|images.priority |yes | |\n|images.description |yes | |\n|images.changeTime |yes | |\n|images.seoName |yes | |\n|images.cdnName |yes | |\n|descriptiveParameters |yes | |\n|descriptiveParameters.name |yes | |\n|descriptiveParameters.value |yes | |\n|descriptiveParameters.description |yes | |\n|descriptiveParameters.priority |yes | |\n|surchargeParameters |no | |\n|surchargeParameters.code |no | |\n|surchargeParameters.name |no | |\n|surchargeParameters.displayName |no | |\n|surchargeParameters.description |no | |\n|surchargeParameters.priority |no | |\n|surchargeParameters.required |no | |\n|surchargeParameters.currency |no | |\n|surchargeParameters.includingVat |no | |\n|surchargeParameters.values |no | |\n|surchargeParameters.values.valueIndex |no | |\n|surchargeParameters.values.description|no | |\n|surchargeParameters.values.price |no | |\n|surchargeParameters.values.priority |no | |\n|surchargeParameters.values.visible |no | |\n|setItems |yes | |\n|setItems.guid |no | |\n|setItems.code |no | |\n|setItems.amount |no | |\n|filteringParameters |yes |Only relation |\n|filteringParameters.code |no | |\n|filteringParameters.name |no | |\n|filteringParameters.displayName |no | |\n|filteringParameters.description |no | |\n|filteringParameters.priority |yes | |\n|filteringParameters.googleMapping |no | |\n|filteringParameters.values |yes |Only relation |\n|filteringParameters.values.valueIndex |no | |\n|filteringParameters.values.name |no | |\n|filteringParameters.values.priority |no | |\n|filteringParameters.values.color |no | |\n|filteringParameters.values.image |no | |\n|warranty |yes |only relation |\n|warranty.inMonths |no | |\n|warranty.description |no | |" tags: - Products parameters: @@ -4470,7 +4470,7 @@ paths: - Products requestBody: content: - application/vnd.shoptet.v1.0: + application/vnd.shoptet.v1.0+json: schema: type: object required: @@ -4525,7 +4525,7 @@ paths: - string - 'null' $ref: '#/components/schemas/typeFilename' - description: 'Name of file in [API upload storage](#files) to be set as category image.' + description: 'Name of file in [API upload storage](#section/basic-principles-of-working-with-api/files) to be set as category image.' examples: - image.png sortBefore: @@ -4596,7 +4596,7 @@ paths: - product-code-desc - category-priority - category-priority-desc - description: 'defines how products are sorted in a category. See also code list [Classification of products in category](#category-sorting)' + description: 'defines how products are sorted in a category. See also code list [Classification of products in category](#section/code-lists/Sorting-of-products-in-category)' examples: - alphabetically similarProductsCategory: @@ -4683,7 +4683,7 @@ paths: $ref: '#/components/parameters/DefaultContentType' requestBody: content: - application/vnd.shoptet.v1.0: + application/vnd.shoptet.v1.0+json: schema: type: object required: @@ -4737,7 +4737,7 @@ paths: - string - 'null' $ref: '#/components/schemas/typeFilename' - description: 'Name of file in [API upload storage](#files) to be set as category image.' + description: 'Name of file in [API upload storage](#section/basic-principles-of-working-with-api/files) to be set as category image.' examples: - image.png sortBefore: @@ -4808,7 +4808,7 @@ paths: - product-code-desc - category-priority - category-priority-desc - description: 'defines how products are sorted in a category. See also code list [Classification of products in category](#category-sorting)' + description: 'defines how products are sorted in a category. See also code list [Classification of products in category](#section/code-lists/Sorting-of-products-in-category)' examples: - alphabetically similarProductsCategory: @@ -4951,7 +4951,7 @@ paths: - Products requestBody: content: - application/vnd.shoptet.v1.0: + application/vnd.shoptet.v1.0+json: schema: type: object additionalProperties: false @@ -5089,7 +5089,7 @@ paths: $ref: '#/components/parameters/DefaultContentType' requestBody: content: - application/vnd.shoptet.v1.0: + application/vnd.shoptet.v1.0+json: schema: type: object required: @@ -5530,7 +5530,7 @@ paths: - Products requestBody: content: - application/vnd.shoptet.v1.0: + application/vnd.shoptet.v1.0+json: schema: type: object additionalProperties: false @@ -5644,7 +5644,7 @@ paths: - Products requestBody: content: - application/vnd.shoptet.v1.0: + application/vnd.shoptet.v1.0+json: schema: type: object additionalProperties: false @@ -6129,7 +6129,7 @@ paths: - Products requestBody: content: - application/vnd.shoptet.v1.0: + application/vnd.shoptet.v1.0+json: schema: type: object additionalProperties: false @@ -6472,7 +6472,7 @@ paths: $ref: '#/components/parameters/DefaultContentType' requestBody: content: - application/vnd.shoptet.v1.0: + application/vnd.shoptet.v1.0+json: schema: type: object required: @@ -6664,7 +6664,7 @@ paths: $ref: '#/components/parameters/DefaultContentType' requestBody: content: - application/vnd.shoptet.v1.0: + application/vnd.shoptet.v1.0+json: schema: type: object additionalProperties: false @@ -6914,7 +6914,7 @@ paths: $ref: '#/components/parameters/DefaultContentType' requestBody: content: - application/vnd.shoptet.v1.0: + application/vnd.shoptet.v1.0+json: schema: type: object additionalProperties: false @@ -7120,7 +7120,7 @@ paths: - Products requestBody: content: - application/vnd.shoptet.v1.0: + application/vnd.shoptet.v1.0+json: schema: type: object additionalProperties: false @@ -7362,7 +7362,7 @@ paths: $ref: '#/components/parameters/DefaultContentType' requestBody: content: - application/vnd.shoptet.v1.0: + application/vnd.shoptet.v1.0+json: schema: type: object additionalProperties: false @@ -7510,7 +7510,7 @@ paths: $ref: '#/components/parameters/DefaultContentType' requestBody: content: - application/vnd.shoptet.v1.0: + application/vnd.shoptet.v1.0+json: schema: type: object additionalProperties: false @@ -7698,7 +7698,7 @@ paths: $ref: '#/components/parameters/DefaultContentType' requestBody: content: - application/vnd.shoptet.v1.0: + application/vnd.shoptet.v1.0+json: schema: type: object additionalProperties: false @@ -7890,7 +7890,7 @@ paths: - Products requestBody: content: - application/vnd.shoptet.v1.0: + application/vnd.shoptet.v1.0+json: schema: type: object additionalProperties: false @@ -8074,7 +8074,7 @@ paths: $ref: '#/components/parameters/DefaultContentType' requestBody: content: - application/vnd.shoptet.v1.0: + application/vnd.shoptet.v1.0+json: schema: type: object additionalProperties: false @@ -8178,7 +8178,7 @@ paths: $ref: '#/components/parameters/DefaultContentType' requestBody: content: - application/vnd.shoptet.v1.0: + application/vnd.shoptet.v1.0+json: schema: type: object additionalProperties: false @@ -8350,7 +8350,7 @@ paths: $ref: '#/components/parameters/DefaultContentType' requestBody: content: - application/vnd.shoptet.v1.0: + application/vnd.shoptet.v1.0+json: schema: type: object additionalProperties: false @@ -8580,7 +8580,7 @@ paths: - Products requestBody: content: - application/vnd.shoptet.v1.0: + application/vnd.shoptet.v1.0+json: schema: type: object required: @@ -8644,7 +8644,7 @@ paths: - Products requestBody: content: - application/vnd.shoptet.v1.0: + application/vnd.shoptet.v1.0+json: schema: type: object required: @@ -8754,7 +8754,7 @@ paths: - Products requestBody: content: - application/vnd.shoptet.v1.0: + application/vnd.shoptet.v1.0+json: schema: type: object required: @@ -8818,7 +8818,7 @@ paths: - Products requestBody: content: - application/vnd.shoptet.v1.0: + application/vnd.shoptet.v1.0+json: schema: type: object required: @@ -8844,6 +8844,144 @@ paths: guid: $ref: '#/components/schemas/typeGuidUnlimited' description: 'Guid of new related product' + '/api/products/{guid}/set': + post: + responses: + 200: + description: OK + content: + 'application/vnd.shoptet.v1.0+json; charset=utf-8': + schema: + type: object + properties: + data: + type: object + additionalProperties: false + required: + - items + properties: + items: + $ref: '#/components/schemas/productSet' + errors: + $ref: '#/components/schemas/Errors' + required: + - data + - errors + additionalProperties: false + summary: 'Add product to product set' + operationId: add-product-to-product-set + parameters: + - + name: guid + in: path + description: 'Product guid' + required: true + example: 93bc0dbe-7481-11e8-8216-002590dad85e + schema: + type: string + description: 'This method adding product defined by product variant `code` to the bundle (product set). Parent product must be set as `product-set` and is defined by `guid`. When successfully saved, complete list of products in the set is returned in response.' + tags: + - Products + requestBody: + content: + application/vnd.shoptet.v1.0: + schema: + type: object + required: + - data + properties: + data: + type: object + required: + - setItem + additionalProperties: false + properties: + setItem: + type: object + additionalProperties: false + required: + - code + - amount + properties: + code: + type: string + description: 'product variant identifier' + examples: + - '0008' + amount: + type: string + $ref: '#/components/schemas/typePositiveAmount' + put: + responses: + 200: + description: OK + content: + 'application/vnd.shoptet.v1.0+json; charset=utf-8': + schema: + type: object + properties: + data: + type: object + additionalProperties: false + required: + - items + properties: + items: + $ref: '#/components/schemas/productSet' + errors: + $ref: '#/components/schemas/Errors' + required: + - data + - errors + additionalProperties: false + summary: 'Set products in product set' + operationId: set-product-to-product-set + parameters: + - + name: guid + in: path + description: 'Product guid' + required: true + example: 93bc0dbe-7481-11e8-8216-002590dad85e + schema: + type: string + description: 'This method set given products (minimum 0, maximum 50), defined by product variant `code` to the bundle of products (product-set). Parent product must be set as `product-set` and is defined by `guid`. When successfully saved, complete list of products in the set is returned in response.' + tags: + - Products + requestBody: + content: + application/vnd.shoptet.v1.0: + schema: + type: object + required: + - data + properties: + data: + type: object + required: + - setItems + additionalProperties: false + properties: + setItems: + type: array + minItems: 0 + maxItems: 50 + description: 'Array of new products assigned to set, minimum 0 item, maximum 50 items on request' + items: + type: object + additionalProperties: false + required: + - code + - amount + properties: + code: + type: string + description: 'product variant identifier' + examples: + - '0008' + amount: + type: string + $ref: '#/components/schemas/typePositiveAmount' /api/products/units: get: responses: @@ -8980,7 +9118,7 @@ paths: - Products requestBody: content: - application/vnd.shoptet.v1.0: + application/vnd.shoptet.v1.0+json: schema: type: object required: @@ -9038,7 +9176,7 @@ paths: - Products requestBody: content: - application/vnd.shoptet.v1.0: + application/vnd.shoptet.v1.0+json: schema: type: object required: @@ -9315,7 +9453,7 @@ paths: - 'Price lists' requestBody: content: - application/vnd.shoptet.v1.0: + application/vnd.shoptet.v1.0+json: schema: type: object required: @@ -9489,7 +9627,7 @@ paths: $ref: '#/components/parameters/DefaultContentType' requestBody: content: - application/vnd.shoptet.v1.0: + application/vnd.shoptet.v1.0+json: schema: type: object required: @@ -9511,7 +9649,7 @@ paths: - 106/BIL currencyCode: type: string - description: 'Currency code. List of available currencies within the e-shop can be found in [/api/eshop](#eshop-info) endpoint.' + description: 'Currency code. List of available currencies within the e-shop can be found in [/api/eshop](#tag/eshop/geteshopinfo) endpoint.' examples: - CZK vatRate: @@ -10157,7 +10295,7 @@ paths: additionalProperties: false summary: 'List of orders' operationId: getListOfOrders - description: "List of orders in e-shop and cash desks. Endpoint supports [pagination](/#section/Basic-principles-of-working-with-API/Paging). For default calls, it returns 20 orders,\nusing the parameter `?itemsPerPage=100`, you can request up to 100 orders at a time. Temporarily disabled, only 20 orders per page is supported. We apologize for the inconvenience.\n\nThe list can be filtered according to status, transport, payment, date of creation, order number and customer number.\n\nThe code (`code`) is the order identifier. Although this is usually a number, it is necessary to take into account that this might also include\nletters, dash, etc." + description: "List of orders in e-shop and cash desks. Endpoint supports [pagination](#section/basic-principles-of-working-with-api/Paging). For default calls, it returns 20 orders,\nusing the parameter `?itemsPerPage=100`, you can request up to 100 orders at a time. Temporarily disabled, only 20 orders per page is supported. We apologize for the inconvenience.\n\nThe list can be filtered according to status, transport, payment, date of creation, order number and customer number.\n\nThe code (`code`) is the order identifier. Although this is usually a number, it is necessary to take into account that this might also include\nletters, dash, etc." tags: - Orders parameters: @@ -10176,7 +10314,7 @@ paths: - name: shippingCompanyCode in: query - description: 'Purchase order filtering, according to forwarder [company code](/#reference/shipping-methods/shipping-methods/list-of-shipping-methods).' + description: 'Purchase order filtering, according to forwarder [company code](#tag/shipping-methods/getlistofshippingmethods).' schema: type: string - @@ -10380,7 +10518,7 @@ paths: type: - string - 'null' - description: 'VAT mode, for possible values see [VAT modes](#vat-modes)' + description: 'VAT mode, for possible values see [VAT modes](#section/code-lists/VAT-modes)' examples: - Normal billingMethod: @@ -10601,8 +10739,6 @@ paths: description: 'which page (url) has the user come from' examples: - 'https://www.google.cz/' - amountPaid: - $ref: '#/components/schemas/typePrice' paymentMethods: type: array description: 'all order payment methods' @@ -10798,7 +10934,7 @@ paths: $ref: '#/components/parameters/DefaultContentType' requestBody: content: - application/vnd.shoptet.v1.0: + application/vnd.shoptet.v1.0+json: schema: type: object required: @@ -10934,7 +11070,7 @@ paths: type: number minimum: 1 maximum: 4 - description: 'billing method - see also [Billing method](#billing-methods-invoice). Optional.' + description: 'billing method - see also [Billing method](#section/code-lists/Invoice-Billing-Methods). Optional.' examples: - 2 clientIPAddress: @@ -11283,7 +11419,7 @@ paths: itemType: type: string minLength: 1 - description: 'item type. Mandatory field. See also code list [order item types](#order-item-type). `product` item type is min required. If `billing` type is present paymentMethodGuid must be provided. If `shipping` type is present shippingGuid must be provided.' + description: 'item type. Mandatory field. See also code list [order item types](#section/code-lists/Types-of-order-items). `product` item type is min required. If `billing` type is present paymentMethodGuid must be provided. If `shipping` type is present shippingGuid must be provided.' examples: - product name: @@ -11457,7 +11593,7 @@ paths: $ref: '#/components/schemas/Errors' summary: 'List of all orders' operationId: getListOfAllOrders - description: "Using this endpoint, you can get list of all orders with detailed info of each order (like in Order Detail endpoint) asynchronously. See how [Asynchronous requests](https://developers.shoptet.com/asynchronous-requests/) work on our developer's portal.\n\nThe list may be filtered by date of creation and order code. The code is the order identifier. Although this is usually a number, it is necessary to take into account that this might also include letters, dash, etc.\n\nResponse will be in [jsonlines](https://jsonlines.org/) format with each order taking one line of output file. One order in response has the same format as order detail response (in `data` attribute)\n\nThis endpoint has several sections, which are exported only when requested in the `include` parameter (see [Requested sections](/#section/Basic-principles-of-working-with-API/Section-on-demand)).\n\nInclude parameter | Meaning\n--- | ---\n`notes` | Order remarks, including up to six additional fields, which can be freely used by e-shop for its individual needs. The field names can be defined in administration and this section returns their names.\n`images` | Order images\n`shippingDetails` | Transport details\n`stockLocation` | Position in the stock\n`surchargeParameters` | Item surcharge parameters\n`productFlags` | Item product flags\nResult file is compressed using GZIP." + description: "Using this endpoint, you can get list of all orders with detailed info of each order (like in Order Detail endpoint) asynchronously. See how [Asynchronous requests](https://developers.shoptet.com/asynchronous-requests/) work on our developer's portal.\n\nThe list may be filtered by date of creation and order code. The code is the order identifier. Although this is usually a number, it is necessary to take into account that this might also include letters, dash, etc.\n\nResponse will be in [jsonlines](https://jsonlines.org/) format with each order taking one line of output file. One order in response has the same format as order detail response (in `data` attribute)\n\nThis endpoint has several sections, which are exported only when requested in the `include` parameter (see [Requested sections](#section/basic-principles-of-working-with-api/Section-on-demand)).\n\nInclude parameter | Meaning\n--- | ---\n`notes` | Order remarks, including up to six additional fields, which can be freely used by e-shop for its individual needs. The field names can be defined in administration and this section returns their names.\n`images` | Order images\n`shippingDetails` | Transport details\n`stockLocation` | Position in the stock\n`surchargeParameters` | Item surcharge parameters\n`productFlags` | Item product flags\nResult file is compressed using GZIP." tags: - Orders parameters: @@ -11482,7 +11618,7 @@ paths: - name: shippingCompanyCode in: query - description: 'Purchase order filtering, according to forwarder [company code](/tag/Shipping-methods#operation/List%20of%20shipping%20methods).' + description: 'Purchase order filtering, according to forwarder [company code](#tag/shipping-methods/getlistofshippingmethods).' schema: type: string - @@ -11687,7 +11823,7 @@ paths: type: - string - 'null' - description: 'VAT mode, for possible values see [VAT modes](#vat-modes)' + description: 'VAT mode, for possible values see [VAT modes](#section/code-lists/VAT-modes)' examples: - Normal billingMethod: @@ -11908,8 +12044,6 @@ paths: description: 'which page (url) has the user come from' examples: - 'https://www.google.cz/' - amountPaid: - $ref: '#/components/schemas/typePrice' paymentMethods: type: array description: 'all order payment methods' @@ -12041,7 +12175,7 @@ paths: additionalProperties: false summary: 'Order detail' operationId: getOrderDetail - description: "This endpoint has several sections, which are only sent when requested in the `include` parameter (see\n[Requested sections](/#section/Basic-principles-of-working-with-API/Section-on-demand)).\n\nValue | Section\n--------|------\n`notes` | Order remarks, including up to six additional fields, which can be freely used by e-shop for its individual needs. The field names can be defined in administration and this section returns their names.\n`images`| Order images\n`shippingDetails`| Transport details\n`stockLocation`| Position in the stock\n`surchargeParameters`| Item surcharge parameters\n`productFlags`| Item product flags\n\nReturns the detail for one order. In the `items` field, the individual items of the order, including transport and payment methods.\n\nThe product name and variants, weight, manufacturer and similar items are copied into the order items when the order is made.\n Even though the products are changed later in the shop, the orders are not affected. `productGuid` item contains\nGUID of purchased product. If this is changed or deleted, the order is not affected. You have to take into account that\n\n`productGuid` does not have to refer to an existing product. The same goes for the `code` item, containing the identification of a purchased\n\nvariant or product. You have to take into account that when deleting the product or changing the `code` of the product, the reference from the order\n\nis lost. In other words, you have to take into account the fact that the `code` or `productGuid` do not have to refer to one of the currently existing\n\nproducts (variant). They may also be `null`.\n\nIn most cases the items in the response are the same as you can see in the administration of PDF printout of an order.\n\nThere are however some advanced cases (in case of coupon discount with absolute value or in case of\n\na volume discount and products with multiple VAT rates in the order), in which case they are different:\n\n- Administration and PDF will show multiple rows for the discount – for each VAT rate one row and the price field split evenly.\n\n- The API response will return only one row indicating the total price of the discount.\n\nThe difference is based on how data is internally stored and presented. The API is bases more on internal storage principle,\n\nthere is however also an array `displayPrices`, which contains the presentation (printout) version of each item.\n\nIf you state the `include=images` parameter within the URL, the information about the main image for all products in the order\n will also be part of the response. For more information about access to images go to [Product images](/#section/Product-images).\n\nIn the `shippingDetails` section, there is an information about shipping the order. `branchId` is used for the identification of the carrier's branch and\n\nnext fields are used for the detail of the branch (name, address, etc.). `carrierId` is used for the numeral identification of the carrier. Nowadays this field\n\nis used for Zasilkovna only and the value can be `null` for Czech Zasilkovna or integer for Zasilkovna in the other countries." + description: "This endpoint has several sections, which are only sent when requested in the `include` parameter (see\n[Requested sections](#section/basic-principles-of-working-with-api/Section-on-demand)).\n\nValue | Section\n--------|------\n`notes` | Order remarks, including up to six additional fields, which can be freely used by e-shop for its individual needs. The field names can be defined in administration and this section returns their names.\n`images`| Order images\n`shippingDetails`| Transport details\n`stockLocation`| Position in the stock\n`surchargeParameters`| Item surcharge parameters\n`productFlags`| Item product flags\n\nReturns the detail for one order. In the `items` field, the individual items of the order, including transport and payment methods.\n\nThe product name and variants, weight, manufacturer and similar items are copied into the order items when the order is made.\n Even though the products are changed later in the shop, the orders are not affected. `productGuid` item contains\nGUID of purchased product. If this is changed or deleted, the order is not affected. You have to take into account that\n\n`productGuid` does not have to refer to an existing product. The same goes for the `code` item, containing the identification of a purchased\n\nvariant or product. You have to take into account that when deleting the product or changing the `code` of the product, the reference from the order\n\nis lost. In other words, you have to take into account the fact that the `code` or `productGuid` do not have to refer to one of the currently existing\n\nproducts (variant). They may also be `null`.\n\nIn most cases the items in the response are the same as you can see in the administration of PDF printout of an order.\n\nThere are however some advanced cases (in case of coupon discount with absolute value or in case of\n\na volume discount and products with multiple VAT rates in the order), in which case they are different:\n\n- Administration and PDF will show multiple rows for the discount – for each VAT rate one row and the price field split evenly.\n\n- The API response will return only one row indicating the total price of the discount.\n\nThe difference is based on how data is internally stored and presented. The API is bases more on internal storage principle,\n\nthere is however also an array `displayPrices`, which contains the presentation (printout) version of each item.\n\nIf you state the `include=images` parameter within the URL, the information about the main image for all products in the order\n will also be part of the response. For more information about access to images go to [Product images](#section/Product-images).\n\nIn the `shippingDetails` section, there is an information about shipping the order. `branchId` is used for the identification of the carrier's branch and\n\nnext fields are used for the detail of the branch (name, address, etc.). `carrierId` is used for the numeral identification of the carrier. Nowadays this field\n\nis used for Zasilkovna only and the value can be `null` for Czech Zasilkovna or integer for Zasilkovna in the other countries." tags: - Orders parameters: @@ -12242,7 +12376,7 @@ paths: type: - string - 'null' - description: 'VAT mode, for possible values see [VAT modes](#vat-modes)' + description: 'VAT mode, for possible values see [VAT modes](#section/code-lists/VAT-modes)' examples: - Normal billingMethod: @@ -12463,8 +12597,6 @@ paths: description: 'which page (url) has the user come from' examples: - 'https://www.google.cz/' - amountPaid: - $ref: '#/components/schemas/typePrice' paymentMethods: type: array description: 'all order payment methods' @@ -12612,7 +12744,7 @@ paths: $ref: '#/components/parameters/DefaultContentType' requestBody: content: - application/vnd.shoptet.v1.0: + application/vnd.shoptet.v1.0+json: schema: type: object required: @@ -13004,7 +13136,7 @@ paths: type: - string - 'null' - description: 'VAT mode, for possible values see [VAT modes](#vat-modes)' + description: 'VAT mode, for possible values see [VAT modes](#section/code-lists/VAT-modes)' examples: - Normal billingMethod: @@ -13225,8 +13357,6 @@ paths: description: 'which page (url) has the user come from' examples: - 'https://www.google.cz/' - amountPaid: - $ref: '#/components/schemas/typePrice' paymentMethods: type: array description: 'all order payment methods' @@ -13390,7 +13520,7 @@ paths: $ref: '#/components/parameters/DefaultContentType' requestBody: content: - application/vnd.shoptet.v1.0: + application/vnd.shoptet.v1.0+json: schema: type: object required: @@ -13407,7 +13537,7 @@ paths: itemType: type: string minLength: 1 - description: 'item type. Mandatory field. See also code list [order item types](#order-item-type). Only `product`, `product-set`, or `service` item type is allowed.' + description: 'item type. Mandatory field. See also code list [order item types](#section/code-lists/Types-of-order-items). Only `product`, `product-set`, or `service` item type is allowed.' examples: - product code: @@ -13635,7 +13765,7 @@ paths: $ref: '#/components/parameters/DefaultContentType' requestBody: content: - application/vnd.shoptet.v1.0: + application/vnd.shoptet.v1.0+json: schema: type: object required: @@ -13651,7 +13781,7 @@ paths: itemType: type: string minLength: 1 - description: 'item type. Mandatory field. See also code list [order item types](#order-item-type). Only `product`, `product-set`, or `service` item type is allowed.' + description: 'item type. Mandatory field. See also code list [order item types](#section/code-lists/Types-of-order-items). Only `product`, `product-set`, or `service` item type is allowed.' examples: - product code: @@ -13965,7 +14095,7 @@ paths: type: - string - 'null' - description: 'VAT mode, for possible values see [VAT modes](#vat-modes)' + description: 'VAT mode, for possible values see [VAT modes](#section/code-lists/VAT-modes)' examples: - Normal billingMethod: @@ -14186,8 +14316,6 @@ paths: description: 'which page (url) has the user come from' examples: - 'https://www.google.cz/' - amountPaid: - $ref: '#/components/schemas/typePrice' paymentMethods: type: array description: 'all order payment methods' @@ -14319,7 +14447,7 @@ paths: additionalProperties: false summary: 'Order item surcharge parameters insertion' operationId: createOrderItemSurchargeParameters - description: "There is possibility to edit surcharge parameters related to order item. For that purpose, there is in get order item detail endpoint attribute `specificSurchargeParameters` which returned adjusted surcharge parameters data (see order item detail [endpoint](/tag/Orders#operation/Order%20detail))\n\nThis mean that `surchargeParameters` attribute in order detail is persistent and any adjustment in surcharge parameters appears in `specificSurchargeParameters`\n\nThis endpoint purpose is to add surcharge parameter in relation within order item.\nYou have to send one of attributes `parameterCode` with `valueIndex` or `name`. Cant send this attributes together.\nIf you post `parameterCode` and `valueIndex`, there will be validation, if surcharge parameter exits and if can be related\nto order item's product and price (if not send) will be added from surcharge parameter itself.\n\nOtherwise you can send attribute `name` instead, which could have any form, but has to be unique. If price is not send,\nthan it will be set to `0.00`." + description: "There is possibility to edit surcharge parameters related to order item. For that purpose, there is in get order item detail endpoint attribute `specificSurchargeParameters` which returned adjusted surcharge parameters data (see order item detail [endpoint](#tag/orders/getorderdetail))\n\nThis mean that `surchargeParameters` attribute in order detail is persistent and any adjustment in surcharge parameters appears in `specificSurchargeParameters`\n\nThis endpoint purpose is to add surcharge parameter in relation within order item.\nYou have to send one of attributes `parameterCode` with `valueIndex` or `name`. Cant send this attributes together.\nIf you post `parameterCode` and `valueIndex`, there will be validation, if surcharge parameter exits and if can be related\nto order item's product and price (if not send) will be added from surcharge parameter itself.\n\nOtherwise you can send attribute `name` instead, which could have any form, but has to be unique. If price is not send,\nthan it will be set to `0.00`." tags: - Orders parameters: @@ -14343,7 +14471,7 @@ paths: $ref: '#/components/parameters/DefaultContentType' requestBody: content: - application/vnd.shoptet.v1.0: + application/vnd.shoptet.v1.0+json: schema: type: object required: @@ -14565,7 +14693,7 @@ paths: type: - string - 'null' - description: 'VAT mode, for possible values see [VAT modes](#vat-modes)' + description: 'VAT mode, for possible values see [VAT modes](#section/code-lists/VAT-modes)' examples: - Normal billingMethod: @@ -14786,8 +14914,6 @@ paths: description: 'which page (url) has the user come from' examples: - 'https://www.google.cz/' - amountPaid: - $ref: '#/components/schemas/typePrice' paymentMethods: type: array description: 'all order payment methods' @@ -14935,7 +15061,7 @@ paths: $ref: '#/components/parameters/DefaultContentType' requestBody: content: - application/vnd.shoptet.v1.0: + application/vnd.shoptet.v1.0+json: schema: type: object required: @@ -15028,7 +15154,7 @@ paths: $ref: '#/components/parameters/DefaultContentType' requestBody: content: - application/vnd.shoptet.v1.0: + application/vnd.shoptet.v1.0+json: schema: type: object required: @@ -15197,7 +15323,7 @@ paths: type: - string - 'null' - description: 'VAT mode, for possible values see [VAT modes](#vat-modes)' + description: 'VAT mode, for possible values see [VAT modes](#section/code-lists/VAT-modes)' examples: - Normal billingMethod: @@ -15418,8 +15544,6 @@ paths: description: 'which page (url) has the user come from' examples: - 'https://www.google.cz/' - amountPaid: - $ref: '#/components/schemas/typePrice' paymentMethods: type: array description: 'all order payment methods' @@ -15567,7 +15691,7 @@ paths: $ref: '#/components/parameters/DefaultContentType' requestBody: content: - application/vnd.shoptet.v1.0: + application/vnd.shoptet.v1.0+json: schema: type: object required: @@ -15660,7 +15784,7 @@ paths: $ref: '#/components/parameters/DefaultContentType' requestBody: content: - application/vnd.shoptet.v1.0: + application/vnd.shoptet.v1.0+json: schema: type: object required: @@ -15934,7 +16058,7 @@ paths: $ref: '#/components/parameters/DefaultContentType' requestBody: content: - application/vnd.shoptet.v1.0: + application/vnd.shoptet.v1.0+json: schema: type: object required: @@ -16073,7 +16197,7 @@ paths: $ref: '#/components/parameters/DefaultContentType' requestBody: content: - application/vnd.shoptet.v1.0: + application/vnd.shoptet.v1.0+json: example: data: customerRemark: 'Deliver to mailing addres' @@ -16226,7 +16350,7 @@ paths: type: - string - 'null' - description: 'VAT mode, for possible values see [VAT modes](#vat-modes)' + description: 'VAT mode, for possible values see [VAT modes](#section/code-lists/VAT-modes)' examples: - Normal billingMethod: @@ -16447,8 +16571,6 @@ paths: description: 'which page (url) has the user come from' examples: - 'https://www.google.cz/' - amountPaid: - $ref: '#/components/schemas/typePrice' paymentMethods: type: array description: 'all order payment methods' @@ -16638,7 +16760,7 @@ paths: $ref: '#/components/parameters/DefaultContentType' requestBody: content: - application/vnd.shoptet.v1.0: + application/vnd.shoptet.v1.0+json: schema: type: object required: @@ -16651,7 +16773,7 @@ paths: properties: statusId: type: number - description: 'new order status. The order statuses are specific for each e-shopand it is possible to gain these from the endpoint [E-shop info](/#reference/eshop/eshop-info/eshop-info) with the `include=orderStatuses` parameter' + description: 'new order status. The order statuses are specific for each e-shopand it is possible to gain these from the endpoint [E-shop info](#tag/eshop/geteshopinfo) with the `include=orderStatuses` parameter' examples: - -1 paid: @@ -16663,7 +16785,7 @@ paths: - true billingMethodId: type: number - description: 'billing method - see also [code list for billing methods](#billing-methods-invoice).' + description: 'billing method - see also [code list for billing methods](#section/code-lists/Invoice-Billing-Methods).' examples: - 1 /api/orders/statuses: @@ -16893,7 +17015,7 @@ paths: additionalProperties: false summary: 'Last order changes' operationId: getLastOrderChanges - description: "The Endpoint is intended to determine the changes after you have loaded the complete list of orders and you need to know, if any of these has been changed (or deleted). Guaranteed history is 30 days, the older data are deleted progressively.\n\nEach order in the log is only mentioned with its last change. For example, if the order was modified and then deleted, the log will only show information about its deletion.\n\nCreation is considered as `edit` action. So, when there is a new item created, it will be displayed like `edit` action.\n\nEndpoint supports [pagination](/#section/Basic-principles-of-working-with-API/Paging)." + description: "The Endpoint is intended to determine the changes after you have loaded the complete list of orders and you need to know, if any of these has been changed (or deleted). Guaranteed history is 30 days, the older data are deleted progressively.\n\nEach order in the log is only mentioned with its last change. For example, if the order was modified and then deleted, the log will only show information about its deletion.\n\nCreation is considered as `edit` action. So, when there is a new item created, it will be displayed like `edit` action.\n\nEndpoint supports [pagination](#section/basic-principles-of-working-with-api/Paging)." tags: - Orders parameters: @@ -16973,7 +17095,7 @@ paths: - Orders requestBody: content: - application/vnd.shoptet.v1.0: + application/vnd.shoptet.v1.0+json: schema: type: object additionalProperties: false @@ -17140,7 +17262,7 @@ paths: - Orders requestBody: content: - application/vnd.shoptet.v1.0: + application/vnd.shoptet.v1.0+json: schema: type: object additionalProperties: false @@ -17274,7 +17396,7 @@ paths: additionalProperties: false summary: 'List of invoices' operationId: getListOfInvoices - description: "Returns the list of invoices with basic information. The list of invoices supports [paging](/#section/Basic-principles-of-working-with-API/Paging)\n\nThe code (`code`) is the invoice identifier. Although this is usually a number, it is necessary to take into account that this might also include letters, a dash, etc. Filtering uses string comparison with >=, <= operators." + description: "Returns the list of invoices with basic information. The list of invoices supports [paging](#section/basic-principles-of-working-with-api/Paging)\n\nThe code (`code`) is the invoice identifier. Although this is usually a number, it is necessary to take into account that this might also include letters, a dash, etc. Filtering uses string comparison with >=, <= operators." tags: - Invoices parameters: @@ -17357,7 +17479,7 @@ paths: type: string summary: 'List of all invoices' operationId: getListOfAllInvoices - description: "Using this endpoint, you can get list of all invoices with detailed info of each invoice (like in Invoice Detail endpoint) asynchronously. See how [Asynchronous requests](https://developers.shoptet.com/asynchronous-requests/) work on our developer's portal.\n\nResponse will be in [jsonlines](https://jsonlines.org/) format with each product taking one line of output file. One invoice in response has the same format as invoice detail response.\n\nResult file is compressed using GZIP.\n\nThis endpoint has several sections, which are only sent when requested in the `include` parameter (see [Requested sections](/#section/Basic-principles-of-working-with-API/Section-on-demand)).\n\nValue | Section\n--------|------\n`surchargeParameters`| Item surcharge parameters" + description: "Using this endpoint, you can get list of all invoices with detailed info of each invoice (like in Invoice Detail endpoint) asynchronously. See how [Asynchronous requests](https://developers.shoptet.com/asynchronous-requests/) work on our developer's portal.\n\nResponse will be in [jsonlines](https://jsonlines.org/) format with each product taking one line of output file. One invoice in response has the same format as invoice detail response.\n\nResult file is compressed using GZIP.\n\nThis endpoint has several sections, which are only sent when requested in the `include` parameter (see [Requested sections](#section/basic-principles-of-working-with-api/Section-on-demand)).\n\nValue | Section\n--------|------\n`surchargeParameters`| Item surcharge parameters" tags: - Invoices parameters: @@ -17708,7 +17830,7 @@ paths: instance: '000000000633' summary: 'Invoice detail' operationId: getInvoiceDetail - description: "Detailed information about one invoice.\n\nIn most cases the items in the response are the same as you can see in the administration of PDF printout of an invoice. There are however some advanced cases (in case of coupon discount with absolute value or in case of a volume discount and products with multiple VAT rates in the invoice), in which case they are different:\n\n- Administration and PDF will show multiple rows for the discount – for each VAT rate one row and the price field split evenly. - API response will return only one row indication the total discount price.\n\nThe difference is based on how data is internally stored and presented. The API is bases more on internal storage principle, there is however also an array `displayPrices`, which contains the presentation (printout) form of each item.\n\nThis endpoint has several sections, which are only sent when requested in the `include` parameter (see [Requested sections](/#section/Basic-principles-of-working-with-API/Section-on-demand)).\nValue | Section\n--------|------\n`surchargeParameters`| Item surcharge parameters" + description: "Detailed information about one invoice.\n\nIn most cases the items in the response are the same as you can see in the administration of PDF printout of an invoice. There are however some advanced cases (in case of coupon discount with absolute value or in case of a volume discount and products with multiple VAT rates in the invoice), in which case they are different:\n\n- Administration and PDF will show multiple rows for the discount – for each VAT rate one row and the price field split evenly. - API response will return only one row indication the total discount price.\n\nThe difference is based on how data is internally stored and presented. The API is bases more on internal storage principle, there is however also an array `displayPrices`, which contains the presentation (printout) form of each item.\n\nThis endpoint has several sections, which are only sent when requested in the `include` parameter (see [Requested sections](#section/basic-principles-of-working-with-api/Section-on-demand)).\nValue | Section\n--------|------\n`surchargeParameters`| Item surcharge parameters" tags: - Invoices parameters: @@ -17926,7 +18048,7 @@ paths: $ref: '#/components/parameters/DefaultContentType' requestBody: content: - application/vnd.shoptet.v1.0: + application/vnd.shoptet.v1.0+json: schema: type: object required: @@ -17968,7 +18090,7 @@ paths: type: - number - 'null' - description: "Id of [billing method](#billing-methods-invoice). Defaults to order's." + description: "Id of [billing method](#section/code-lists/Invoice-Billing-Methods). Defaults to order's." examples: - 1 proformaInvoiceCode: @@ -18229,7 +18351,7 @@ paths: $ref: '#/components/schemas/Errors' summary: 'Invoice link proof payments' operationId: invoiceLinkProofPayments - description: "Linking proof payments to invoice. Proof payments must be related to the order, must be in same currency as the order, must be valid and cannot be linked to another invoice.\n\nThis endpoint has several sections, which are only sent when requested in the `include` parameter (see [Requested sections](/#section/Basic-principles-of-working-with-API/Section-on-demand)).\nValue | Section\n--------|------\n`surchargeParameters`| Item surcharge parameters" + description: "Linking proof payments to invoice. Proof payments must be related to the order, must be in same currency as the order, must be valid and cannot be linked to another invoice.\n\nThis endpoint has several sections, which are only sent when requested in the `include` parameter (see [Requested sections](#section/basic-principles-of-working-with-api/Section-on-demand)).\nValue | Section\n--------|------\n`surchargeParameters`| Item surcharge parameters" tags: - Invoices parameters: @@ -18253,7 +18375,7 @@ paths: $ref: '#/components/parameters/DefaultContentType' requestBody: content: - application/vnd.shoptet.v1.0: + application/vnd.shoptet.v1.0+json: schema: type: object additionalProperties: false @@ -18438,7 +18560,7 @@ paths: additionalProperties: false summary: 'Last invoice changes' operationId: getLastInvoiceChanges - description: "Returns the list of invoices, which were changed (added/changed or deleted). Endpoint is intended to determine the changes after you have loaded the complete list of invoices and you need to know if any of these was been changed (or deleted). Guaranteed history is 30 days, the older data are deleted progressively.\n\nEach invoice in the log is only mentioned with its last change. For example, if the invoice was modified and then deleted, the log will only show information about its deletion.\n\nCreation is considered as `edit` action. So, when there is a new item created, it will be displayed like `edit` action.\n\nEndpoint supports [pagination](/#section/Basic-principles-of-working-with-API/Paging)." + description: "Returns the list of invoices, which were changed (added/changed or deleted). Endpoint is intended to determine the changes after you have loaded the complete list of invoices and you need to know if any of these was been changed (or deleted). Guaranteed history is 30 days, the older data are deleted progressively.\n\nEach invoice in the log is only mentioned with its last change. For example, if the invoice was modified and then deleted, the log will only show information about its deletion.\n\nCreation is considered as `edit` action. So, when there is a new item created, it will be displayed like `edit` action.\n\nEndpoint supports [pagination](#section/basic-principles-of-working-with-api/Paging)." tags: - Invoices parameters: @@ -18541,7 +18663,7 @@ paths: additionalProperties: false summary: 'List of proforma invoices' operationId: getListOfProformaInvoices - description: 'Returns the list of proforma invoices. Supports the [pagination](/#section/Basic-principles-of-working-with-API/Paging).' + description: 'Returns the list of proforma invoices. Supports the [pagination](#section/basic-principles-of-working-with-api/Paging).' tags: - 'Proforma invoices' parameters: @@ -18739,11 +18861,9 @@ paths: type: - string - 'null' - description: 'VAT mode, can be null, for possible values see [VAT modes](#vat-modes)' + description: 'VAT mode, can be null, for possible values see [VAT modes](#section/code-lists/VAT-modes)' examples: - Normal - amountPaid: - $ref: '#/components/schemas/typePrice' errors: $ref: '#/components/schemas/Errors' required: @@ -18770,7 +18890,7 @@ paths: instance: '000000000633' summary: 'Proforma invoice detail' operationId: getProformaInvoiceDetail - description: "Additional information about one proforma invoice.\nThis endpoint has several sections, which are only sent when requested in the `include` parameter (see [Requested sections](/#section/Basic-principles-of-working-with-API/Section-on-demand)).\nValue | Section\n--------|------\n`surchargeParameters`| Item surcharge parameters" + description: "Additional information about one proforma invoice.\nThis endpoint has several sections, which are only sent when requested in the `include` parameter (see [Requested sections](#section/basic-principles-of-working-with-api/Section-on-demand)).\nValue | Section\n--------|------\n`surchargeParameters`| Item surcharge parameters" tags: - 'Proforma invoices' parameters: @@ -18961,7 +19081,7 @@ paths: additionalProperties: false summary: 'List of proof payments' operationId: getListOfProofPayments - description: 'The list of proof payments supports [paging](/#section/Basic-principles-of-working-with-API/Paging).' + description: 'The list of proof payments supports [paging](#section/basic-principles-of-working-with-api/Paging).' tags: - 'Proof payments' parameters: @@ -19078,7 +19198,7 @@ paths: - 'Proof payments' requestBody: content: - application/vnd.shoptet.v1.0: + application/vnd.shoptet.v1.0+json: schema: type: object required: @@ -19110,7 +19230,7 @@ paths: - '1000.00' currencyCode: $ref: '#/components/schemas/typeCurrencyCode' - description: 'currency code. List of available currencies within the e-shop can be found in [/api/eshop](#eshop-info) endpoint.' + description: 'currency code. List of available currencies within the e-shop can be found in [/api/eshop](#tag/eshop/geteshopinfo) endpoint.' examples: - CZK varSymbol: @@ -19140,7 +19260,7 @@ paths: - 36534576 invoiceBillingMethodId: type: integer - description: 'billing method (can be `null`) - see also [Billing method](#billing-methods-invoice)' + description: 'billing method (can be `null`) - see also [Billing method](#section/code-lists/Invoice-Billing-Methods)' examples: - 4 billBankAccount: @@ -19316,7 +19436,7 @@ paths: $ref: '#/components/parameters/DefaultContentType' requestBody: content: - application/vnd.shoptet.v1.0: + application/vnd.shoptet.v1.0+json: schema: type: object required: @@ -19359,7 +19479,7 @@ paths: - 36534576 invoiceBillingMethodId: type: integer - description: 'billing method (can be `null`) - see also [Billing method](#billing-methods-invoice)' + description: 'billing method (can be `null`) - see also [Billing method](#section/code-lists/Invoice-Billing-Methods)' examples: - 4 billBankAccount: @@ -19814,7 +19934,7 @@ paths: $ref: '#/components/parameters/DefaultContentType' requestBody: content: - application/vnd.shoptet.v1.0: + application/vnd.shoptet.v1.0+json: schema: type: object required: @@ -19968,7 +20088,7 @@ paths: additionalProperties: false summary: 'Last proof payments changes' operationId: getLastProofPaymentsChanges - description: "Returns the list of proof payments, which were changed. The Endpoint is intended to determine the changes after you have loaded the list of proof payments and you need to know the changes. The guaranteed history of changes is 30 days.\n\nEach proof payment is only given in the listing with its last change. For example, if the proof payment was modified and then deleted, the listing will only show information about its deletion.\n\nCreation is considered as `edit` action. So, when there is a new item created, it will be displayed like `edit` action.\n\nEndpoint supports [paging](/#section/Basic-principles-of-working-with-API/Paging)" + description: "Returns the list of proof payments, which were changed. The Endpoint is intended to determine the changes after you have loaded the list of proof payments and you need to know the changes. The guaranteed history of changes is 30 days.\n\nEach proof payment is only given in the listing with its last change. For example, if the proof payment was modified and then deleted, the listing will only show information about its deletion.\n\nCreation is considered as `edit` action. So, when there is a new item created, it will be displayed like `edit` action.\n\nEndpoint supports [paging](#section/basic-principles-of-working-with-api/Paging)" tags: - 'Proof payments' parameters: @@ -20009,6 +20129,7 @@ paths: - varSymbol - isValid - invoiceCode + - proofPaymentCode - orderCode - creationTime - billCompany @@ -20031,10 +20152,19 @@ paths: examples: - true invoiceCode: - type: string - description: 'invoice number. Caution! This does not have to be just a number, it can also contain letters, a dash, etc.' + type: + - string + - 'null' + description: 'invoice number (can be `null`). Caution! This does not have to be just a number, it can also contain letters, a dash, etc.' examples: - '2017200011' + proofPaymentCode: + type: + - string + - 'null' + description: 'proof payment code (can be `null`). Caution! This does not have to be just a number, it can also contain letters, a dash, etc.' + examples: + - P--2017200011-1 orderCode: type: - string @@ -20111,13 +20241,19 @@ paths: description: 'filtering according to variable symbol of credit note' schema: type: string + - + name: proofPaymentCode + in: query + description: 'filtering according to proof payment code. Optional.' + schema: + type: string - $ref: '#/components/parameters/DefaultContentType' /api/credit-notes/snapshot: get: responses: - 202: - description: Accepted + 200: + description: OK content: 'application/vnd.shoptet.v1.0+json; charset=utf-8': schema: @@ -20138,7 +20274,7 @@ paths: $ref: '#/components/schemas/Errors' summary: 'List of all credit notes' operationId: getListOfAllCreditNotes - description: "Additional information about one credit notes.\nThis endpoint has several sections, which are only sent when requested in the `include` parameter (see [Requested sections](/#section/Basic-principles-of-working-with-API/Section-on-demand)).\nValue | Section\n--------|------\n`surchargeParameters`| Item surcharge parameters" + description: "Additional information about one credit notes.\nThis endpoint has several sections, which are only sent when requested in the `include` parameter (see [Requested sections](#section/basic-principles-of-working-with-api/Section-on-demand)).\nValue | Section\n--------|------\n`surchargeParameters`| Item surcharge parameters" tags: - 'Credit notes' parameters: @@ -20180,7 +20316,7 @@ paths: - name: codeTo in: query - description: 'Export credit notes with code befor given value' + description: 'Export credit notes with code before given value' example: '0000000006' schema: type: string @@ -20194,7 +20330,7 @@ paths: - name: invoiceCodeTo in: query - description: 'Export credit notes with invoice code befor given value' + description: 'Export credit notes with invoice code before given value' example: '2017000010' schema: type: string @@ -20212,6 +20348,13 @@ paths: example: '2019-09-05T00:00:00%2B0000' schema: type: string + - + name: hasProofPaymentCode + in: query + description: 'Export credit notes with or without proof payment codes only' + example: 'true' + schema: + type: boolean - name: taxDateFrom in: query @@ -20301,6 +20444,7 @@ paths: - isValid - invoiceCode - orderCode + - proofPaymentCode - creationTime - changeTime - dueDate @@ -20334,8 +20478,10 @@ paths: examples: - true invoiceCode: - type: string - description: 'invoice number. Caution! This does not have to be just a number, it can also contain letters, a dash, etc.' + type: + - string + - 'null' + description: 'invoice number (can be `null`). Caution! This does not have to be just a number, it can also contain letters, a dash, etc.' examples: - '2017200011' orderCode: @@ -20345,233 +20491,248 @@ paths: description: 'purchase order number (can be `null`). Caution! This does not have to be just a number, it can also contain letters, a dash, etc.' examples: - '2017000017' - creationTime: - $ref: '#/components/schemas/typeDateTime' - description: 'date of issue, in ISO 8601 format' - changeTime: - $ref: '#/components/schemas/typeDateTime' - description: 'date of change, in ISO 8601 format' - dueDate: + proofPaymentCode: type: - string - 'null' - $ref: '#/components/schemas/typeDate' - description: 'due date in ISO 8601 format (can be `null`)' - taxDate: - type: - - string - - 'null' - $ref: '#/components/schemas/typeDate' - description: 'taxation date in ISO 8601 format (can be `null`)' - varSymbol: - type: number - description: 'variable symbol' - examples: - - 666 - constSymbol: - type: - - integer - - 'null' - description: 'constant symbol (can be `null`)' - examples: - - 6583 - specSymbol: - type: - - number - - 'null' - description: 'specific symbol (can be `null`)' - examples: - - 36534576 - restocked: - type: boolean - description: 'Items in credit note were restocked?' + description: 'proof payment code (can be `null`). Caution! This does not have to be just a number, it can also contain letters, a dash, etc.' examples: - - true - stockAmountChangeType: - type: - - string - - 'null' - description: 'type of change in stock quantity (can `be null`)' - weight: - type: - - string - - 'null' - $ref: '#/components/schemas/typeWeightUnlimited' - completePackageWeight: - type: - - string - - 'null' - $ref: '#/components/schemas/typeWeightUnlimited' - billingMethod: - description: 'information about the method of payment (can be `null`)' - oneOf: - - - $ref: '#/components/schemas/billingMethod' - - - type: 'null' - billingAddress: - type: object - $ref: '#/components/schemas/billingAddress' - description: 'invoicing address' - deliveryAddress: - type: - - object - - 'null' - $ref: '#/components/schemas/address' - description: 'delivery address (can be `null`)' - addressesEqual: - type: boolean - description: 'Are delivery and invoicing address the same?' - examples: - - true - price: - type: object - $ref: '#/components/schemas/price' - customer: - type: object - $ref: '#/components/schemas/documentCustomer' - eshop: - type: object - $ref: '#/components/schemas/eshop' - items: - type: array - items: - $ref: '#/components/schemas/documentItemsWithPrice' - documentRemark: - type: - - string - - 'null' - description: 'remark on the document (can be `null`)' - examples: - - 'This is a remark' - vatPayer: - type: boolean - description: 'is the tradesman a VAT payer? (can be `null`)' - examples: - - true - vatMode: - type: - - string - - 'null' - description: 'VAT mode, can be null, possible values: `Normal`, `One Stop Shop`, `Mini One Stop Shop`, `Reverse charge`, `Outside the EU`' - examples: - - Normal - amountRefunded: - $ref: '#/components/schemas/typePrice' - errors: - $ref: '#/components/schemas/Errors' - required: - - data - - errors - additionalProperties: false - 404: - description: 'Not Found' - content: - 'application/vnd.shoptet.v1.0+json; charset=utf-8': - schema: - type: object - properties: - data: - type: 'null' - errors: - $ref: '#/components/schemas/Errors' - example: - data: null - errors: - - - errorCode: credit-note-not-found - message: 'Credit note with code "000000000633" not found.' - instance: '000000000633' - summary: 'Credit note detail' - operationId: getCreditNoteDetail - description: "Additional information about one credit note.\nThis endpoint has several sections, which are only sent when requested in the `include` parameter (see [Requested sections](/#section/Basic-principles-of-working-with-API/Section-on-demand)).\nValue | Section\n--------|------\n`surchargeParameters`| Item surcharge parameters" - tags: - - 'Credit notes' - parameters: - - - name: code - in: path - description: '' - required: true - example: '0000000002' - schema: - type: string - - - name: include - in: query - description: 'Sections to include' - required: false - example: surchargeParameters - schema: - type: string - - - $ref: '#/components/parameters/DefaultContentType' - patch: - responses: - 201: - description: Created - content: - 'application/vnd.shoptet.v1.0+json; charset=utf-8': - schema: - type: object - properties: - data: - type: object - additionalProperties: false - required: - - creditNote - properties: - creditNote: - type: object - required: - - code - - isValid - - invoiceCode - - orderCode - - creationTime - - changeTime - - dueDate - - taxDate - - varSymbol - - constSymbol - - specSymbol - - stockAmountChangeType - - weight - - completePackageWeight - - billingMethod - - billingAddress - - deliveryAddress - - addressesEqual - - price - - customer - - eshop - - items - - documentRemark - - vatPayer - additionalProperties: false - properties: - code: - type: string - description: 'variant code (product) (can be `null`)' - examples: - - '00000008' - isValid: - type: boolean - description: 'is the credit note valid?' - examples: - - true - invoiceCode: - type: string - description: 'invoice number. Caution! This does not have to be just a number, it can also contain letters, a dash, etc.' - examples: - - '2017200011' - orderCode: - type: - - string - - 'null' - description: 'purchase order number (can be `null`). Caution! This does not have to be just a number, it can also contain letters, a dash, etc.' - examples: - - '2017000017' + - P--2017200011-1 + creationTime: + $ref: '#/components/schemas/typeDateTime' + description: 'date of issue, in ISO 8601 format' + changeTime: + $ref: '#/components/schemas/typeDateTime' + description: 'date of change, in ISO 8601 format' + dueDate: + type: + - string + - 'null' + $ref: '#/components/schemas/typeDate' + description: 'due date in ISO 8601 format (can be `null`)' + taxDate: + type: + - string + - 'null' + $ref: '#/components/schemas/typeDate' + description: 'taxation date in ISO 8601 format (can be `null`)' + varSymbol: + type: number + description: 'variable symbol' + examples: + - 666 + constSymbol: + type: + - integer + - 'null' + description: 'constant symbol (can be `null`)' + examples: + - 6583 + specSymbol: + type: + - number + - 'null' + description: 'specific symbol (can be `null`)' + examples: + - 36534576 + restocked: + type: boolean + description: 'Items in credit note were restocked?' + examples: + - true + stockAmountChangeType: + type: + - string + - 'null' + description: 'type of change in stock quantity (can `be null`)' + weight: + type: + - string + - 'null' + $ref: '#/components/schemas/typeWeightUnlimited' + completePackageWeight: + type: + - string + - 'null' + $ref: '#/components/schemas/typeWeightUnlimited' + billingMethod: + description: 'information about the method of payment (can be `null`)' + oneOf: + - + $ref: '#/components/schemas/billingMethod' + - + type: 'null' + billingAddress: + type: object + $ref: '#/components/schemas/billingAddress' + description: 'invoicing address' + deliveryAddress: + type: + - object + - 'null' + $ref: '#/components/schemas/address' + description: 'delivery address (can be `null`)' + addressesEqual: + type: boolean + description: 'Are delivery and invoicing address the same?' + examples: + - true + price: + type: object + $ref: '#/components/schemas/price' + customer: + type: object + $ref: '#/components/schemas/documentCustomer' + eshop: + type: object + $ref: '#/components/schemas/eshop' + items: + type: array + items: + $ref: '#/components/schemas/documentItemsWithPrice' + documentRemark: + type: + - string + - 'null' + description: 'remark on the document (can be `null`)' + examples: + - 'This is a remark' + vatPayer: + type: boolean + description: 'is the tradesman a VAT payer? (can be `null`)' + examples: + - true + vatMode: + type: + - string + - 'null' + description: 'VAT mode, can be null, possible values: `Normal`, `One Stop Shop`, `Mini One Stop Shop`, `Reverse charge`, `Outside the EU`' + examples: + - Normal + errors: + $ref: '#/components/schemas/Errors' + required: + - data + - errors + additionalProperties: false + 404: + description: 'Not Found' + content: + 'application/vnd.shoptet.v1.0+json; charset=utf-8': + schema: + type: object + properties: + data: + type: 'null' + errors: + $ref: '#/components/schemas/Errors' + example: + data: null + errors: + - + errorCode: credit-note-not-found + message: 'Credit note with code "000000000633" not found.' + instance: '000000000633' + summary: 'Credit note detail' + operationId: getCreditNoteDetail + description: "Additional information about one credit note.\nThis endpoint has several sections, which are only sent when requested in the `include` parameter (see [Requested sections](#section/basic-principles-of-working-with-api/Section-on-demand)).\nValue | Section\n--------|------\n`surchargeParameters`| Item surcharge parameters" + tags: + - 'Credit notes' + parameters: + - + name: code + in: path + description: '' + required: true + example: '0000000002' + schema: + type: string + - + name: include + in: query + description: 'Sections to include' + required: false + example: surchargeParameters + schema: + type: string + - + $ref: '#/components/parameters/DefaultContentType' + patch: + responses: + 201: + description: Created + content: + 'application/vnd.shoptet.v1.0+json; charset=utf-8': + schema: + type: object + properties: + data: + type: object + additionalProperties: false + required: + - creditNote + properties: + creditNote: + type: object + required: + - code + - isValid + - invoiceCode + - orderCode + - proofPaymentCode + - creationTime + - changeTime + - dueDate + - taxDate + - varSymbol + - constSymbol + - specSymbol + - stockAmountChangeType + - weight + - completePackageWeight + - billingMethod + - billingAddress + - deliveryAddress + - addressesEqual + - price + - customer + - eshop + - items + - documentRemark + - vatPayer + additionalProperties: false + properties: + code: + type: string + description: 'variant code (product) (can be `null`)' + examples: + - '00000008' + isValid: + type: boolean + description: 'is the credit note valid?' + examples: + - true + invoiceCode: + type: + - string + - 'null' + description: 'invoice number (can be `null`). Caution! This does not have to be just a number, it can also contain letters, a dash, etc.' + examples: + - '2017200011' + orderCode: + type: + - string + - 'null' + description: 'purchase order number (can be `null`). Caution! This does not have to be just a number, it can also contain letters, a dash, etc.' + examples: + - '2017000017' + proofPaymentCode: + type: + - string + - 'null' + description: 'proof payment code (can be `null`). Caution! This does not have to be just a number, it can also contain letters, a dash, etc.' + examples: + - P--2017200011-1 creationTime: $ref: '#/components/schemas/typeDateTime' description: 'date of issue, in ISO 8601 format' @@ -20683,8 +20844,6 @@ paths: description: 'VAT mode, can be null, possible values: `Normal`, `One Stop Shop`, `Mini One Stop Shop`, `Reverse charge`, `Outside the EU`' examples: - Normal - amountRefunded: - $ref: '#/components/schemas/typePrice' errors: $ref: '#/components/schemas/Errors' required: @@ -20709,7 +20868,7 @@ paths: $ref: '#/components/parameters/DefaultContentType' requestBody: content: - application/vnd.shoptet.v1.0: + application/vnd.shoptet.v1.0+json: schema: type: object required: @@ -20749,7 +20908,7 @@ paths: - 201323134 billingMethodId: type: number - description: "Id of [billing method](#billing-methods-invoice). Defaults to order's." + description: "Id of [billing method](#section/code-lists/Invoice-Billing-Methods). Defaults to order's." examples: - 1 orderCode: @@ -20915,6 +21074,7 @@ paths: - isValid - invoiceCode - orderCode + - proofPaymentCode - creationTime - changeTime - dueDate @@ -20948,8 +21108,10 @@ paths: examples: - true invoiceCode: - type: string - description: 'invoice number. Caution! This does not have to be just a number, it can also contain letters, a dash, etc.' + type: + - string + - 'null' + description: 'invoice number (can be `null`). Caution! This does not have to be just a number, it can also contain letters, a dash, etc.' examples: - '2017200011' orderCode: @@ -20959,6 +21121,13 @@ paths: description: 'purchase order number (can be `null`). Caution! This does not have to be just a number, it can also contain letters, a dash, etc.' examples: - '2017000017' + proofPaymentCode: + type: + - string + - 'null' + description: 'proof payment code (can be `null`). Caution! This does not have to be just a number, it can also contain letters, a dash, etc.' + examples: + - P--2017200011-1 creationTime: $ref: '#/components/schemas/typeDateTime' description: 'date of issue, in ISO 8601 format' @@ -21070,8 +21239,6 @@ paths: description: 'VAT mode, can be null, possible values: `Normal`, `One Stop Shop`, `Mini One Stop Shop`, `Reverse charge`, `Outside the EU`' examples: - Normal - amountRefunded: - $ref: '#/components/schemas/typePrice' errors: $ref: '#/components/schemas/Errors' required: @@ -21096,7 +21263,7 @@ paths: $ref: '#/components/parameters/DefaultContentType' requestBody: content: - application/vnd.shoptet.v1.0: + application/vnd.shoptet.v1.0+json: schema: type: object required: @@ -21135,7 +21302,7 @@ paths: - 201323134 billingMethodId: type: number - description: 'Id of [billing method](#billing-methods-invoice). Defaults to order.' + description: 'Id of [billing method](#section/code-lists/Invoice-Billing-Methods). Defaults to order.' examples: - 1 orderCode: @@ -21170,11 +21337,11 @@ paths: description: 'Amount of given item. Optional. If the property is not provided, the amount is automatically taken from the invoice.' examples: - 1.0 - '/api/credit-notes/{code}/item': - post: + '/api/proof-payments/{code}/credit-note': + get: responses: - 200: - description: OK + 201: + description: Created content: 'application/vnd.shoptet.v1.0+json; charset=utf-8': schema: @@ -21356,6 +21523,294 @@ paths: - data - errors additionalProperties: false + 404: + description: 'Not Found' + content: + 'application/vnd.shoptet.v1.0+json; charset=utf-8': + example: + data: null + errors: + - + errorCode: proof-of-payment-not-found + message: 'Proof payment with code "P-2014000004-01" does not exist.' + instance: P-2014000004-01 + schema: + type: object + properties: + data: + type: 'null' + errors: + $ref: '#/components/schemas/Errors' + example: + data: null + errors: + - + errorCode: proof-of-payment-not-found + message: 'Proof payment with code "P-2014000004-01" does not exist.' + instance: P-2014000004-01 + summary: 'Credit note from proof of payment' + operationId: createCreditNoteFromProofOfPayment + description: "Creating credit note from existing proof of payment.\nIt will create a credit note from the given proof of payment. It will automatically take all proof of payment items and add them to the credit note." + tags: + - 'Credit notes' + - 'Proof payments' + parameters: + - + name: code + in: path + description: 'Proof of payment code' + required: true + example: P-2014000004-01 + schema: + type: string + - + $ref: '#/components/parameters/DefaultContentType' + requestBody: + content: + application/vnd.shoptet.v1.0: + schema: + type: object + required: + - data + properties: + data: + type: object + additionalProperties: false + properties: + creditNoteCode: + type: string + description: 'Credit note code. Optional, generated by eshop settings if not set.' + examples: + - '0000000099' + varSymbol: + type: number + minimum: 0 + maximum: 9999999999 + description: 'Variable symbol. Optional, generated by eshop settings if not set.' + examples: + - 99 + dueDate: + $ref: '#/components/schemas/typeDate' + description: 'Due date. Optional, generated by eshop settings if not set.' + taxDate: + $ref: '#/components/schemas/typeDate' + description: 'Date of taxation. Optional, default is today.' + constSymbol: + $ref: '#/components/schemas/typeConstSymbol' + description: 'Constant symbol. Optional' + specSymbol: + type: number + minimum: 0 + maximum: 9999999999 + description: 'Specific symbol. Optional' + examples: + - 201323134 + billingMethodId: + type: number + description: 'Id of [billing method](#billing-methods-invoice). Optional.' + examples: + - 1 + orderCode: + type: string + minLength: 1 + maxLength: 10 + description: "Order Code. Optional, defaults to proof payment's order code if not set." + examples: + - '201323134' + '/api/credit-notes/{code}/item': + post: + responses: + 200: + description: OK + content: + 'application/vnd.shoptet.v1.0+json; charset=utf-8': + schema: + type: object + properties: + data: + type: object + additionalProperties: false + required: + - creditNote + properties: + creditNote: + type: object + required: + - code + - isValid + - invoiceCode + - orderCode + - proofPaymentCode + - creationTime + - changeTime + - dueDate + - taxDate + - varSymbol + - constSymbol + - specSymbol + - stockAmountChangeType + - weight + - completePackageWeight + - billingMethod + - billingAddress + - deliveryAddress + - addressesEqual + - price + - customer + - eshop + - items + - documentRemark + - vatPayer + additionalProperties: false + properties: + code: + type: string + description: 'variant code (product) (can be `null`)' + examples: + - '00000008' + isValid: + type: boolean + description: 'is the credit note valid?' + examples: + - true + invoiceCode: + type: + - string + - 'null' + description: 'invoice number (can be `null`). Caution! This does not have to be just a number, it can also contain letters, a dash, etc.' + examples: + - '2017200011' + orderCode: + type: + - string + - 'null' + description: 'purchase order number (can be `null`). Caution! This does not have to be just a number, it can also contain letters, a dash, etc.' + examples: + - '2017000017' + proofPaymentCode: + type: + - string + - 'null' + description: 'proof payment code (can be `null`). Caution! This does not have to be just a number, it can also contain letters, a dash, etc.' + examples: + - P--2017200011-1 + creationTime: + $ref: '#/components/schemas/typeDateTime' + description: 'date of issue, in ISO 8601 format' + changeTime: + $ref: '#/components/schemas/typeDateTime' + description: 'date of change, in ISO 8601 format' + dueDate: + type: + - string + - 'null' + $ref: '#/components/schemas/typeDate' + description: 'due date in ISO 8601 format (can be `null`)' + taxDate: + type: + - string + - 'null' + $ref: '#/components/schemas/typeDate' + description: 'taxation date in ISO 8601 format (can be `null`)' + varSymbol: + type: number + description: 'variable symbol' + examples: + - 666 + constSymbol: + type: + - integer + - 'null' + description: 'constant symbol (can be `null`)' + examples: + - 6583 + specSymbol: + type: + - number + - 'null' + description: 'specific symbol (can be `null`)' + examples: + - 36534576 + restocked: + type: boolean + description: 'Items in credit note were restocked?' + examples: + - true + stockAmountChangeType: + type: + - string + - 'null' + description: 'type of change in stock quantity (can `be null`)' + weight: + type: + - string + - 'null' + $ref: '#/components/schemas/typeWeightUnlimited' + completePackageWeight: + type: + - string + - 'null' + $ref: '#/components/schemas/typeWeightUnlimited' + billingMethod: + description: 'information about the method of payment (can be `null`)' + oneOf: + - + $ref: '#/components/schemas/billingMethod' + - + type: 'null' + billingAddress: + type: object + $ref: '#/components/schemas/billingAddress' + description: 'invoicing address' + deliveryAddress: + type: + - object + - 'null' + $ref: '#/components/schemas/address' + description: 'delivery address (can be `null`)' + addressesEqual: + type: boolean + description: 'Are delivery and invoicing address the same?' + examples: + - true + price: + type: object + $ref: '#/components/schemas/price' + customer: + type: object + $ref: '#/components/schemas/documentCustomer' + eshop: + type: object + $ref: '#/components/schemas/eshop' + items: + type: array + items: + $ref: '#/components/schemas/documentItemsWithPrice' + documentRemark: + type: + - string + - 'null' + description: 'remark on the document (can be `null`)' + examples: + - 'This is a remark' + vatPayer: + type: boolean + description: 'is the tradesman a VAT payer? (can be `null`)' + examples: + - true + vatMode: + type: + - string + - 'null' + description: 'VAT mode, can be null, possible values: `Normal`, `One Stop Shop`, `Mini One Stop Shop`, `Reverse charge`, `Outside the EU`' + examples: + - Normal + errors: + $ref: '#/components/schemas/Errors' + required: + - data + - errors + additionalProperties: false summary: 'Creation of credit note item' operationId: createCreditNoteItem description: 'Creates a new credit note item to an existing credit note.' @@ -21374,7 +21829,7 @@ paths: $ref: '#/components/parameters/DefaultContentType' requestBody: content: - application/vnd.shoptet.v1.0: + application/vnd.shoptet.v1.0+json: schema: type: object required: @@ -21511,7 +21966,7 @@ paths: $ref: '#/components/parameters/DefaultContentType' requestBody: content: - application/vnd.shoptet.v1.0: + application/vnd.shoptet.v1.0+json: schema: type: object required: @@ -21758,7 +22213,7 @@ paths: additionalProperties: false summary: 'Last credit note changes' operationId: getLastCreditNoteChanges - description: "Returns the list of credit notes, which were changed. The Endpoint is intended to determine the changes after you have loaded the list of credit notes and you need to know the changes. The guaranteed history of changes is 30 days.\n\nEach credit note is only given in the listing with its last change. For example, if the credit note was modified and then deleted, the listing will only show information about its deletion.\n\nCreation is considered as `edit` action. So, when there is a new item created, it will be displayed like `edit` action.\n\nEndpoint supports [pagination](/#section/Basic-principles-of-working-with-API/Paging)." + description: "Returns the list of credit notes, which were changed. The Endpoint is intended to determine the changes after you have loaded the list of credit notes and you need to know the changes. The guaranteed history of changes is 30 days.\n\nEach credit note is only given in the listing with its last change. For example, if the credit note was modified and then deleted, the listing will only show information about its deletion.\n\nCreation is considered as `edit` action. So, when there is a new item created, it will be displayed like `edit` action.\n\nEndpoint supports [pagination](#section/basic-principles-of-working-with-api/Paging)." tags: - 'Credit notes' parameters: @@ -21846,7 +22301,7 @@ paths: additionalProperties: false summary: 'List of delivery notes' operationId: getListOfDeliveryNotes - description: 'The list of delivery notes supports the [paging](/#section/Basic-principles-of-working-with-API/Paging).' + description: 'The list of delivery notes supports the [paging](#section/basic-principles-of-working-with-api/Paging).' tags: - 'Delivery notes' parameters: @@ -22083,7 +22538,7 @@ paths: instance: '000000000633' summary: 'Detail of delivery note' operationId: getDetailOfDeliveryNote - description: "Additional information about one delivery note.\nThis endpoint has several sections, which are only sent when requested in the `include` parameter (see [Requested sections](/#section/Basic-principles-of-working-with-API/Section-on-demand)).\nValue | Section\n--------|------\n`surchargeParameters`| Item surcharge parameters" + description: "Additional information about one delivery note.\nThis endpoint has several sections, which are only sent when requested in the `include` parameter (see [Requested sections](#section/basic-principles-of-working-with-api/Section-on-demand)).\nValue | Section\n--------|------\n`surchargeParameters`| Item surcharge parameters" tags: - 'Delivery notes' parameters: @@ -22192,7 +22647,7 @@ paths: additionalProperties: false summary: 'List of stocks' operationId: getListOfStocks - description: 'Returns the list of stocks. There are usually not many stocks, therefore the endpoint returns all of them without [paging](/#section/Basic-principles-of-working-with-API/Paging).' + description: 'Returns the list of stocks. There are usually not many stocks, therefore the endpoint returns all of them without [paging](#section/basic-principles-of-working-with-api/Paging).' tags: - Stocks parameters: @@ -22331,7 +22786,7 @@ paths: additionalProperties: false summary: 'Stock movements' operationId: getStockMovements - description: "It returns the list of changes in product quantity, which were done within one stock. Supports the [paging](/#section/Basic-principles-of-working-with-API/Paging) `movements`.\nThis endpoint supports optional parts using the `include` parameter (see [Requested sections](/#section/Basic-principles-of-working-with-API/Section-on-demand)). Please note that there is some performance penalty associated with the usage of \"orderCode\" `include` and/or query `parameter`." + description: "It returns the list of changes in product quantity, which were done within one stock. Supports the [paging](#section/basic-principles-of-working-with-api/Paging) `movements`.\nThis endpoint supports optional parts using the `include` parameter (see [Requested sections](#section/basic-principles-of-working-with-api/Section-on-demand)). Please note that there is some performance penalty associated with the usage of \"orderCode\" `include` and/or query `parameter`." tags: - Stocks parameters: @@ -22450,7 +22905,7 @@ paths: $ref: '#/components/parameters/DefaultContentType' requestBody: content: - application/vnd.shoptet.v1.0: + application/vnd.shoptet.v1.0+json: schema: type: object required: @@ -22636,7 +23091,7 @@ paths: additionalProperties: false summary: 'Product supplies in stock' operationId: getProductSuppliesInStock - description: "Returns the product supplies in stock for all products in a specific stock, contains GUID, code and quantity in stock for a specific product variant. It is possible to filter the specific GUID of a product, possibly a variant code. The endpoint supports [paging](/#section/Basic-principles-of-working-with-API/Paging), in case of filtering, the amount of items per page increases.\n\nThis endpoint supports optional parts using the `include` parameter (see [Requested sections](/#section/Basic-principles-of-working-with-API/Section-on-demand)). The `changeTime` item is always temporarily returned, however as of 16. 3. 2019 only upon using the `include` parameter.\n\nIf you defined the `include=changeTime` parameter within the URL, the response will also contain the time when the last quantity in stock was changed." + description: "Returns the product supplies in stock for all products in a specific stock, contains GUID, code and quantity in stock for a specific product variant. It is possible to filter the specific GUID of a product, possibly a variant code. The endpoint supports [paging](#section/basic-principles-of-working-with-api/Paging), in case of filtering, the amount of items per page increases.\n\nThis endpoint supports optional parts using the `include` parameter (see [Requested sections](#section/basic-principles-of-working-with-api/Section-on-demand)). The `changeTime` item is always temporarily returned, however as of 16. 3. 2019 only upon using the `include` parameter.\n\nIf you defined the `include=changeTime` parameter within the URL, the response will also contain the time when the last quantity in stock was changed." tags: - Stocks parameters: @@ -22707,7 +23162,7 @@ paths: additionalProperties: false summary: 'List of suppliers' operationId: getListOfSuppliers - description: 'Returns the list of suppliers. Supports the [paging](/#section/Basic-principles-of-working-with-API/Paging)' + description: 'Returns the list of suppliers. Supports the [paging](#section/basic-principles-of-working-with-api/Paging)' tags: - Suppliers /api/brands: @@ -22741,7 +23196,7 @@ paths: additionalProperties: false summary: 'List of brands' operationId: getListofBrands - description: 'Returns the list of brands. Supports the [paging](/#section/Basic-principles-of-working-with-API/Paging)' + description: 'Returns the list of brands. Supports the [paging](#section/basic-principles-of-working-with-api/Paging)' tags: - Brands parameters: @@ -22771,7 +23226,7 @@ paths: - Brands requestBody: content: - application/vnd.shoptet.v1.0: + application/vnd.shoptet.v1.0+json: schema: type: object required: @@ -22949,7 +23404,7 @@ paths: $ref: '#/components/parameters/DefaultContentType' requestBody: content: - application/vnd.shoptet.v1.0: + application/vnd.shoptet.v1.0+json: schema: type: object required: @@ -23126,7 +23581,7 @@ paths: - Brands requestBody: content: - application/vnd.shoptet.v1.0: + application/vnd.shoptet.v1.0+json: schema: type: object additionalProperties: false @@ -23209,7 +23664,7 @@ paths: additionalProperties: false summary: 'List of customers' operationId: getListOfCustomers - description: 'Listing of customers. Supports the [paging](/#section/Basic-principles-of-working-with-API/Paging).' + description: 'Listing of customers. Supports the [paging](#section/basic-principles-of-working-with-api/Paging).' tags: - Customers parameters: @@ -23432,7 +23887,7 @@ paths: $ref: '#/components/parameters/DefaultContentType' requestBody: content: - application/vnd.shoptet.v1.0: + application/vnd.shoptet.v1.0+json: schema: type: object additionalProperties: false @@ -24009,7 +24464,7 @@ paths: $ref: '#/components/parameters/DefaultContentType' requestBody: content: - application/vnd.shoptet.v1.0: + application/vnd.shoptet.v1.0+json: schema: type: object additionalProperties: false @@ -24171,7 +24626,7 @@ paths: additionalProperties: false summary: 'List of customer accounts' operationId: getListOfCustomerAccounts - description: 'List of customer accounts supports the [paging](/#section/Basic-principles-of-working-with-API/Paging).' + description: 'List of customer accounts supports the [paging](#section/basic-principles-of-working-with-api/Paging).' tags: - Customers parameters: @@ -24273,7 +24728,7 @@ paths: $ref: '#/components/parameters/DefaultContentType' requestBody: content: - application/vnd.shoptet.v1.0: + application/vnd.shoptet.v1.0+json: schema: type: object additionalProperties: false @@ -24517,7 +24972,7 @@ paths: $ref: '#/components/parameters/DefaultContentType' requestBody: content: - application/vnd.shoptet.v1.0: + application/vnd.shoptet.v1.0+json: schema: type: object additionalProperties: false @@ -24642,7 +25097,7 @@ paths: additionalProperties: false summary: 'List of customer delivery addresses' operationId: geListOfCustomerDeliveryAddresses - description: 'List of customer delivery addresses, supports the [paging](/#section/Basic-principles-of-working-with-API/Paging).' + description: 'List of customer delivery addresses, supports the [paging](#section/basic-principles-of-working-with-api/Paging).' tags: - Customers parameters: @@ -24697,7 +25152,7 @@ paths: $ref: '#/components/parameters/DefaultContentType' requestBody: content: - application/vnd.shoptet.v1.0: + application/vnd.shoptet.v1.0+json: schema: type: object additionalProperties: false @@ -24896,7 +25351,7 @@ paths: $ref: '#/components/parameters/DefaultContentType' requestBody: content: - application/vnd.shoptet.v1.0: + application/vnd.shoptet.v1.0+json: schema: type: object additionalProperties: false @@ -25090,7 +25545,7 @@ paths: additionalProperties: false summary: 'List of customer remarks' operationId: getListOfCustomerRemarks - description: 'List of customer remarks, supports the [paging](/#section/Basic-principles-of-working-with-API/Paging).' + description: 'List of customer remarks, supports the [paging](#section/basic-principles-of-working-with-api/Paging).' tags: - Customers parameters: @@ -25166,7 +25621,7 @@ paths: $ref: '#/components/parameters/DefaultContentType' requestBody: content: - application/vnd.shoptet.v1.0: + application/vnd.shoptet.v1.0+json: schema: type: object properties: @@ -25335,7 +25790,7 @@ paths: $ref: '#/components/parameters/DefaultContentType' requestBody: content: - application/vnd.shoptet.v1.0: + application/vnd.shoptet.v1.0+json: schema: type: object additionalProperties: false @@ -25450,7 +25905,7 @@ paths: additionalProperties: false summary: 'Last customer changes' operationId: getLastCustomerChanges - description: "Returns the list of customers who have been changed (added/changed or deleted). The Endpoint is intended to determine the changes after you have loaded the complete list of customers and you need to know, if any of these has been changed (or added or deleted). Guaranteed history is 30 days, the older data are deleted progressively.\n\nEach customer in the log is only mentioned with their last change. For example, if the customer was modified and then deleted, the log will only show information about the deletion.\nCreation is considered as `edit` action. So, when there is a new item created, it will be displayed like `edit` action.\n\nEndpoint supports [paging](/#section/Basic-principles-of-working-with-API/Paging)." + description: "Returns the list of customers who have been changed (added/changed or deleted). The Endpoint is intended to determine the changes after you have loaded the complete list of customers and you need to know, if any of these has been changed (or added or deleted). Guaranteed history is 30 days, the older data are deleted progressively.\n\nEach customer in the log is only mentioned with their last change. For example, if the customer was modified and then deleted, the log will only show information about the deletion.\nCreation is considered as `edit` action. So, when there is a new item created, it will be displayed like `edit` action.\n\nEndpoint supports [paging](#section/basic-principles-of-working-with-api/Paging)." tags: - Customers parameters: @@ -25775,7 +26230,7 @@ paths: - Templates requestBody: content: - application/vnd.shoptet.v1.0: + application/vnd.shoptet.v1.0+json: schema: type: object additionalProperties: false @@ -25981,7 +26436,7 @@ paths: $ref: '#/components/parameters/DefaultContentType' requestBody: content: - application/vnd.shoptet.v1.0: + application/vnd.shoptet.v1.0+json: schema: type: object required: @@ -26080,7 +26535,7 @@ paths: - Webhooks requestBody: content: - application/vnd.shoptet.v1.0: + application/vnd.shoptet.v1.0+json: schema: type: object additionalProperties: false @@ -26098,7 +26553,7 @@ paths: properties: event: type: string - description: 'event, see [webhook event types](#webhook-event-type)' + description: 'event, see [webhook event types](#section/code-lists/Webhook-event-types)' examples: - order.created - order.updated @@ -26233,7 +26688,7 @@ paths: $ref: '#/components/parameters/DefaultContentType' requestBody: content: - application/vnd.shoptet.v1.0: + application/vnd.shoptet.v1.0+json: schema: type: object additionalProperties: false @@ -26629,7 +27084,7 @@ paths: - 'Shipping methods' requestBody: content: - application/vnd.shoptet.v1.0: + application/vnd.shoptet.v1.0+json: schema: type: object required: @@ -26794,7 +27249,7 @@ paths: - '40' itemType: type: string - description: 'see also [Product type code list](#product-item-types)' + description: 'see also [Product type code list](#section/code-lists/Product-types)' examples: - product name: @@ -26981,7 +27436,7 @@ paths: $ref: '#/components/parameters/DefaultContentType' requestBody: content: - application/vnd.shoptet.v1.0: + application/vnd.shoptet.v1.0+json: schema: type: object required: @@ -27490,7 +27945,7 @@ paths: - 'Payment methods' requestBody: content: - application/vnd.shoptet.v1.0: + application/vnd.shoptet.v1.0+json: schema: type: object required: @@ -27694,7 +28149,7 @@ paths: - 'Unsubscribed emails' requestBody: content: - application/vnd.shoptet.v1.0: + application/vnd.shoptet.v1.0+json: schema: type: object additionalProperties: false @@ -27815,7 +28270,7 @@ paths: - 'E-mail distribution lists' requestBody: content: - application/vnd.shoptet.v1.0: + application/vnd.shoptet.v1.0+json: schema: type: object required: @@ -27888,7 +28343,7 @@ paths: additionalProperties: false summary: 'Detail of e-mail distribution list' operationId: getDetailOfEmailDistributionList - description: "This endpoint returns a list of e-mail addresses of the distribution list.\n\nUpon initial call, it returns up to 500 e-mail addresses; using the `?itemsPerPage=20` parameter, you can requests any number of records per page, up to 500 items limit.\n\nEndpoint supports [paging](/#section/Basic-principles-of-working-with-API/Paging)." + description: "This endpoint returns a list of e-mail addresses of the distribution list.\n\nUpon initial call, it returns up to 500 e-mail addresses; using the `?itemsPerPage=20` parameter, you can requests any number of records per page, up to 500 items limit.\n\nEndpoint supports [paging](#section/basic-principles-of-working-with-api/Paging)." tags: - 'E-mail distribution lists' parameters: @@ -27964,7 +28419,7 @@ paths: $ref: '#/components/parameters/DefaultContentType' requestBody: content: - application/vnd.shoptet.v1.0: + application/vnd.shoptet.v1.0+json: schema: type: object required: @@ -28031,7 +28486,7 @@ paths: additionalProperties: false summary: 'Last changes in distribution list' operationId: getLastChangesInDistributionList - description: "Endpoint is intended to determine the changes after you load the complete e-mail list and you need to know if any of these e-mails were added or removed. Guaranteed history is 30 days, the older data are deleted progressively.\n\nEach e-mail on single e-mail list is only mentioned with its last change, within the log. For example, if the e-mail is deleted and then added again, the log will only show information about its addition. The e-mail lists are not dependant on each other (removing an e-mail from one list does not cause any change in another list, unless the e-mail was originally included in both).\n\n**For \"created\" action, we use `edit` change type.**\n\nEndpoint supports [paging](/#section/Basic-principles-of-working-with-API/Paging)." + description: "Endpoint is intended to determine the changes after you load the complete e-mail list and you need to know if any of these e-mails were added or removed. Guaranteed history is 30 days, the older data are deleted progressively.\n\nEach e-mail on single e-mail list is only mentioned with its last change, within the log. For example, if the e-mail is deleted and then added again, the log will only show information about its addition. The e-mail lists are not dependant on each other (removing an e-mail from one list does not cause any change in another list, unless the e-mail was originally included in both).\n\n**For \"created\" action, we use `edit` change type.**\n\nEndpoint supports [paging](#section/basic-principles-of-working-with-api/Paging)." tags: - 'E-mail distribution lists' parameters: @@ -28073,102 +28528,7 @@ paths: coupons: type: array items: - type: object - additionalProperties: false - required: - - code - - creationTime - - discountType - - amount - - ratio - - minPrice - - currency - - template - - shippingPrice - - validFrom - - validTo - - reusable - - usedCount - - remark - properties: - code: - type: string - description: 'code of discount coupon' - examples: - - DC14585431 - creationTime: - $ref: '#/components/schemas/typeDateTime' - description: 'date and time, when the discount coupon was created' - discountType: - type: string - enum: - - percentual - - fixed - description: 'type of discount. Percentual (`percentual`) or absolute discount (`fixed`)' - examples: - - percentual - amount: - type: - - string - - 'null' - $ref: '#/components/schemas/typePrice' - description: 'amount of absolute discount (default eshop VAT rate is used)' - ratio: - type: - - string - - 'null' - $ref: '#/components/schemas/typePriceRatio' - description: 'amount of percentual discount' - minPrice: - type: - - string - - 'null' - $ref: '#/components/schemas/typePrice' - description: 'minimum price of order (default eshop VAT rate is used)' - currency: - type: - - string - - 'null' - $ref: '#/components/schemas/typeCurrencyCode' - description: 'currency of fixed discount.' - template: - $ref: '#/components/schemas/typeGuid' - description: 'template used for the discount coupon creation.' - shippingPrice: - type: - - string - - 'null' - enum: - - cart - - free - - beforeDiscount - - null - description: 'how the transport prices are calculated: according to the cart before discounts (beforeDiscount), according to the displayed value of the cart (cart), or free (free)' - examples: - - cart - validFrom: - $ref: '#/components/schemas/typeDate' - description: 'starting date of coupon validity' - validTo: - $ref: '#/components/schemas/typeDate' - description: 'ending date of coupon validity' - reusable: - type: boolean - description: 'Is the discount coupon reusable?' - examples: - - true - usedCount: - type: integer - description: 'number of times the discount coupon has been used' - examples: - - 0 - remark: - type: - - string - - 'null' - description: 'remark for the discount coupon.' - examples: - - 'Note: This is a test discount coupon' + $ref: '#/components/schemas/discountCoupon' paginator: $ref: '#/components/schemas/paginator' errors: @@ -28354,7 +28714,7 @@ paths: - 'Discount coupons' requestBody: content: - application/vnd.shoptet.v1.0: + application/vnd.shoptet.v1.0+json: schema: type: object additionalProperties: false @@ -28580,6 +28940,63 @@ paths: - $ref: '#/components/parameters/DefaultContentType' '/api/discount-coupons/{code}': + get: + responses: + 200: + description: OK + content: + 'application/vnd.shoptet.v1.0+json; charset=utf-8': + schema: + type: object + properties: + data: + type: object + additionalProperties: false + required: + - coupon + properties: + coupon: + $ref: '#/components/schemas/discountCoupon' + errors: + $ref: '#/components/schemas/Errors' + required: + - data + - errors + additionalProperties: false + 404: + description: 'Not Found' + content: + 'application/vnd.shoptet.v1.0+json; charset=utf-8': + schema: + type: object + properties: + data: + type: 'null' + errors: + $ref: '#/components/schemas/Errors' + example: + data: null + errors: + - + errorCode: discount-coupon-not-found + message: 'Discount coupon with code "AB12345" was not found.' + instance: AB12345 + summary: 'Detail of discount coupon' + operationId: getDetailOfDiscountCoupon + description: 'Detail of discount coupon within the e-shop.' + tags: + - 'Discount coupons' + parameters: + - + name: code + in: path + description: 'discount coupon code' + required: true + example: ABCDEF12 + schema: + type: string + - + $ref: '#/components/parameters/DefaultContentType' delete: responses: 200: @@ -28759,7 +29176,7 @@ paths: - 'Discount coupons' requestBody: content: - application/vnd.shoptet.v1.0: + application/vnd.shoptet.v1.0+json: schema: type: object additionalProperties: false @@ -28952,7 +29369,7 @@ paths: $ref: '#/components/parameters/DefaultContentType' requestBody: content: - application/vnd.shoptet.v1.0: + application/vnd.shoptet.v1.0+json: schema: type: object additionalProperties: false @@ -29204,7 +29621,7 @@ paths: - 'Discount coupons' requestBody: content: - application/vnd.shoptet.v1.0: + application/vnd.shoptet.v1.0+json: schema: type: object additionalProperties: false @@ -29508,7 +29925,7 @@ paths: - 'X + Y discounts' requestBody: content: - application/vnd.shoptet.v1.0: + application/vnd.shoptet.v1.0+json: schema: type: object additionalProperties: false @@ -29726,7 +30143,7 @@ paths: $ref: '#/components/parameters/DefaultContentType' requestBody: content: - application/vnd.shoptet.v1.0: + application/vnd.shoptet.v1.0+json: schema: type: object properties: @@ -30045,7 +30462,7 @@ paths: - 'X + Y discounts' requestBody: content: - application/vnd.shoptet.v1.0: + application/vnd.shoptet.v1.0+json: schema: type: object additionalProperties: false @@ -30122,7 +30539,7 @@ paths: additionalProperties: false summary: 'List of articles' operationId: getListOfArticles - description: 'Returns a list of articles with basic info. Supports [paging](/#section/Basic-principles-of-working-with-API/Paging)' + description: 'Returns a list of articles with basic info. Supports [paging](#section/basic-principles-of-working-with-api/Paging)' tags: - Articles parameters: @@ -30195,7 +30612,7 @@ paths: - Articles requestBody: content: - application/vnd.shoptet.v1.0: + application/vnd.shoptet.v1.0+json: schema: type: object required: @@ -30509,6 +30926,479 @@ paths: $ref: '#/components/parameters/DefaultContentType' tags: - Articles + requestBody: + content: + application/vnd.shoptet.v1.0+json: + schema: + type: object + required: + - data + properties: + data: + type: object + additionalProperties: false + minProperties: 1 + properties: + title: + type: string + description: 'Title of the article' + examples: + - Test + language: + type: string + description: 'Language of the article' + examples: + - cs + defaultSectionId: + type: number + description: 'Id of the section' + examples: + - 682 + sectionId: + type: number + description: 'Id of the section. DEPRECATED - use defaultSectionId instead' + examples: + - 682 + sectionIds: + type: array + description: 'Id of the section' + minItems: 1 + items: + type: number + examples: + - '682' + indexName: + type: string + description: 'ending part of article URL' + examples: + - test + redirectUrl: + type: + - string + - 'null' + description: 'canonical URL for redirecting' + examples: + - 'https://www.someurl.com' + content: + type: + - string + - 'null' + description: 'Content of the article' + examples: + - '

Content of the article

' + metaTitle: + type: + - string + - 'null' + description: 'Meta title of the article' + examples: + - 'Test article' + metaKeywords: + type: + - string + - 'null' + description: 'Keywords of the article' + examples: + - test + metaDescription: + type: + - string + - 'null' + description: 'Meta description of the article' + examples: + - 'Test article' + publishDate: + type: + - string + - 'null' + $ref: '#/components/schemas/typeDateTime' + description: 'Date of publishing' + visible: + type: boolean + description: 'Flag whether the article is visible on web' + examples: + - true + access: + enum: + - all + - logged-in + - logged-out + description: "Flag indicating, whether the article can be viewed by everyone (value of the flag is: 'all'), by logged in users only ('logged-in'), or by logged out users only ('logged-out')" + examples: + - logged-in + delete: + responses: + 200: + description: OK + content: + 'application/vnd.shoptet.v1.0+json; charset=utf-8': + schema: + type: object + properties: + data: + type: 'null' + additionalProperties: false + errors: + $ref: '#/components/schemas/Errors' + required: + - data + - errors + additionalProperties: false + summary: 'Delete of article' + operationId: deleteArticle + description: 'Deletes the article.' + parameters: + - + name: articleId + in: path + description: 'article ID' + required: true + example: '1' + schema: + type: number + - + $ref: '#/components/parameters/DefaultContentType' + tags: + - Articles + /api/articles/sections: + get: + responses: + 200: + description: OK + content: + 'application/vnd.shoptet.v1.0+json; charset=utf-8': + schema: + type: object + properties: + data: + type: object + additionalProperties: false + required: + - sections + properties: + sections: + type: array + items: + $ref: '#/components/schemas/articleSectionList' + errors: + $ref: '#/components/schemas/Errors' + required: + - data + - errors + additionalProperties: false + summary: 'List of article sections' + operationId: getListOfArticleSections + description: 'Returns a list of article sections.' + tags: + - Articles + post: + responses: + 201: + description: Created + content: + 'application/vnd.shoptet.v1.0+json; charset=utf-8': + schema: + type: object + properties: + data: + type: object + required: + - articleSection + additionalProperties: false + properties: + articleSection: + $ref: '#/components/schemas/articleSection' + errors: + $ref: '#/components/schemas/Errors' + required: + - data + - errors + additionalProperties: false + 422: + description: 'Unprocessable Entity' + content: + 'application/vnd.shoptet.v1.0+json; charset=utf-8': + schema: + type: object + properties: + data: + type: + - object + - 'null' + errors: + type: array + items: + type: object + properties: + errorCode: + type: string + message: + type: string + instance: + type: string + example: + data: 'null' + errors: + - + errorCode: invalid-request-data + message: 'Parent section does not exist.' + instance: integration-call + - + errorCode: invalid-request-data + message: 'The property title is required' + instance: integration-call + summary: 'Insert of article section' + operationId: createArticleSection + description: 'Creates a new article section.' + tags: + - Articles + requestBody: + content: + application/vnd.shoptet.v1.0: + schema: + type: object + required: + - data + properties: + data: + type: object + additionalProperties: false + minProperties: 1 + required: + - title + properties: + title: + type: string + description: 'article section title' + examples: + - Test + language: + type: string + description: 'article section language' + examples: + - cs + parentId: + type: + - number + - 'null' + description: 'ID of the parent article section' + examples: + - '1' + indexName: + type: + - string + - 'null' + description: 'ending part of article section URL' + examples: + - new-article + description: + type: + - string + - 'null' + description: 'article section content' + examples: + - '

Content of the article section

' + secondDescription: + type: + - string + - 'null' + description: 'article section second content' + examples: + - '

Content of the second article section

' + limit: + type: + - number + - 'null' + description: 'Number of articles displayed in the listing' + examples: + - 4 + homepageLimit: + type: + - number + - 'null' + description: 'Number of articles displayed on the homepage' + examples: + - 4 + sorting: + enum: + - alphabetically + - newest-first + - oldest-first + description: 'Article sorting in the listing' + examples: + - alphabetically + perexLimit: + type: + - number + - 'null' + description: 'Number of character displayed in the article perex' + examples: + - 100 + hidePublishDate: + type: boolean + description: 'Hide article publish date in the listing' + examples: + - false + showPrevNext: + type: boolean + description: 'Show next/previous buttons in the listing' + examples: + - true + showOnHomepage: + type: boolean + description: 'Show articles on the homepage' + examples: + - false + linkText: + type: + - string + - 'null' + description: 'Link text (in the menu)' + examples: + - 'Test articles' + metaTitle: + type: + - string + - 'null' + description: 'article meta title' + examples: + - 'Test articles' + metaDescription: + type: + - string + - 'null' + description: 'article meta description' + examples: + - 'Test articles' + visible: + type: boolean + description: 'flag whether the article section is visible on web' + examples: + - true + access: + enum: + - all + - logged-in + - logged-out + description: "flag indicating, whether the article section can be viewed by everyone (value of the flag is: `all`), by logged in users only ('logged-in'), or by logged out users only ('logged-out')" + examples: + - logged-in + parameters: + - + $ref: '#/components/parameters/DefaultContentType' + '/api/articles/sections/{articleSectionId}': + get: + responses: + 200: + description: OK + content: + 'application/vnd.shoptet.v1.0+json; charset=utf-8': + schema: + type: object + properties: + data: + type: object + required: + - articleSection + additionalProperties: false + properties: + articleSection: + $ref: '#/components/schemas/articleSection' + errors: + $ref: '#/components/schemas/Errors' + required: + - data + - errors + additionalProperties: false + 404: + description: 'Not Found' + content: + 'application/vnd.shoptet.v1.0+json; charset=utf-8': + schema: + type: object + properties: + data: + type: 'null' + errors: + $ref: '#/components/schemas/Errors' + example: + data: null + errors: + errorCode: article-section-not-found + message: 'Article section with ID "123" not found.' + instance: 123 + summary: 'Detail of article section' + operationId: getDetailOfArticleSection + description: 'Returns a detail of the article section.' + tags: + - Articles + parameters: + - + name: articleSectionId + in: path + description: 'article section ID' + required: true + example: '1' + schema: + type: number + - + $ref: '#/components/parameters/DefaultContentType' + patch: + responses: + 200: + description: OK + content: + 'application/vnd.shoptet.v1.0+json; charset=utf-8': + schema: + type: object + properties: + data: + type: object + required: + - article + additionalProperties: false + properties: + article: + $ref: '#/components/schemas/article' + errors: + $ref: '#/components/schemas/Errors' + required: + - data + - errors + additionalProperties: false + 404: + description: 'Not Found' + content: + 'application/vnd.shoptet.v1.0+json; charset=utf-8': + schema: + type: object + properties: + data: + type: 'null' + errors: + $ref: '#/components/schemas/Errors' + example: + data: null + errors: + errorCode: article-section-not-found + message: 'Article section with ID "123" not found.' + instance: 123 + summary: 'Update of article section' + operationId: updateArticleSection + description: 'Updates the article section.' + parameters: + - + name: articleSectionId + in: path + description: 'article section ID' + required: true + example: '123' + schema: + type: number + - + $ref: '#/components/parameters/DefaultContentType' + tags: + - Articles requestBody: content: application/vnd.shoptet.v1.0: @@ -30524,81 +31414,103 @@ paths: properties: title: type: string - description: 'Title of the article' + description: 'article section title' examples: - Test language: type: string - description: 'Language of the article' + description: 'article section language' examples: - cs - defaultSectionId: - type: number - description: 'Id of the section' - examples: - - 682 - sectionId: - type: number - description: 'Id of the section. DEPRECATED - use defaultSectionId instead' - examples: - - 682 - sectionIds: - type: array - description: 'Id of the section' - minItems: 1 - items: - type: number - examples: - - '682' indexName: - type: string - description: 'ending part of article URL' - examples: - - test - redirectUrl: type: - string - 'null' - description: 'canonical URL for redirecting' + description: 'ending part of article section URL' examples: - - 'https://www.someurl.com' - content: + - new-article + description: type: - string - 'null' - description: 'Content of the article' + description: 'article section content' examples: - - '

Content of the article

' - metaTitle: + - '

Content of the article section

' + secondDescription: type: - string - 'null' - description: 'Meta title of the article' + description: 'article section second content' examples: - - 'Test article' - metaKeywords: + - '

Content of the second article section

' + limit: + type: + - number + - 'null' + description: 'Number of articles displayed in the listing' + examples: + - 4 + homepageLimit: + type: + - number + - 'null' + description: 'Number of articles displayed on the homepage' + examples: + - 4 + sorting: + enum: + - alphabetically + - newest-first + - oldest-first + description: 'Article sorting in the listing' + examples: + - alphabetically + perexLimit: + type: + - number + - 'null' + description: 'Number of character displayed in the article perex' + examples: + - 100 + hidePublishDate: + type: boolean + description: 'Hide article publish date in the listing' + examples: + - false + showPrevNext: + type: boolean + description: 'Show next/previous buttons in the listing' + examples: + - true + showOnHomepage: + type: boolean + description: 'Show articles on the homepage' + examples: + - false + linkText: type: - string - 'null' - description: 'Keywords of the article' + description: 'Link text (in the menu)' examples: - - test - metaDescription: + - 'Test articles' + metaTitle: type: - string - 'null' - description: 'Meta description of the article' + description: 'article meta title' examples: - - 'Test article' - publishDate: + - 'Test articles' + metaDescription: type: - string - 'null' - $ref: '#/components/schemas/typeDateTime' - description: 'Date of publishing' + description: 'article meta description' + examples: + - 'Test articles' visible: type: boolean - description: 'Flag whether the article is visible on web' + description: 'flag whether the article section is visible on web' examples: - true access: @@ -30606,131 +31518,9 @@ paths: - all - logged-in - logged-out - description: "Flag indicating, whether the article can be viewed by everyone (value of the flag is: 'all'), by logged in users only ('logged-in'), or by logged out users only ('logged-out')" + description: "flag indicating, whether the article section can be viewed by everyone (value of the flag is: `all`), by logged in users only ('logged-in'), or by logged out users only ('logged-out')" examples: - logged-in - delete: - responses: - 200: - description: OK - content: - 'application/vnd.shoptet.v1.0+json; charset=utf-8': - schema: - type: object - properties: - data: - type: 'null' - additionalProperties: false - errors: - $ref: '#/components/schemas/Errors' - required: - - data - - errors - additionalProperties: false - summary: 'Delete of article' - operationId: deleteArticle - description: 'Deletes the article.' - parameters: - - - name: articleId - in: path - description: 'article ID' - required: true - example: '1' - schema: - type: number - - - $ref: '#/components/parameters/DefaultContentType' - tags: - - Articles - /api/articles/sections: - get: - responses: - 200: - description: OK - content: - 'application/vnd.shoptet.v1.0+json; charset=utf-8': - schema: - type: object - properties: - data: - type: object - additionalProperties: false - required: - - sections - properties: - sections: - type: array - items: - $ref: '#/components/schemas/articleSectionList' - errors: - $ref: '#/components/schemas/Errors' - required: - - data - - errors - additionalProperties: false - summary: 'List of article sections' - operationId: getListOfArticleSections - description: 'Returns a list of article sections.' - tags: - - Articles - '/api/articles/sections/{articleSectionId}': - get: - responses: - 200: - description: OK - content: - 'application/vnd.shoptet.v1.0+json; charset=utf-8': - schema: - type: object - properties: - data: - type: object - required: - - articleSection - additionalProperties: false - properties: - articleSection: - $ref: '#/components/schemas/articleSection' - errors: - $ref: '#/components/schemas/Errors' - required: - - data - - errors - additionalProperties: false - 404: - description: 'Not Found' - content: - 'application/vnd.shoptet.v1.0+json; charset=utf-8': - schema: - type: object - properties: - data: - type: 'null' - errors: - $ref: '#/components/schemas/Errors' - example: - data: null - errors: - errorCode: article-section-not-found - message: 'Article section with ID "123" not found.' - instance: 123 - summary: 'Detail of article section' - operationId: getDetailOfArticleSection - description: 'Returns a detail of the article section.' - tags: - - Articles - parameters: - - - name: articleSectionId - in: path - description: 'article section ID' - required: true - example: '1' - schema: - type: number - - - $ref: '#/components/parameters/DefaultContentType' /api/pages: get: responses: @@ -31195,12 +31985,12 @@ paths: additionalProperties: false summary: 'File upload' operationId: uploadFile - description: "Performes file upload asynchronously.\nPlease note that order of files matter (result of job respects the order of images in request).\n\nIn case of specifying filename, keep in mind that extension is checked whether it respects file type.\n\nThe result can be found in job detail in `resultUrl`. The result is formed as normal API response:\n\n```\n{\n \"data\": {\n \"images\":[\n {\n \"index\": 0,\n \"md5\": \"072c1a2005e17dcd3a3cca3d2c769264\",\n \"name\": \"kocka.png\",\n \"created\": \"2023-01-16T13:19:32+0100\",\n \"sourceUrl\": \"https://example.com/image.png\"\n }\n ]\n },\n \"errors\": [\n {\n \"errorCode\": \"file-upload-extension-mismatch\",\n \"message\": \"File extension png mismatch mime type image\\/jpeg of uploaded file (correct should be jpg).\",\n \"instance\": \"data[1]\"\n }\n ]\n}\n```\n\nIn the result's `images` section, there are successfully uploaded images with their info and with `index` field which is order of the image in the request (0-based indexing).\n\nIn the result's `errors` section, there are errors which occured during some images upload and with number in brackets in `data[0]` in `instance`, which is order of the image in the request (0-based indexing).\n\nSee more about file upload in the [files section of documentation](/#section/Basic-principles-of-working-with-API/Files)\n\nSee how [Asynchronous requests](https://developers.shoptet.com/asynchronous-requests/) work on our developer's portal.\n\nCurrently maximum of 50 files can be uploaded in one request. Current filesize limit per file is 2MB." + description: "Performes file upload asynchronously.\nPlease note that order of files matter (result of job respects the order of images in request).\n\nIn case of specifying filename, keep in mind that extension is checked whether it respects file type.\n\nThe result can be found in job detail in `resultUrl`. The result is formed as normal API response:\n\n```\n{\n \"data\": {\n \"images\":[\n {\n \"index\": 0,\n \"md5\": \"072c1a2005e17dcd3a3cca3d2c769264\",\n \"name\": \"kocka.png\",\n \"created\": \"2023-01-16T13:19:32+0100\",\n \"sourceUrl\": \"https://example.com/image.png\"\n }\n ]\n },\n \"errors\": [\n {\n \"errorCode\": \"file-upload-extension-mismatch\",\n \"message\": \"File extension png mismatch mime type image\\/jpeg of uploaded file (correct should be jpg).\",\n \"instance\": \"data[1]\"\n }\n ]\n}\n```\n\nIn the result's `images` section, there are successfully uploaded images with their info and with `index` field which is order of the image in the request (0-based indexing).\n\nIn the result's `errors` section, there are errors which occured during some images upload and with number in brackets in `data[0]` in `instance`, which is order of the image in the request (0-based indexing).\n\nSee more about file upload in the [files section of documentation](#section/Basic-principles-of-working-with-API/Files)\n\nSee how [Asynchronous requests](https://developers.shoptet.com/asynchronous-requests/) work on our developer's portal.\n\nCurrently maximum of 50 files can be uploaded in one request. Current filesize limit per file is 2MB." tags: - Files requestBody: content: - application/vnd.shoptet.v1.0: + application/vnd.shoptet.v1.0+json: schema: type: object additionalProperties: false @@ -32062,7 +32852,7 @@ components: - 3 name: type: string - description: 'designation of the billing method. See also [code list of billing methods](#billing-methods-invoice).' + description: 'designation of the billing method. See also [code list of billing methods](#section/code-lists/Invoice-Billing-Methods).' examples: - Cash itemPrice: @@ -32321,7 +33111,7 @@ components: - 992801 event: type: string - description: 'event, see [webhook event types](#webhook-event-type)' + description: 'event, see [webhook event types](#section/code-lists/Webhook-event-types)' examples: - 'order:create' url: @@ -32368,7 +33158,7 @@ components: - 'https://myapplication.tld/orders.php' event: type: string - description: 'event, see [webhook event types](#webhook-event-type)' + description: 'event, see [webhook event types](#section/code-lists/Webhook-event-types)' examples: - 'order:create' eventCreated: @@ -33548,7 +34338,7 @@ components: description: 'unique product indicator' type: type: string - description: 'product type (`product`, `bazar`...) - see also [Product type code list](#product-item-types)' + description: 'product type (`product`, `bazar`...) - see also [Product type code list](#section/code-lists/Product-types)' examples: - product name: @@ -33572,7 +34362,7 @@ components: description: 'product supplier' visibility: type: string - description: 'visibility of product (`normal`, `hidden` ...) - see also [Product visibility code list](#product-visibility)' + description: 'visibility of product (`normal`, `hidden` ...) - see also [Product visibility code list](#section/code-lists/Product-visibility)' examples: - normal creationTime: @@ -34628,7 +35418,7 @@ components: type: - string - 'null' - description: 'defines, how products are sorted in a category. See also code list [Classification of products in category](#category-sorting)' + description: 'defines, how products are sorted in a category. See also code list [Classification of products in category](#section/code-lists/Sorting-of-products-in-category)' examples: - alphabetically catalogueMapping: @@ -34693,14 +35483,14 @@ components: - '12345678901234' itemType: type: string - description: 'order item type (product, service...). See also [Code list of order item types](#order-item-type)' + description: 'order item type (product, service...). See also [Code list of order item types](#section/code-lists/Types-of-order-items)' examples: - product productType: type: - string - 'null' - description: 'product type at the time of the order (product, product-set..). See also [Product type code list](#product-item-types) (can be `null`).' + description: 'product type at the time of the order (product, product-set..). See also [Product type code list](#section/code-lists/Product-types) (can be `null`).' examples: - product name: @@ -34894,6 +35684,31 @@ components: description: 'Priority of product in related products list' examples: - 1 + productSet: + type: + - array + - 'null' + additionalProperties: false + required: + - guid + - code + - amount + properties: + guid: + $ref: '#/components/schemas/typeGuidUnlimited' + description: 'product identifier' + code: + type: string + minLength: 1 + description: 'product code' + examples: + - '154' + amount: + type: string + $ref: '#/components/schemas/typePositiveAmount' + description: 'amount of items, products' + examples: + - 1.0 productGifts: type: array items: @@ -35161,6 +35976,13 @@ components: description: 'article section ID' examples: - 1 + parentId: + type: + - number + - 'null' + description: 'article section parent ID' + examples: + - 1 title: type: string description: 'article section title' @@ -35184,13 +36006,20 @@ components: description: 'article section URL' examples: - new-article - content: + description: type: - string - 'null' description: 'article section content' examples: - '

Content of the article section

' + secondDescription: + type: + - string + - 'null' + description: 'article section content secondary' + examples: + - '

Content of the secondary article section

' limit: type: - number @@ -35869,7 +36698,7 @@ components: type: - string - 'null' - description: 'VAT mode, can be null, for possible values see [VAT modes](#vat-modes)' + description: 'VAT mode, can be null, for possible values see [VAT modes](#section/code-lists/VAT-modes)' examples: - Normal invoiceCode: @@ -36235,7 +37064,7 @@ components: type: - string - 'null' - description: 'VAT mode, can be null, for possible values see [VAT modes](#vat-modes)' + description: 'VAT mode, can be null, for possible values see [VAT modes](#section/code-lists/VAT-modes)' examples: - normal proofPaymentsForInvoice: @@ -36523,6 +37352,19 @@ components: $ref: '#/components/schemas/typePrice' currencyCode: type: string + shipmentCoDPrice: + type: + - object + - 'null' + additionalProperties: false + required: + - value + - currencyCode + properties: + value: + $ref: '#/components/schemas/typePrice' + currencyCode: + type: string shipmentPackage: type: object additionalProperties: false @@ -36676,6 +37518,103 @@ components: description: 'article URL' examples: - 'https://www.some-eshop-url.com/blog/new-article' + discountCoupon: + type: object + additionalProperties: false + required: + - code + - creationTime + - discountType + - amount + - ratio + - minPrice + - currency + - template + - shippingPrice + - validFrom + - validTo + - reusable + - usedCount + - remark + properties: + code: + type: string + description: 'code of discount coupon' + examples: + - DC14585431 + creationTime: + $ref: '#/components/schemas/typeDateTime' + description: 'date and time, when the discount coupon was created' + discountType: + type: string + enum: + - percentual + - fixed + description: 'type of discount. Percentual (`percentual`) or absolute discount (`fixed`)' + examples: + - percentual + amount: + type: + - string + - 'null' + $ref: '#/components/schemas/typePrice' + description: 'amount of absolute discount (default eshop VAT rate is used)' + ratio: + type: + - string + - 'null' + $ref: '#/components/schemas/typePriceRatio' + description: 'amount of percentual discount' + minPrice: + type: + - string + - 'null' + $ref: '#/components/schemas/typePrice' + description: 'minimum price of order (default eshop VAT rate is used)' + currency: + type: + - string + - 'null' + $ref: '#/components/schemas/typeCurrencyCode' + description: 'currency of fixed discount.' + template: + $ref: '#/components/schemas/typeGuid' + description: 'template used for the discount coupon creation.' + shippingPrice: + type: + - string + - 'null' + enum: + - cart + - free + - beforeDiscount + - null + description: 'how the transport prices are calculated: according to the cart before discounts (beforeDiscount), according to the displayed value of the cart (cart), or free (free)' + examples: + - cart + validFrom: + $ref: '#/components/schemas/typeDate' + description: 'starting date of coupon validity' + validTo: + $ref: '#/components/schemas/typeDate' + description: 'ending date of coupon validity' + reusable: + type: boolean + description: 'Is the discount coupon reusable?' + examples: + - true + usedCount: + type: integer + description: 'number of times the discount coupon has been used' + examples: + - 0 + remark: + type: + - string + - 'null' + description: 'remark for the discount coupon.' + examples: + - 'Note: This is a test discount coupon' security: - shoptetAccessToken: []