flamingo.me/flamingo-commerce/v3@v3.11.0/docs/openapi/swagger.json (about)

     1  {
     2      "swagger": "2.0",
     3      "info": {
     4          "description": "Swagger (OpenAPI) Spec of all Flamingo Commerce modules",
     5          "title": "Flamingo Commerce API Spec",
     6          "contact": {
     7              "name": "Flamingo",
     8              "url": "https://gitter.im/i-love-flamingo/community#",
     9              "email": "flamingo@aoe.com"
    10          },
    11          "license": {
    12              "name": "MIT"
    13          },
    14          "version": "1.0"
    15      },
    16      "paths": {
    17          "/api/v1/cart": {
    18              "get": {
    19                  "produces": [
    20                      "application/json"
    21                  ],
    22                  "tags": [
    23                      "Cart"
    24                  ],
    25                  "summary": "Get the current cart",
    26                  "responses": {
    27                      "200": {
    28                          "description": "OK",
    29                          "schema": {
    30                              "$ref": "#/definitions/controller.getCartResult"
    31                          }
    32                      },
    33                      "500": {
    34                          "description": "Internal Server Error",
    35                          "schema": {
    36                              "$ref": "#/definitions/controller.CartAPIResult"
    37                          }
    38                      }
    39                  }
    40              },
    41              "delete": {
    42                  "produces": [
    43                      "application/json"
    44                  ],
    45                  "tags": [
    46                      "Cart"
    47                  ],
    48                  "summary": "Remove all stored cart information e.g. items, deliveries, billing address and returns the empty cart.",
    49                  "responses": {
    50                      "200": {
    51                          "description": "OK",
    52                          "schema": {
    53                              "$ref": "#/definitions/controller.CartAPIResult"
    54                          }
    55                      },
    56                      "500": {
    57                          "description": "Internal Server Error",
    58                          "schema": {
    59                              "$ref": "#/definitions/controller.CartAPIResult"
    60                          }
    61                      }
    62                  }
    63              }
    64          },
    65          "/api/v1/cart/billing": {
    66              "put": {
    67                  "consumes": [
    68                      "application/x-www-form-urlencoded"
    69                  ],
    70                  "produces": [
    71                      "application/json"
    72                  ],
    73                  "tags": [
    74                      "Cart"
    75                  ],
    76                  "summary": "Adds billing infos to the current cart",
    77                  "parameters": [
    78                      {
    79                          "type": "string",
    80                          "description": "vat",
    81                          "name": "vat",
    82                          "in": "formData"
    83                      },
    84                      {
    85                          "type": "string",
    86                          "description": "firstname",
    87                          "name": "firstname",
    88                          "in": "formData",
    89                          "required": true
    90                      },
    91                      {
    92                          "type": "string",
    93                          "description": "lastname",
    94                          "name": "lastname",
    95                          "in": "formData",
    96                          "required": true
    97                      },
    98                      {
    99                          "type": "string",
   100                          "description": "middlename",
   101                          "name": "middlename",
   102                          "in": "formData"
   103                      },
   104                      {
   105                          "type": "string",
   106                          "description": "title",
   107                          "name": "title",
   108                          "in": "formData"
   109                      },
   110                      {
   111                          "type": "string",
   112                          "description": "salutation",
   113                          "name": "salutation",
   114                          "in": "formData"
   115                      },
   116                      {
   117                          "type": "string",
   118                          "description": "street",
   119                          "name": "street",
   120                          "in": "formData"
   121                      },
   122                      {
   123                          "type": "string",
   124                          "description": "streetNr",
   125                          "name": "streetNr",
   126                          "in": "formData"
   127                      },
   128                      {
   129                          "type": "string",
   130                          "description": "addressLine1",
   131                          "name": "addressLine1",
   132                          "in": "formData"
   133                      },
   134                      {
   135                          "type": "string",
   136                          "description": "addressLine2",
   137                          "name": "addressLine2",
   138                          "in": "formData"
   139                      },
   140                      {
   141                          "type": "string",
   142                          "description": "company",
   143                          "name": "company",
   144                          "in": "formData"
   145                      },
   146                      {
   147                          "type": "string",
   148                          "description": "postCode",
   149                          "name": "postCode",
   150                          "in": "formData"
   151                      },
   152                      {
   153                          "type": "string",
   154                          "description": "city",
   155                          "name": "city",
   156                          "in": "formData"
   157                      },
   158                      {
   159                          "type": "string",
   160                          "description": "state",
   161                          "name": "state",
   162                          "in": "formData"
   163                      },
   164                      {
   165                          "type": "string",
   166                          "description": "regionCode",
   167                          "name": "regionCode",
   168                          "in": "formData"
   169                      },
   170                      {
   171                          "type": "string",
   172                          "description": "country",
   173                          "name": "country",
   174                          "in": "formData"
   175                      },
   176                      {
   177                          "type": "string",
   178                          "description": "countryCode",
   179                          "name": "countryCode",
   180                          "in": "formData"
   181                      },
   182                      {
   183                          "type": "string",
   184                          "description": "phoneAreaCode",
   185                          "name": "phoneAreaCode",
   186                          "in": "formData"
   187                      },
   188                      {
   189                          "type": "string",
   190                          "description": "phoneCountryCode",
   191                          "name": "phoneCountryCode",
   192                          "in": "formData"
   193                      },
   194                      {
   195                          "type": "string",
   196                          "description": "phoneNumber",
   197                          "name": "phoneNumber",
   198                          "in": "formData"
   199                      },
   200                      {
   201                          "type": "string",
   202                          "description": "email",
   203                          "name": "email",
   204                          "in": "formData",
   205                          "required": true
   206                      }
   207                  ],
   208                  "responses": {
   209                      "200": {
   210                          "description": "OK",
   211                          "schema": {
   212                              "$ref": "#/definitions/controller.CartAPIResult"
   213                          }
   214                      },
   215                      "500": {
   216                          "description": "Internal Server Error",
   217                          "schema": {
   218                              "$ref": "#/definitions/controller.CartAPIResult"
   219                          }
   220                      }
   221                  }
   222              }
   223          },
   224          "/api/v1/cart/deliveries/items": {
   225              "delete": {
   226                  "produces": [
   227                      "application/json"
   228                  ],
   229                  "tags": [
   230                      "Cart"
   231                  ],
   232                  "summary": "Remove all cart items from all deliveries and return the cart, keeps the delivery info untouched.",
   233                  "responses": {
   234                      "200": {
   235                          "description": "OK",
   236                          "schema": {
   237                              "$ref": "#/definitions/controller.CartAPIResult"
   238                          }
   239                      },
   240                      "500": {
   241                          "description": "Internal Server Error",
   242                          "schema": {
   243                              "$ref": "#/definitions/controller.CartAPIResult"
   244                          }
   245                      }
   246                  }
   247              }
   248          },
   249          "/api/v1/cart/delivery/{deliveryCode}": {
   250              "put": {
   251                  "consumes": [
   252                      "application/x-www-form-urlencoded"
   253                  ],
   254                  "produces": [
   255                      "application/json"
   256                  ],
   257                  "tags": [
   258                      "Cart"
   259                  ],
   260                  "summary": "Adds delivery infos, such as shipping address to the delivery for the cart",
   261                  "parameters": [
   262                      {
   263                          "type": "string",
   264                          "description": "the identifier for the delivery in the cart",
   265                          "name": "deliveryCode",
   266                          "in": "path",
   267                          "required": true
   268                      },
   269                      {
   270                          "type": "string",
   271                          "description": "vat",
   272                          "name": "deliveryAddress.vat",
   273                          "in": "formData"
   274                      },
   275                      {
   276                          "type": "string",
   277                          "description": "firstname",
   278                          "name": "deliveryAddress.firstname",
   279                          "in": "formData",
   280                          "required": true
   281                      },
   282                      {
   283                          "type": "string",
   284                          "description": "lastname",
   285                          "name": "deliveryAddress.lastname",
   286                          "in": "formData",
   287                          "required": true
   288                      },
   289                      {
   290                          "type": "string",
   291                          "description": "middlename",
   292                          "name": "deliveryAddress.middlename",
   293                          "in": "formData"
   294                      },
   295                      {
   296                          "type": "string",
   297                          "description": "title",
   298                          "name": "deliveryAddress.title",
   299                          "in": "formData"
   300                      },
   301                      {
   302                          "type": "string",
   303                          "description": "salutation",
   304                          "name": "deliveryAddress.salutation",
   305                          "in": "formData"
   306                      },
   307                      {
   308                          "type": "string",
   309                          "description": "street",
   310                          "name": "deliveryAddress.street",
   311                          "in": "formData"
   312                      },
   313                      {
   314                          "type": "string",
   315                          "description": "streetNr",
   316                          "name": "deliveryAddress.streetNr",
   317                          "in": "formData"
   318                      },
   319                      {
   320                          "type": "string",
   321                          "description": "addressLine1",
   322                          "name": "deliveryAddress.addressLine1",
   323                          "in": "formData"
   324                      },
   325                      {
   326                          "type": "string",
   327                          "description": "addressLine2",
   328                          "name": "deliveryAddress.addressLine2",
   329                          "in": "formData"
   330                      },
   331                      {
   332                          "type": "string",
   333                          "description": "company",
   334                          "name": "deliveryAddress.company",
   335                          "in": "formData"
   336                      },
   337                      {
   338                          "type": "string",
   339                          "description": "postCode",
   340                          "name": "deliveryAddress.postCode",
   341                          "in": "formData"
   342                      },
   343                      {
   344                          "type": "string",
   345                          "description": "city",
   346                          "name": "deliveryAddress.city",
   347                          "in": "formData"
   348                      },
   349                      {
   350                          "type": "string",
   351                          "description": "state",
   352                          "name": "deliveryAddress.state",
   353                          "in": "formData"
   354                      },
   355                      {
   356                          "type": "string",
   357                          "description": "regionCode",
   358                          "name": "deliveryAddress.regionCode",
   359                          "in": "formData"
   360                      },
   361                      {
   362                          "type": "string",
   363                          "description": "country",
   364                          "name": "deliveryAddress.country",
   365                          "in": "formData"
   366                      },
   367                      {
   368                          "type": "string",
   369                          "description": "countryCode",
   370                          "name": "deliveryAddress.countryCode",
   371                          "in": "formData"
   372                      },
   373                      {
   374                          "type": "string",
   375                          "description": "phoneAreaCode",
   376                          "name": "deliveryAddress.phoneAreaCode",
   377                          "in": "formData"
   378                      },
   379                      {
   380                          "type": "string",
   381                          "description": "phoneCountryCode",
   382                          "name": "deliveryAddress.phoneCountryCode",
   383                          "in": "formData"
   384                      },
   385                      {
   386                          "type": "string",
   387                          "description": "phoneNumber",
   388                          "name": "deliveryAddress.phoneNumber",
   389                          "in": "formData"
   390                      },
   391                      {
   392                          "type": "string",
   393                          "description": "email",
   394                          "name": "deliveryAddress.email",
   395                          "in": "formData",
   396                          "required": true
   397                      },
   398                      {
   399                          "type": "boolean",
   400                          "description": "useBillingAddress",
   401                          "name": "useBillingAddress",
   402                          "in": "formData"
   403                      },
   404                      {
   405                          "type": "string",
   406                          "description": "shippingMethod",
   407                          "name": "shippingMethod",
   408                          "in": "formData"
   409                      },
   410                      {
   411                          "type": "string",
   412                          "description": "shippingCarrier",
   413                          "name": "shippingCarrier",
   414                          "in": "formData"
   415                      },
   416                      {
   417                          "type": "string",
   418                          "description": "locationCode",
   419                          "name": "locationCode",
   420                          "in": "formData"
   421                      },
   422                      {
   423                          "type": "string",
   424                          "format": "date-time",
   425                          "description": "desired date/time in RFC3339",
   426                          "name": "desiredTime",
   427                          "in": "formData"
   428                      }
   429                  ],
   430                  "responses": {
   431                      "200": {
   432                          "description": "OK",
   433                          "schema": {
   434                              "$ref": "#/definitions/controller.CartAPIResult"
   435                          }
   436                      },
   437                      "500": {
   438                          "description": "Internal Server Error",
   439                          "schema": {
   440                              "$ref": "#/definitions/controller.CartAPIResult"
   441                          }
   442                      }
   443                  }
   444              },
   445              "delete": {
   446                  "produces": [
   447                      "application/json"
   448                  ],
   449                  "tags": [
   450                      "Cart"
   451                  ],
   452                  "summary": "Cleans the given delivery from the cart",
   453                  "parameters": [
   454                      {
   455                          "type": "string",
   456                          "description": "the identifier for the delivery in the cart",
   457                          "name": "deliveryCode",
   458                          "in": "path",
   459                          "required": true
   460                      }
   461                  ],
   462                  "responses": {
   463                      "200": {
   464                          "description": "OK",
   465                          "schema": {
   466                              "$ref": "#/definitions/controller.CartAPIResult"
   467                          }
   468                      },
   469                      "500": {
   470                          "description": "Internal Server Error",
   471                          "schema": {
   472                              "$ref": "#/definitions/controller.CartAPIResult"
   473                          }
   474                      }
   475                  }
   476              }
   477          },
   478          "/api/v1/cart/delivery/{deliveryCode}/item": {
   479              "put": {
   480                  "produces": [
   481                      "application/json"
   482                  ],
   483                  "tags": [
   484                      "Cart"
   485                  ],
   486                  "summary": "Update item in the cart",
   487                  "parameters": [
   488                      {
   489                          "type": "string",
   490                          "description": "the identifier for the delivery in the cart",
   491                          "name": "deliveryCode",
   492                          "in": "path",
   493                          "required": true
   494                      },
   495                      {
   496                          "type": "string",
   497                          "description": "the item that should be updated",
   498                          "name": "itemID",
   499                          "in": "query",
   500                          "required": true
   501                      },
   502                      {
   503                          "type": "integer",
   504                          "description": "the new qty",
   505                          "name": "qty",
   506                          "in": "query",
   507                          "required": true
   508                      }
   509                  ],
   510                  "responses": {
   511                      "200": {
   512                          "description": "OK",
   513                          "schema": {
   514                              "$ref": "#/definitions/controller.CartAPIResult"
   515                          }
   516                      },
   517                      "500": {
   518                          "description": "Internal Server Error",
   519                          "schema": {
   520                              "$ref": "#/definitions/controller.CartAPIResult"
   521                          }
   522                      }
   523                  }
   524              },
   525              "post": {
   526                  "produces": [
   527                      "application/json"
   528                  ],
   529                  "tags": [
   530                      "Cart"
   531                  ],
   532                  "summary": "Add Item to cart",
   533                  "parameters": [
   534                      {
   535                          "type": "string",
   536                          "description": "the identifier for the delivery in the cart",
   537                          "name": "deliveryCode",
   538                          "in": "path",
   539                          "required": true
   540                      },
   541                      {
   542                          "type": "string",
   543                          "description": "the product identifier that should be added",
   544                          "name": "marketplaceCode",
   545                          "in": "query",
   546                          "required": true
   547                      },
   548                      {
   549                          "type": "string",
   550                          "description": "optional the product identifier of the variant (for configurable products) that should be added",
   551                          "name": "variantMarketplaceCode",
   552                          "in": "query"
   553                      },
   554                      {
   555                          "type": "integer",
   556                          "description": "optional the qty that should be added",
   557                          "name": "qty",
   558                          "in": "query"
   559                      }
   560                  ],
   561                  "responses": {
   562                      "200": {
   563                          "description": "OK",
   564                          "schema": {
   565                              "$ref": "#/definitions/controller.CartAPIResult"
   566                          }
   567                      },
   568                      "500": {
   569                          "description": "Internal Server Error",
   570                          "schema": {
   571                              "$ref": "#/definitions/controller.CartAPIResult"
   572                          }
   573                      }
   574                  }
   575              },
   576              "delete": {
   577                  "produces": [
   578                      "application/json"
   579                  ],
   580                  "tags": [
   581                      "Cart"
   582                  ],
   583                  "summary": "Delete item from cart",
   584                  "parameters": [
   585                      {
   586                          "type": "string",
   587                          "description": "the identifier for the delivery in the cart",
   588                          "name": "deliveryCode",
   589                          "in": "path",
   590                          "required": true
   591                      },
   592                      {
   593                          "type": "string",
   594                          "description": "the item that should be deleted",
   595                          "name": "itemID",
   596                          "in": "query",
   597                          "required": true
   598                      }
   599                  ],
   600                  "responses": {
   601                      "200": {
   602                          "description": "OK",
   603                          "schema": {
   604                              "$ref": "#/definitions/controller.CartAPIResult"
   605                          }
   606                      },
   607                      "500": {
   608                          "description": "Internal Server Error",
   609                          "schema": {
   610                              "$ref": "#/definitions/controller.CartAPIResult"
   611                          }
   612                      }
   613                  }
   614              }
   615          },
   616          "/api/v1/cart/gift-card": {
   617              "post": {
   618                  "produces": [
   619                      "application/json"
   620                  ],
   621                  "tags": [
   622                      "Cart"
   623                  ],
   624                  "summary": "Apply Gift Card",
   625                  "parameters": [
   626                      {
   627                          "type": "string",
   628                          "description": "the gift card code",
   629                          "name": "couponCode",
   630                          "in": "query",
   631                          "required": true
   632                      }
   633                  ],
   634                  "responses": {
   635                      "200": {
   636                          "description": "OK",
   637                          "schema": {
   638                              "$ref": "#/definitions/controller.CartAPIResult"
   639                          }
   640                      },
   641                      "500": {
   642                          "description": "Internal Server Error",
   643                          "schema": {
   644                              "$ref": "#/definitions/controller.CartAPIResult"
   645                          }
   646                      }
   647                  }
   648              },
   649              "delete": {
   650                  "produces": [
   651                      "application/json"
   652                  ],
   653                  "tags": [
   654                      "Cart"
   655                  ],
   656                  "summary": "Remove Gift Card",
   657                  "parameters": [
   658                      {
   659                          "type": "string",
   660                          "description": "the couponCode that should be deleted as gift card",
   661                          "name": "couponCode",
   662                          "in": "query",
   663                          "required": true
   664                      }
   665                  ],
   666                  "responses": {
   667                      "200": {
   668                          "description": "OK",
   669                          "schema": {
   670                              "$ref": "#/definitions/controller.CartAPIResult"
   671                          }
   672                      },
   673                      "500": {
   674                          "description": "Internal Server Error",
   675                          "schema": {
   676                              "$ref": "#/definitions/controller.CartAPIResult"
   677                          }
   678                      }
   679                  }
   680              }
   681          },
   682          "/api/v1/cart/payment-selection": {
   683              "put": {
   684                  "produces": [
   685                      "application/json"
   686                  ],
   687                  "tags": [
   688                      "Cart"
   689                  ],
   690                  "summary": "Update/set the PaymentSelection for the current cart",
   691                  "parameters": [
   692                      {
   693                          "type": "string",
   694                          "description": "name of the payment gateway - e.g. 'offline'",
   695                          "name": "gateway",
   696                          "in": "query",
   697                          "required": true
   698                      },
   699                      {
   700                          "type": "string",
   701                          "description": "name of the payment method - e.g. 'offlinepayment_cashondelivery'",
   702                          "name": "method",
   703                          "in": "query",
   704                          "required": true
   705                      }
   706                  ],
   707                  "responses": {
   708                      "200": {
   709                          "description": "OK",
   710                          "schema": {
   711                              "$ref": "#/definitions/controller.CartAPIResult"
   712                          }
   713                      },
   714                      "500": {
   715                          "description": "Internal Server Error",
   716                          "schema": {
   717                              "$ref": "#/definitions/controller.CartAPIResult"
   718                          }
   719                      }
   720                  }
   721              }
   722          },
   723          "/api/v1/cart/voucher": {
   724              "post": {
   725                  "produces": [
   726                      "application/json"
   727                  ],
   728                  "tags": [
   729                      "Cart"
   730                  ],
   731                  "summary": "Apply Voucher Code",
   732                  "parameters": [
   733                      {
   734                          "type": "string",
   735                          "description": "the couponCode that should be applied",
   736                          "name": "couponCode",
   737                          "in": "query",
   738                          "required": true
   739                      }
   740                  ],
   741                  "responses": {
   742                      "200": {
   743                          "description": "OK",
   744                          "schema": {
   745                              "$ref": "#/definitions/controller.CartAPIResult"
   746                          }
   747                      },
   748                      "500": {
   749                          "description": "Internal Server Error",
   750                          "schema": {
   751                              "$ref": "#/definitions/controller.CartAPIResult"
   752                          }
   753                      }
   754                  }
   755              },
   756              "delete": {
   757                  "produces": [
   758                      "application/json"
   759                  ],
   760                  "tags": [
   761                      "Cart"
   762                  ],
   763                  "summary": "Remove Voucher Code",
   764                  "parameters": [
   765                      {
   766                          "type": "string",
   767                          "description": "the couponCode that should be applied",
   768                          "name": "couponCode",
   769                          "in": "query",
   770                          "required": true
   771                      }
   772                  ],
   773                  "responses": {
   774                      "200": {
   775                          "description": "OK",
   776                          "schema": {
   777                              "$ref": "#/definitions/controller.CartAPIResult"
   778                          }
   779                      },
   780                      "500": {
   781                          "description": "Internal Server Error",
   782                          "schema": {
   783                              "$ref": "#/definitions/controller.CartAPIResult"
   784                          }
   785                      }
   786                  }
   787              }
   788          },
   789          "/api/v1/cart/voucher-gift-card": {
   790              "post": {
   791                  "description": "Use this if you have one user input and that input can be used to either enter a voucher or a gift card",
   792                  "produces": [
   793                      "application/json"
   794                  ],
   795                  "tags": [
   796                      "Cart"
   797                  ],
   798                  "summary": "Apply Gift Card or Voucher (auto detected)",
   799                  "parameters": [
   800                      {
   801                          "type": "string",
   802                          "description": "the couponCode that should be applied as gift card or voucher",
   803                          "name": "couponCode",
   804                          "in": "query",
   805                          "required": true
   806                      }
   807                  ],
   808                  "responses": {
   809                      "200": {
   810                          "description": "OK",
   811                          "schema": {
   812                              "$ref": "#/definitions/controller.CartAPIResult"
   813                          }
   814                      },
   815                      "500": {
   816                          "description": "Internal Server Error",
   817                          "schema": {
   818                              "$ref": "#/definitions/controller.CartAPIResult"
   819                          }
   820                      }
   821                  }
   822              }
   823          },
   824          "/api/v1/checkout/placeorder": {
   825              "get": {
   826                  "produces": [
   827                      "application/json"
   828                  ],
   829                  "tags": [
   830                      "Checkout"
   831                  ],
   832                  "summary": "Returns the last saved context",
   833                  "responses": {
   834                      "200": {
   835                          "description": "OK",
   836                          "schema": {
   837                              "$ref": "#/definitions/controller.placeOrderContext"
   838                          }
   839                      },
   840                      "500": {
   841                          "description": "Internal Server Error",
   842                          "schema": {
   843                              "$ref": "#/definitions/checkoutError"
   844                          }
   845                      }
   846                  }
   847              },
   848              "put": {
   849                  "produces": [
   850                      "application/json"
   851                  ],
   852                  "tags": [
   853                      "Checkout"
   854                  ],
   855                  "summary": "Starts the place order process, which is a background process handling payment and rollbacks if required.",
   856                  "parameters": [
   857                      {
   858                          "type": "string",
   859                          "description": "the returnURL that should be used after an external payment flow",
   860                          "name": "returnURL",
   861                          "in": "query",
   862                          "required": true
   863                      }
   864                  ],
   865                  "responses": {
   866                      "201": {
   867                          "description": "201 if new process was started",
   868                          "schema": {
   869                              "$ref": "#/definitions/controller.startPlaceOrderResult"
   870                          }
   871                      },
   872                      "400": {
   873                          "description": "Bad Request",
   874                          "schema": {
   875                              "$ref": "#/definitions/checkoutError"
   876                          }
   877                      },
   878                      "500": {
   879                          "description": "Internal Server Error",
   880                          "schema": {
   881                              "$ref": "#/definitions/checkoutError"
   882                          }
   883                      }
   884                  }
   885              },
   886              "delete": {
   887                  "produces": [
   888                      "application/json"
   889                  ],
   890                  "tags": [
   891                      "Checkout"
   892                  ],
   893                  "summary": "Clears the last placed order if in final state",
   894                  "responses": {
   895                      "200": {
   896                          "description": "OK",
   897                          "schema": {
   898                              "type": "boolean"
   899                          }
   900                      },
   901                      "500": {
   902                          "description": "Internal Server Error",
   903                          "schema": {
   904                              "$ref": "#/definitions/checkoutError"
   905                          }
   906                      }
   907                  }
   908              }
   909          },
   910          "/api/v1/checkout/placeorder/cancel": {
   911              "post": {
   912                  "produces": [
   913                      "application/json"
   914                  ],
   915                  "tags": [
   916                      "Checkout"
   917                  ],
   918                  "summary": "Cancels a running place order process",
   919                  "responses": {
   920                      "200": {
   921                          "description": "OK",
   922                          "schema": {
   923                              "type": "boolean"
   924                          }
   925                      },
   926                      "500": {
   927                          "description": "Internal Server Error",
   928                          "schema": {
   929                              "$ref": "#/definitions/checkoutError"
   930                          }
   931                      }
   932                  }
   933              }
   934          },
   935          "/api/v1/checkout/placeorder/refresh": {
   936              "post": {
   937                  "produces": [
   938                      "application/json"
   939                  ],
   940                  "tags": [
   941                      "Checkout"
   942                  ],
   943                  "summary": "Returns the current place order context and proceeds the process in a non blocking way",
   944                  "responses": {
   945                      "200": {
   946                          "description": "OK",
   947                          "schema": {
   948                              "$ref": "#/definitions/controller.placeOrderContext"
   949                          }
   950                      },
   951                      "500": {
   952                          "description": "Internal Server Error",
   953                          "schema": {
   954                              "$ref": "#/definitions/checkoutError"
   955                          }
   956                      }
   957                  }
   958              }
   959          },
   960          "/api/v1/checkout/placeorder/refresh-blocking": {
   961              "post": {
   962                  "description": "This is useful to get the most recent place order context, for example after returning from an external payment provider",
   963                  "produces": [
   964                      "application/json"
   965                  ],
   966                  "tags": [
   967                      "Checkout"
   968                  ],
   969                  "summary": "Proceeds the process and returns the place order context afterwards (blocking)",
   970                  "responses": {
   971                      "200": {
   972                          "description": "OK",
   973                          "schema": {
   974                              "$ref": "#/definitions/controller.placeOrderContext"
   975                          }
   976                      },
   977                      "500": {
   978                          "description": "Internal Server Error",
   979                          "schema": {
   980                              "$ref": "#/definitions/checkoutError"
   981                          }
   982                      }
   983                  }
   984              }
   985          },
   986          "/api/v1/payment/status": {
   987              "get": {
   988                  "produces": [
   989                      "application/json"
   990                  ],
   991                  "tags": [
   992                      "Payment"
   993                  ],
   994                  "summary": "Get the payment status of current cart (or last placed cart)",
   995                  "responses": {
   996                      "200": {
   997                          "description": "OK",
   998                          "schema": {
   999                              "allOf": [
  1000                                  {
  1001                                      "$ref": "#/definitions/domain.FlowStatus"
  1002                                  },
  1003                                  {
  1004                                      "type": "object",
  1005                                      "properties": {
  1006                                          "data": {
  1007                                              "$ref": "#/definitions/cart.Cart"
  1008                                          }
  1009                                      }
  1010                                  }
  1011                              ]
  1012                          }
  1013                      },
  1014                      "500": {
  1015                          "description": "Internal Server Error",
  1016                          "schema": {
  1017                              "$ref": "#/definitions/paymentResultError"
  1018                          }
  1019                      }
  1020                  }
  1021              }
  1022          },
  1023          "/api/v1/products/{marketplacecode}": {
  1024              "get": {
  1025                  "produces": [
  1026                      "application/json"
  1027                  ],
  1028                  "tags": [
  1029                      "Product"
  1030                  ],
  1031                  "summary": "Gets the requested product",
  1032                  "parameters": [
  1033                      {
  1034                          "type": "string",
  1035                          "description": "the marketplace code (idendifier) for the product",
  1036                          "name": "marketplacecode",
  1037                          "in": "path",
  1038                          "required": true
  1039                      }
  1040                  ],
  1041                  "responses": {
  1042                      "200": {
  1043                          "description": "OK",
  1044                          "schema": {
  1045                              "allOf": [
  1046                                  {
  1047                                      "$ref": "#/definitions/controller.APIResult"
  1048                                  },
  1049                                  {
  1050                                      "type": "object",
  1051                                      "properties": {
  1052                                          "product": {
  1053                                              "$ref": "#/definitions/domain.SimpleProduct"
  1054                                          }
  1055                                      }
  1056                                  }
  1057                              ]
  1058                          }
  1059                      },
  1060                      "404": {
  1061                          "description": "Not Found",
  1062                          "schema": {
  1063                              "$ref": "#/definitions/controller.APIResult"
  1064                          }
  1065                      },
  1066                      "500": {
  1067                          "description": "Internal Server Error",
  1068                          "schema": {
  1069                              "$ref": "#/definitions/controller.APIResult"
  1070                          }
  1071                      }
  1072                  }
  1073              }
  1074          }
  1075      },
  1076      "definitions": {
  1077          "ProductMedia": {
  1078              "type": "object",
  1079              "properties": {
  1080                  "MimeType": {
  1081                      "type": "string"
  1082                  },
  1083                  "Reference": {
  1084                      "type": "string"
  1085                  },
  1086                  "Title": {
  1087                      "type": "string"
  1088                  },
  1089                  "Type": {
  1090                      "type": "string"
  1091                  },
  1092                  "Usage": {
  1093                      "type": "string"
  1094                  }
  1095              }
  1096          },
  1097          "application.PlaceOrderPaymentInfo": {
  1098              "type": "object",
  1099              "properties": {
  1100                  "Amount": {
  1101                      "$ref": "#/definitions/domain.Price"
  1102                  },
  1103                  "CreditCardInfo": {
  1104                      "$ref": "#/definitions/placeorder.CreditCardInfo"
  1105                  },
  1106                  "Gateway": {
  1107                      "type": "string"
  1108                  },
  1109                  "Method": {
  1110                      "type": "string"
  1111                  },
  1112                  "PaymentProvider": {
  1113                      "type": "string"
  1114                  },
  1115                  "Title": {
  1116                      "type": "string"
  1117                  }
  1118              }
  1119          },
  1120          "cart.AdditionalData": {
  1121              "type": "object",
  1122              "properties": {
  1123                  "CustomAttributes": {
  1124                      "description": "CustomAttributes list of key values",
  1125                      "type": "object",
  1126                      "additionalProperties": {
  1127                          "type": "string"
  1128                      }
  1129                  },
  1130                  "ReservedOrderID": {
  1131                      "description": "ReservedOrderID is an ID already known by the Cart of the future order ID",
  1132                      "type": "string"
  1133                  }
  1134              }
  1135          },
  1136          "cart.Address": {
  1137              "type": "object",
  1138              "properties": {
  1139                  "AdditionalAddressLines": {
  1140                      "type": "array",
  1141                      "items": {
  1142                          "type": "string"
  1143                      }
  1144                  },
  1145                  "City": {
  1146                      "type": "string"
  1147                  },
  1148                  "Company": {
  1149                      "type": "string"
  1150                  },
  1151                  "Country": {
  1152                      "type": "string"
  1153                  },
  1154                  "CountryCode": {
  1155                      "type": "string"
  1156                  },
  1157                  "Email": {
  1158                      "type": "string"
  1159                  },
  1160                  "Firstname": {
  1161                      "type": "string"
  1162                  },
  1163                  "Lastname": {
  1164                      "type": "string"
  1165                  },
  1166                  "MiddleName": {
  1167                      "type": "string"
  1168                  },
  1169                  "PostCode": {
  1170                      "type": "string"
  1171                  },
  1172                  "RegionCode": {
  1173                      "type": "string"
  1174                  },
  1175                  "Salutation": {
  1176                      "type": "string"
  1177                  },
  1178                  "State": {
  1179                      "type": "string"
  1180                  },
  1181                  "Street": {
  1182                      "type": "string"
  1183                  },
  1184                  "StreetNr": {
  1185                      "type": "string"
  1186                  },
  1187                  "Telephone": {
  1188                      "description": "Deprecated: parts of number should be distinguished, please use TelephoneCountryCode, TelephoneAreaCode and TelephoneNumber",
  1189                      "type": "string"
  1190                  },
  1191                  "TelephoneAreaCode": {
  1192                      "type": "string"
  1193                  },
  1194                  "TelephoneCountryCode": {
  1195                      "type": "string"
  1196                  },
  1197                  "TelephoneNumber": {
  1198                      "type": "string"
  1199                  },
  1200                  "Title": {
  1201                      "type": "string"
  1202                  },
  1203                  "Vat": {
  1204                      "type": "string"
  1205                  }
  1206              }
  1207          },
  1208          "cart.AppliedDiscount": {
  1209              "type": "object",
  1210              "properties": {
  1211                  "Applied": {
  1212                      "description": "how much of the discount has been subtracted from cart price, IMPORTANT: always negative",
  1213                      "allOf": [
  1214                          {
  1215                              "$ref": "#/definitions/domain.Price"
  1216                          }
  1217                      ]
  1218                  },
  1219                  "CampaignCode": {
  1220                      "description": "unique code of the underlying campaign or rule e.g. \"summer-campaign-2018\"",
  1221                      "type": "string"
  1222                  },
  1223                  "CouponCode": {
  1224                      "description": "code of discount e.g. provided by user \"summer2018\"",
  1225                      "type": "string"
  1226                  },
  1227                  "IsItemRelated": {
  1228                      "description": "flag indicating if the discount is applied due to item in cart",
  1229                      "type": "boolean"
  1230                  },
  1231                  "Label": {
  1232                      "description": "readable name of discount \"Super Summer Sale 2018\"",
  1233                      "type": "string"
  1234                  },
  1235                  "SortOrder": {
  1236                      "description": "indicates in which order discount have been applied, low value has been applied before high value",
  1237                      "type": "integer"
  1238                  },
  1239                  "Type": {
  1240                      "description": "to distinguish between discounts",
  1241                      "type": "string"
  1242                  }
  1243              }
  1244          },
  1245          "cart.AppliedGiftCard": {
  1246              "type": "object",
  1247              "properties": {
  1248                  "Applied": {
  1249                      "description": "how much of the gift card has been subtracted from cart price",
  1250                      "allOf": [
  1251                          {
  1252                              "$ref": "#/definitions/domain.Price"
  1253                          }
  1254                      ]
  1255                  },
  1256                  "Code": {
  1257                      "type": "string"
  1258                  },
  1259                  "CustomAttributes": {
  1260                      "description": "additional custom attributes",
  1261                      "type": "object",
  1262                      "additionalProperties": true
  1263                  },
  1264                  "Remaining": {
  1265                      "description": "how much of the gift card is still available",
  1266                      "allOf": [
  1267                          {
  1268                              "$ref": "#/definitions/domain.Price"
  1269                          }
  1270                      ]
  1271                  }
  1272              }
  1273          },
  1274          "cart.Cart": {
  1275              "type": "object",
  1276              "properties": {
  1277                  "AdditionalData": {
  1278                      "description": "AdditionalData can be used for Custom attributes",
  1279                      "allOf": [
  1280                          {
  1281                              "$ref": "#/definitions/cart.AdditionalData"
  1282                          }
  1283                      ]
  1284                  },
  1285                  "AppliedCouponCodes": {
  1286                      "description": "AppliedCouponCodes hold the coupons or discount codes that are applied to the cart",
  1287                      "type": "array",
  1288                      "items": {
  1289                          "$ref": "#/definitions/cart.CouponCode"
  1290                      }
  1291                  },
  1292                  "AppliedGiftCards": {
  1293                      "description": "AppliedGiftCards is a list of applied gift cards",
  1294                      "type": "array",
  1295                      "items": {
  1296                          "$ref": "#/definitions/cart.AppliedGiftCard"
  1297                      }
  1298                  },
  1299                  "AuthenticatedUserID": {
  1300                      "description": "AuthenticatedUserID holds the potential customer ID",
  1301                      "type": "string"
  1302                  },
  1303                  "BelongsToAuthenticatedUser": {
  1304                      "description": "BelongsToAuthenticatedUser displays if the cart is guest cart (false) or from an authenticated user (true)",
  1305                      "type": "boolean"
  1306                  },
  1307                  "BillingAddress": {
  1308                      "description": "BillingAddress is the main billing address (relevant for all payments/invoices)",
  1309                      "allOf": [
  1310                          {
  1311                              "$ref": "#/definitions/cart.Address"
  1312                          }
  1313                      ]
  1314                  },
  1315                  "DefaultCurrency": {
  1316                      "type": "string"
  1317                  },
  1318                  "Deliveries": {
  1319                      "description": "Deliveries contains a list of desired Deliveries (or Shipments) involved in this cart",
  1320                      "type": "array",
  1321                      "items": {
  1322                          "$ref": "#/definitions/cart.Delivery"
  1323                      }
  1324                  },
  1325                  "EntityID": {
  1326                      "description": "EntityID is a second identifier that may be used by some backends",
  1327                      "type": "string"
  1328                  },
  1329                  "GrandTotal": {
  1330                      "description": "GrandTotal is the final amount that need to be paid by the customer (gross)",
  1331                      "allOf": [
  1332                          {
  1333                              "$ref": "#/definitions/domain.Price"
  1334                          }
  1335                      ]
  1336                  },
  1337                  "GrandTotalNet": {
  1338                      "description": "GrandTotalNet is the corresponding net value to GrandTotal",
  1339                      "allOf": [
  1340                          {
  1341                              "$ref": "#/definitions/domain.Price"
  1342                          }
  1343                      ]
  1344                  },
  1345                  "GrandTotalNetWithGiftCards": {
  1346                      "description": "GrandTotalNetWithGiftCards is the corresponding net value to GrandTotalWithGiftCards",
  1347                      "allOf": [
  1348                          {
  1349                              "$ref": "#/definitions/domain.Price"
  1350                          }
  1351                      ]
  1352                  },
  1353                  "GrandTotalWithGiftCards": {
  1354                      "description": "GrandTotalWithGiftCards is the final amount with the applied gift cards subtracted.",
  1355                      "allOf": [
  1356                          {
  1357                              "$ref": "#/definitions/domain.Price"
  1358                          }
  1359                      ]
  1360                  },
  1361                  "ID": {
  1362                      "description": "ID is the main identifier of the cart",
  1363                      "type": "string"
  1364                  },
  1365                  "ItemRelatedDiscountAmount": {
  1366                      "description": "ItemRelatedDiscountAmount is the sum of discounts that are related to the item (including shipping discounts)",
  1367                      "allOf": [
  1368                          {
  1369                              "$ref": "#/definitions/domain.Price"
  1370                          }
  1371                      ]
  1372                  },
  1373                  "NonItemRelatedDiscountAmount": {
  1374                      "description": "NonItemRelatedDiscountAmount is the sum of discounts that are not related to the item (including shipping discounts)",
  1375                      "allOf": [
  1376                          {
  1377                              "$ref": "#/definitions/domain.Price"
  1378                          }
  1379                      ]
  1380                  },
  1381                  "PaymentSelection": {
  1382                      "description": "PaymentSelection is used to store information on \"how\" the customer wants to pay"
  1383                  },
  1384                  "Purchaser": {
  1385                      "description": "Purchaser hold additional infos for the legal contact person in this order",
  1386                      "allOf": [
  1387                          {
  1388                              "$ref": "#/definitions/cart.Person"
  1389                          }
  1390                      ]
  1391                  },
  1392                  "ShippingGross": {
  1393                      "description": "ShippingGross is the sum of all shipping costs including tax",
  1394                      "allOf": [
  1395                          {
  1396                              "$ref": "#/definitions/domain.Price"
  1397                          }
  1398                      ]
  1399                  },
  1400                  "ShippingGrossWithDiscounts": {
  1401                      "description": "ShippingGrossWithDiscounts is the sum of all shipping costs with all shipping discounts including tax",
  1402                      "allOf": [
  1403                          {
  1404                              "$ref": "#/definitions/domain.Price"
  1405                          }
  1406                      ]
  1407                  },
  1408                  "ShippingNet": {
  1409                      "description": "ShippingNet is the sum of all shipping costs",
  1410                      "allOf": [
  1411                          {
  1412                              "$ref": "#/definitions/domain.Price"
  1413                          }
  1414                      ]
  1415                  },
  1416                  "ShippingNetWithDiscounts": {
  1417                      "description": "ShippingNetWithDiscounts is the sum of all shipping costs with all shipping discounts",
  1418                      "allOf": [
  1419                          {
  1420                              "$ref": "#/definitions/domain.Price"
  1421                          }
  1422                      ]
  1423                  },
  1424                  "SubTotalGross": {
  1425                      "description": "SubTotalGross is the sum of all delivery subtotals (without shipping/ discounts)",
  1426                      "allOf": [
  1427                          {
  1428                              "$ref": "#/definitions/domain.Price"
  1429                          }
  1430                      ]
  1431                  },
  1432                  "SubTotalGrossWithDiscounts": {
  1433                      "description": "SubTotalGrossWithDiscounts is the sum of row gross prices reduced by the applied discounts",
  1434                      "allOf": [
  1435                          {
  1436                              "$ref": "#/definitions/domain.Price"
  1437                          }
  1438                      ]
  1439                  },
  1440                  "SubTotalNet": {
  1441                      "description": "SubTotalNet is the sum of all delivery net subtotals (without shipping/ discounts)",
  1442                      "allOf": [
  1443                          {
  1444                              "$ref": "#/definitions/domain.Price"
  1445                          }
  1446                      ]
  1447                  },
  1448                  "SubTotalNetWithDiscounts": {
  1449                      "description": "SubTotalNetWithDiscounts is the sum of row net prices reduced by the net value of the applied discounts",
  1450                      "allOf": [
  1451                          {
  1452                              "$ref": "#/definitions/domain.Price"
  1453                          }
  1454                      ]
  1455                  },
  1456                  "TotalDiscountAmount": {
  1457                      "description": "TotalDiscountAmount is the sum of all discounts (incl. shipping)",
  1458                      "allOf": [
  1459                          {
  1460                              "$ref": "#/definitions/domain.Price"
  1461                          }
  1462                      ]
  1463                  },
  1464                  "TotalGiftCardAmount": {
  1465                      "description": "AppliedGiftCardsAmount is the part of GrandTotal which is paid by gift cards",
  1466                      "allOf": [
  1467                          {
  1468                              "$ref": "#/definitions/domain.Price"
  1469                          }
  1470                      ]
  1471                  },
  1472                  "Totalitems": {
  1473                      "description": "Additional non taxable totals",
  1474                      "type": "array",
  1475                      "items": {
  1476                          "$ref": "#/definitions/cart.Totalitem"
  1477                      }
  1478                  }
  1479              }
  1480          },
  1481          "cart.CouponCode": {
  1482              "type": "object",
  1483              "properties": {
  1484                  "Code": {
  1485                      "type": "string"
  1486                  },
  1487                  "CustomAttributes": {
  1488                      "description": "CustomAttributes can hold additional data for coupon code - keys and values are project specific",
  1489                      "type": "object",
  1490                      "additionalProperties": true
  1491                  }
  1492              }
  1493          },
  1494          "cart.Delivery": {
  1495              "type": "object",
  1496              "properties": {
  1497                  "Cartitems": {
  1498                      "description": "Cartitems is the list of items belonging to this delivery",
  1499                      "type": "array",
  1500                      "items": {
  1501                          "$ref": "#/definitions/cart.Item"
  1502                      }
  1503                  },
  1504                  "DeliveryInfo": {
  1505                      "description": "DeliveryInfo contains details for this delivery e.g. how and where the delivery should be delivered to",
  1506                      "allOf": [
  1507                          {
  1508                              "$ref": "#/definitions/cart.DeliveryInfo"
  1509                          }
  1510                      ]
  1511                  },
  1512                  "GrandTotal": {
  1513                      "description": "GrandTotal contains the final price to pay",
  1514                      "allOf": [
  1515                          {
  1516                              "$ref": "#/definitions/domain.Price"
  1517                          }
  1518                      ]
  1519                  },
  1520                  "ItemRelatedDiscountAmount": {
  1521                      "description": "ItemRelatedDiscountAmount contains the sum of discounts that are related to the item, e.g. promo due to product attribute",
  1522                      "allOf": [
  1523                          {
  1524                              "$ref": "#/definitions/domain.Price"
  1525                          }
  1526                      ]
  1527                  },
  1528                  "NonItemRelatedDiscountAmount": {
  1529                      "description": "NonItemRelatedDiscountAmount contains the sum of discounts that are not related to the item, e.g. a general promo",
  1530                      "allOf": [
  1531                          {
  1532                              "$ref": "#/definitions/domain.Price"
  1533                          }
  1534                      ]
  1535                  },
  1536                  "ShippingItem": {
  1537                      "description": "ShippingItem\trepresent the shipping cost that may be involved in this delivery",
  1538                      "allOf": [
  1539                          {
  1540                              "$ref": "#/definitions/cart.ShippingItem"
  1541                          }
  1542                      ]
  1543                  },
  1544                  "SubTotalDiscountAmount": {
  1545                      "description": "TotalDiscountAmount contains the sum of all discounts (excl. shipping)",
  1546                      "allOf": [
  1547                          {
  1548                              "$ref": "#/definitions/domain.Price"
  1549                          }
  1550                      ]
  1551                  },
  1552                  "SubTotalGross": {
  1553                      "description": "SubTotalGross contains the sum of row gross prices, without shipping/discounts",
  1554                      "allOf": [
  1555                          {
  1556                              "$ref": "#/definitions/domain.Price"
  1557                          }
  1558                      ]
  1559                  },
  1560                  "SubTotalGrossWithDiscounts": {
  1561                      "description": "SubTotalGrossWithDiscounts contains the sum of row gross prices reduced by the applied discounts",
  1562                      "allOf": [
  1563                          {
  1564                              "$ref": "#/definitions/domain.Price"
  1565                          }
  1566                      ]
  1567                  },
  1568                  "SubTotalNet": {
  1569                      "description": "SubTotalNet contains the sum of row net prices, without shipping/discounts",
  1570                      "allOf": [
  1571                          {
  1572                              "$ref": "#/definitions/domain.Price"
  1573                          }
  1574                      ]
  1575                  },
  1576                  "SubTotalNetWithDiscounts": {
  1577                      "description": "SubTotalNetWithDiscounts contains the sum of row net prices reduced by the net value of the applied discounts",
  1578                      "allOf": [
  1579                          {
  1580                              "$ref": "#/definitions/domain.Price"
  1581                          }
  1582                      ]
  1583                  },
  1584                  "TotalDiscountAmount": {
  1585                      "description": "TotalDiscountAmount contains the sum of all discounts (incl. shipping)",
  1586                      "allOf": [
  1587                          {
  1588                              "$ref": "#/definitions/domain.Price"
  1589                          }
  1590                      ]
  1591                  }
  1592              }
  1593          },
  1594          "cart.DeliveryInfo": {
  1595              "type": "object",
  1596              "properties": {
  1597                  "AdditionalData": {
  1598                      "description": "AdditionalData can be used to store project specific information on the delivery",
  1599                      "type": "object",
  1600                      "additionalProperties": {
  1601                          "type": "string"
  1602                      }
  1603                  },
  1604                  "Carrier": {
  1605                      "description": "Carrier optional name of the Carrier that should be responsible for executing the delivery",
  1606                      "type": "string"
  1607                  },
  1608                  "Code": {
  1609                      "description": "Code is a project specific identifier for the Delivery - you need it for the AddToCart Request for example\nthe code can follow the convention in the Readme: Type_Method_LocationType_LocationCode",
  1610                      "type": "string"
  1611                  },
  1612                  "DeliveryLocation": {
  1613                      "description": "DeliveryLocation is the target location for the delivery",
  1614                      "allOf": [
  1615                          {
  1616                              "$ref": "#/definitions/cart.DeliveryLocation"
  1617                          }
  1618                      ]
  1619                  },
  1620                  "DesiredTime": {
  1621                      "description": "DesiredTime is an optional desired time for the delivery",
  1622                      "type": "string"
  1623                  },
  1624                  "Method": {
  1625                      "description": "Method is the shipping method something that is project specific and that can mean different delivery qualities with different delivery costs",
  1626                      "type": "string"
  1627                  },
  1628                  "Workflow": {
  1629                      "description": "Workflow of the Delivery e.g. delivery or pickup, see DeliveryWorkflowPickup, DeliveryWorkflowDelivery or DeliveryWorkflowUnspecified",
  1630                      "type": "string"
  1631                  }
  1632              }
  1633          },
  1634          "cart.DeliveryLocation": {
  1635              "type": "object",
  1636              "properties": {
  1637                  "Address": {
  1638                      "description": "Address contains the address of the delivery location, maybe not relevant if the type is not address",
  1639                      "allOf": [
  1640                          {
  1641                              "$ref": "#/definitions/cart.Address"
  1642                          }
  1643                      ]
  1644                  },
  1645                  "Code": {
  1646                      "description": "Code is an optional identifier of this location/destination",
  1647                      "type": "string"
  1648                  },
  1649                  "Type": {
  1650                      "description": "Type is the type of the delivery - use some of the constant defined in the package like DeliverylocationTypeAddress",
  1651                      "type": "string"
  1652                  },
  1653                  "UseBillingAddress": {
  1654                      "description": "UseBillingAddress if the address should be taken from billing (only relevant for type address)",
  1655                      "type": "boolean"
  1656                  }
  1657              }
  1658          },
  1659          "cart.ExistingCustomerData": {
  1660              "type": "object",
  1661              "properties": {
  1662                  "ID": {
  1663                      "description": "ID of the customer",
  1664                      "type": "string"
  1665                  }
  1666              }
  1667          },
  1668          "cart.Item": {
  1669              "type": "object",
  1670              "properties": {
  1671                  "AdditionalData": {
  1672                      "type": "object",
  1673                      "additionalProperties": {
  1674                          "type": "string"
  1675                      }
  1676                  },
  1677                  "AppliedDiscounts": {
  1678                      "description": "AppliedDiscounts contains the details about the discounts applied to this item - they can be \"itemrelated\" or not\nitemrelated would be e.g. special price, buy 3 pay 2\nnon-itemrelated would be e.g. 10% on everything",
  1679                      "type": "array",
  1680                      "items": {
  1681                          "$ref": "#/definitions/cart.AppliedDiscount"
  1682                      }
  1683                  },
  1684                  "BundleConfig": {
  1685                      "$ref": "#/definitions/domain.BundleConfiguration"
  1686                  },
  1687                  "ExternalReference": {
  1688                      "description": "ExternalReference can be used by cart service implementations to separate the representation in an external\ncart service from the unique item ID",
  1689                      "type": "string"
  1690                  },
  1691                  "ID": {
  1692                      "description": "ID of the item - needs to be unique over the whole cart",
  1693                      "type": "string"
  1694                  },
  1695                  "ItemRelatedDiscountAmount": {
  1696                      "description": "ItemRelatedDiscountAmount is the sum of all itemrelated Discounts",
  1697                      "allOf": [
  1698                          {
  1699                              "$ref": "#/definitions/domain.Price"
  1700                          }
  1701                      ]
  1702                  },
  1703                  "MarketplaceCode": {
  1704                      "description": "MarketplaceCode is the identifier for the product",
  1705                      "type": "string"
  1706                  },
  1707                  "NonItemRelatedDiscountAmount": {
  1708                      "description": "NonItemRelatedDiscountAmount is the sum of non-itemrelated Discounts where IsItemRelated = false",
  1709                      "allOf": [
  1710                          {
  1711                              "$ref": "#/definitions/domain.Price"
  1712                          }
  1713                      ]
  1714                  },
  1715                  "ProductName": {
  1716                      "type": "string"
  1717                  },
  1718                  "Qty": {
  1719                      "type": "integer"
  1720                  },
  1721                  "RowPriceGross": {
  1722                      "description": "RowPriceGross is the price incl. taxes for the whole Qty of products",
  1723                      "allOf": [
  1724                          {
  1725                              "$ref": "#/definitions/domain.Price"
  1726                          }
  1727                      ]
  1728                  },
  1729                  "RowPriceGrossWithDiscount": {
  1730                      "description": "RowPriceGrossWithDiscount is the price incl. taxes with deducted discounts for the whole Qty of products\nThis is in most cases the final price for the customer to pay",
  1731                      "allOf": [
  1732                          {
  1733                              "$ref": "#/definitions/domain.Price"
  1734                          }
  1735                      ]
  1736                  },
  1737                  "RowPriceGrossWithItemRelatedDiscount": {
  1738                      "description": "RowPriceGrossWithItemRelatedDiscount is the price incl. taxes with deducted item related discounts for the whole Qty of products",
  1739                      "allOf": [
  1740                          {
  1741                              "$ref": "#/definitions/domain.Price"
  1742                          }
  1743                      ]
  1744                  },
  1745                  "RowPriceNet": {
  1746                      "description": "RowPriceNet is the price excl. taxes for the whole Qty of products",
  1747                      "allOf": [
  1748                          {
  1749                              "$ref": "#/definitions/domain.Price"
  1750                          }
  1751                      ]
  1752                  },
  1753                  "RowPriceNetWithDiscount": {
  1754                      "description": "RowPriceNetWithDiscount is the discounted net price for the whole Qty of products",
  1755                      "allOf": [
  1756                          {
  1757                              "$ref": "#/definitions/domain.Price"
  1758                          }
  1759                      ]
  1760                  },
  1761                  "RowPriceNetWithItemRelatedDiscount": {
  1762                      "description": "RowPriceNetWithItemRelatedDiscount is the price excl. taxes with deducted item related discounts for the whole Qty of products",
  1763                      "allOf": [
  1764                          {
  1765                              "$ref": "#/definitions/domain.Price"
  1766                          }
  1767                      ]
  1768                  },
  1769                  "RowTaxes": {
  1770                      "description": "RowTaxes is a list of all taxes applied for the given Qty of products",
  1771                      "type": "array",
  1772                      "items": {
  1773                          "$ref": "#/definitions/cart.Tax"
  1774                      }
  1775                  },
  1776                  "SinglePriceGross": {
  1777                      "description": "SinglePriceGross is the gross price (incl. taxes) for a single product",
  1778                      "allOf": [
  1779                          {
  1780                              "$ref": "#/definitions/domain.Price"
  1781                          }
  1782                      ]
  1783                  },
  1784                  "SinglePriceNet": {
  1785                      "description": "SinglePriceNet is the net price (excl. taxes) for a single product",
  1786                      "allOf": [
  1787                          {
  1788                              "$ref": "#/definitions/domain.Price"
  1789                          }
  1790                      ]
  1791                  },
  1792                  "SourceID": {
  1793                      "description": "Source Id of where the items should be initial picked - This is set by the SourcingLogic",
  1794                      "type": "string"
  1795                  },
  1796                  "TotalDiscountAmount": {
  1797                      "description": "TotalDiscountAmount is the sum of all applied discounts (aka the savings for the customer)",
  1798                      "allOf": [
  1799                          {
  1800                              "$ref": "#/definitions/domain.Price"
  1801                          }
  1802                      ]
  1803                  },
  1804                  "VariantMarketPlaceCode": {
  1805                      "description": "VariantMarketPlaceCode is used for Configurable products",
  1806                      "type": "string"
  1807                  }
  1808              }
  1809          },
  1810          "cart.Person": {
  1811              "type": "object",
  1812              "properties": {
  1813                  "Address": {
  1814                      "$ref": "#/definitions/cart.Address"
  1815                  },
  1816                  "ExistingCustomerData": {
  1817                      "description": "ExistingCustomerData if the current purchaser is an existing customer - this contains infos about existing customer",
  1818                      "allOf": [
  1819                          {
  1820                              "$ref": "#/definitions/cart.ExistingCustomerData"
  1821                          }
  1822                      ]
  1823                  },
  1824                  "PersonalDetails": {
  1825                      "$ref": "#/definitions/cart.PersonalDetails"
  1826                  }
  1827              }
  1828          },
  1829          "cart.PersonalDetails": {
  1830              "type": "object",
  1831              "properties": {
  1832                  "DateOfBirth": {
  1833                      "type": "string"
  1834                  },
  1835                  "Nationality": {
  1836                      "type": "string"
  1837                  },
  1838                  "PassportCountry": {
  1839                      "type": "string"
  1840                  },
  1841                  "PassportNumber": {
  1842                      "type": "string"
  1843                  }
  1844              }
  1845          },
  1846          "cart.ShippingItem": {
  1847              "type": "object",
  1848              "properties": {
  1849                  "AppliedDiscounts": {
  1850                      "type": "array",
  1851                      "items": {
  1852                          "$ref": "#/definitions/cart.AppliedDiscount"
  1853                      }
  1854                  },
  1855                  "PriceGross": {
  1856                      "$ref": "#/definitions/domain.Price"
  1857                  },
  1858                  "PriceGrossWithDiscounts": {
  1859                      "$ref": "#/definitions/domain.Price"
  1860                  },
  1861                  "PriceNet": {
  1862                      "$ref": "#/definitions/domain.Price"
  1863                  },
  1864                  "PriceNetWithDiscounts": {
  1865                      "$ref": "#/definitions/domain.Price"
  1866                  },
  1867                  "TaxAmount": {
  1868                      "$ref": "#/definitions/domain.Price"
  1869                  },
  1870                  "Title": {
  1871                      "type": "string"
  1872                  }
  1873              }
  1874          },
  1875          "cart.Tax": {
  1876              "type": "object",
  1877              "properties": {
  1878                  "Amount": {
  1879                      "$ref": "#/definitions/domain.Price"
  1880                  },
  1881                  "Rate": {
  1882                      "type": "string"
  1883                  },
  1884                  "Type": {
  1885                      "type": "string"
  1886                  }
  1887              }
  1888          },
  1889          "cart.Teaser": {
  1890              "type": "object",
  1891              "properties": {
  1892                  "DeliveryCodes": {
  1893                      "type": "array",
  1894                      "items": {
  1895                          "type": "string"
  1896                      }
  1897                  },
  1898                  "ItemCount": {
  1899                      "type": "integer"
  1900                  },
  1901                  "ProductCount": {
  1902                      "type": "integer"
  1903                  }
  1904              }
  1905          },
  1906          "cart.Totalitem": {
  1907              "type": "object",
  1908              "properties": {
  1909                  "Code": {
  1910                      "type": "string"
  1911                  },
  1912                  "Price": {
  1913                      "$ref": "#/definitions/domain.Price"
  1914                  },
  1915                  "Title": {
  1916                      "type": "string"
  1917                  },
  1918                  "Type": {
  1919                      "type": "string"
  1920                  }
  1921              }
  1922          },
  1923          "cartResultError": {
  1924              "type": "object",
  1925              "properties": {
  1926                  "Code": {
  1927                      "type": "string"
  1928                  },
  1929                  "Message": {
  1930                      "type": "string"
  1931                  }
  1932              }
  1933          },
  1934          "checkoutError": {
  1935              "type": "object",
  1936              "properties": {
  1937                  "Code": {
  1938                      "type": "string"
  1939                  },
  1940                  "Message": {
  1941                      "type": "string"
  1942                  }
  1943              }
  1944          },
  1945          "controller.APIResult": {
  1946              "type": "object",
  1947              "properties": {
  1948                  "Error": {
  1949                      "$ref": "#/definitions/productResultError"
  1950                  },
  1951                  "Product": {},
  1952                  "Success": {
  1953                      "type": "boolean"
  1954                  }
  1955              }
  1956          },
  1957          "controller.CartAPIResult": {
  1958              "type": "object",
  1959              "properties": {
  1960                  "CartTeaser": {
  1961                      "$ref": "#/definitions/cart.Teaser"
  1962                  },
  1963                  "CartValidationResult": {
  1964                      "$ref": "#/definitions/validation.Result"
  1965                  },
  1966                  "Data": {},
  1967                  "DataValidationInfo": {
  1968                      "type": "object"
  1969                  },
  1970                  "Error": {
  1971                      "description": "Contains details if success is false",
  1972                      "allOf": [
  1973                          {
  1974                              "$ref": "#/definitions/cartResultError"
  1975                          }
  1976                      ]
  1977                  },
  1978                  "Success": {
  1979                      "type": "boolean"
  1980                  }
  1981              }
  1982          },
  1983          "controller.getCartResult": {
  1984              "type": "object",
  1985              "properties": {
  1986                  "Cart": {
  1987                      "$ref": "#/definitions/cart.Cart"
  1988                  },
  1989                  "CartValidationResult": {
  1990                      "$ref": "#/definitions/validation.Result"
  1991                  }
  1992              }
  1993          },
  1994          "controller.placeOrderContext": {
  1995              "type": "object",
  1996              "properties": {
  1997                  "Cart": {
  1998                      "$ref": "#/definitions/cart.Cart"
  1999                  },
  2000                  "CartValidationResult": {
  2001                      "$ref": "#/definitions/validation.Result"
  2002                  },
  2003                  "FailedReason": {
  2004                      "type": "string"
  2005                  },
  2006                  "OrderInfos": {
  2007                      "$ref": "#/definitions/controller.placedOrderInfos"
  2008                  },
  2009                  "State": {
  2010                      "type": "string"
  2011                  },
  2012                  "StateData": {},
  2013                  "UUID": {
  2014                      "type": "string"
  2015                  }
  2016              }
  2017          },
  2018          "controller.placedOrderInfos": {
  2019              "type": "object",
  2020              "properties": {
  2021                  "Email": {
  2022                      "type": "string"
  2023                  },
  2024                  "PaymentInfos": {
  2025                      "type": "array",
  2026                      "items": {
  2027                          "$ref": "#/definitions/application.PlaceOrderPaymentInfo"
  2028                      }
  2029                  },
  2030                  "PlacedDecoratedCart": {
  2031                      "$ref": "#/definitions/decorator.DecoratedCart"
  2032                  },
  2033                  "PlacedOrderInfos": {
  2034                      "type": "array",
  2035                      "items": {
  2036                          "$ref": "#/definitions/placeorder.PlacedOrderInfo"
  2037                      }
  2038                  }
  2039              }
  2040          },
  2041          "controller.startPlaceOrderResult": {
  2042              "type": "object",
  2043              "properties": {
  2044                  "UUID": {
  2045                      "type": "string"
  2046                  }
  2047              }
  2048          },
  2049          "decorator.DecoratedCart": {
  2050              "type": "object",
  2051              "properties": {
  2052                  "Cart": {
  2053                      "$ref": "#/definitions/cart.Cart"
  2054                  },
  2055                  "DecoratedDeliveries": {
  2056                      "type": "array",
  2057                      "items": {
  2058                          "$ref": "#/definitions/decorator.DecoratedDelivery"
  2059                      }
  2060                  }
  2061              }
  2062          },
  2063          "decorator.DecoratedCartItem": {
  2064              "type": "object",
  2065              "properties": {
  2066                  "Item": {
  2067                      "$ref": "#/definitions/cart.Item"
  2068                  },
  2069                  "Product": {}
  2070              }
  2071          },
  2072          "decorator.DecoratedDelivery": {
  2073              "type": "object",
  2074              "properties": {
  2075                  "DecoratedItems": {
  2076                      "type": "array",
  2077                      "items": {
  2078                          "$ref": "#/definitions/decorator.DecoratedCartItem"
  2079                      }
  2080                  },
  2081                  "Delivery": {
  2082                      "$ref": "#/definitions/cart.Delivery"
  2083                  }
  2084              }
  2085          },
  2086          "domain.Attributes": {
  2087              "type": "object",
  2088              "additionalProperties": {}
  2089          },
  2090          "domain.Badge": {
  2091              "type": "object",
  2092              "properties": {
  2093                  "Code": {
  2094                      "type": "string"
  2095                  },
  2096                  "Label": {
  2097                      "type": "string"
  2098                  }
  2099              }
  2100          },
  2101          "domain.BundleConfiguration": {
  2102              "type": "object",
  2103              "additionalProperties": {
  2104                  "$ref": "#/definitions/domain.ChoiceConfiguration"
  2105              }
  2106          },
  2107          "domain.CategoryTeaser": {
  2108              "type": "object",
  2109              "properties": {
  2110                  "Code": {
  2111                      "description": "Code the identifier of the Category",
  2112                      "type": "string"
  2113                  },
  2114                  "Name": {
  2115                      "description": "Name is the speaking name of the category",
  2116                      "type": "string"
  2117                  },
  2118                  "Path": {
  2119                      "description": "The Path (root to leaf) for this Category - separated by \"/\"",
  2120                      "type": "string"
  2121                  }
  2122              }
  2123          },
  2124          "domain.ChoiceConfiguration": {
  2125              "type": "object",
  2126              "properties": {
  2127                  "MarketplaceCode": {
  2128                      "type": "string"
  2129                  },
  2130                  "Qty": {
  2131                      "type": "integer"
  2132                  },
  2133                  "VariantMarketplaceCode": {
  2134                      "type": "string"
  2135                  }
  2136              }
  2137          },
  2138          "domain.Error": {
  2139              "type": "object",
  2140              "properties": {
  2141                  "ErrorCode": {
  2142                      "type": "string"
  2143                  },
  2144                  "ErrorMessage": {
  2145                      "type": "string"
  2146                  }
  2147              }
  2148          },
  2149          "domain.FlowActionData": {
  2150              "type": "object",
  2151              "properties": {
  2152                  "DisplayData": {
  2153                      "description": "DisplayData holds data, normally HTML to be displayed to the user",
  2154                      "type": "string"
  2155                  },
  2156                  "FormParameter": {
  2157                      "type": "object",
  2158                      "additionalProperties": {
  2159                          "$ref": "#/definitions/domain.FormField"
  2160                      }
  2161                  },
  2162                  "URL": {
  2163                      "description": "URL is used to pass URL data to the user if the current state needs some",
  2164                      "type": "string"
  2165                  },
  2166                  "WalletDetails": {
  2167                      "$ref": "#/definitions/domain.WalletDetails"
  2168                  }
  2169              }
  2170          },
  2171          "domain.FlowStatus": {
  2172              "type": "object",
  2173              "properties": {
  2174                  "Action": {
  2175                      "description": "Action to perform to proceed in the payment flow. If status is \"payment_waiting_for_customer\" this field contains information about what to do - e.g. \"redirect\" or \"show_iframe\"",
  2176                      "type": "string"
  2177                  },
  2178                  "ActionData": {
  2179                      "$ref": "#/definitions/domain.FlowActionData"
  2180                  },
  2181                  "Data": {
  2182                      "description": "Data contains additional information related to the action / flow"
  2183                  },
  2184                  "Error": {
  2185                      "description": "Error contains additional information in case of an error (e.g. payment failed)",
  2186                      "allOf": [
  2187                          {
  2188                              "$ref": "#/definitions/domain.Error"
  2189                          }
  2190                      ]
  2191                  },
  2192                  "Status": {
  2193                      "description": "Status of the payment flow. E.g. \"payment_completed\", \"payment_waiting_for_customer\" or \"payment_failed\"",
  2194                      "type": "string"
  2195                  }
  2196              }
  2197          },
  2198          "domain.FormField": {
  2199              "type": "object",
  2200              "properties": {
  2201                  "Value": {
  2202                      "type": "array",
  2203                      "items": {
  2204                          "type": "string"
  2205                      }
  2206                  }
  2207              }
  2208          },
  2209          "domain.LoyaltyEarningInfo": {
  2210              "type": "object",
  2211              "properties": {
  2212                  "Default": {
  2213                      "$ref": "#/definitions/domain.Price"
  2214                  },
  2215                  "Type": {
  2216                      "type": "string"
  2217                  }
  2218              }
  2219          },
  2220          "domain.LoyaltyPriceInfo": {
  2221              "type": "object",
  2222              "properties": {
  2223                  "Context": {
  2224                      "$ref": "#/definitions/domain.PriceContext"
  2225                  },
  2226                  "Default": {
  2227                      "$ref": "#/definitions/domain.Price"
  2228                  },
  2229                  "DiscountText": {
  2230                      "type": "string"
  2231                  },
  2232                  "Discounted": {
  2233                      "$ref": "#/definitions/domain.Price"
  2234                  },
  2235                  "IsDiscounted": {
  2236                      "type": "boolean"
  2237                  },
  2238                  "MaxPointsToSpent": {
  2239                      "type": "string"
  2240                  },
  2241                  "MinPointsToSpent": {
  2242                      "type": "string"
  2243                  },
  2244                  "Type": {
  2245                      "description": "Type or Name of the Loyalty program",
  2246                      "type": "string"
  2247                  }
  2248              }
  2249          },
  2250          "domain.PaymentRequestAPI": {
  2251              "type": "object",
  2252              "properties": {
  2253                  "CompleteURL": {
  2254                      "type": "string"
  2255                  },
  2256                  "Details": {
  2257                      "type": "string"
  2258                  },
  2259                  "MerchantValidationURL": {
  2260                      "type": "string"
  2261                  },
  2262                  "Methods": {
  2263                      "type": "string"
  2264                  },
  2265                  "Options": {
  2266                      "type": "string"
  2267                  }
  2268              }
  2269          },
  2270          "domain.Price": {
  2271              "type": "object"
  2272          },
  2273          "domain.PriceContext": {
  2274              "type": "object",
  2275              "properties": {
  2276                  "ChannelCode": {
  2277                      "type": "string"
  2278                  },
  2279                  "CustomerGroup": {
  2280                      "type": "string"
  2281                  },
  2282                  "DeliveryCode": {
  2283                      "type": "string"
  2284                  },
  2285                  "Locale": {
  2286                      "type": "string"
  2287                  }
  2288              }
  2289          },
  2290          "domain.PriceInfo": {
  2291              "type": "object",
  2292              "properties": {
  2293                  "ActiveBase": {
  2294                      "type": "string"
  2295                  },
  2296                  "ActiveBaseAmount": {
  2297                      "type": "string"
  2298                  },
  2299                  "ActiveBaseUnit": {
  2300                      "type": "string"
  2301                  },
  2302                  "CampaignRules": {
  2303                      "type": "array",
  2304                      "items": {
  2305                          "type": "string"
  2306                      }
  2307                  },
  2308                  "Context": {
  2309                      "$ref": "#/definitions/domain.PriceContext"
  2310                  },
  2311                  "Default": {
  2312                      "$ref": "#/definitions/domain.Price"
  2313                  },
  2314                  "DenyMoreDiscounts": {
  2315                      "type": "boolean"
  2316                  },
  2317                  "DiscountText": {
  2318                      "type": "string"
  2319                  },
  2320                  "Discounted": {
  2321                      "$ref": "#/definitions/domain.Price"
  2322                  },
  2323                  "IsDiscounted": {
  2324                      "type": "boolean"
  2325                  },
  2326                  "TaxClass": {
  2327                      "type": "string"
  2328                  }
  2329              }
  2330          },
  2331          "domain.SimpleProduct": {
  2332              "type": "object",
  2333              "properties": {
  2334                  "ActiveLoyaltyPrice": {
  2335                      "$ref": "#/definitions/domain.LoyaltyPriceInfo"
  2336                  },
  2337                  "ActivePrice": {
  2338                      "$ref": "#/definitions/domain.PriceInfo"
  2339                  },
  2340                  "Attributes": {
  2341                      "$ref": "#/definitions/domain.Attributes"
  2342                  },
  2343                  "AvailablePrices": {
  2344                      "type": "array",
  2345                      "items": {
  2346                          "$ref": "#/definitions/domain.PriceInfo"
  2347                      }
  2348                  },
  2349                  "Badges": {
  2350                      "type": "array",
  2351                      "items": {
  2352                          "$ref": "#/definitions/domain.Badge"
  2353                      }
  2354                  },
  2355                  "Categories": {
  2356                      "type": "array",
  2357                      "items": {
  2358                          "$ref": "#/definitions/domain.CategoryTeaser"
  2359                      }
  2360                  },
  2361                  "CategoryToCodeMapping": {
  2362                      "type": "array",
  2363                      "items": {
  2364                          "type": "string"
  2365                      }
  2366                  },
  2367                  "CreatedAt": {
  2368                      "type": "string"
  2369                  },
  2370                  "Description": {
  2371                      "type": "string"
  2372                  },
  2373                  "Identifier": {
  2374                      "type": "string"
  2375                  },
  2376                  "IsNew": {
  2377                      "type": "boolean"
  2378                  },
  2379                  "IsSaleable": {
  2380                      "type": "boolean"
  2381                  },
  2382                  "Keywords": {
  2383                      "type": "array",
  2384                      "items": {
  2385                          "type": "string"
  2386                      }
  2387                  },
  2388                  "LoyaltyEarnings": {
  2389                      "description": "LoyaltyEarnings holds optional infos about potential loyalty earnings",
  2390                      "type": "array",
  2391                      "items": {
  2392                          "$ref": "#/definitions/domain.LoyaltyEarningInfo"
  2393                      }
  2394                  },
  2395                  "LoyaltyPrices": {
  2396                      "description": "LoyaltyPrices holds optional infos for products that can be paid in a loyalty program",
  2397                      "type": "array",
  2398                      "items": {
  2399                          "$ref": "#/definitions/domain.LoyaltyPriceInfo"
  2400                      }
  2401                  },
  2402                  "MainCategory": {
  2403                      "$ref": "#/definitions/domain.CategoryTeaser"
  2404                  },
  2405                  "MarketPlaceCode": {
  2406                      "type": "string"
  2407                  },
  2408                  "Media": {
  2409                      "type": "array",
  2410                      "items": {
  2411                          "$ref": "#/definitions/ProductMedia"
  2412                      }
  2413                  },
  2414                  "RetailerCode": {
  2415                      "type": "string"
  2416                  },
  2417                  "RetailerName": {
  2418                      "type": "string"
  2419                  },
  2420                  "RetailerSku": {
  2421                      "type": "string"
  2422                  },
  2423                  "SaleableFrom": {
  2424                      "type": "string"
  2425                  },
  2426                  "SaleableTo": {
  2427                      "type": "string"
  2428                  },
  2429                  "ShortDescription": {
  2430                      "type": "string"
  2431                  },
  2432                  "Stock": {
  2433                      "type": "array",
  2434                      "items": {
  2435                          "$ref": "#/definitions/domain.Stock"
  2436                      }
  2437                  },
  2438                  "StockLevel": {
  2439                      "description": "Deprecated: use Stock[x].Level instead",
  2440                      "type": "string"
  2441                  },
  2442                  "Teaser": {
  2443                      "$ref": "#/definitions/domain.TeaserData"
  2444                  },
  2445                  "Title": {
  2446                      "type": "string"
  2447                  },
  2448                  "UpdatedAt": {
  2449                      "type": "string"
  2450                  },
  2451                  "VisibleFrom": {
  2452                      "type": "string"
  2453                  },
  2454                  "VisibleTo": {
  2455                      "type": "string"
  2456                  }
  2457              }
  2458          },
  2459          "domain.Stock": {
  2460              "type": "object",
  2461              "properties": {
  2462                  "Amount": {
  2463                      "type": "integer"
  2464                  },
  2465                  "DeliveryCode": {
  2466                      "type": "string"
  2467                  },
  2468                  "InStock": {
  2469                      "type": "boolean"
  2470                  },
  2471                  "Level": {
  2472                      "type": "string"
  2473                  }
  2474              }
  2475          },
  2476          "domain.TeaserData": {
  2477              "type": "object",
  2478              "properties": {
  2479                  "Badges": {
  2480                      "description": "Badges optional slice of badges to teaser a product",
  2481                      "type": "array",
  2482                      "items": {
  2483                          "$ref": "#/definitions/domain.Badge"
  2484                      }
  2485                  },
  2486                  "MarketPlaceCode": {
  2487                      "description": "The sku that should be used to link from Teasers",
  2488                      "type": "string"
  2489                  },
  2490                  "Media": {
  2491                      "description": "Media",
  2492                      "type": "array",
  2493                      "items": {
  2494                          "$ref": "#/definitions/ProductMedia"
  2495                      }
  2496                  },
  2497                  "PreSelectedVariantSku": {
  2498                      "description": "PreSelectedVariantSku might be set for configurables to give a hint to link to a variant of a configurable (That might be the case if a user filters for an attribute and in the teaser the variant with that attribute is shown)",
  2499                      "type": "string"
  2500                  },
  2501                  "ShortDescription": {
  2502                      "type": "string"
  2503                  },
  2504                  "ShortTitle": {
  2505                      "type": "string"
  2506                  },
  2507                  "TeaserAvailablePrices": {
  2508                      "type": "array",
  2509                      "items": {
  2510                          "$ref": "#/definitions/domain.PriceInfo"
  2511                      }
  2512                  },
  2513                  "TeaserLoyaltyEarningInfo": {
  2514                      "description": "TeaserLoyaltyEarning is the teaser for the loyalty earning used in grid / list view",
  2515                      "allOf": [
  2516                          {
  2517                              "$ref": "#/definitions/domain.LoyaltyEarningInfo"
  2518                          }
  2519                      ]
  2520                  },
  2521                  "TeaserLoyaltyPriceInfo": {
  2522                      "description": "TeaserLoyaltyPriceInfo is the loyalty price that can be used for teaser (e.g. on listing views)",
  2523                      "allOf": [
  2524                          {
  2525                              "$ref": "#/definitions/domain.LoyaltyPriceInfo"
  2526                          }
  2527                      ]
  2528                  },
  2529                  "TeaserPrice": {
  2530                      "description": "TeaserPrice is the price that should be shown in teasers (listview)",
  2531                      "allOf": [
  2532                          {
  2533                              "$ref": "#/definitions/domain.PriceInfo"
  2534                          }
  2535                      ]
  2536                  },
  2537                  "TeaserPriceIsFromPrice": {
  2538                      "description": "TeaserPriceIsFromPrice is set to true in cases where a product might have different prices (e.g. configurable)",
  2539                      "type": "boolean"
  2540                  },
  2541                  "URLSlug": {
  2542                      "type": "string"
  2543                  }
  2544              }
  2545          },
  2546          "domain.WalletDetails": {
  2547              "type": "object",
  2548              "properties": {
  2549                  "PaymentRequestAPI": {
  2550                      "$ref": "#/definitions/domain.PaymentRequestAPI"
  2551                  },
  2552                  "UsedPaymentMethod": {
  2553                      "type": "string"
  2554                  }
  2555              }
  2556          },
  2557          "paymentResultError": {
  2558              "type": "object",
  2559              "properties": {
  2560                  "Code": {
  2561                      "type": "string"
  2562                  },
  2563                  "Message": {
  2564                      "type": "string"
  2565                  }
  2566              }
  2567          },
  2568          "placeorder.CreditCardInfo": {
  2569              "type": "object",
  2570              "properties": {
  2571                  "AnonymizedCardNumber": {
  2572                      "type": "string"
  2573                  },
  2574                  "CardHolder": {
  2575                      "type": "string"
  2576                  },
  2577                  "Expire": {
  2578                      "type": "string"
  2579                  },
  2580                  "Type": {
  2581                      "type": "string"
  2582                  }
  2583              }
  2584          },
  2585          "placeorder.PlacedOrderInfo": {
  2586              "type": "object",
  2587              "properties": {
  2588                  "DeliveryCode": {
  2589                      "type": "string"
  2590                  },
  2591                  "OrderNumber": {
  2592                      "type": "string"
  2593                  }
  2594              }
  2595          },
  2596          "productResultError": {
  2597              "type": "object",
  2598              "properties": {
  2599                  "Code": {
  2600                      "type": "string"
  2601                  },
  2602                  "Message": {
  2603                      "type": "string"
  2604                  }
  2605              }
  2606          },
  2607          "validation.ItemValidationError": {
  2608              "type": "object",
  2609              "properties": {
  2610                  "ErrorMessageKey": {
  2611                      "type": "string"
  2612                  },
  2613                  "ItemID": {
  2614                      "type": "string"
  2615                  }
  2616              }
  2617          },
  2618          "validation.Result": {
  2619              "type": "object",
  2620              "properties": {
  2621                  "CommonErrorMessageKey": {
  2622                      "type": "string"
  2623                  },
  2624                  "HasCommonError": {
  2625                      "type": "boolean"
  2626                  },
  2627                  "ItemResults": {
  2628                      "type": "array",
  2629                      "items": {
  2630                          "$ref": "#/definitions/validation.ItemValidationError"
  2631                      }
  2632                  }
  2633              }
  2634          }
  2635      },
  2636      "tags": [
  2637          {
  2638              "description": "All Cart related APIs endpoints, most suitable to be called from a browser, because they rely on the session and cookie headers.",
  2639              "name": "Cart"
  2640          },
  2641          {
  2642              "description": "All Payment related APIs endpoints, most suitable to be called from a browser, because they rely on the session and cookie headers.",
  2643              "name": "Payment"
  2644          },
  2645          {
  2646              "description": "All Product related APIs endpoints.",
  2647              "name": "Product"
  2648          },
  2649          {
  2650              "description": "All Checkout related APIs endpoints, most suitable to be called from a browser, because they rely on the session and cookie headers.",
  2651              "name": "Checkout"
  2652          }
  2653      ]
  2654  }