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