solidus_api 3.0.0.rc2 → 3.1.0

Sign up to get free protection for your applications and to get access to all the features.
data/openapi/main.hub.yml CHANGED
@@ -38,11 +38,11 @@ pages:
38
38
  path: /authentication
39
39
  data:
40
40
  $ref: ./authentication.md
41
- - title: Pagination
41
+ - title: Pagination and Filtering
42
42
  route:
43
- path: /pagination
43
+ path: /pagination-and-filtering
44
44
  data:
45
- $ref: ./pagination.md
45
+ $ref: ./pagination-and-filtering.md
46
46
  - title: Errors
47
47
  route:
48
48
  path: /errors
@@ -0,0 +1,23 @@
1
+ # Pagination and Filtering
2
+
3
+ ## Pagination
4
+
5
+ Most endpoints that return a collection are paginated. A paginated response contains metadata about the current page at the root level and the resources in the current page in a child key named after the resource (e.g. `orders`).
6
+
7
+ You can pass the `page` and `per_page` parameters to set the current page and the desired number of items per page. Note that the default and the maximum number of items per page is decided at the application level.
8
+
9
+ All pagination metadata is documented in the individual API endpoints, so take a look there if you're unsure what data you can expect.
10
+
11
+ ## Filtering
12
+
13
+ Most endpoints that return a collection also have the ability to filter data using query params. This works taking advantage of the search filters provided by [Ransack](https://github.com/activerecord-hackery/ransack/).
14
+
15
+ For example, if we want to retrieve only products that contain the word "Watch" in their title we can make the following request:
16
+
17
+ ```
18
+ GET /products?q[name_cont]=Watch
19
+ ```
20
+
21
+ The `name_cont` matcher will generate a query using `LIKE` to retrieve all the products that contain the value specified. For an extensive list of search matchers supported, please refer to the Ransack documentation.
22
+
23
+ The result will be paginated as described in the paragraph above.
@@ -38,6 +38,7 @@ paths:
38
38
  parameters:
39
39
  - $ref: '#/components/parameters/page'
40
40
  - $ref: '#/components/parameters/per_page'
41
+ - $ref: '#/components/parameters/q'
41
42
  security:
42
43
  - api-key: []
43
44
  post:
@@ -60,7 +61,37 @@ paths:
60
61
  security:
61
62
  - api-key: []
62
63
  requestBody:
63
- $ref: '#/components/requestBodies/product-input'
64
+ content:
65
+ application/json:
66
+ schema:
67
+ type: object
68
+ properties:
69
+ product:
70
+ $ref: '#/components/schemas/product-input'
71
+ examples:
72
+ Example:
73
+ value:
74
+ product:
75
+ name: The Majestic Product
76
+ price: '19.99'
77
+ shipping_category_id: 8
78
+ product_properties_attributes:
79
+ - property_name: fabric
80
+ value: cotton
81
+ option_types:
82
+ - size
83
+ - color
84
+ taxon_ids: '2,4'
85
+ variants:
86
+ - price: 19.99
87
+ cost_price: 17
88
+ sku: SKU-3
89
+ track_inventory: true
90
+ options:
91
+ - name: size
92
+ value: small
93
+ - name: color
94
+ value: black
64
95
  /orders/mine:
65
96
  get:
66
97
  responses:
@@ -87,6 +118,7 @@ paths:
87
118
  parameters:
88
119
  - $ref: '#/components/parameters/page'
89
120
  - $ref: '#/components/parameters/per_page'
121
+ - $ref: '#/components/parameters/q'
90
122
  security:
91
123
  - api-key: []
92
124
  '/orders/{number}':
@@ -116,6 +148,7 @@ paths:
116
148
  required: true
117
149
  schema:
118
150
  type: string
151
+ description: The order number
119
152
  patch:
120
153
  responses:
121
154
  '200':
@@ -131,7 +164,10 @@ paths:
131
164
  '422':
132
165
  $ref: '#/components/responses/unprocessable-entity'
133
166
  summary: Update order
134
- description: Updates an order.
167
+ description: |-
168
+ Updates an order.
169
+
170
+ To perform this operation the request should be made as the order's owner or with the order token in case of unauthenitcated checkouts (es. guest checkout).
135
171
  operationId: update-order
136
172
  tags:
137
173
  - Orders
@@ -139,7 +175,42 @@ paths:
139
175
  - api-key: []
140
176
  - order-token: []
141
177
  requestBody:
142
- $ref: '#/components/requestBodies/order-input'
178
+ content:
179
+ application/json:
180
+ schema:
181
+ type: object
182
+ properties:
183
+ order:
184
+ $ref: '#/components/schemas/order-input'
185
+ examples:
186
+ Updating Billing Address:
187
+ value:
188
+ order:
189
+ use_billing: true
190
+ ship_address_attributes:
191
+ name: Jane Doe
192
+ address1: 2191 Calico Drive
193
+ city: Phoenix
194
+ country_id: 22
195
+ state_id: 31
196
+ zipcode: '85022'
197
+ phone: 509-644-9988
198
+ company: Acme Inc.
199
+ Select a Shipment's Shipping Rate:
200
+ value:
201
+ order:
202
+ shipments_attributes:
203
+ - id: 2
204
+ selected_shipping_rate_id: 23
205
+ Updating Payment:
206
+ value:
207
+ order:
208
+ payments_attributes:
209
+ - amount: '42.42'
210
+ payment_method_id: 1
211
+ source_attributes:
212
+ gateway_payment_profile_id: super-secret-token-2131m3n13bv3hv1vasda
213
+ description: ''
143
214
  /orders/current:
144
215
  get:
145
216
  responses:
@@ -188,6 +259,7 @@ paths:
188
259
  parameters:
189
260
  - $ref: '#/components/parameters/page'
190
261
  - $ref: '#/components/parameters/per_page'
262
+ - $ref: '#/components/parameters/q'
191
263
  '/countries/{id}':
192
264
  get:
193
265
  responses:
@@ -344,7 +416,19 @@ paths:
344
416
  security:
345
417
  - api-key: []
346
418
  requestBody:
347
- $ref: '#/components/requestBodies/product-input'
419
+ content:
420
+ application/json:
421
+ schema:
422
+ type: object
423
+ properties:
424
+ product:
425
+ $ref: '#/components/schemas/product-input'
426
+ examples:
427
+ Example:
428
+ value:
429
+ product:
430
+ name: The Majestic Product
431
+ price: '22.22'
348
432
  '/products/{product_id}/images':
349
433
  get:
350
434
  responses:
@@ -391,14 +475,23 @@ paths:
391
475
  '422':
392
476
  $ref: '#/components/responses/unprocessable-entity'
393
477
  summary: Create product image
394
- description: Creates an image for a product.
478
+ description: |-
479
+ Creates an image for a product.
480
+
481
+ Only users with the `create` permission on `Spree::Image` can perform this action.
395
482
  operationId: create-product-image
396
483
  tags:
397
484
  - Images
398
485
  security:
399
486
  - api-key: []
400
487
  requestBody:
401
- $ref: '#/components/requestBodies/image-input'
488
+ content:
489
+ application/json:
490
+ schema:
491
+ type: object
492
+ properties:
493
+ image:
494
+ $ref: '#/components/schemas/image-input'
402
495
  '/products/{product_id}/variants':
403
496
  get:
404
497
  responses:
@@ -426,6 +519,7 @@ paths:
426
519
  parameters:
427
520
  - $ref: '#/components/parameters/page'
428
521
  - $ref: '#/components/parameters/per_page'
522
+ - $ref: '#/components/parameters/q'
429
523
  security:
430
524
  - api-key: []
431
525
  parameters:
@@ -456,7 +550,38 @@ paths:
456
550
  security:
457
551
  - api-key: []
458
552
  requestBody:
459
- $ref: '#/components/requestBodies/variant-input'
553
+ content:
554
+ application/json:
555
+ schema:
556
+ type: object
557
+ properties:
558
+ variant:
559
+ $ref: '#/components/schemas/variant-input'
560
+ examples:
561
+ Example with Option Value Ids:
562
+ value:
563
+ variant:
564
+ price: '11.22'
565
+ cost_price: '9'
566
+ position: 1
567
+ track_inventory: true
568
+ sku: AWSOME-1122
569
+ cost_currency: USD
570
+ option_value_ids:
571
+ - 1
572
+ - 2
573
+ Example with Option Value Text:
574
+ value:
575
+ variant:
576
+ price: '11.22'
577
+ cost_price: '9'
578
+ position: 1
579
+ track_inventory: true
580
+ sku: AWSOME-1122
581
+ cost_currency: USD
582
+ options:
583
+ name: Color
584
+ value: White
460
585
  '/products/{product_id}/images/{id}':
461
586
  get:
462
587
  responses:
@@ -483,11 +608,13 @@ paths:
483
608
  required: true
484
609
  schema:
485
610
  type: string
611
+ description: 'The id of the Spree::Product'
486
612
  - name: id
487
613
  in: path
488
614
  required: true
489
615
  schema:
490
616
  type: string
617
+ description: 'The id of the Spree::Image'
491
618
  delete:
492
619
  responses:
493
620
  '204':
@@ -524,14 +651,23 @@ paths:
524
651
  '422':
525
652
  $ref: '#/components/responses/unprocessable-entity'
526
653
  summary: Update product image
527
- description: Updates a product's image.
654
+ description: |-
655
+ Updates a product's image.
656
+
657
+ Only users with the `update` permission on the image can perform this action.
528
658
  operationId: update-product-image
529
659
  tags:
530
660
  - Images
531
661
  security:
532
662
  - api-key: []
533
663
  requestBody:
534
- $ref: '#/components/requestBodies/image-input'
664
+ content:
665
+ application/json:
666
+ schema:
667
+ type: object
668
+ properties:
669
+ image:
670
+ $ref: '#/components/schemas/image-input'
535
671
  '/products/{product_id}/variants/{id}':
536
672
  get:
537
673
  responses:
@@ -606,7 +742,38 @@ paths:
606
742
  security:
607
743
  - api-key: []
608
744
  requestBody:
609
- $ref: '#/components/requestBodies/variant-input'
745
+ content:
746
+ application/json:
747
+ schema:
748
+ type: object
749
+ properties:
750
+ variant:
751
+ $ref: '#/components/schemas/variant-input'
752
+ examples:
753
+ Example with Option Value Ids:
754
+ value:
755
+ variant:
756
+ price: '11.22'
757
+ cost_price: '9'
758
+ position: 1
759
+ track_inventory: true
760
+ sku: AWSOME-1122
761
+ cost_currency: USD
762
+ option_value_ids:
763
+ - 1
764
+ - 2
765
+ Example with Option Value Text:
766
+ value:
767
+ variant:
768
+ price: '11.22'
769
+ cost_price: '9'
770
+ position: 1
771
+ track_inventory: true
772
+ sku: AWSOME-1122
773
+ cost_currency: USD
774
+ options:
775
+ name: Color
776
+ value: White
610
777
  /states:
611
778
  get:
612
779
  responses:
@@ -674,6 +841,7 @@ paths:
674
841
  parameters:
675
842
  - $ref: '#/components/parameters/page'
676
843
  - $ref: '#/components/parameters/per_page'
844
+ - $ref: '#/components/parameters/q'
677
845
  security:
678
846
  - api-key: []
679
847
  post:
@@ -689,14 +857,49 @@ paths:
689
857
  '422':
690
858
  $ref: '#/components/responses/unprocessable-entity'
691
859
  summary: Create variant
692
- description: Creates a variant.
860
+ description: 'Creates a variant. Only users with `can :create, Variant` permissions can perform this action.'
693
861
  operationId: create-variant
694
862
  tags:
695
863
  - Variants
696
864
  security:
697
865
  - api-key: []
698
866
  requestBody:
699
- $ref: '#/components/requestBodies/variant-input'
867
+ content:
868
+ application/json:
869
+ schema:
870
+ type: object
871
+ properties:
872
+ product_id:
873
+ type: integer
874
+ variant:
875
+ $ref: '#/components/schemas/variant-input'
876
+ examples:
877
+ Example with Option Value Ids:
878
+ value:
879
+ product_id: 1
880
+ variant:
881
+ price: '11.22'
882
+ cost_price: '9'
883
+ position: 1
884
+ track_inventory: true
885
+ sku: AWSOME-1122
886
+ cost_currency: USD
887
+ option_value_ids:
888
+ - 1
889
+ - 2
890
+ Example with Option Value Text:
891
+ value:
892
+ product_id: 1
893
+ variant:
894
+ price: '11.22'
895
+ cost_price: '9'
896
+ position: 1
897
+ track_inventory: true
898
+ sku: AWSOME-1122
899
+ cost_currency: USD
900
+ options:
901
+ name: Color
902
+ value: White
700
903
  '/variants/{id}':
701
904
  get:
702
905
  responses:
@@ -766,7 +969,38 @@ paths:
766
969
  security:
767
970
  - api-key: []
768
971
  requestBody:
769
- $ref: '#/components/requestBodies/variant-input'
972
+ content:
973
+ application/json:
974
+ schema:
975
+ type: object
976
+ properties:
977
+ variant:
978
+ $ref: '#/components/schemas/variant-input'
979
+ examples:
980
+ Example with Option Value Ids:
981
+ value:
982
+ variant:
983
+ price: '11.22'
984
+ cost_price: '9'
985
+ position: 1
986
+ track_inventory: true
987
+ sku: AWSOME-1122
988
+ cost_currency: USD
989
+ option_value_ids:
990
+ - 1
991
+ - 2
992
+ Example with Option Value Text:
993
+ value:
994
+ variant:
995
+ price: '11.22'
996
+ cost_price: '9'
997
+ position: 1
998
+ track_inventory: true
999
+ sku: AWSOME-1122
1000
+ cost_currency: USD
1001
+ options:
1002
+ name: Color
1003
+ value: White
770
1004
  '/variants/{variant_id}/images':
771
1005
  get:
772
1006
  responses:
@@ -813,14 +1047,23 @@ paths:
813
1047
  '422':
814
1048
  $ref: '#/components/responses/unprocessable-entity'
815
1049
  summary: Create variant image
816
- description: Creates an image for a variant.
1050
+ description: |-
1051
+ Creates an image for a variant.
1052
+
1053
+ Only users with the `create` permission on `Spree::Image` can perform this action.
817
1054
  operationId: create-variant-image
818
1055
  tags:
819
1056
  - Images
820
1057
  security:
821
1058
  - api-key: []
822
1059
  requestBody:
823
- $ref: '#/components/requestBodies/image-input'
1060
+ content:
1061
+ application/json:
1062
+ schema:
1063
+ type: object
1064
+ properties:
1065
+ image:
1066
+ $ref: '#/components/schemas/image-input'
824
1067
  '/variants/{variant_id}/images/{id}':
825
1068
  get:
826
1069
  responses:
@@ -847,11 +1090,13 @@ paths:
847
1090
  required: true
848
1091
  schema:
849
1092
  type: string
1093
+ description: 'The id of the Spree::Variant'
850
1094
  - name: id
851
1095
  in: path
852
1096
  required: true
853
1097
  schema:
854
1098
  type: string
1099
+ description: 'The id of the Spree::Image'
855
1100
  delete:
856
1101
  responses:
857
1102
  '204':
@@ -888,14 +1133,23 @@ paths:
888
1133
  '422':
889
1134
  $ref: '#/components/responses/unprocessable-entity'
890
1135
  summary: Update variant image
891
- description: Updates a variant's image.
1136
+ description: |-
1137
+ Updates a variant's image.
1138
+
1139
+ Only users with the `update` permission on the image can perform this action.
892
1140
  operationId: update-variant-image
893
1141
  tags:
894
1142
  - Images
895
1143
  security:
896
1144
  - api-key: []
897
1145
  requestBody:
898
- $ref: '#/components/requestBodies/image-input'
1146
+ content:
1147
+ application/json:
1148
+ schema:
1149
+ type: object
1150
+ properties:
1151
+ image:
1152
+ $ref: '#/components/schemas/image-input'
899
1153
  '/shipments/{shipment_number}/estimated_rates':
900
1154
  get:
901
1155
  responses:
@@ -954,6 +1208,7 @@ paths:
954
1208
  parameters:
955
1209
  - $ref: '#/components/parameters/page'
956
1210
  - $ref: '#/components/parameters/per_page'
1211
+ - $ref: '#/components/parameters/q'
957
1212
  security:
958
1213
  - api-key: []
959
1214
  '/users/{id}':
@@ -982,6 +1237,7 @@ paths:
982
1237
  required: true
983
1238
  schema:
984
1239
  type: string
1240
+ description: 'The ID of the Spree::User'
985
1241
  delete:
986
1242
  responses:
987
1243
  '204':
@@ -1018,14 +1274,23 @@ paths:
1018
1274
  '422':
1019
1275
  $ref: '#/components/responses/unprocessable-entity'
1020
1276
  summary: Update user
1021
- description: Updates a user.
1277
+ description: |-
1278
+ Updates a user.
1279
+
1280
+ Only users with the `update` permission on the user can perform this action.
1022
1281
  operationId: update-user
1023
1282
  tags:
1024
1283
  - Users
1025
1284
  security:
1026
1285
  - api-key: []
1027
1286
  requestBody:
1028
- $ref: '#/components/requestBodies/user-input'
1287
+ content:
1288
+ application/json:
1289
+ schema:
1290
+ type: object
1291
+ properties:
1292
+ user:
1293
+ $ref: '#/components/schemas/user-input'
1029
1294
  '/users/{user_id}/address_book':
1030
1295
  get:
1031
1296
  responses:
@@ -1139,6 +1404,7 @@ paths:
1139
1404
  parameters:
1140
1405
  - $ref: '#/components/parameters/page'
1141
1406
  - $ref: '#/components/parameters/per_page'
1407
+ - $ref: '#/components/parameters/q'
1142
1408
  security:
1143
1409
  - api-key: []
1144
1410
  parameters:
@@ -1203,7 +1469,36 @@ paths:
1203
1469
  - api-key: []
1204
1470
  - order-token: []
1205
1471
  requestBody:
1206
- $ref: '#/components/requestBodies/address-input'
1472
+ content:
1473
+ application/json:
1474
+ schema:
1475
+ type: object
1476
+ properties:
1477
+ address:
1478
+ $ref: '#/components/schemas/address-input'
1479
+ examples:
1480
+ Example with state_id:
1481
+ value:
1482
+ address:
1483
+ name: Jane Doe
1484
+ address1: 2191 Calico Drive
1485
+ city: Phoenix
1486
+ country_id: 22
1487
+ state_id: 31
1488
+ zipcode: '85022'
1489
+ phone: 509-644-9988
1490
+ company: Acme Inc.
1491
+ Example with state_name:
1492
+ value:
1493
+ address:
1494
+ name: Jane Doe
1495
+ address1: 2191 Calico Drive
1496
+ city: Phoenix
1497
+ country_id: 22
1498
+ state_name: AZ
1499
+ zipcode: '85022'
1500
+ phone: 509-644-9988
1501
+ company: Acme Inc.
1207
1502
  '/checkouts/{checkout_id}/payments':
1208
1503
  get:
1209
1504
  responses:
@@ -1225,13 +1520,14 @@ paths:
1225
1520
  '404':
1226
1521
  $ref: '#/components/responses/not-found'
1227
1522
  summary: List checkout payments
1228
- description: Lists a checkout's payments.
1523
+ description: 'Lists a checkout''s payments. The list of payments is only visible by the checkout''s owner and by users authorized to see the order, eg. users with admin role. '
1229
1524
  operationId: list-checkout-payments
1230
1525
  tags:
1231
1526
  - Payments
1232
1527
  parameters:
1233
1528
  - $ref: '#/components/parameters/page'
1234
1529
  - $ref: '#/components/parameters/per_page'
1530
+ - $ref: '#/components/parameters/q'
1235
1531
  security:
1236
1532
  - api-key: []
1237
1533
  parameters:
@@ -1256,7 +1552,7 @@ paths:
1256
1552
  '422':
1257
1553
  $ref: '#/components/responses/unprocessable-entity'
1258
1554
  summary: Create checkout payment
1259
- description: Creates a new payment for a checkout.
1555
+ description: Creates a new payment for a checkout. Only the checkout's owner and users that can create a payment (eg. users with admin role) are allowed to perform this action.
1260
1556
  operationId: create-checkout-payment
1261
1557
  tags:
1262
1558
  - Payments
@@ -1264,7 +1560,30 @@ paths:
1264
1560
  - api-key: []
1265
1561
  - order-token: []
1266
1562
  requestBody:
1267
- $ref: '#/components/requestBodies/payment-input'
1563
+ content:
1564
+ application/json:
1565
+ schema:
1566
+ type: object
1567
+ properties:
1568
+ payment:
1569
+ $ref: '#/components/schemas/payment-input'
1570
+ examples:
1571
+ Example without a payment source:
1572
+ value:
1573
+ payment:
1574
+ amount: '42.42'
1575
+ payment_method_id: 1
1576
+ Example with a payment source:
1577
+ value:
1578
+ payment:
1579
+ amount: '42.42'
1580
+ payment_method_id: 1
1581
+ source_attributes:
1582
+ gateway_payment_profile_id: super-secret-token-2131m3n13bv3hv1vasda
1583
+ description: |-
1584
+ This requests only accepts available Payment Methods in the `payment_method_id` field.
1585
+
1586
+ The Payment Methods available to users for creating a new payment are the ones with both attributes `available_to_users` and `active` set to `true`.
1268
1587
  '/checkouts/{checkout_id}/payments/{id}':
1269
1588
  get:
1270
1589
  responses:
@@ -1296,6 +1615,7 @@ paths:
1296
1615
  - name: id
1297
1616
  in: path
1298
1617
  required: true
1618
+ description: The payment id
1299
1619
  schema:
1300
1620
  type: string
1301
1621
  patch:
@@ -1308,12 +1628,21 @@ paths:
1308
1628
  $ref: '#/components/schemas/payment'
1309
1629
  '401':
1310
1630
  $ref: '#/components/responses/invalid-api-key'
1631
+ '403':
1632
+ description: 'Forbidden '
1633
+ content:
1634
+ application/json:
1635
+ schema:
1636
+ type: object
1637
+ properties:
1638
+ error:
1639
+ type: string
1311
1640
  '404':
1312
1641
  $ref: '#/components/responses/not-found'
1313
1642
  '422':
1314
1643
  $ref: '#/components/responses/unprocessable-entity'
1315
1644
  summary: Update checkout payment
1316
- description: Updates a checkout's payment.
1645
+ description: 'Updates a checkout''s payment. Please note that this action can be done by users with the admin permissions on Payments (eg. users with the admin role). Only pending payment can be updated. '
1317
1646
  operationId: update-checkout-payment
1318
1647
  tags:
1319
1648
  - Payments
@@ -1326,12 +1655,13 @@ paths:
1326
1655
  schema:
1327
1656
  type: object
1328
1657
  properties:
1329
- amount:
1330
- type: number
1331
- payment_method_id:
1332
- type: integer
1333
- payment_method:
1334
- $ref: '#/components/schemas/payment-method'
1658
+ payment:
1659
+ $ref: '#/components/schemas/payment-input'
1660
+ examples:
1661
+ Example:
1662
+ value:
1663
+ payment:
1664
+ amount: '12.10'
1335
1665
  '/checkouts/{checkout_id}/return_authorizations':
1336
1666
  get:
1337
1667
  responses:
@@ -1360,6 +1690,7 @@ paths:
1360
1690
  parameters:
1361
1691
  - $ref: '#/components/parameters/page'
1362
1692
  - $ref: '#/components/parameters/per_page'
1693
+ - $ref: '#/components/parameters/q'
1363
1694
  security:
1364
1695
  - api-key: []
1365
1696
  parameters:
@@ -1384,14 +1715,23 @@ paths:
1384
1715
  '422':
1385
1716
  $ref: '#/components/responses/unprocessable-entity'
1386
1717
  summary: Create checkout return authorization
1387
- description: Creates a return authorization for a checkout.
1718
+ description: |-
1719
+ Creates a return authorization for a checkout.
1720
+
1721
+ Only users with the `create` permission on `Spree::RetrunAuthorization` can perform this action.
1388
1722
  operationId: create-checkout-return-authorization
1389
1723
  tags:
1390
1724
  - Return authorizations
1391
1725
  security:
1392
1726
  - api-key: []
1393
1727
  requestBody:
1394
- $ref: '#/components/requestBodies/return-authorization-input'
1728
+ content:
1729
+ application/json:
1730
+ schema:
1731
+ type: object
1732
+ properties:
1733
+ return_authorization:
1734
+ $ref: '#/components/schemas/return-authorization-input'
1395
1735
  '/checkouts/{checkout_id}/return_authorizations/{id}':
1396
1736
  get:
1397
1737
  responses:
@@ -1423,6 +1763,7 @@ paths:
1423
1763
  required: true
1424
1764
  schema:
1425
1765
  type: string
1766
+ description: 'The ID of the Spree::ReturnAuthorization'
1426
1767
  delete:
1427
1768
  responses:
1428
1769
  '204':
@@ -1459,14 +1800,23 @@ paths:
1459
1800
  '422':
1460
1801
  $ref: '#/components/responses/unprocessable-entity'
1461
1802
  summary: Update checkout return authorization
1462
- description: Updates a checkout's return authorization.
1803
+ description: |-
1804
+ Updates a checkout's return authorization.
1805
+
1806
+ Only users with the `update` permission on the return authorization can perform this action.
1463
1807
  operationId: update-checkout-return-authorization
1464
1808
  tags:
1465
1809
  - Return authorizations
1466
1810
  security:
1467
1811
  - api-key: []
1468
1812
  requestBody:
1469
- $ref: '#/components/requestBodies/return-authorization-input'
1813
+ content:
1814
+ application/json:
1815
+ schema:
1816
+ type: object
1817
+ properties:
1818
+ return_authorization:
1819
+ $ref: '#/components/schemas/return-authorization-input'
1470
1820
  '/orders/{order_id}/customer_returns/{id}':
1471
1821
  get:
1472
1822
  responses:
@@ -1496,6 +1846,7 @@ paths:
1496
1846
  - name: id
1497
1847
  in: path
1498
1848
  required: true
1849
+ description: The id of the customer return
1499
1850
  schema:
1500
1851
  type: string
1501
1852
  put:
@@ -1513,12 +1864,21 @@ paths:
1513
1864
  '422':
1514
1865
  $ref: '#/components/responses/unprocessable-entity'
1515
1866
  summary: Update order customer return
1516
- description: Updates an orders customer return.
1867
+ description: |-
1868
+ Updates an orders customer return.
1869
+
1870
+ Only users with the `update` permission on the customer return can perform this action.
1517
1871
  operationId: update-order-customer-return
1518
1872
  tags:
1519
1873
  - Customer returns
1520
1874
  requestBody:
1521
- $ref: '#/components/requestBodies/customer-return-input'
1875
+ content:
1876
+ application/json:
1877
+ schema:
1878
+ type: object
1879
+ properties:
1880
+ customer_return:
1881
+ $ref: '#/components/schemas/customer-return-input'
1522
1882
  security:
1523
1883
  - api-key: []
1524
1884
  /orders:
@@ -1547,6 +1907,7 @@ paths:
1547
1907
  parameters:
1548
1908
  - $ref: '#/components/parameters/page'
1549
1909
  - $ref: '#/components/parameters/per_page'
1910
+ - $ref: '#/components/parameters/q'
1550
1911
  security:
1551
1912
  - api-key: []
1552
1913
  post:
@@ -1569,7 +1930,21 @@ paths:
1569
1930
  security:
1570
1931
  - api-key: []
1571
1932
  requestBody:
1572
- $ref: '#/components/requestBodies/order-input'
1933
+ content:
1934
+ application/json:
1935
+ schema:
1936
+ type: object
1937
+ properties:
1938
+ order:
1939
+ $ref: '#/components/schemas/order-input'
1940
+ examples:
1941
+ Example:
1942
+ value:
1943
+ order:
1944
+ email: string
1945
+ line_items_attributes:
1946
+ - quantity: 1
1947
+ variant_id: 22
1573
1948
  '/orders/{order_number}/addresses/{id}':
1574
1949
  get:
1575
1950
  responses:
@@ -1595,11 +1970,13 @@ paths:
1595
1970
  - name: order_number
1596
1971
  in: path
1597
1972
  required: true
1973
+ description: The order number
1598
1974
  schema:
1599
1975
  type: string
1600
1976
  - name: id
1601
1977
  in: path
1602
1978
  required: true
1979
+ description: The id of the order's address that we want to retrieve
1603
1980
  schema:
1604
1981
  type: string
1605
1982
  patch:
@@ -1625,7 +2002,36 @@ paths:
1625
2002
  - api-key: []
1626
2003
  - order-token: []
1627
2004
  requestBody:
1628
- $ref: '#/components/requestBodies/address-input'
2005
+ content:
2006
+ application/json:
2007
+ schema:
2008
+ type: object
2009
+ properties:
2010
+ address:
2011
+ $ref: '#/components/schemas/address-input'
2012
+ examples:
2013
+ Example with state_id:
2014
+ value:
2015
+ address:
2016
+ name: Jane Doe
2017
+ address1: 2191 Calico Drive
2018
+ city: Phoenix
2019
+ country_id: 22
2020
+ state_id: 31
2021
+ zipcode: '85022'
2022
+ phone: 509-644-9988
2023
+ company: Acme Inc.
2024
+ Example with state_name:
2025
+ value:
2026
+ address:
2027
+ name: Jane Doe
2028
+ address1: 2191 Calico Drive
2029
+ city: Phoenix
2030
+ country_id: 22
2031
+ state_name: AZ
2032
+ zipcode: '85022'
2033
+ phone: 509-644-9988
2034
+ company: Acme Inc.
1629
2035
  '/orders/{order_number}/payments':
1630
2036
  get:
1631
2037
  responses:
@@ -1657,6 +2063,7 @@ paths:
1657
2063
  parameters:
1658
2064
  - $ref: '#/components/parameters/page'
1659
2065
  - $ref: '#/components/parameters/per_page'
2066
+ - $ref: '#/components/parameters/q'
1660
2067
  security:
1661
2068
  - api-key: []
1662
2069
  - order-token: []
@@ -1664,6 +2071,7 @@ paths:
1664
2071
  - name: order_number
1665
2072
  in: path
1666
2073
  required: true
2074
+ description: The order number
1667
2075
  schema:
1668
2076
  type: string
1669
2077
  post:
@@ -1681,7 +2089,7 @@ paths:
1681
2089
  '422':
1682
2090
  $ref: '#/components/responses/unprocessable-entity'
1683
2091
  summary: Create order payment
1684
- description: Creates a payment for an order.
2092
+ description: Creates a new payment for a checkout. Only the order's owner and users that can create a payment (eg. users with admin role) are allowed to perform this action.
1685
2093
  operationId: create-order-payment
1686
2094
  tags:
1687
2095
  - Payments
@@ -1689,7 +2097,30 @@ paths:
1689
2097
  - api-key: []
1690
2098
  - order-token: []
1691
2099
  requestBody:
1692
- $ref: '#/components/requestBodies/payment-input'
2100
+ content:
2101
+ application/json:
2102
+ schema:
2103
+ type: object
2104
+ properties:
2105
+ payment:
2106
+ $ref: '#/components/schemas/payment-input'
2107
+ examples:
2108
+ Example without a payment source:
2109
+ value:
2110
+ payment:
2111
+ amount: '42.42'
2112
+ payment_method_id: 1
2113
+ Example with a payment source:
2114
+ value:
2115
+ payment:
2116
+ amount: '42.42'
2117
+ payment_method_id: 1
2118
+ source_attributes:
2119
+ gateway_payment_profile_id: super-secret-token-2131m3n13bv3hv1vasda
2120
+ description: |-
2121
+ This requests only accepts available Payment Methods in the `payment_method_id` field.
2122
+
2123
+ The Payment Methods available to users for creating a new payment are the ones with both attributes `available_to_users` and `active` set to `true`.
1693
2124
  '/orders/{order_number}/payments/{id}':
1694
2125
  get:
1695
2126
  responses:
@@ -1731,12 +2162,21 @@ paths:
1731
2162
  $ref: '#/components/schemas/payment'
1732
2163
  '401':
1733
2164
  $ref: '#/components/responses/invalid-api-key'
2165
+ '403':
2166
+ description: Forbidden
2167
+ content:
2168
+ application/json:
2169
+ schema:
2170
+ type: object
2171
+ properties:
2172
+ error:
2173
+ type: string
1734
2174
  '404':
1735
2175
  $ref: '#/components/responses/not-found'
1736
2176
  '422':
1737
2177
  $ref: '#/components/responses/unprocessable-entity'
1738
2178
  summary: Update order payment
1739
- description: Updates an order's payment.
2179
+ description: 'Updates a checkout''s payment. Please note that this action can be done by users with the admin permissions on Payments (eg. users with the admin role). Only pending payment can be updated. '
1740
2180
  operationId: update-order-payment
1741
2181
  tags:
1742
2182
  - Payments
@@ -1744,7 +2184,18 @@ paths:
1744
2184
  - api-key: []
1745
2185
  - order-token: []
1746
2186
  requestBody:
1747
- $ref: '#/components/requestBodies/payment-input'
2187
+ content:
2188
+ application/json:
2189
+ schema:
2190
+ type: object
2191
+ properties:
2192
+ payment:
2193
+ $ref: '#/components/schemas/payment-input'
2194
+ examples:
2195
+ Example:
2196
+ value:
2197
+ payment:
2198
+ amount: '12.10'
1748
2199
  '/orders/{order_number}/return_authorizations':
1749
2200
  get:
1750
2201
  responses:
@@ -1773,6 +2224,7 @@ paths:
1773
2224
  parameters:
1774
2225
  - $ref: '#/components/parameters/page'
1775
2226
  - $ref: '#/components/parameters/per_page'
2227
+ - $ref: '#/components/parameters/q'
1776
2228
  security:
1777
2229
  - api-key: []
1778
2230
  parameters:
@@ -1796,14 +2248,23 @@ paths:
1796
2248
  '422':
1797
2249
  $ref: '#/components/responses/unprocessable-entity'
1798
2250
  summary: Create order return authorization
1799
- description: Creates a return authorization for an order.
2251
+ description: |-
2252
+ Creates a return authorization for an order.
2253
+
2254
+ Only users with the `create` permission on `Spree::ReturnAuthorization` can perform this action.
1800
2255
  operationId: create-order-return-authorization
1801
2256
  tags:
1802
2257
  - Return authorizations
1803
2258
  security:
1804
2259
  - api-key: []
1805
2260
  requestBody:
1806
- $ref: '#/components/requestBodies/return-authorization-input'
2261
+ content:
2262
+ application/json:
2263
+ schema:
2264
+ type: object
2265
+ properties:
2266
+ return_authorization:
2267
+ $ref: '#/components/schemas/return-authorization-input'
1807
2268
  '/orders/{order_number}/return_authorizations/{id}':
1808
2269
  get:
1809
2270
  responses:
@@ -1830,11 +2291,13 @@ paths:
1830
2291
  required: true
1831
2292
  schema:
1832
2293
  type: string
2294
+ description: The Order number
1833
2295
  - name: id
1834
2296
  in: path
1835
2297
  required: true
1836
2298
  schema:
1837
2299
  type: string
2300
+ description: 'The ID of the Spree::ReturnAuthorization'
1838
2301
  delete:
1839
2302
  responses:
1840
2303
  '200':
@@ -1871,14 +2334,23 @@ paths:
1871
2334
  '422':
1872
2335
  $ref: '#/components/responses/unprocessable-entity'
1873
2336
  summary: Update order return authorization
1874
- description: Updates an order's return authorization.
2337
+ description: |-
2338
+ Updates an order's return authorization.
2339
+
2340
+ Only users with the `update` permission on the return authorization can perform this action.
1875
2341
  operationId: update-order-return-authorization
1876
2342
  tags:
1877
2343
  - Return authorizations
1878
2344
  security:
1879
2345
  - api-key: []
1880
2346
  requestBody:
1881
- $ref: '#/components/requestBodies/return-authorization-input'
2347
+ content:
2348
+ application/json:
2349
+ schema:
2350
+ type: object
2351
+ properties:
2352
+ return_authorization:
2353
+ $ref: '#/components/schemas/return-authorization-input'
1882
2354
  /config:
1883
2355
  get:
1884
2356
  responses:
@@ -2071,14 +2543,23 @@ paths:
2071
2543
  '422':
2072
2544
  $ref: '#/components/responses/unprocessable-entity'
2073
2545
  summary: Create option value
2074
- description: Creates an option value.
2546
+ description: |-
2547
+ Creates an option value.
2548
+
2549
+ Only users with the `create` permission on `Spree::OptionValue` can perform this action.
2075
2550
  operationId: create-option-value
2076
2551
  tags:
2077
2552
  - Option values
2078
2553
  security:
2079
2554
  - api-key: []
2080
2555
  requestBody:
2081
- $ref: '#/components/requestBodies/option-value-input'
2556
+ content:
2557
+ application/json:
2558
+ schema:
2559
+ type: object
2560
+ properties:
2561
+ option_value:
2562
+ $ref: '#/components/schemas/option-value-input'
2082
2563
  '/option_values/{id}':
2083
2564
  get:
2084
2565
  responses:
@@ -2105,6 +2586,7 @@ paths:
2105
2586
  required: true
2106
2587
  schema:
2107
2588
  type: string
2589
+ description: 'The ID of the Spree::OptionValue'
2108
2590
  delete:
2109
2591
  responses:
2110
2592
  '204':
@@ -2141,14 +2623,24 @@ paths:
2141
2623
  '422':
2142
2624
  $ref: '#/components/responses/unprocessable-entity'
2143
2625
  summary: Update option value
2144
- description: Updates an option value.
2626
+ description: |-
2627
+ Updates an option value.
2628
+
2629
+ Only users with the `update` permission on the option value can perform this action.
2145
2630
  operationId: update-option-value
2146
2631
  tags:
2147
2632
  - Option values
2148
2633
  security:
2149
2634
  - api-key: []
2150
2635
  requestBody:
2151
- $ref: '#/components/requestBodies/option-value-input'
2636
+ content:
2637
+ application/json:
2638
+ schema:
2639
+ type: object
2640
+ properties:
2641
+ option_value:
2642
+ $ref: '#/components/schemas/option-value-input'
2643
+ description: ''
2152
2644
  '/option_types/{option_type_id}/option_values':
2153
2645
  get:
2154
2646
  responses:
@@ -2177,6 +2669,7 @@ paths:
2177
2669
  required: true
2178
2670
  schema:
2179
2671
  type: string
2672
+ description: 'The ID of the Spree::OptionType'
2180
2673
  post:
2181
2674
  responses:
2182
2675
  '200':
@@ -2192,14 +2685,23 @@ paths:
2192
2685
  '422':
2193
2686
  $ref: '#/components/responses/unprocessable-entity'
2194
2687
  summary: Create option type value
2195
- description: Creates an option value for a type.
2688
+ description: |-
2689
+ Creates an option value for a type.
2690
+
2691
+ Only users with the `create` permission on `Spree::OptionValue` can perform this action.
2196
2692
  operationId: create-option-type-value
2197
2693
  tags:
2198
2694
  - Option values
2199
2695
  security:
2200
2696
  - api-key: []
2201
2697
  requestBody:
2202
- $ref: '#/components/requestBodies/option-value-input'
2698
+ content:
2699
+ application/json:
2700
+ schema:
2701
+ type: object
2702
+ properties:
2703
+ option_value:
2704
+ $ref: '#/components/schemas/option-value-input'
2203
2705
  '/option_types/{option_type_id}/option_values/{id}':
2204
2706
  get:
2205
2707
  responses:
@@ -2225,11 +2727,13 @@ paths:
2225
2727
  required: true
2226
2728
  schema:
2227
2729
  type: string
2730
+ description: 'The ID of the Spree::OptionType'
2228
2731
  - name: id
2229
2732
  in: path
2230
2733
  required: true
2231
2734
  schema:
2232
2735
  type: string
2736
+ description: The ID of the OptionValue
2233
2737
  delete:
2234
2738
  responses:
2235
2739
  '204':
@@ -2266,14 +2770,23 @@ paths:
2266
2770
  '422':
2267
2771
  $ref: '#/components/responses/unprocessable-entity'
2268
2772
  summary: Update option type value
2269
- description: Updates an option type's value.
2773
+ description: |-
2774
+ Updates an option type's value.
2775
+
2776
+ Only users with the `update` permission on the option value can perform this action.
2270
2777
  operationId: update-option-type-value
2271
2778
  tags:
2272
2779
  - Option values
2273
2780
  security:
2274
2781
  - api-key: []
2275
2782
  requestBody:
2276
- $ref: '#/components/requestBodies/option-value-input'
2783
+ content:
2784
+ application/json:
2785
+ schema:
2786
+ type: object
2787
+ properties:
2788
+ option_value:
2789
+ $ref: '#/components/schemas/option-value-input'
2277
2790
  '/products/{product_id}/product_properties':
2278
2791
  get:
2279
2792
  responses:
@@ -2302,6 +2815,7 @@ paths:
2302
2815
  parameters:
2303
2816
  - $ref: '#/components/parameters/page'
2304
2817
  - $ref: '#/components/parameters/per_page'
2818
+ - $ref: '#/components/parameters/q'
2305
2819
  security:
2306
2820
  - api-key: []
2307
2821
  parameters:
@@ -2325,14 +2839,29 @@ paths:
2325
2839
  '422':
2326
2840
  $ref: '#/components/responses/unprocessable-entity'
2327
2841
  summary: Create product property
2328
- description: Creates a product property.
2842
+ description: |-
2843
+ Creates a product property.
2844
+
2845
+ Only users with the `create` permission on `Spree::ProductProperty` can perform this action.
2329
2846
  operationId: create-product-property
2330
2847
  tags:
2331
2848
  - Product properties
2332
2849
  security:
2333
2850
  - api-key: []
2334
2851
  requestBody:
2335
- $ref: '#/components/requestBodies/product-property-input'
2852
+ content:
2853
+ application/json:
2854
+ schema:
2855
+ type: object
2856
+ properties:
2857
+ product_property:
2858
+ $ref: '#/components/schemas/product-property-input'
2859
+ examples:
2860
+ Example:
2861
+ value:
2862
+ product_property:
2863
+ property_name: Fit
2864
+ value: Loose
2336
2865
  '/products/{product_id}/product_properties/{id}':
2337
2866
  get:
2338
2867
  responses:
@@ -2400,14 +2929,28 @@ paths:
2400
2929
  '422':
2401
2930
  $ref: '#/components/responses/unprocessable-entity'
2402
2931
  summary: Update product property
2403
- description: Updates a product's property.
2932
+ description: |-
2933
+ Updates a product's property.
2934
+
2935
+ Only users with the `update` permission on the product property can perform this action.
2404
2936
  operationId: update-product-property
2405
2937
  tags:
2406
2938
  - Product properties
2407
2939
  security:
2408
2940
  - api-key: []
2409
2941
  requestBody:
2410
- $ref: '#/components/requestBodies/product-property-input'
2942
+ content:
2943
+ application/json:
2944
+ schema:
2945
+ type: object
2946
+ properties:
2947
+ product_property:
2948
+ $ref: '#/components/schemas/product-property-input'
2949
+ examples:
2950
+ Example:
2951
+ value:
2952
+ product_property:
2953
+ value: Regular
2411
2954
  /properties:
2412
2955
  get:
2413
2956
  responses:
@@ -2434,6 +2977,7 @@ paths:
2434
2977
  parameters:
2435
2978
  - $ref: '#/components/parameters/page'
2436
2979
  - $ref: '#/components/parameters/per_page'
2980
+ - $ref: '#/components/parameters/q'
2437
2981
  security:
2438
2982
  - api-key: []
2439
2983
  post:
@@ -2449,14 +2993,23 @@ paths:
2449
2993
  '422':
2450
2994
  $ref: '#/components/responses/unprocessable-entity'
2451
2995
  summary: Create property
2452
- description: Creates a property.
2996
+ description: |-
2997
+ Creates a property.
2998
+
2999
+ Only users with the `create` permission on `Spree::Propery` can perform this action.
2453
3000
  operationId: create-property
2454
3001
  tags:
2455
3002
  - Properties
2456
3003
  security:
2457
3004
  - api-key: []
2458
3005
  requestBody:
2459
- $ref: '#/components/requestBodies/property-input'
3006
+ content:
3007
+ application/json:
3008
+ schema:
3009
+ type: object
3010
+ properties:
3011
+ property:
3012
+ $ref: '#/components/schemas/property-input'
2460
3013
  '/properties/{id}':
2461
3014
  get:
2462
3015
  responses:
@@ -2483,6 +3036,7 @@ paths:
2483
3036
  required: true
2484
3037
  schema:
2485
3038
  type: string
3039
+ description: 'The id of the Spree::Property'
2486
3040
  delete:
2487
3041
  responses:
2488
3042
  '204':
@@ -2519,14 +3073,23 @@ paths:
2519
3073
  '422':
2520
3074
  $ref: '#/components/responses/unprocessable-entity'
2521
3075
  summary: Update property
2522
- description: Updates a property.
3076
+ description: |-
3077
+ Updates a property.
3078
+
3079
+ Only users with the `update` permission on the property can perform this action.
2523
3080
  operationId: update-property
2524
3081
  tags:
2525
3082
  - Properties
2526
3083
  security:
2527
3084
  - api-key: []
2528
3085
  requestBody:
2529
- $ref: '#/components/requestBodies/property-input'
3086
+ content:
3087
+ application/json:
3088
+ schema:
3089
+ type: object
3090
+ properties:
3091
+ property:
3092
+ $ref: '#/components/schemas/property-input'
2530
3093
  '/inventory_units/{id}':
2531
3094
  get:
2532
3095
  responses:
@@ -2604,6 +3167,7 @@ paths:
2604
3167
  parameters:
2605
3168
  - $ref: '#/components/parameters/page'
2606
3169
  - $ref: '#/components/parameters/per_page'
3170
+ - $ref: '#/components/parameters/q'
2607
3171
  security:
2608
3172
  - api-key: []
2609
3173
  post:
@@ -2619,14 +3183,29 @@ paths:
2619
3183
  '422':
2620
3184
  $ref: '#/components/responses/unprocessable-entity'
2621
3185
  summary: Create stock location
2622
- description: Creates a stock location.
3186
+ description: |-
3187
+ Creates a stock location.
3188
+
3189
+ Only users with the `create` permission on `Spree::StockLocation` can perform this action.
2623
3190
  operationId: create-stock-location
2624
3191
  tags:
2625
3192
  - Stock locations
2626
3193
  security:
2627
3194
  - api-key: []
2628
3195
  requestBody:
2629
- $ref: '#/components/requestBodies/stock-location-input'
3196
+ content:
3197
+ application/json:
3198
+ schema:
3199
+ type: object
3200
+ properties:
3201
+ stock_location:
3202
+ $ref: '#/components/schemas/stock-location-input'
3203
+ examples:
3204
+ Example:
3205
+ value:
3206
+ stock_location:
3207
+ name: North Pole
3208
+ active: true
2630
3209
  '/stock_locations/{id}':
2631
3210
  get:
2632
3211
  responses:
@@ -2652,6 +3231,7 @@ paths:
2652
3231
  required: true
2653
3232
  schema:
2654
3233
  type: string
3234
+ description: The id of the stock location
2655
3235
  delete:
2656
3236
  responses:
2657
3237
  '204':
@@ -2688,14 +3268,28 @@ paths:
2688
3268
  '422':
2689
3269
  $ref: '#/components/responses/unprocessable-entity'
2690
3270
  summary: Update stock location
2691
- description: Updates a stock location.
3271
+ description: |-
3272
+ Updates a stock location.
3273
+
3274
+ Only users with the `update` permission on the stock location can perform this action.
2692
3275
  operationId: update-stock-location
2693
3276
  tags:
2694
3277
  - Stock locations
2695
3278
  security:
2696
3279
  - api-key: []
2697
3280
  requestBody:
2698
- $ref: '#/components/requestBodies/stock-location-input'
3281
+ content:
3282
+ application/json:
3283
+ schema:
3284
+ type: object
3285
+ properties:
3286
+ stock_location:
3287
+ $ref: '#/components/schemas/stock-location-input'
3288
+ examples:
3289
+ Example:
3290
+ value:
3291
+ stock_location:
3292
+ active: false
2699
3293
  '/stock_locations/{stock_location_id}/stock_items':
2700
3294
  get:
2701
3295
  responses:
@@ -2724,6 +3318,7 @@ paths:
2724
3318
  parameters:
2725
3319
  - $ref: '#/components/parameters/page'
2726
3320
  - $ref: '#/components/parameters/per_page'
3321
+ - $ref: '#/components/parameters/q'
2727
3322
  security:
2728
3323
  - api-key: []
2729
3324
  parameters:
@@ -2747,14 +3342,23 @@ paths:
2747
3342
  '422':
2748
3343
  $ref: '#/components/responses/unprocessable-entity'
2749
3344
  summary: Create stock location item
2750
- description: Creates a stock item for a stock location.
3345
+ description: |-
3346
+ Creates a stock item for a stock location.
3347
+
3348
+ Only users with the `create` permission on `Spree::StockItem` can perform this action.
2751
3349
  operationId: create-stock-location-item
2752
3350
  tags:
2753
3351
  - Stock items
2754
3352
  security:
2755
3353
  - api-key: []
2756
3354
  requestBody:
2757
- $ref: '#/components/requestBodies/stock-item-input'
3355
+ content:
3356
+ application/json:
3357
+ schema:
3358
+ type: object
3359
+ properties:
3360
+ stock_item:
3361
+ $ref: '#/components/schemas/stock-item-input'
2758
3362
  '/stock_locations/{stock_location_id}/stock_items/{id}':
2759
3363
  get:
2760
3364
  responses:
@@ -2780,11 +3384,13 @@ paths:
2780
3384
  required: true
2781
3385
  schema:
2782
3386
  type: string
3387
+ description: 'The ID of the Spree::StockLocation'
2783
3388
  - name: id
2784
3389
  in: path
2785
3390
  required: true
2786
3391
  schema:
2787
3392
  type: string
3393
+ description: 'The ID of the Spree::StockItem'
2788
3394
  delete:
2789
3395
  responses:
2790
3396
  '204':
@@ -2821,14 +3427,23 @@ paths:
2821
3427
  '422':
2822
3428
  $ref: '#/components/responses/unprocessable-entity'
2823
3429
  summary: Update stock location item
2824
- description: Updates a stock location's item.
3430
+ description: |-
3431
+ Updates a stock location's item.
3432
+
3433
+ Only users with the `update` permission on the stock item can perform this action.
2825
3434
  operationId: update-stock-location-item
2826
3435
  tags:
2827
3436
  - Stock items
2828
3437
  security:
2829
3438
  - api-key: []
2830
3439
  requestBody:
2831
- $ref: '#/components/requestBodies/stock-item-input'
3440
+ content:
3441
+ application/json:
3442
+ schema:
3443
+ type: object
3444
+ properties:
3445
+ stock_item:
3446
+ $ref: '#/components/schemas/stock-item-input'
2832
3447
  '/stock_locations/{stock_location_id}/stock_movements':
2833
3448
  get:
2834
3449
  responses:
@@ -2855,6 +3470,7 @@ paths:
2855
3470
  parameters:
2856
3471
  - $ref: '#/components/parameters/page'
2857
3472
  - $ref: '#/components/parameters/per_page'
3473
+ - $ref: '#/components/parameters/q'
2858
3474
  security:
2859
3475
  - api-key: []
2860
3476
  parameters:
@@ -3072,6 +3688,7 @@ paths:
3072
3688
  parameters:
3073
3689
  - $ref: '#/components/parameters/page'
3074
3690
  - $ref: '#/components/parameters/per_page'
3691
+ - $ref: '#/components/parameters/q'
3075
3692
  security:
3076
3693
  - api-key: []
3077
3694
  post:
@@ -3087,14 +3704,30 @@ paths:
3087
3704
  '422':
3088
3705
  $ref: '#/components/responses/unprocessable-entity'
3089
3706
  summary: Create taxonomy
3090
- description: Creates a taxonomy.
3707
+ description: |-
3708
+ Creates a taxonomy.
3709
+
3710
+ Only users with the `create` permission on `Spree::Taxonomy` can perform this action.
3711
+
3712
+ Creating a taxonomy, its root taxon with the same name will be automatically created. The root taxon's information will be available in the response.
3091
3713
  operationId: create-taxonomy
3092
3714
  tags:
3093
3715
  - Taxonomies
3094
3716
  security:
3095
3717
  - api-key: []
3096
3718
  requestBody:
3097
- $ref: '#/components/requestBodies/taxonomy-input'
3719
+ content:
3720
+ application/json:
3721
+ schema:
3722
+ type: object
3723
+ properties:
3724
+ taxonomy:
3725
+ $ref: '#/components/schemas/taxonomy-input'
3726
+ examples:
3727
+ Example:
3728
+ value:
3729
+ taxonomy:
3730
+ name: Colors
3098
3731
  '/taxonomies/{id}':
3099
3732
  get:
3100
3733
  responses:
@@ -3114,12 +3747,20 @@ paths:
3114
3747
  - Taxonomies
3115
3748
  security:
3116
3749
  - api-key: []
3750
+ parameters:
3751
+ - schema:
3752
+ type: string
3753
+ default: nested
3754
+ in: query
3755
+ name: set
3756
+ description: When `set=nested` it will recoursively return all the taxons of that taxonomy
3117
3757
  parameters:
3118
3758
  - name: id
3119
3759
  in: path
3120
3760
  required: true
3121
3761
  schema:
3122
3762
  type: string
3763
+ description: The id of the taxonomy
3123
3764
  delete:
3124
3765
  responses:
3125
3766
  '204':
@@ -3156,17 +3797,31 @@ paths:
3156
3797
  '422':
3157
3798
  $ref: '#/components/responses/unprocessable-entity'
3158
3799
  summary: Update taxonomy
3159
- description: Updates a taxonomy.
3800
+ description: |-
3801
+ Updates a taxonomy.
3802
+
3803
+ Only users with the `update` permission on the taxonomy can perform this action.
3160
3804
  operationId: update-taxonomy
3161
3805
  tags:
3162
3806
  - Taxonomies
3163
3807
  security:
3164
3808
  - api-key: []
3165
3809
  requestBody:
3166
- $ref: '#/components/requestBodies/taxonomy-input'
3167
- '/taxonomies/{taxonomy_id}/taxons':
3168
- get:
3169
- responses:
3810
+ content:
3811
+ application/json:
3812
+ schema:
3813
+ type: object
3814
+ properties:
3815
+ taxonomy:
3816
+ $ref: '#/components/schemas/taxonomy-input'
3817
+ examples:
3818
+ Example:
3819
+ value:
3820
+ taxonomy:
3821
+ name: Colours
3822
+ '/taxonomies/{taxonomy_id}/taxons':
3823
+ get:
3824
+ responses:
3170
3825
  '200':
3171
3826
  description: ''
3172
3827
  content:
@@ -3192,6 +3847,7 @@ paths:
3192
3847
  parameters:
3193
3848
  - $ref: '#/components/parameters/page'
3194
3849
  - $ref: '#/components/parameters/per_page'
3850
+ - $ref: '#/components/parameters/q'
3195
3851
  security:
3196
3852
  - api-key: []
3197
3853
  parameters:
@@ -3200,6 +3856,7 @@ paths:
3200
3856
  required: true
3201
3857
  schema:
3202
3858
  type: string
3859
+ description: The id of the taxonomy for which the new taxon will be added
3203
3860
  post:
3204
3861
  responses:
3205
3862
  '200':
@@ -3215,14 +3872,29 @@ paths:
3215
3872
  '422':
3216
3873
  $ref: '#/components/responses/unprocessable-entity'
3217
3874
  summary: Create taxonomy taxon
3218
- description: Creates a taxon for a taxonomy.
3875
+ description: |-
3876
+ Creates a taxon for a taxonomy.
3877
+
3878
+ Only users with the `create` permission on `Spree::Taxon` can perform this action.
3219
3879
  operationId: create-taxonomy-taxon
3220
3880
  tags:
3221
3881
  - Taxons
3222
3882
  security:
3223
3883
  - api-key: []
3224
3884
  requestBody:
3225
- $ref: '#/components/requestBodies/taxon-input'
3885
+ content:
3886
+ application/json:
3887
+ schema:
3888
+ type: object
3889
+ properties:
3890
+ taxon:
3891
+ $ref: '#/components/schemas/taxon-input'
3892
+ examples:
3893
+ Example:
3894
+ value:
3895
+ taxon:
3896
+ name: Colors
3897
+ parent_id: 22
3226
3898
  '/taxonomies/{taxonomy_id}/taxons/{id}':
3227
3899
  get:
3228
3900
  responses:
@@ -3248,11 +3920,13 @@ paths:
3248
3920
  required: true
3249
3921
  schema:
3250
3922
  type: string
3923
+ description: The id of the taxon's taxonomy
3251
3924
  - name: id
3252
3925
  in: path
3253
3926
  required: true
3254
3927
  schema:
3255
3928
  type: string
3929
+ description: The id of the taxon
3256
3930
  delete:
3257
3931
  responses:
3258
3932
  '204':
@@ -3289,14 +3963,28 @@ paths:
3289
3963
  '422':
3290
3964
  $ref: '#/components/responses/unprocessable-entity'
3291
3965
  summary: Update taxonomy taxon
3292
- description: Updates a taxonomy's taxon.
3966
+ description: |-
3967
+ Updates a taxonomy's taxon.
3968
+
3969
+ Only users with the `update` permission on the taxon can perform this action.
3293
3970
  operationId: update-taxonomy-taxon
3294
3971
  tags:
3295
3972
  - Taxons
3296
3973
  security:
3297
3974
  - api-key: []
3298
3975
  requestBody:
3299
- $ref: '#/components/requestBodies/taxon-input'
3976
+ content:
3977
+ application/json:
3978
+ schema:
3979
+ type: object
3980
+ properties:
3981
+ taxon:
3982
+ $ref: '#/components/schemas/taxon-input'
3983
+ examples:
3984
+ Example:
3985
+ value:
3986
+ taxon:
3987
+ name: Colours
3300
3988
  /taxons:
3301
3989
  get:
3302
3990
  responses:
@@ -3323,6 +4011,12 @@ paths:
3323
4011
  parameters:
3324
4012
  - $ref: '#/components/parameters/page'
3325
4013
  - $ref: '#/components/parameters/per_page'
4014
+ - $ref: '#/components/parameters/q'
4015
+ - schema:
4016
+ type: boolean
4017
+ in: query
4018
+ name: without_children
4019
+ description: 'When set to `true`, it won''t recursively return all the taxons'' children.'
3326
4020
  security:
3327
4021
  - api-key: []
3328
4022
  /users:
@@ -3350,6 +4044,7 @@ paths:
3350
4044
  parameters:
3351
4045
  - $ref: '#/components/parameters/page'
3352
4046
  - $ref: '#/components/parameters/per_page'
4047
+ - $ref: '#/components/parameters/q'
3353
4048
  security:
3354
4049
  - api-key: []
3355
4050
  post:
@@ -3365,14 +4060,24 @@ paths:
3365
4060
  '422':
3366
4061
  $ref: '#/components/responses/unprocessable-entity'
3367
4062
  summary: Create user
3368
- description: Creates a user.
4063
+ description: |
4064
+ Creates a user.
4065
+
4066
+ Only users with the `create` permission on `Spree::User` can perform this action.
3369
4067
  operationId: create-user
3370
4068
  tags:
3371
4069
  - Users
3372
4070
  security:
3373
4071
  - api-key: []
3374
4072
  requestBody:
3375
- $ref: '#/components/requestBodies/user-input'
4073
+ content:
4074
+ application/json:
4075
+ schema:
4076
+ type: object
4077
+ properties:
4078
+ user:
4079
+ $ref: '#/components/schemas/user-input'
4080
+ description: ''
3376
4081
  /zones:
3377
4082
  get:
3378
4083
  responses:
@@ -3399,6 +4104,7 @@ paths:
3399
4104
  parameters:
3400
4105
  - $ref: '#/components/parameters/page'
3401
4106
  - $ref: '#/components/parameters/per_page'
4107
+ - $ref: '#/components/parameters/q'
3402
4108
  security:
3403
4109
  - api-key: []
3404
4110
  post:
@@ -3414,14 +4120,32 @@ paths:
3414
4120
  '422':
3415
4121
  $ref: '#/components/responses/unprocessable-entity'
3416
4122
  summary: Create zone
3417
- description: Creates a zone.
4123
+ description: |-
4124
+ Creates a zone.
4125
+
4126
+ Only users with the `create` permission on `Spree::Zone` can perform this action.
3418
4127
  operationId: create-zone
3419
4128
  tags:
3420
4129
  - Zones
3421
4130
  security:
3422
4131
  - api-key: []
3423
4132
  requestBody:
3424
- $ref: '#/components/requestBodies/zone-input'
4133
+ content:
4134
+ application/json:
4135
+ schema:
4136
+ type: object
4137
+ properties:
4138
+ zone:
4139
+ $ref: '#/components/schemas/zone-input'
4140
+ examples:
4141
+ Example:
4142
+ value:
4143
+ zone:
4144
+ name: North Pole
4145
+ description: The coldest one.
4146
+ zone_members_attributes:
4147
+ - zoneable_type: 'Spree::Country'
4148
+ zoneable_id: 1
3425
4149
  '/zones/{id}':
3426
4150
  get:
3427
4151
  responses:
@@ -3448,6 +4172,7 @@ paths:
3448
4172
  required: true
3449
4173
  schema:
3450
4174
  type: string
4175
+ description: The ID of the zone we want to update
3451
4176
  delete:
3452
4177
  responses:
3453
4178
  '204':
@@ -3484,14 +4209,28 @@ paths:
3484
4209
  '422':
3485
4210
  $ref: '#/components/responses/unprocessable-entity'
3486
4211
  summary: Update zone
3487
- description: Updates a zone.
4212
+ description: |-
4213
+ Updates a zone.
4214
+
4215
+ Only users with the `update` permission on the zone can perform this action.
3488
4216
  operationId: update-zone
3489
4217
  tags:
3490
4218
  - Zones
3491
4219
  security:
3492
4220
  - api-key: []
3493
4221
  requestBody:
3494
- $ref: '#/components/requestBodies/zone-input'
4222
+ content:
4223
+ application/json:
4224
+ schema:
4225
+ type: object
4226
+ properties:
4227
+ zone:
4228
+ $ref: '#/components/schemas/zone-input'
4229
+ examples:
4230
+ Example:
4231
+ value:
4232
+ zone:
4233
+ description: Brrr. The coldest one.
3495
4234
  '/promotions/{id}':
3496
4235
  get:
3497
4236
  responses:
@@ -3546,7 +4285,7 @@ paths:
3546
4285
  - $ref: '#/components/parameters/per_page'
3547
4286
  security:
3548
4287
  - api-key: []
3549
- '/checkouts/{checkout_id}/line_items/{id}':
4288
+ '/orders/{order_number}/coupon_codes/{id}':
3550
4289
  delete:
3551
4290
  responses:
3552
4291
  '204':
@@ -3554,34 +4293,43 @@ paths:
3554
4293
  content:
3555
4294
  application/json:
3556
4295
  schema:
3557
- $ref: '#/components/schemas/line-item'
4296
+ $ref: '#/components/schemas/coupon-code-handler'
3558
4297
  '401':
3559
4298
  $ref: '#/components/responses/invalid-api-key'
3560
4299
  '404':
3561
4300
  $ref: '#/components/responses/not-found'
3562
4301
  '422':
3563
- $ref: '#/components/responses/delete-restriction'
3564
- summary: Delete checkout line item
3565
- description: Deletes a checkout's line item.
3566
- operationId: delete-checkout-line-item
4302
+ description: Unprocessable Entity (WebDAV)
4303
+ content:
4304
+ application/json:
4305
+ schema:
4306
+ $ref: '#/components/schemas/coupon-code-handler'
4307
+ summary: Delete order coupon code
4308
+ description: |-
4309
+ Deletes an order's coupon code.
4310
+
4311
+ To perform this operation the request should be made as the order's owner or with the order token in case of unauthenitcated checkouts (es. guest checkout).
4312
+ operationId: delete-order-coupon-code
3567
4313
  tags:
3568
- - Line items
4314
+ - Coupon codes
3569
4315
  security:
3570
4316
  - api-key: []
3571
4317
  - order-token: []
3572
4318
  parameters:
3573
- - name: checkout_id
4319
+ - name: order_number
3574
4320
  in: path
3575
4321
  required: true
3576
- description: The order number
3577
4322
  schema:
3578
4323
  type: string
4324
+ description: The order number
3579
4325
  - name: id
3580
4326
  in: path
3581
4327
  required: true
4328
+ description: This is the coupon code
3582
4329
  schema:
3583
4330
  type: string
3584
- patch:
4331
+ '/orders/{order_number}/line_items':
4332
+ post:
3585
4333
  responses:
3586
4334
  '200':
3587
4335
  description: ''
@@ -3595,9 +4343,12 @@ paths:
3595
4343
  $ref: '#/components/responses/not-found'
3596
4344
  '422':
3597
4345
  $ref: '#/components/responses/unprocessable-entity'
3598
- summary: Update checkout line item
3599
- description: Updates a checkout's line item.
3600
- operationId: update-checkout-line-item
4346
+ summary: Create order line item
4347
+ description: |-
4348
+ Create a line item in an order not yet completed.
4349
+
4350
+ To perform this operation the request should be made as the order owner or with the order token in case of unauthenitcated checkouts (es. guest checkout).
4351
+ operationId: create-order-line-item
3601
4352
  tags:
3602
4353
  - Line items
3603
4354
  security:
@@ -3609,47 +4360,21 @@ paths:
3609
4360
  schema:
3610
4361
  type: object
3611
4362
  properties:
3612
- line_items_attributes:
3613
- allOf:
3614
- - properties:
3615
- id:
3616
- type: integer
3617
- type: object
3618
- '/orders/{order_number}/coupon_codes/{id}':
3619
- delete:
3620
- responses:
3621
- '204':
3622
- description: ''
3623
- content:
3624
- application/json:
3625
- schema:
3626
- $ref: '#/components/schemas/coupon-code-handler'
3627
- '401':
3628
- $ref: '#/components/responses/invalid-api-key'
3629
- '404':
3630
- $ref: '#/components/responses/not-found'
3631
- '422':
3632
- $ref: '#/components/responses/delete-restriction'
3633
- summary: Delete order coupon code
3634
- description: Deletes an order's coupon code.
3635
- operationId: delete-order-coupon-code
3636
- tags:
3637
- - Coupon codes
3638
- security:
3639
- - api-key: []
3640
- - order-token: []
4363
+ line_item:
4364
+ $ref: '#/components/schemas/line-item-input'
4365
+ examples:
4366
+ Example:
4367
+ value:
4368
+ line_item:
4369
+ quantity: 1
4370
+ variant_id: 22
4371
+ description: ''
3641
4372
  parameters:
3642
4373
  - name: order_number
3643
4374
  in: path
3644
4375
  required: true
3645
4376
  schema:
3646
4377
  type: string
3647
- - name: id
3648
- in: path
3649
- required: true
3650
- description: This is the coupon code
3651
- schema:
3652
- type: string
3653
4378
  '/orders/{order_number}/line_items/{id}':
3654
4379
  delete:
3655
4380
  responses:
@@ -3679,11 +4404,13 @@ paths:
3679
4404
  required: true
3680
4405
  schema:
3681
4406
  type: string
4407
+ description: The order number
3682
4408
  - name: id
3683
4409
  in: path
3684
4410
  required: true
3685
4411
  schema:
3686
4412
  type: string
4413
+ description: The id of the line item to update
3687
4414
  patch:
3688
4415
  responses:
3689
4416
  '200':
@@ -3699,7 +4426,10 @@ paths:
3699
4426
  '422':
3700
4427
  $ref: '#/components/responses/unprocessable-entity'
3701
4428
  summary: Update order line item
3702
- description: Updates an order's line item.
4429
+ description: |-
4430
+ Update line item's information in an order not yet completed.
4431
+
4432
+ To perform this operation the request should be made as the order owner or with the order token in case of unauthenitcated checkouts (es. guest checkout).
3703
4433
  operationId: update-order-line-item
3704
4434
  tags:
3705
4435
  - Line items
@@ -3707,7 +4437,18 @@ paths:
3707
4437
  - api-key: []
3708
4438
  - order-token: []
3709
4439
  requestBody:
3710
- $ref: '#/components/requestBodies/line-item-input'
4440
+ content:
4441
+ application/json:
4442
+ schema:
4443
+ type: object
4444
+ properties:
4445
+ line_item:
4446
+ $ref: '#/components/schemas/line-item-input'
4447
+ examples:
4448
+ example-1:
4449
+ value:
4450
+ line_item:
4451
+ quantity: 1
3711
4452
  '/stock_items/{id}':
3712
4453
  delete:
3713
4454
  responses:
@@ -3736,6 +4477,7 @@ paths:
3736
4477
  required: true
3737
4478
  schema:
3738
4479
  type: string
4480
+ description: 'The ID of the Stock::Item'
3739
4481
  patch:
3740
4482
  responses:
3741
4483
  '200':
@@ -3751,14 +4493,23 @@ paths:
3751
4493
  '422':
3752
4494
  $ref: '#/components/responses/unprocessable-entity'
3753
4495
  summary: Update stock item
3754
- description: Updates a stock item.
4496
+ description: |-
4497
+ Updates a stock item.
4498
+
4499
+ Only users with the `update` permission on the stock item can perform this action.
3755
4500
  operationId: update-stock-item
3756
4501
  tags:
3757
4502
  - Stock items
3758
4503
  security:
3759
4504
  - api-key: []
3760
4505
  requestBody:
3761
- $ref: '#/components/requestBodies/stock-item-input'
4506
+ content:
4507
+ application/json:
4508
+ schema:
4509
+ type: object
4510
+ properties:
4511
+ stock_item:
4512
+ $ref: '#/components/schemas/stock-item-input'
3762
4513
  '/checkouts/{id}':
3763
4514
  patch:
3764
4515
  responses:
@@ -3776,7 +4527,9 @@ paths:
3776
4527
  $ref: '#/components/responses/unprocessable-entity'
3777
4528
  summary: Update checkout
3778
4529
  description: |-
3779
- Updates a checkout.
4530
+ Updates a checkout and moves the order to the next checkout step. A request with an empty body is legit and only tries to move the order to the next step.
4531
+
4532
+ To perform this operation the request should be made as the order owner or with the order token in case of unauthenitcated checkouts (es. guest checkout).
3780
4533
 
3781
4534
  **Note:** In addition to the order update, this action always attempts to perform an order state machine transition which results in a `422` response if it cannot be transitioned.
3782
4535
  operationId: update-checkout
@@ -3789,13 +4542,17 @@ paths:
3789
4542
  content:
3790
4543
  application/json:
3791
4544
  schema:
3792
- $ref: '#/components/schemas/checkout-input'
4545
+ type: object
4546
+ properties:
4547
+ order:
4548
+ $ref: '#/components/schemas/order-input'
3793
4549
  parameters:
3794
4550
  - name: id
3795
4551
  in: path
3796
4552
  required: true
3797
4553
  schema:
3798
4554
  type: string
4555
+ description: The order number
3799
4556
  '/credit_cards/{id}':
3800
4557
  patch:
3801
4558
  responses:
@@ -3845,7 +4602,10 @@ paths:
3845
4602
  '422':
3846
4603
  $ref: '#/components/responses/unprocessable-entity'
3847
4604
  summary: Update shipment
3848
- description: Updates a shipment.
4605
+ description: |-
4606
+ Updates a shipment.
4607
+
4608
+ Please note that this request can be only performed by users with the `update` permission on the shipment.
3849
4609
  operationId: update-shipment
3850
4610
  tags:
3851
4611
  - Shipments
@@ -3855,7 +4615,15 @@ paths:
3855
4615
  content:
3856
4616
  application/json:
3857
4617
  schema:
3858
- $ref: '#/components/schemas/shipment-input'
4618
+ type: object
4619
+ properties:
4620
+ shipment:
4621
+ $ref: '#/components/schemas/shipment-input'
4622
+ examples:
4623
+ Example:
4624
+ value:
4625
+ shipment:
4626
+ tracking: tracking-identifier-provided-by-shipping-provider
3859
4627
  parameters:
3860
4628
  - name: number
3861
4629
  in: path
@@ -4160,6 +4928,131 @@ paths:
4160
4928
  description: The order number
4161
4929
  schema:
4162
4930
  type: string
4931
+ '/checkouts/{checkout_id}/line_items':
4932
+ post:
4933
+ responses:
4934
+ '200':
4935
+ description: ''
4936
+ content:
4937
+ application/json:
4938
+ schema:
4939
+ $ref: '#/components/schemas/line-item'
4940
+ '401':
4941
+ $ref: '#/components/responses/invalid-api-key'
4942
+ '404':
4943
+ $ref: '#/components/responses/not-found'
4944
+ '422':
4945
+ $ref: '#/components/responses/unprocessable-entity'
4946
+ summary: Create checkout line item
4947
+ description: |-
4948
+ Create a line item in an checkout not yet completed.
4949
+
4950
+ To perform this operation the request should be made as the order owner or with the order token in case of unauthenitcated checkouts (es. guest checkout).
4951
+
4952
+ It is not possible to add a line item to a completed order.
4953
+ operationId: create-checkout-line-item
4954
+ tags:
4955
+ - Line items
4956
+ security:
4957
+ - api-key: []
4958
+ - order-token: []
4959
+ requestBody:
4960
+ content:
4961
+ application/json:
4962
+ schema:
4963
+ type: object
4964
+ properties:
4965
+ line_item:
4966
+ $ref: '#/components/schemas/line-item-input'
4967
+ examples:
4968
+ Example:
4969
+ value:
4970
+ line_item:
4971
+ quantity: 1
4972
+ variant_id: 22
4973
+ parameters:
4974
+ - name: checkout_id
4975
+ in: path
4976
+ required: true
4977
+ description: The order number
4978
+ schema:
4979
+ type: string
4980
+ '/checkouts/{checkout_id}/line_items/{id}':
4981
+ delete:
4982
+ responses:
4983
+ '204':
4984
+ description: ''
4985
+ content:
4986
+ application/json:
4987
+ schema:
4988
+ $ref: '#/components/schemas/line-item'
4989
+ '401':
4990
+ $ref: '#/components/responses/invalid-api-key'
4991
+ '404':
4992
+ $ref: '#/components/responses/not-found'
4993
+ '422':
4994
+ $ref: '#/components/responses/delete-restriction'
4995
+ summary: Delete checkout line item
4996
+ description: Deletes a checkout's line item.
4997
+ operationId: delete-checkout-line-item
4998
+ tags:
4999
+ - Line items
5000
+ security:
5001
+ - api-key: []
5002
+ - order-token: []
5003
+ parameters:
5004
+ - name: checkout_id
5005
+ in: path
5006
+ required: true
5007
+ description: The order number
5008
+ schema:
5009
+ type: string
5010
+ - name: id
5011
+ in: path
5012
+ required: true
5013
+ schema:
5014
+ type: string
5015
+ description: The id of the line item to update
5016
+ patch:
5017
+ responses:
5018
+ '200':
5019
+ description: ''
5020
+ content:
5021
+ application/json:
5022
+ schema:
5023
+ $ref: '#/components/schemas/line-item'
5024
+ '401':
5025
+ $ref: '#/components/responses/invalid-api-key'
5026
+ '404':
5027
+ $ref: '#/components/responses/not-found'
5028
+ '422':
5029
+ $ref: '#/components/responses/unprocessable-entity'
5030
+ summary: Update checkout line item
5031
+ description: |-
5032
+ Update line item's information in an checkout not yet completed.
5033
+
5034
+ To perform this operation the request should be made as the order owner or with the order token in case of unauthenitcated checkouts (es. guest checkout).
5035
+
5036
+ It is not possible to add a line item to a completed order.
5037
+ operationId: update-checkout-line-item
5038
+ tags:
5039
+ - Line items
5040
+ security:
5041
+ - api-key: []
5042
+ - order-token: []
5043
+ requestBody:
5044
+ content:
5045
+ application/json:
5046
+ schema:
5047
+ type: object
5048
+ properties:
5049
+ line_item:
5050
+ $ref: '#/components/schemas/line-item-input'
5051
+ examples:
5052
+ Example:
5053
+ value:
5054
+ line_item:
5055
+ quantity: 2
4163
5056
  /classifications:
4164
5057
  put:
4165
5058
  responses:
@@ -4612,7 +5505,7 @@ paths:
4612
5505
  required: true
4613
5506
  schema:
4614
5507
  type: string
4615
- '/checkouts/{checkout_id}/line_items':
5508
+ '/orders/{order_number}/coupon_codes':
4616
5509
  post:
4617
5510
  responses:
4618
5511
  '200':
@@ -4620,47 +5513,22 @@ paths:
4620
5513
  content:
4621
5514
  application/json:
4622
5515
  schema:
4623
- $ref: '#/components/schemas/line-item'
5516
+ $ref: '#/components/schemas/coupon-code-handler'
4624
5517
  '401':
4625
5518
  $ref: '#/components/responses/invalid-api-key'
4626
5519
  '404':
4627
5520
  $ref: '#/components/responses/not-found'
4628
5521
  '422':
4629
- $ref: '#/components/responses/unprocessable-entity'
4630
- summary: Create checkout line item
4631
- description: Creates a new line item for a checkout.
4632
- operationId: create-checkout-line-item
4633
- tags:
4634
- - Line items
4635
- security:
4636
- - api-key: []
4637
- - order-token: []
4638
- requestBody:
4639
- $ref: '#/components/requestBodies/line-item-input'
4640
- parameters:
4641
- - name: checkout_id
4642
- in: path
4643
- required: true
4644
- description: The order number
4645
- schema:
4646
- type: string
4647
- '/orders/{order_number}/coupon_codes':
4648
- post:
4649
- responses:
4650
- '200':
4651
5522
  description: ''
4652
5523
  content:
4653
5524
  application/json:
4654
5525
  schema:
4655
5526
  $ref: '#/components/schemas/coupon-code-handler'
4656
- '401':
4657
- $ref: '#/components/responses/invalid-api-key'
4658
- '404':
4659
- $ref: '#/components/responses/not-found'
4660
- '422':
4661
- $ref: '#/components/responses/unprocessable-entity'
4662
5527
  summary: Create order coupon code
4663
- description: Creates a coupon code for an order.
5528
+ description: |-
5529
+ Creates a coupon code for an order.
5530
+
5531
+ To perform this operation the request should be made as the order's owner or with the order token in case of unauthenitcated checkouts (es. guest checkout).
4664
5532
  operationId: create-order-coupon-code
4665
5533
  tags:
4666
5534
  - Coupon codes
@@ -4668,44 +5536,21 @@ paths:
4668
5536
  - api-key: []
4669
5537
  - order-token: []
4670
5538
  requestBody:
4671
- $ref: '#/components/requestBodies/coupon-code-input'
4672
- parameters:
4673
- - name: order_number
4674
- in: path
4675
- required: true
4676
- schema:
4677
- type: string
4678
- '/orders/{order_number}/line_items':
4679
- post:
4680
- responses:
4681
- '200':
4682
- description: ''
4683
- content:
4684
- application/json:
4685
- schema:
4686
- $ref: '#/components/schemas/line-item'
4687
- '401':
4688
- $ref: '#/components/responses/invalid-api-key'
4689
- '404':
4690
- $ref: '#/components/responses/not-found'
4691
- '422':
4692
- $ref: '#/components/responses/unprocessable-entity'
4693
- summary: Create order line item
4694
- description: Creates a line item for an order.
4695
- operationId: create-order-line-item
4696
- tags:
4697
- - Line items
4698
- security:
4699
- - api-key: []
4700
- - order-token: []
4701
- requestBody:
4702
- $ref: '#/components/requestBodies/line-item-input'
5539
+ content:
5540
+ application/json:
5541
+ schema:
5542
+ $ref: '#/components/schemas/coupon-code-input'
5543
+ examples:
5544
+ Example:
5545
+ value:
5546
+ coupon_code: off-20
4703
5547
  parameters:
4704
5548
  - name: order_number
4705
5549
  in: path
4706
5550
  required: true
4707
5551
  schema:
4708
5552
  type: string
5553
+ description: The order number
4709
5554
  /shipments:
4710
5555
  post:
4711
5556
  responses:
@@ -4720,7 +5565,10 @@ paths:
4720
5565
  '422':
4721
5566
  $ref: '#/components/responses/unprocessable-entity'
4722
5567
  summary: Create shipment
4723
- description: Creates a shipment.
5568
+ description: |-
5569
+ Creates a shipment.
5570
+
5571
+ Please note that this request can be only performed by users with the `create` permission on the shipment.
4724
5572
  operationId: create-shipment
4725
5573
  tags:
4726
5574
  - Shipments
@@ -4738,6 +5586,12 @@ paths:
4738
5586
  type: integer
4739
5587
  quantity:
4740
5588
  type: integer
5589
+ examples:
5590
+ Example:
5591
+ value:
5592
+ stock_location_id: 0
5593
+ variant_id: 0
5594
+ quantity: 0
4741
5595
  /shipments/transfer_to_location:
4742
5596
  post:
4743
5597
  responses:
@@ -4846,12 +5700,15 @@ paths:
4846
5700
  name: id
4847
5701
  schema:
4848
5702
  type: integer
5703
+ description: The id of the Taxon
4849
5704
  - $ref: '#/components/parameters/page'
4850
5705
  - $ref: '#/components/parameters/per_page'
5706
+ - $ref: '#/components/parameters/q'
4851
5707
  - in: query
4852
5708
  name: simple
4853
5709
  schema:
4854
5710
  type: boolean
5711
+ description: Returns a simplified version of the JSON
4855
5712
  security:
4856
5713
  - api-key: []
4857
5714
  '/orders/{order_number}/customer_returns':
@@ -4882,6 +5739,7 @@ paths:
4882
5739
  parameters:
4883
5740
  - $ref: '#/components/parameters/page'
4884
5741
  - $ref: '#/components/parameters/per_page'
5742
+ - $ref: '#/components/parameters/q'
4885
5743
  security:
4886
5744
  - api-key: []
4887
5745
  parameters:
@@ -4890,6 +5748,7 @@ paths:
4890
5748
  schema:
4891
5749
  type: string
4892
5750
  required: true
5751
+ description: The order number
4893
5752
  post:
4894
5753
  responses:
4895
5754
  '200':
@@ -4905,12 +5764,21 @@ paths:
4905
5764
  '422':
4906
5765
  $ref: '#/components/responses/unprocessable-entity'
4907
5766
  summary: Create order customer return
4908
- description: Creates a customer return for an order.
5767
+ description: |-
5768
+ Creates a customer return for an order.
5769
+
5770
+ Only users with the `create` permission on `Spree::CustomerReturn` can perform this action.
4909
5771
  operationId: create-order-customer-return
4910
5772
  tags:
4911
5773
  - Customer returns
4912
5774
  requestBody:
4913
- $ref: '#/components/requestBodies/customer-return-input'
5775
+ content:
5776
+ application/json:
5777
+ schema:
5778
+ type: object
5779
+ properties:
5780
+ customer_return:
5781
+ $ref: '#/components/schemas/customer-return-input'
4914
5782
  security:
4915
5783
  - api-key: []
4916
5784
  tags:
@@ -4964,6 +5832,12 @@ components:
4964
5832
  schema:
4965
5833
  type: integer
4966
5834
  default: 25
5835
+ q:
5836
+ name: q
5837
+ in: query
5838
+ schema:
5839
+ example: '?q[attribute_eq]=value'
5840
+ description: 'Allows to query results based on search filters provided by Ransack (https://github.com/activerecord-hackery/ransack/).'
4967
5841
  responses:
4968
5842
  not-found:
4969
5843
  description: ''
@@ -5004,96 +5878,6 @@ components:
5004
5878
  message:
5005
5879
  type: string
5006
5880
  requestBodies:
5007
- taxon-input:
5008
- content:
5009
- application/json:
5010
- schema:
5011
- $ref: '#/components/schemas/taxon-input'
5012
- line-item-input:
5013
- content:
5014
- application/json:
5015
- schema:
5016
- $ref: '#/components/schemas/line-item-input'
5017
- payment-input:
5018
- content:
5019
- application/json:
5020
- schema:
5021
- $ref: '#/components/schemas/payment-input'
5022
- zone-input:
5023
- content:
5024
- application/json:
5025
- schema:
5026
- $ref: '#/components/schemas/zone-input'
5027
- product-property-input:
5028
- content:
5029
- application/json:
5030
- schema:
5031
- $ref: '#/components/schemas/product-property-input'
5032
- stock-location-input:
5033
- content:
5034
- application/json:
5035
- schema:
5036
- $ref: '#/components/schemas/stock-location-input'
5037
- product-input:
5038
- content:
5039
- application/json:
5040
- schema:
5041
- $ref: '#/components/schemas/product-input'
5042
- property-input:
5043
- content:
5044
- application/json:
5045
- schema:
5046
- $ref: '#/components/schemas/property-input'
5047
- address-input:
5048
- content:
5049
- application/json:
5050
- schema:
5051
- $ref: '#/components/schemas/address-input'
5052
- order-input:
5053
- content:
5054
- application/json:
5055
- schema:
5056
- $ref: '#/components/schemas/order-input'
5057
- image-input:
5058
- content:
5059
- application/json:
5060
- schema:
5061
- $ref: '#/components/schemas/image-input'
5062
- variant-input:
5063
- content:
5064
- application/json:
5065
- schema:
5066
- $ref: '#/components/schemas/variant-input'
5067
- user-input:
5068
- content:
5069
- application/json:
5070
- schema:
5071
- $ref: '#/components/schemas/user-input'
5072
- return-authorization-input:
5073
- content:
5074
- application/json:
5075
- schema:
5076
- $ref: '#/components/schemas/return-authorization-input'
5077
- customer-return-input:
5078
- content:
5079
- application/json:
5080
- schema:
5081
- $ref: '#/components/schemas/customer-return-input'
5082
- option-value-input:
5083
- content:
5084
- application/json:
5085
- schema:
5086
- $ref: '#/components/schemas/option-value-input'
5087
- stock-item-input:
5088
- content:
5089
- application/json:
5090
- schema:
5091
- $ref: '#/components/schemas/stock-item-input'
5092
- taxonomy-input:
5093
- content:
5094
- application/json:
5095
- schema:
5096
- $ref: '#/components/schemas/taxonomy-input'
5097
5881
  complete-checkoutBody:
5098
5882
  content:
5099
5883
  application/json:
@@ -5102,11 +5886,6 @@ components:
5102
5886
  properties:
5103
5887
  expected_total:
5104
5888
  type: string
5105
- coupon-code-input:
5106
- content:
5107
- application/json:
5108
- schema:
5109
- $ref: '#/components/schemas/coupon-code-input'
5110
5889
  add-shipment-itemBody:
5111
5890
  content:
5112
5891
  application/json:
@@ -6043,12 +6822,18 @@ components:
6043
6822
  properties:
6044
6823
  success:
6045
6824
  type: string
6825
+ description: Message returned if the coupon has been applied.
6046
6826
  error:
6047
6827
  type: string
6828
+ description: Message returned if there are errors applying the coupon.
6048
6829
  successful:
6049
6830
  type: boolean
6050
6831
  status_code:
6051
6832
  type: string
6833
+ description: |-
6834
+ When applying a coupon code, it can be: `coupon_code_applied`, `coupon_code_unknown_error`, `coupon_code_max_usage`, `coupon_code_not_eligible`, `coupon_code_already_applied`, `coupon_code_expired` or `coupon_code_not_found`.
6835
+
6836
+ When removing a coupon code, it can be: `coupon_code_removed`, `coupon_code_not_present`, `coupon_code_not_found`.
6052
6837
  address-book:
6053
6838
  type: array
6054
6839
  title: Address book
@@ -6128,19 +6913,20 @@ components:
6128
6913
  type: string
6129
6914
  abbr:
6130
6915
  type: string
6916
+ description: ''
6131
6917
  line-item-input:
6132
6918
  type: object
6133
6919
  title: Line item input
6134
6920
  properties:
6135
6921
  quantity:
6136
6922
  type: integer
6137
- description: 'Passing `0`, the line item will be removed.'
6923
+ description: 'Passing `0`, the line item will be removed. When omitted creating a line item, quantity will be `1`.'
6138
6924
  options:
6139
6925
  type: object
6140
6926
  description: 'This field can be used to pass custom line item attributes. When used, it will force a new price calculation, unless `price` is one of the options.'
6141
6927
  id:
6142
6928
  type: integer
6143
- description: Required for existing line items only.
6929
+ description: 'Required when updating existing line items, only when not already present in the Path Parameters.'
6144
6930
  variant_id:
6145
6931
  type: integer
6146
6932
  description: Required for new line items only.
@@ -6164,30 +6950,6 @@ components:
6164
6950
  type: string
6165
6951
  presentation:
6166
6952
  type: string
6167
- checkout-input:
6168
- type: object
6169
- title: Checkout input
6170
- properties:
6171
- coupon_code:
6172
- type: string
6173
- email:
6174
- type: string
6175
- special_instructions:
6176
- type: string
6177
- use_billing:
6178
- type: boolean
6179
- bill_address_attributes:
6180
- $ref: '#/components/schemas/address-input'
6181
- ship_address_attributes:
6182
- $ref: '#/components/schemas/address-input'
6183
- payments_attributes:
6184
- type: array
6185
- items:
6186
- $ref: '#/components/schemas/payment-input'
6187
- shipments_attributes:
6188
- type: array
6189
- items:
6190
- $ref: '#/components/schemas/shipment-input'
6191
6953
  credit-card-update-input:
6192
6954
  type: object
6193
6955
  title: Credit card update input
@@ -6222,10 +6984,9 @@ components:
6222
6984
  type: string
6223
6985
  payment_method_id:
6224
6986
  type: integer
6225
- payment_method:
6226
- type: string
6227
6987
  source_attributes:
6228
6988
  type: object
6989
+ description: This field is required for Payment Method that has source_required? returning true.
6229
6990
  properties:
6230
6991
  number:
6231
6992
  type: string
@@ -6271,14 +7032,29 @@ components:
6271
7032
  type: integer
6272
7033
  order-input:
6273
7034
  title: Order input
6274
- allOf:
6275
- - $ref: '#/components/schemas/checkout-input'
6276
- - type: object
6277
- properties:
6278
- line_items_attributes:
6279
- type: array
6280
- items:
6281
- $ref: '#/components/schemas/line-item-input'
7035
+ properties:
7036
+ email:
7037
+ type: string
7038
+ special_instructions:
7039
+ type: string
7040
+ use_billing:
7041
+ type: boolean
7042
+ bill_address_attributes:
7043
+ $ref: '#/components/schemas/address-input'
7044
+ ship_address_attributes:
7045
+ $ref: '#/components/schemas/address-input'
7046
+ payments_attributes:
7047
+ type: array
7048
+ items:
7049
+ $ref: '#/components/schemas/payment-input'
7050
+ shipments_attributes:
7051
+ type: array
7052
+ items:
7053
+ $ref: '#/components/schemas/shipment-input'
7054
+ line_items_attributes:
7055
+ type: array
7056
+ items:
7057
+ $ref: '#/components/schemas/line-item-input'
6282
7058
  product-input:
6283
7059
  type: object
6284
7060
  title: Product input
@@ -6289,8 +7065,6 @@ components:
6289
7065
  type: string
6290
7066
  available_on:
6291
7067
  type: string
6292
- permalink:
6293
- type: string
6294
7068
  meta_description:
6295
7069
  type: string
6296
7070
  meta_keywords:
@@ -6316,13 +7090,11 @@ components:
6316
7090
  tax_category_id:
6317
7091
  type: integer
6318
7092
  taxon_ids:
6319
- type: array
6320
- items:
6321
- type: integer
7093
+ type: string
7094
+ description: 'Comma separated list of taxon ids. Eg. "1,2"'
6322
7095
  option_type_ids:
6323
- type: array
6324
- items:
6325
- type: integer
7096
+ description: 'Comma separated list of option type ids ids. Eg. "1,2"'
7097
+ type: string
6326
7098
  cost_currency:
6327
7099
  type: string
6328
7100
  cost_price:
@@ -6359,28 +7131,16 @@ components:
6359
7131
  type: object
6360
7132
  title: Variant input
6361
7133
  properties:
6362
- name:
6363
- type: string
6364
- presentation:
7134
+ price:
6365
7135
  type: string
6366
7136
  cost_price:
6367
7137
  type: string
6368
- lock_version:
6369
- type: string
6370
7138
  position:
6371
7139
  type: integer
6372
7140
  track_inventory:
6373
7141
  type: boolean
6374
7142
  product_id:
6375
7143
  type: integer
6376
- product:
6377
- type: integer
6378
- option_values_attributes:
6379
- type: array
6380
- items:
6381
- $ref: '#/components/schemas/option-value-input'
6382
- price:
6383
- type: string
6384
7144
  weight:
6385
7145
  type: string
6386
7146
  height:
@@ -6397,13 +7157,20 @@ components:
6397
7157
  type: array
6398
7158
  items:
6399
7159
  type: integer
7160
+ option_values_attributes:
7161
+ type: array
7162
+ items:
7163
+ $ref: '#/components/schemas/option-value-input'
6400
7164
  options:
6401
7165
  type: object
7166
+ description: '`Name` will be the name/presentation of the option type and `Value` will be the name/presentation of the option value. They will be created if not exist.'
6402
7167
  properties:
6403
7168
  name:
6404
7169
  type: string
6405
7170
  value:
6406
7171
  type: string
7172
+ required:
7173
+ - price
6407
7174
  property-input:
6408
7175
  type: object
6409
7176
  title: Property input
@@ -6480,6 +7247,8 @@ components:
6480
7247
  properties:
6481
7248
  name:
6482
7249
  type: string
7250
+ required:
7251
+ - name
6483
7252
  taxon-input:
6484
7253
  type: object
6485
7254
  title: Taxon input