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 }