spree_api 5.6.0 → 6.0.0.beta1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/LICENSE +28 -0
- data/Rakefile +1 -1
- data/app/controllers/concerns/spree/api/v3/address_params.rb +17 -0
- data/app/controllers/concerns/spree/api/v3/admin/product_listing.rb +46 -0
- data/app/controllers/concerns/spree/api/v3/admin/product_membership.rb +110 -0
- data/app/controllers/concerns/spree/api/v3/admin/receivable_actions.rb +68 -0
- data/app/controllers/concerns/spree/api/v3/admin/reporting_authorization.rb +27 -0
- data/app/controllers/concerns/spree/api/v3/admin/role_grant_guard.rb +69 -33
- data/app/controllers/concerns/spree/api/v3/admin/stock_receipt_actions.rb +86 -0
- data/app/controllers/concerns/spree/api/v3/admin/store_context.rb +97 -0
- data/app/controllers/concerns/spree/api/v3/admin/subclassed_resource.rb +12 -6
- data/app/controllers/concerns/spree/api/v3/admin/validation_details.rb +91 -0
- data/app/controllers/concerns/spree/api/v3/admin_authentication.rb +9 -5
- data/app/controllers/concerns/spree/api/v3/api_key_authentication.rb +41 -5
- data/app/controllers/concerns/spree/api/v3/authentication_strategies.rb +48 -0
- data/app/controllers/concerns/spree/api/v3/bulk_operations.rb +4 -6
- data/app/controllers/concerns/spree/api/v3/cart_resolvable.rb +52 -16
- data/app/controllers/concerns/spree/api/v3/company_address_writes.rb +37 -0
- data/app/controllers/concerns/spree/api/v3/current_password_confirmation.rb +41 -0
- data/app/controllers/concerns/spree/api/v3/direct_uploads.rb +35 -0
- data/app/controllers/concerns/spree/api/v3/error_handler.rb +53 -11
- data/app/controllers/concerns/spree/api/v3/idempotent.rb +10 -4
- data/app/controllers/concerns/spree/api/v3/items_payload.rb +54 -0
- data/app/controllers/concerns/spree/api/v3/jwt_authentication.rb +23 -3
- data/app/controllers/concerns/spree/api/v3/key_store_context.rb +31 -0
- data/app/controllers/concerns/spree/api/v3/locale_and_currency.rb +3 -3
- data/app/controllers/concerns/spree/api/v3/order_lock.rb +22 -3
- data/app/controllers/concerns/spree/api/v3/orders/claim_actions.rb +112 -0
- data/app/controllers/concerns/spree/api/v3/orders/delivery_actions.rb +105 -0
- data/app/controllers/concerns/spree/api/v3/orders/exchange_actions.rb +117 -0
- data/app/controllers/concerns/spree/api/v3/orders/fulfillment_actions.rb +157 -0
- data/app/controllers/concerns/spree/api/v3/orders/post_sale_actions.rb +76 -0
- data/app/controllers/concerns/spree/api/v3/orders/return_actions.rb +116 -0
- data/app/controllers/concerns/spree/api/v3/orders/shipping_label_actions.rb +128 -0
- data/app/controllers/concerns/spree/api/v3/params_normalizer.rb +7 -4
- data/app/controllers/concerns/spree/api/v3/permission_serialization.rb +42 -0
- data/app/controllers/concerns/spree/api/v3/rate_limit_headers.rb +40 -6
- data/app/controllers/concerns/spree/api/v3/scoped_authorization.rb +80 -26
- data/app/controllers/concerns/spree/api/v3/seller/auth_cookies.rb +62 -0
- data/app/controllers/concerns/spree/api/v3/seller/seller_context.rb +127 -0
- data/app/controllers/concerns/spree/api/v3/seller_authentication.rb +40 -0
- data/app/controllers/concerns/spree/api/v3/storefront_access.rb +38 -0
- data/app/controllers/concerns/spree/api/v3/streams_shipping_label.rb +37 -0
- data/app/controllers/concerns/spree/api/v3/tax_identifier_validation.rb +41 -0
- data/app/controllers/spree/api/v3/admin/admin_users_controller.rb +11 -14
- data/app/controllers/spree/api/v3/admin/allowed_origins_controller.rb +1 -1
- data/app/controllers/spree/api/v3/admin/api_keys_controller.rb +16 -7
- data/app/controllers/spree/api/v3/admin/auth_controller.rb +138 -22
- data/app/controllers/spree/api/v3/admin/base_controller.rb +2 -0
- data/app/controllers/spree/api/v3/admin/catalog_assignments_controller.rb +27 -0
- data/app/controllers/spree/api/v3/admin/catalogs/base_controller.rb +29 -0
- data/app/controllers/spree/api/v3/admin/catalogs/order_minimums_controller.rb +40 -0
- data/app/controllers/spree/api/v3/admin/catalogs/products_controller.rb +107 -0
- data/app/controllers/spree/api/v3/admin/catalogs/quantity_rules_controller.rb +75 -0
- data/app/controllers/spree/api/v3/admin/catalogs_controller.rb +191 -0
- data/app/controllers/spree/api/v3/admin/categories/products_controller.rb +28 -41
- data/app/controllers/spree/api/v3/admin/categories_controller.rb +16 -7
- data/app/controllers/spree/api/v3/admin/channels_controller.rb +50 -1
- data/app/controllers/spree/api/v3/admin/claim_reasons_controller.rb +25 -0
- data/app/controllers/spree/api/v3/admin/claims_controller.rb +31 -0
- data/app/controllers/spree/api/v3/admin/collection_rules_controller.rb +40 -0
- data/app/controllers/spree/api/v3/admin/collections/products_controller.rb +101 -0
- data/app/controllers/spree/api/v3/admin/collections_controller.rb +56 -0
- data/app/controllers/spree/api/v3/admin/commission_lines_controller.rb +39 -0
- data/app/controllers/spree/api/v3/admin/commission_rates_controller.rb +174 -0
- data/app/controllers/spree/api/v3/admin/companies/addresses_controller.rb +65 -0
- data/app/controllers/spree/api/v3/admin/companies/base_controller.rb +29 -0
- data/app/controllers/spree/api/v3/admin/companies/invitations_controller.rb +56 -0
- data/app/controllers/spree/api/v3/admin/companies/memberships_controller.rb +66 -0
- data/app/controllers/spree/api/v3/admin/companies/tax_exemption_certificates_controller.rb +137 -0
- data/app/controllers/spree/api/v3/admin/companies/tax_identifiers_controller.rb +46 -0
- data/app/controllers/spree/api/v3/admin/companies_controller.rb +59 -0
- data/app/controllers/spree/api/v3/admin/concerns/external_references.rb +166 -0
- data/app/controllers/spree/api/v3/admin/consent_records_controller.rb +31 -0
- data/app/controllers/spree/api/v3/admin/countries_controller.rb +12 -4
- data/app/controllers/spree/api/v3/admin/custom_field_definitions_controller.rb +21 -5
- data/app/controllers/spree/api/v3/admin/custom_fields_controller.rb +5 -5
- data/app/controllers/spree/api/v3/admin/customer_groups_controller.rb +1 -1
- data/app/controllers/spree/api/v3/admin/customers/addresses_controller.rb +4 -4
- data/app/controllers/spree/api/v3/admin/customers/base_controller.rb +1 -1
- data/app/controllers/spree/api/v3/admin/customers/store_credits_controller.rb +2 -3
- data/app/controllers/spree/api/v3/admin/customers/tax_identifiers_controller.rb +43 -0
- data/app/controllers/spree/api/v3/admin/customers_controller.rb +190 -11
- data/app/controllers/spree/api/v3/admin/dashboard_controller.rb +24 -20
- data/app/controllers/spree/api/v3/admin/data_requests_controller.rb +60 -0
- data/app/controllers/spree/api/v3/admin/delivery_method_rules_controller.rb +54 -0
- data/app/controllers/spree/api/v3/admin/delivery_methods/rules_controller.rb +114 -0
- data/app/controllers/spree/api/v3/admin/delivery_methods_controller.rb +243 -0
- data/app/controllers/spree/api/v3/admin/delivery_profiles/origin_groups_controller.rb +80 -0
- data/app/controllers/spree/api/v3/admin/delivery_profiles_controller.rb +107 -0
- data/app/controllers/spree/api/v3/admin/delivery_zones_controller.rb +116 -0
- data/app/controllers/spree/api/v3/admin/digital_links_controller.rb +48 -0
- data/app/controllers/spree/api/v3/admin/direct_uploads_controller.rb +17 -3
- data/app/controllers/spree/api/v3/admin/exchanges_controller.rb +31 -0
- data/app/controllers/spree/api/v3/admin/exports_controller.rb +11 -9
- data/app/controllers/spree/api/v3/admin/gift_card_batches_controller.rb +1 -1
- data/app/controllers/spree/api/v3/admin/gift_cards_controller.rb +3 -2
- data/app/controllers/spree/api/v3/admin/imports_controller.rb +107 -16
- data/app/controllers/spree/api/v3/admin/integrations_controller.rb +67 -0
- data/app/controllers/spree/api/v3/admin/invitation_acceptances_controller.rb +5 -5
- data/app/controllers/spree/api/v3/admin/invitations_controller.rb +5 -1
- data/app/controllers/spree/api/v3/admin/locales_controller.rb +3 -1
- data/app/controllers/spree/api/v3/admin/markets_controller.rb +9 -5
- data/app/controllers/spree/api/v3/admin/me_controller.rb +4 -30
- data/app/controllers/spree/api/v3/admin/media_controller.rb +88 -38
- data/app/controllers/spree/api/v3/admin/media_library_controller.rb +156 -0
- data/app/controllers/spree/api/v3/admin/option_types_controller.rb +1 -0
- data/app/controllers/spree/api/v3/admin/order_cancellation_reasons_controller.rb +25 -0
- data/app/controllers/spree/api/v3/admin/order_groups_controller.rb +43 -0
- data/app/controllers/spree/api/v3/admin/order_routing_rules_controller.rb +1 -1
- data/app/controllers/spree/api/v3/admin/orders/claims_controller.rb +56 -0
- data/app/controllers/spree/api/v3/admin/orders/deliveries_controller.rb +66 -0
- data/app/controllers/spree/api/v3/admin/orders/discount_codes_controller.rb +86 -0
- data/app/controllers/spree/api/v3/admin/orders/discounts_controller.rb +99 -0
- data/app/controllers/spree/api/v3/admin/orders/exchanges_controller.rb +62 -0
- data/app/controllers/spree/api/v3/admin/orders/fees_controller.rb +83 -0
- data/app/controllers/spree/api/v3/admin/orders/fulfillments_controller.rb +45 -67
- data/app/controllers/spree/api/v3/admin/orders/items_controller.rb +40 -22
- data/app/controllers/spree/api/v3/admin/orders/labels_controller.rb +75 -0
- data/app/controllers/spree/api/v3/admin/orders/payments_controller.rb +36 -18
- data/app/controllers/spree/api/v3/admin/orders/refunds_controller.rb +39 -18
- data/app/controllers/spree/api/v3/admin/orders/returns_controller.rb +70 -0
- data/app/controllers/spree/api/v3/admin/orders/store_credits_controller.rb +2 -2
- data/app/controllers/spree/api/v3/admin/orders/tax_identifiers_controller.rb +41 -0
- data/app/controllers/spree/api/v3/admin/orders/tax_lines_controller.rb +32 -0
- data/app/controllers/spree/api/v3/admin/orders_controller.rb +157 -32
- data/app/controllers/spree/api/v3/admin/package_types_controller.rb +39 -0
- data/app/controllers/spree/api/v3/admin/password_resets_controller.rb +1 -1
- data/app/controllers/spree/api/v3/admin/payment_methods_controller.rb +15 -4
- data/app/controllers/spree/api/v3/admin/payout_providers_controller.rb +27 -0
- data/app/controllers/spree/api/v3/admin/permissions_controller.rb +30 -0
- data/app/controllers/spree/api/v3/admin/policies_controller.rb +42 -0
- data/app/controllers/spree/api/v3/admin/price_lists/products_controller.rb +93 -0
- data/app/controllers/spree/api/v3/admin/price_lists_controller.rb +43 -29
- data/app/controllers/spree/api/v3/admin/prices_controller.rb +41 -4
- data/app/controllers/spree/api/v3/admin/product_types_controller.rb +93 -0
- data/app/controllers/spree/api/v3/admin/products/digital_assets_controller.rb +148 -0
- data/app/controllers/spree/api/v3/admin/products/variants_controller.rb +24 -3
- data/app/controllers/spree/api/v3/admin/products_controller.rb +149 -33
- data/app/controllers/spree/api/v3/admin/promotion_actions_controller.rb +6 -2
- data/app/controllers/spree/api/v3/admin/promotion_rules_controller.rb +1 -1
- data/app/controllers/spree/api/v3/admin/promotions_controller.rb +1 -5
- data/app/controllers/spree/api/v3/admin/purchase_orders/stock_receipts_controller.rb +32 -0
- data/app/controllers/spree/api/v3/admin/purchase_orders_controller.rb +161 -0
- data/app/controllers/spree/api/v3/admin/refund_reasons_controller.rb +25 -0
- data/app/controllers/spree/api/v3/admin/reporting/saved_reports_controller.rb +45 -0
- data/app/controllers/spree/api/v3/admin/reporting_controller.rb +95 -0
- data/app/controllers/spree/api/v3/admin/resource_controller.rb +27 -10
- data/app/controllers/spree/api/v3/admin/return_reasons_controller.rb +25 -0
- data/app/controllers/spree/api/v3/admin/returns_controller.rb +31 -0
- data/app/controllers/spree/api/v3/admin/roles_controller.rb +50 -6
- data/app/controllers/spree/api/v3/admin/seller_payouts_controller.rb +83 -0
- data/app/controllers/spree/api/v3/admin/seller_requirement_submissions_controller.rb +139 -0
- data/app/controllers/spree/api/v3/admin/seller_requirements_controller.rb +115 -0
- data/app/controllers/spree/api/v3/admin/seller_transfers_controller.rb +36 -0
- data/app/controllers/spree/api/v3/admin/sellers/balances_controller.rb +44 -0
- data/app/controllers/spree/api/v3/admin/sellers/invitations_controller.rb +77 -0
- data/app/controllers/spree/api/v3/admin/sellers/payouts_controller.rb +107 -0
- data/app/controllers/spree/api/v3/admin/sellers/team_controller.rb +64 -0
- data/app/controllers/spree/api/v3/admin/sellers_controller.rb +197 -0
- data/app/controllers/spree/api/v3/admin/setup_controller.rb +231 -0
- data/app/controllers/spree/api/v3/admin/stock_levels_controller.rb +172 -0
- data/app/controllers/spree/api/v3/admin/stock_locations_controller.rb +3 -2
- data/app/controllers/spree/api/v3/admin/stock_movements_controller.rb +37 -0
- data/app/controllers/spree/api/v3/admin/stock_reservations_controller.rb +1 -1
- data/app/controllers/spree/api/v3/admin/stock_transfers/stock_receipts_controller.rb +31 -0
- data/app/controllers/spree/api/v3/admin/stock_transfers_controller.rb +134 -38
- data/app/controllers/spree/api/v3/admin/store_controller.rb +65 -0
- data/app/controllers/spree/api/v3/admin/store_credits/events_controller.rb +47 -0
- data/app/controllers/spree/api/v3/admin/store_credits_controller.rb +87 -0
- data/app/controllers/spree/api/v3/admin/suppliers_controller.rb +30 -0
- data/app/controllers/spree/api/v3/admin/tags_controller.rb +2 -2
- data/app/controllers/spree/api/v3/admin/tax_categories_controller.rb +4 -0
- data/app/controllers/spree/api/v3/admin/tax_providers_controller.rb +25 -0
- data/app/controllers/spree/api/v3/admin/tax_rates_controller.rb +33 -0
- data/app/controllers/spree/api/v3/admin/tracking_carriers_controller.rb +33 -0
- data/app/controllers/spree/api/v3/admin/translatable_resources_controller.rb +37 -9
- data/app/controllers/spree/api/v3/admin/translations_controller.rb +10 -5
- data/app/controllers/spree/api/v3/admin/translations_coverage_controller.rb +150 -0
- data/app/controllers/spree/api/v3/admin/variants_controller.rb +11 -4
- data/app/controllers/spree/api/v3/admin/webhook_endpoints_controller.rb +1 -1
- data/app/controllers/spree/api/v3/base_controller.rb +59 -16
- data/app/controllers/spree/api/v3/resource_controller.rb +154 -38
- data/app/controllers/spree/api/v3/seller/auth_controller.rb +169 -0
- data/app/controllers/spree/api/v3/seller/balances_controller.rb +35 -0
- data/app/controllers/spree/api/v3/seller/base_controller.rb +25 -0
- data/app/controllers/spree/api/v3/seller/claim_reasons_controller.rb +20 -0
- data/app/controllers/spree/api/v3/seller/countries_controller.rb +38 -0
- data/app/controllers/spree/api/v3/seller/delivery_methods_controller.rb +265 -0
- data/app/controllers/spree/api/v3/seller/delivery_profiles_controller.rb +65 -0
- data/app/controllers/spree/api/v3/seller/delivery_zones_controller.rb +41 -0
- data/app/controllers/spree/api/v3/seller/direct_uploads_controller.rb +21 -0
- data/app/controllers/spree/api/v3/seller/exports_controller.rb +195 -0
- data/app/controllers/spree/api/v3/seller/import_rows_controller.rb +49 -0
- data/app/controllers/spree/api/v3/seller/imports_controller.rb +317 -0
- data/app/controllers/spree/api/v3/seller/invitation_acceptances_controller.rb +152 -0
- data/app/controllers/spree/api/v3/seller/invitations_controller.rb +71 -0
- data/app/controllers/spree/api/v3/seller/me_controller.rb +72 -0
- data/app/controllers/spree/api/v3/seller/onboarding_controller.rb +111 -0
- data/app/controllers/spree/api/v3/seller/order_cancellation_reasons_controller.rb +25 -0
- data/app/controllers/spree/api/v3/seller/orders/base_controller.rb +44 -0
- data/app/controllers/spree/api/v3/seller/orders/claims_controller.rb +45 -0
- data/app/controllers/spree/api/v3/seller/orders/deliveries_controller.rb +38 -0
- data/app/controllers/spree/api/v3/seller/orders/exchanges_controller.rb +50 -0
- data/app/controllers/spree/api/v3/seller/orders/fulfillments_controller.rb +79 -0
- data/app/controllers/spree/api/v3/seller/orders/labels_controller.rb +55 -0
- data/app/controllers/spree/api/v3/seller/orders/notes_controller.rb +82 -0
- data/app/controllers/spree/api/v3/seller/orders/returns_controller.rb +44 -0
- data/app/controllers/spree/api/v3/seller/orders_controller.rb +199 -0
- data/app/controllers/spree/api/v3/seller/package_types_controller.rb +100 -0
- data/app/controllers/spree/api/v3/seller/password_resets_controller.rb +155 -0
- data/app/controllers/spree/api/v3/seller/payouts_controller.rb +47 -0
- data/app/controllers/spree/api/v3/seller/policies_controller.rb +57 -0
- data/app/controllers/spree/api/v3/seller/product_types_controller.rb +35 -0
- data/app/controllers/spree/api/v3/seller/products_controller.rb +394 -0
- data/app/controllers/spree/api/v3/seller/profile_controller.rb +137 -0
- data/app/controllers/spree/api/v3/seller/reasons_controller.rb +45 -0
- data/app/controllers/spree/api/v3/seller/requirement_submissions_controller.rb +95 -0
- data/app/controllers/spree/api/v3/seller/resource_controller.rb +75 -0
- data/app/controllers/spree/api/v3/seller/return_reasons_controller.rb +20 -0
- data/app/controllers/spree/api/v3/seller/stock_locations_controller.rb +56 -0
- data/app/controllers/spree/api/v3/seller/tax_identifiers_controller.rb +48 -0
- data/app/controllers/spree/api/v3/seller/team_controller.rb +103 -0
- data/app/controllers/spree/api/v3/seller/tracking_carriers_controller.rb +35 -0
- data/app/controllers/spree/api/v3/seller/transfers_controller.rb +43 -0
- data/app/controllers/spree/api/v3/store/account/companies_controller.rb +42 -0
- data/app/controllers/spree/api/v3/store/auth_controller.rb +21 -34
- data/app/controllers/spree/api/v3/store/base_controller.rb +4 -0
- data/app/controllers/spree/api/v3/store/carts/discount_codes_controller.rb +24 -2
- data/app/controllers/spree/api/v3/store/carts/fulfillments_controller.rb +41 -15
- data/app/controllers/spree/api/v3/store/carts/items_controller.rb +53 -20
- data/app/controllers/spree/api/v3/store/carts/payment_sessions_controller.rb +36 -20
- data/app/controllers/spree/api/v3/store/carts/po_documents_controller.rb +111 -0
- data/app/controllers/spree/api/v3/store/carts/store_credits_controller.rb +2 -2
- data/app/controllers/spree/api/v3/store/carts/tax_identifiers_controller.rb +96 -0
- data/app/controllers/spree/api/v3/store/carts_controller.rb +57 -12
- data/app/controllers/spree/api/v3/store/categories_controller.rb +6 -3
- data/app/controllers/spree/api/v3/store/collections/products_controller.rb +59 -0
- data/app/controllers/spree/api/v3/store/collections_controller.rb +36 -0
- data/app/controllers/spree/api/v3/store/companies/addresses_controller.rb +81 -0
- data/app/controllers/spree/api/v3/store/companies/base_controller.rb +24 -0
- data/app/controllers/spree/api/v3/store/companies/invitations_controller.rb +50 -0
- data/app/controllers/spree/api/v3/store/companies/members_controller.rb +66 -0
- data/app/controllers/spree/api/v3/store/companies/orders_controller.rb +28 -0
- data/app/controllers/spree/api/v3/store/companies_controller.rb +47 -0
- data/app/controllers/spree/api/v3/store/company_invitations_controller.rb +90 -0
- data/app/controllers/spree/api/v3/store/countries_controller.rb +8 -6
- data/app/controllers/spree/api/v3/store/customer/addresses_controller.rb +3 -1
- data/app/controllers/spree/api/v3/store/customer/credit_cards_controller.rb +7 -0
- data/app/controllers/spree/api/v3/store/customer/data_requests_controller.rb +78 -0
- data/app/controllers/spree/api/v3/store/customer/digital_links_controller.rb +52 -0
- data/app/controllers/spree/api/v3/store/customer/orders_controller.rb +6 -0
- data/app/controllers/spree/api/v3/store/customer/password_resets_controller.rb +7 -3
- data/app/controllers/spree/api/v3/store/customer/payment_setup_sessions_controller.rb +3 -3
- data/app/controllers/spree/api/v3/store/customer/store_credits_controller.rb +0 -3
- data/app/controllers/spree/api/v3/store/customer/tax_identifiers_controller.rb +91 -0
- data/app/controllers/spree/api/v3/store/customers_controller.rb +26 -31
- data/app/controllers/spree/api/v3/store/data_feeds_controller.rb +11 -0
- data/app/controllers/spree/api/v3/store/data_request_downloads_controller.rb +58 -0
- data/app/controllers/spree/api/v3/store/delivery_methods_controller.rb +108 -0
- data/app/controllers/spree/api/v3/store/digital_links_controller.rb +105 -0
- data/app/controllers/spree/api/v3/store/markets/countries_controller.rb +5 -9
- data/app/controllers/spree/api/v3/store/markets_controller.rb +4 -4
- data/app/controllers/spree/api/v3/store/newsletter_subscribers_controller.rb +8 -9
- data/app/controllers/spree/api/v3/store/orders/claims_controller.rb +94 -0
- data/app/controllers/spree/api/v3/store/orders/returns_controller.rb +116 -0
- data/app/controllers/spree/api/v3/store/orders/tax_identifiers_controller.rb +46 -0
- data/app/controllers/spree/api/v3/store/orders_controller.rb +12 -15
- data/app/controllers/spree/api/v3/store/products/filters_controller.rb +11 -3
- data/app/controllers/spree/api/v3/store/products_controller.rb +25 -6
- data/app/controllers/spree/api/v3/store/resource_controller.rb +2 -0
- data/app/controllers/spree/api/v3/store/sellers_controller.rb +43 -0
- data/app/controllers/spree/api/v3/store/wishlist_items_controller.rb +9 -6
- data/app/controllers/spree/api/v3/store/wishlists_controller.rb +3 -3
- data/app/controllers/spree/api/v3/webhooks/fulfillments_controller.rb +88 -0
- data/app/controllers/spree/api/v3/webhooks/payments_controller.rb +5 -2
- data/app/controllers/spree/api/v3/webhooks/payouts_controller.rb +61 -0
- data/app/models/spree/api/data_request_urls.rb +25 -0
- data/app/models/spree/api/digital_link_urls.rb +26 -0
- data/app/serializers/spree/api/v3/address_serializer.rb +17 -5
- data/app/serializers/spree/api/v3/admin/address_serializer.rb +27 -4
- data/app/serializers/spree/api/v3/admin/admin_user_serializer.rb +20 -4
- data/app/serializers/spree/api/v3/admin/api_key_serializer.rb +1 -1
- data/app/serializers/spree/api/v3/admin/applied_promotion_serializer.rb +15 -0
- data/app/serializers/spree/api/v3/admin/cart_serializer.rb +34 -0
- data/app/serializers/spree/api/v3/admin/catalog_assignment_serializer.rb +32 -0
- data/app/serializers/spree/api/v3/admin/catalog_order_minimum_serializer.rb +23 -0
- data/app/serializers/spree/api/v3/admin/catalog_price_serializer.rb +48 -0
- data/app/serializers/spree/api/v3/admin/catalog_price_tier_serializer.rb +23 -0
- data/app/serializers/spree/api/v3/admin/catalog_product_serializer.rb +57 -0
- data/app/serializers/spree/api/v3/admin/catalog_product_term_serializer.rb +38 -0
- data/app/serializers/spree/api/v3/admin/catalog_quantity_rule_serializer.rb +37 -0
- data/app/serializers/spree/api/v3/admin/catalog_serializer.rb +46 -0
- data/app/serializers/spree/api/v3/admin/category_serializer.rb +3 -2
- data/app/serializers/spree/api/v3/admin/channel_serializer.rb +15 -1
- data/app/serializers/spree/api/v3/admin/claim_line_item_serializer.rb +16 -0
- data/app/serializers/spree/api/v3/admin/claim_reason_serializer.rb +21 -0
- data/app/serializers/spree/api/v3/admin/claim_serializer.rb +29 -0
- data/app/serializers/spree/api/v3/admin/collection_rule_serializer.rb +22 -0
- data/app/serializers/spree/api/v3/admin/collection_serializer.rb +29 -0
- data/app/serializers/spree/api/v3/admin/commission_line_serializer.rb +67 -0
- data/app/serializers/spree/api/v3/admin/commission_rate_serializer.rb +69 -0
- data/app/serializers/spree/api/v3/admin/commission_rule_serializer.rb +61 -0
- data/app/serializers/spree/api/v3/admin/company_invitation_serializer.rb +15 -0
- data/app/serializers/spree/api/v3/admin/company_membership_serializer.rb +11 -0
- data/app/serializers/spree/api/v3/admin/company_serializer.rb +37 -0
- data/app/serializers/spree/api/v3/admin/concerns/external_references_attribute.rb +33 -0
- data/app/serializers/spree/api/v3/admin/consent_record_serializer.rb +28 -0
- data/app/serializers/spree/api/v3/admin/country_serializer.rb +2 -2
- data/app/serializers/spree/api/v3/admin/credit_card_serializer.rb +1 -1
- data/app/serializers/spree/api/v3/admin/custom_field_definition_serializer.rb +7 -3
- data/app/serializers/spree/api/v3/admin/custom_field_serializer.rb +2 -2
- data/app/serializers/spree/api/v3/admin/customer_serializer.rb +23 -22
- data/app/serializers/spree/api/v3/admin/dashboard_counter_serializer.rb +24 -0
- data/app/serializers/spree/api/v3/admin/data_request_serializer.rb +36 -0
- data/app/serializers/spree/api/v3/admin/delivery_method_rule_serializer.rb +32 -0
- data/app/serializers/spree/api/v3/admin/delivery_method_serializer.rb +66 -1
- data/app/serializers/spree/api/v3/admin/delivery_method_service_serializer.rb +15 -0
- data/app/serializers/spree/api/v3/admin/delivery_origin_group_serializer.rb +34 -0
- data/app/serializers/spree/api/v3/admin/delivery_profile_serializer.rb +65 -0
- data/app/serializers/spree/api/v3/admin/delivery_rate_serializer.rb +10 -1
- data/app/serializers/spree/api/v3/admin/delivery_serializer.rb +20 -0
- data/app/serializers/spree/api/v3/admin/delivery_zone_member_serializer.rb +11 -0
- data/app/serializers/spree/api/v3/admin/delivery_zone_serializer.rb +29 -0
- data/app/serializers/spree/api/v3/admin/digital_asset_serializer.rb +59 -0
- data/app/serializers/spree/api/v3/admin/discount_serializer.rb +3 -4
- data/app/serializers/spree/api/v3/admin/exchange_line_item_serializer.rb +16 -0
- data/app/serializers/spree/api/v3/admin/exchange_serializer.rb +35 -0
- data/app/serializers/spree/api/v3/admin/export_serializer.rb +20 -1
- data/app/serializers/spree/api/v3/admin/fee_serializer.rb +14 -0
- data/app/serializers/spree/api/v3/admin/freight_summary_line_serializer.rb +46 -0
- data/app/serializers/spree/api/v3/admin/freight_summary_serializer.rb +16 -0
- data/app/serializers/spree/api/v3/admin/fulfillment_item_serializer.rb +39 -0
- data/app/serializers/spree/api/v3/admin/fulfillment_serializer.rb +31 -9
- data/app/serializers/spree/api/v3/admin/gift_card_serializer.rb +2 -3
- data/app/serializers/spree/api/v3/admin/import_serializer.rb +15 -2
- data/app/serializers/spree/api/v3/admin/integration_serializer.rb +32 -0
- data/app/serializers/spree/api/v3/admin/invitation_serializer.rb +4 -4
- data/app/serializers/spree/api/v3/admin/line_item_serializer.rb +19 -5
- data/app/serializers/spree/api/v3/admin/market_serializer.rb +5 -1
- data/app/serializers/spree/api/v3/admin/media_serializer.rb +56 -3
- data/app/serializers/spree/api/v3/admin/membership_product_serializer.rb +29 -0
- data/app/serializers/spree/api/v3/admin/order_cancellation_reason_serializer.rb +29 -0
- data/app/serializers/spree/api/v3/admin/order_group_serializer.rb +50 -0
- data/app/serializers/spree/api/v3/admin/order_routing_rule_serializer.rb +2 -6
- data/app/serializers/spree/api/v3/admin/order_serializer.rb +131 -19
- data/app/serializers/spree/api/v3/admin/package_type_serializer.rb +53 -0
- data/app/serializers/spree/api/v3/admin/payment_method_serializer.rb +8 -2
- data/app/serializers/spree/api/v3/admin/payment_serializer.rb +6 -0
- data/app/serializers/spree/api/v3/admin/payment_split_serializer.rb +41 -0
- data/app/serializers/spree/api/v3/admin/permission_serializer.rb +39 -0
- data/app/serializers/spree/api/v3/admin/policy_serializer.rb +11 -0
- data/app/serializers/spree/api/v3/admin/price_adjustment_tier_serializer.rb +22 -0
- data/app/serializers/spree/api/v3/admin/price_list_product_serializer.rb +32 -0
- data/app/serializers/spree/api/v3/admin/price_list_serializer.rb +20 -8
- data/app/serializers/spree/api/v3/admin/price_rule_serializer.rb +2 -12
- data/app/serializers/spree/api/v3/admin/price_serializer.rb +3 -0
- data/app/serializers/spree/api/v3/admin/product_serializer.rb +54 -8
- data/app/serializers/spree/api/v3/admin/product_submission_serializer.rb +39 -0
- data/app/serializers/spree/api/v3/admin/product_type_custom_field_definition_serializer.rb +44 -0
- data/app/serializers/spree/api/v3/admin/product_type_serializer.rb +34 -0
- data/app/serializers/spree/api/v3/admin/promotion_action_serializer.rb +6 -12
- data/app/serializers/spree/api/v3/admin/promotion_rule_serializer.rb +17 -15
- data/app/serializers/spree/api/v3/admin/purchase_order_item_serializer.rb +80 -0
- data/app/serializers/spree/api/v3/admin/purchase_order_serializer.rb +94 -0
- data/app/serializers/spree/api/v3/admin/refund_reason_serializer.rb +27 -0
- data/app/serializers/spree/api/v3/admin/refund_serializer.rb +0 -5
- data/app/serializers/spree/api/v3/admin/reporting_result_serializer.rb +72 -0
- data/app/serializers/spree/api/v3/admin/return_line_item_serializer.rb +16 -0
- data/app/serializers/spree/api/v3/admin/return_reason_serializer.rb +21 -0
- data/app/serializers/spree/api/v3/admin/return_serializer.rb +59 -0
- data/app/serializers/spree/api/v3/admin/role_serializer.rb +24 -6
- data/app/serializers/spree/api/v3/admin/saved_report_serializer.rb +33 -0
- data/app/serializers/spree/api/v3/admin/seller_balance_serializer.rb +37 -0
- data/app/serializers/spree/api/v3/admin/seller_payout_serializer.rb +46 -0
- data/app/serializers/spree/api/v3/admin/seller_requirement_serializer.rb +68 -0
- data/app/serializers/spree/api/v3/admin/seller_requirement_status_serializer.rb +48 -0
- data/app/serializers/spree/api/v3/admin/seller_requirement_submission_serializer.rb +57 -0
- data/app/serializers/spree/api/v3/admin/seller_serializer.rb +92 -0
- data/app/serializers/spree/api/v3/admin/seller_team_member_serializer.rb +29 -0
- data/app/serializers/spree/api/v3/admin/seller_transfer_serializer.rb +53 -0
- data/app/serializers/spree/api/v3/admin/shipping_label_serializer.rb +82 -0
- data/app/serializers/spree/api/v3/admin/state_serializer.rb +1 -1
- data/app/serializers/spree/api/v3/admin/stock_level_serializer.rb +65 -0
- data/app/serializers/spree/api/v3/admin/stock_location_serializer.rb +20 -4
- data/app/serializers/spree/api/v3/admin/stock_movement_serializer.rb +116 -0
- data/app/serializers/spree/api/v3/admin/stock_receipt_item_serializer.rb +57 -0
- data/app/serializers/spree/api/v3/admin/stock_receipt_serializer.rb +49 -0
- data/app/serializers/spree/api/v3/admin/stock_reservation_serializer.rb +5 -5
- data/app/serializers/spree/api/v3/admin/stock_transfer_item_serializer.rb +57 -0
- data/app/serializers/spree/api/v3/admin/stock_transfer_serializer.rb +36 -16
- data/app/serializers/spree/api/v3/admin/store_credit_event_serializer.rb +32 -0
- data/app/serializers/spree/api/v3/admin/store_credit_serializer.rb +42 -7
- data/app/serializers/spree/api/v3/admin/store_serializer.rb +63 -1
- data/app/serializers/spree/api/v3/admin/supplier_serializer.rb +39 -0
- data/app/serializers/spree/api/v3/admin/tax_exemption_certificate_serializer.rb +67 -0
- data/app/serializers/spree/api/v3/admin/tax_identifier_serializer.rb +43 -0
- data/app/serializers/spree/api/v3/admin/tax_line_serializer.rb +21 -0
- data/app/serializers/spree/api/v3/admin/tax_rate_serializer.rb +49 -0
- data/app/serializers/spree/api/v3/admin/variant_serializer.rb +49 -8
- data/app/serializers/spree/api/v3/applied_promotion_serializer.rb +23 -0
- data/app/serializers/spree/api/v3/base_serializer.rb +39 -2
- data/app/serializers/spree/api/v3/cart_serializer.rb +90 -12
- data/app/serializers/spree/api/v3/category_serializer.rb +3 -3
- data/app/serializers/spree/api/v3/claim_line_item_serializer.rb +50 -0
- data/app/serializers/spree/api/v3/claim_reason_serializer.rb +20 -0
- data/app/serializers/spree/api/v3/claim_serializer.rb +62 -0
- data/app/serializers/spree/api/v3/collection_serializer.rb +41 -0
- data/app/serializers/spree/api/v3/company_invitation_serializer.rb +28 -0
- data/app/serializers/spree/api/v3/company_membership_serializer.rb +28 -0
- data/app/serializers/spree/api/v3/company_serializer.rb +33 -0
- data/app/serializers/spree/api/v3/custom_field_serializer.rb +2 -2
- data/app/serializers/spree/api/v3/customer_serializer.rb +9 -1
- data/app/serializers/spree/api/v3/data_request_event_serializer.rb +30 -0
- data/app/serializers/spree/api/v3/data_request_serializer.rb +40 -0
- data/app/serializers/spree/api/v3/delivery_method_serializer.rb +12 -2
- data/app/serializers/spree/api/v3/delivery_rate_serializer.rb +34 -17
- data/app/serializers/spree/api/v3/delivery_serializer.rb +29 -0
- data/app/serializers/spree/api/v3/delivery_zone_member_serializer.rb +29 -0
- data/app/serializers/spree/api/v3/delivery_zone_serializer.rb +13 -0
- data/app/serializers/spree/api/v3/digital_asset_serializer.rb +23 -0
- data/app/serializers/spree/api/v3/digital_link_serializer.rb +6 -2
- data/app/serializers/spree/api/v3/discount_serializer.rb +21 -7
- data/app/serializers/spree/api/v3/exchange_line_item_serializer.rb +53 -0
- data/app/serializers/spree/api/v3/exchange_serializer.rb +61 -0
- data/app/serializers/spree/api/v3/export_serializer.rb +9 -1
- data/app/serializers/spree/api/v3/fee_serializer.rb +27 -0
- data/app/serializers/spree/api/v3/freight_summary_serializer.rb +38 -0
- data/app/serializers/spree/api/v3/fulfillment_serializer.rb +28 -15
- data/app/serializers/spree/api/v3/gift_card_serializer.rb +2 -2
- data/app/serializers/spree/api/v3/import_row_serializer.rb +7 -2
- data/app/serializers/spree/api/v3/import_serializer.rb +27 -4
- data/app/serializers/spree/api/v3/invitation_serializer.rb +15 -2
- data/app/serializers/spree/api/v3/line_item_serializer.rb +18 -1
- data/app/serializers/spree/api/v3/market_serializer.rb +2 -2
- data/app/serializers/spree/api/v3/media_event_serializer.rb +28 -0
- data/app/serializers/spree/api/v3/media_serializer.rb +48 -7
- data/app/serializers/spree/api/v3/newsletter_subscriber_serializer.rb +1 -1
- data/app/serializers/spree/api/v3/option_type_serializer.rb +1 -1
- data/app/serializers/spree/api/v3/order_group_serializer.rb +60 -0
- data/app/serializers/spree/api/v3/order_serializer.rb +58 -6
- data/app/serializers/spree/api/v3/payment_method_serializer.rb +1 -1
- data/app/serializers/spree/api/v3/payment_serializer.rb +2 -6
- data/app/serializers/spree/api/v3/payment_session_serializer.rb +10 -3
- data/app/serializers/spree/api/v3/payment_setup_session_serializer.rb +1 -1
- data/app/serializers/spree/api/v3/policy_serializer.rb +7 -2
- data/app/serializers/spree/api/v3/product_filter_option_serializer.rb +1 -1
- data/app/serializers/spree/api/v3/product_filter_sort_option_serializer.rb +2 -2
- data/app/serializers/spree/api/v3/product_serializer.rb +42 -10
- data/app/serializers/spree/api/v3/product_type_serializer.rb +17 -0
- data/app/serializers/spree/api/v3/purchase_order_event_serializer.rb +11 -0
- data/app/serializers/spree/api/v3/refund_serializer.rb +9 -3
- data/app/serializers/spree/api/v3/return_line_item_serializer.rb +42 -0
- data/app/serializers/spree/api/v3/return_reason_serializer.rb +20 -0
- data/app/serializers/spree/api/v3/return_serializer.rb +62 -0
- data/app/serializers/spree/api/v3/seller/balance_serializer.rb +35 -0
- data/app/serializers/spree/api/v3/seller/claim_line_item_serializer.rb +21 -0
- data/app/serializers/spree/api/v3/seller/claim_serializer.rb +25 -0
- data/app/serializers/spree/api/v3/seller/delivery_method_rule_serializer.rb +32 -0
- data/app/serializers/spree/api/v3/seller/delivery_method_serializer.rb +59 -0
- data/app/serializers/spree/api/v3/seller/delivery_profile_serializer.rb +26 -0
- data/app/serializers/spree/api/v3/seller/delivery_rate_serializer.rb +35 -0
- data/app/serializers/spree/api/v3/seller/delivery_serializer.rb +17 -0
- data/app/serializers/spree/api/v3/seller/delivery_zone_serializer.rb +26 -0
- data/app/serializers/spree/api/v3/seller/exchange_line_item_serializer.rb +29 -0
- data/app/serializers/spree/api/v3/seller/exchange_serializer.rb +30 -0
- data/app/serializers/spree/api/v3/seller/export_serializer.rb +44 -0
- data/app/serializers/spree/api/v3/seller/fulfillment_item_serializer.rb +43 -0
- data/app/serializers/spree/api/v3/seller/fulfillment_serializer.rb +76 -0
- data/app/serializers/spree/api/v3/seller/import_mapping_serializer.rb +20 -0
- data/app/serializers/spree/api/v3/seller/import_row_serializer.rb +17 -0
- data/app/serializers/spree/api/v3/seller/import_serializer.rb +77 -0
- data/app/serializers/spree/api/v3/seller/invitation_serializer.rb +29 -0
- data/app/serializers/spree/api/v3/seller/media_serializer.rb +26 -0
- data/app/serializers/spree/api/v3/seller/order_line_item_serializer.rb +44 -0
- data/app/serializers/spree/api/v3/seller/order_serializer.rb +119 -0
- data/app/serializers/spree/api/v3/seller/package_type_serializer.rb +52 -0
- data/app/serializers/spree/api/v3/seller/payment_split_serializer.rb +34 -0
- data/app/serializers/spree/api/v3/seller/payout_serializer.rb +36 -0
- data/app/serializers/spree/api/v3/seller/policy_serializer.rb +11 -0
- data/app/serializers/spree/api/v3/seller/product_serializer.rb +60 -0
- data/app/serializers/spree/api/v3/seller/product_submission_serializer.rb +30 -0
- data/app/serializers/spree/api/v3/seller/product_type_serializer.rb +29 -0
- data/app/serializers/spree/api/v3/seller/profile_serializer.rb +77 -0
- data/app/serializers/spree/api/v3/seller/reason_serializer.rb +24 -0
- data/app/serializers/spree/api/v3/seller/requirement_custom_field_serializer.rb +36 -0
- data/app/serializers/spree/api/v3/seller/requirement_status_serializer.rb +62 -0
- data/app/serializers/spree/api/v3/seller/requirement_submission_serializer.rb +33 -0
- data/app/serializers/spree/api/v3/seller/return_line_item_serializer.rb +24 -0
- data/app/serializers/spree/api/v3/seller/return_serializer.rb +51 -0
- data/app/serializers/spree/api/v3/seller/shipping_label_serializer.rb +23 -0
- data/app/serializers/spree/api/v3/seller/stock_level_serializer.rb +27 -0
- data/app/serializers/spree/api/v3/seller/stock_location_serializer.rb +17 -0
- data/app/serializers/spree/api/v3/seller/tax_identifier_serializer.rb +15 -0
- data/app/serializers/spree/api/v3/seller/team_member_serializer.rb +22 -0
- data/app/serializers/spree/api/v3/seller/transfer_serializer.rb +49 -0
- data/app/serializers/spree/api/v3/seller/variant_serializer.rb +71 -0
- data/app/serializers/spree/api/v3/seller_serializer.rb +50 -0
- data/app/serializers/spree/api/v3/shipping_label_event_serializer.rb +11 -0
- data/app/serializers/spree/api/v3/{stock_item_serializer.rb → stock_level_serializer.rb} +5 -5
- data/app/serializers/spree/api/v3/stock_location_serializer.rb +11 -7
- data/app/serializers/spree/api/v3/stock_movement_serializer.rb +8 -10
- data/app/serializers/spree/api/v3/stock_receipt_event_serializer.rb +11 -0
- data/app/serializers/spree/api/v3/stock_transfer_serializer.rb +7 -4
- data/app/serializers/spree/api/v3/store_credit_event_serializer.rb +29 -0
- data/app/serializers/spree/api/v3/supplier_event_serializer.rb +11 -0
- data/app/serializers/spree/api/v3/tax_identifier_serializer.rb +15 -0
- data/app/serializers/spree/api/v3/tax_line_serializer.rb +37 -0
- data/app/serializers/spree/api/v3/variant_serializer.rb +52 -2
- data/app/serializers/spree/api/v3/wishlist_item_serializer.rb +12 -5
- data/app/serializers/spree/api/v3/wishlist_serializer.rb +1 -1
- data/app/services/spree/api/v3/filters_aggregator.rb +14 -12
- data/app/services/spree/webhooks/deliver_webhook.rb +62 -26
- data/app/subscribers/spree/webhook_event_subscriber.rb +9 -5
- data/config/brakeman.ignore +1 -1
- data/config/initializers/typelizer.rb +51 -4
- data/config/locales/en.yml +5 -0
- data/config/routes.rb +731 -22
- data/lib/spree/api/configuration.rb +2 -7
- data/lib/spree/api/dependencies.rb +173 -227
- data/lib/spree/api/openapi/schema_helper.rb +197 -13
- data/lib/spree/api/testing_support/v3/base.rb +45 -15
- data/lib/spree/api.rb +10 -4
- data/lib/typelizer/open_enums.rb +35 -0
- metadata +341 -27
- data/app/controllers/spree/api/v3/admin/orders/adjustments_controller.rb +0 -25
- data/app/controllers/spree/api/v3/admin/stock_items_controller.rb +0 -42
- data/app/controllers/spree/api/v3/admin/store_credit_categories_controller.rb +0 -21
- data/app/controllers/spree/api/v3/store/digitals_controller.rb +0 -38
- data/app/serializers/spree/api/v3/admin/adjustment_serializer.rb +0 -24
- data/app/serializers/spree/api/v3/admin/dashboard_analytics_serializer.rb +0 -143
- data/app/serializers/spree/api/v3/admin/reimbursement_serializer.rb +0 -15
- data/app/serializers/spree/api/v3/admin/return_authorization_serializer.rb +0 -19
- data/app/serializers/spree/api/v3/admin/stock_item_serializer.rb +0 -34
- data/app/serializers/spree/api/v3/admin/store_credit_category_serializer.rb +0 -19
- data/app/serializers/spree/api/v3/asset_serializer.rb +0 -20
- data/app/serializers/spree/api/v3/customer_return_serializer.rb +0 -17
- data/app/serializers/spree/api/v3/digital_serializer.rb +0 -17
- data/app/serializers/spree/api/v3/reimbursement_serializer.rb +0 -27
- data/app/serializers/spree/api/v3/report_serializer.rb +0 -28
- data/app/serializers/spree/api/v3/return_authorization_serializer.rb +0 -31
- data/app/serializers/spree/api/v3/return_item_serializer.rb +0 -53
- data/app/serializers/spree/api/v3/shipping_category_serializer.rb +0 -11
data/config/routes.rb
CHANGED
|
@@ -29,7 +29,14 @@ Spree::Core::Engine.add_routes do
|
|
|
29
29
|
get :filters, to: 'products/filters#index'
|
|
30
30
|
end
|
|
31
31
|
end
|
|
32
|
+
# Public seller profiles. Read-only, and only sellers a shopper can
|
|
33
|
+
# actually buy from — see Store::SellersController.
|
|
34
|
+
resources :sellers, only: [:index, :show], id: /.+/
|
|
35
|
+
|
|
32
36
|
resources :categories, only: [:index, :show], id: /.+/
|
|
37
|
+
resources :collections, only: [:index, :show] do
|
|
38
|
+
resources :products, controller: 'collections/products', only: [:index]
|
|
39
|
+
end
|
|
33
40
|
|
|
34
41
|
# Carts
|
|
35
42
|
resources :carts, only: [:index, :show, :create, :update, :destroy] do
|
|
@@ -48,10 +55,31 @@ Spree::Core::Engine.add_routes do
|
|
|
48
55
|
end
|
|
49
56
|
end
|
|
50
57
|
resource :store_credits, only: [:create, :destroy], controller: 'carts/store_credits'
|
|
58
|
+
resource :tax_identifier, only: [:show, :update, :destroy], controller: 'carts/tax_identifiers'
|
|
59
|
+
resource :po_document, only: [:show, :create, :destroy], controller: 'carts/po_documents'
|
|
60
|
+
end
|
|
61
|
+
|
|
62
|
+
# Delivery methods (pickup discovery)
|
|
63
|
+
resources :delivery_methods, only: [:index, :show] do
|
|
64
|
+
member do
|
|
65
|
+
get :pickup_locations
|
|
66
|
+
get :pickup_points
|
|
67
|
+
end
|
|
51
68
|
end
|
|
52
69
|
|
|
53
70
|
# Orders (single order lookup, guest-accessible via order token)
|
|
54
|
-
resources :orders, only: [:show]
|
|
71
|
+
resources :orders, only: [:show] do
|
|
72
|
+
# Customer self-service returns — opening and viewing only; the
|
|
73
|
+
# merchant approves, receives and refunds through the Admin API.
|
|
74
|
+
resources :returns, only: [:index, :show, :create], controller: 'orders/returns' do
|
|
75
|
+
member do
|
|
76
|
+
get :label
|
|
77
|
+
end
|
|
78
|
+
end
|
|
79
|
+
resources :claims, only: [:index, :show, :create], controller: 'orders/claims'
|
|
80
|
+
# Read-only — the registration frozen onto the order at completion.
|
|
81
|
+
resource :tax_identifier, only: [:show], controller: 'orders/tax_identifiers'
|
|
82
|
+
end
|
|
55
83
|
|
|
56
84
|
# Policies (return policy, privacy policy, terms of service, etc.)
|
|
57
85
|
resources :policies, only: [:index, :show]
|
|
@@ -84,6 +112,14 @@ Spree::Core::Engine.add_routes do
|
|
|
84
112
|
resources :credit_cards, only: [:index, :show, :destroy]
|
|
85
113
|
resources :gift_cards, only: [:index, :show]
|
|
86
114
|
resources :store_credits, only: [:index, :show]
|
|
115
|
+
# Plural for the list a checkout page offers; singular for reading or
|
|
116
|
+
# upserting one kind without knowing whether it exists yet.
|
|
117
|
+
resources :tax_identifiers, only: [:index], controller: 'tax_identifiers'
|
|
118
|
+
resource :tax_identifier, only: [:show, :update, :destroy], controller: 'tax_identifiers'
|
|
119
|
+
resources :digital_links, only: [:index, :show]
|
|
120
|
+
# GDPR subject rights the customer exercises for themselves — a copy
|
|
121
|
+
# of their data, or its erasure.
|
|
122
|
+
resources :data_requests, only: [:index, :show, :create]
|
|
87
123
|
resources :payment_setup_sessions, only: [:create, :show] do
|
|
88
124
|
member do
|
|
89
125
|
patch :complete
|
|
@@ -91,6 +127,29 @@ Spree::Core::Engine.add_routes do
|
|
|
91
127
|
end
|
|
92
128
|
end
|
|
93
129
|
|
|
130
|
+
# Company self-service — the buyer's organization directory
|
|
131
|
+
# (docs/plans/6.0-b2b-companies-and-catalogs.md). Authorization is
|
|
132
|
+
# standing + the storefront access policy, never roles.
|
|
133
|
+
get 'account/companies', to: 'account/companies#index'
|
|
134
|
+
|
|
135
|
+
resources :companies, only: [:show, :update] do
|
|
136
|
+
resources :addresses, only: [:index, :create, :update, :destroy],
|
|
137
|
+
controller: 'companies/addresses'
|
|
138
|
+
# POST takes customer_email — a membership for an existing customer,
|
|
139
|
+
# an invitation otherwise.
|
|
140
|
+
resources :members, only: [:index, :create, :destroy], controller: 'companies/members'
|
|
141
|
+
# DELETE revokes the invitation rather than erasing the record.
|
|
142
|
+
resources :invitations, only: [:index, :destroy], controller: 'companies/invitations'
|
|
143
|
+
# Completed purchases across the node's subtree.
|
|
144
|
+
resources :orders, only: [:index], controller: 'companies/orders'
|
|
145
|
+
end
|
|
146
|
+
|
|
147
|
+
# The invitee has no company yet — and no account — so the token flow
|
|
148
|
+
# is deliberately top-level and unauthenticated, unlike everything
|
|
149
|
+
# else about a company, which is reached through the node.
|
|
150
|
+
get 'company_invitations/:token', to: 'company_invitations#show', as: :company_invitation_lookup
|
|
151
|
+
post 'company_invitations/:token/accept', to: 'company_invitations#accept'
|
|
152
|
+
|
|
94
153
|
# Wishlists
|
|
95
154
|
resources :wishlists do
|
|
96
155
|
resources :items, only: [:create, :update, :destroy], controller: 'wishlist_items'
|
|
@@ -98,7 +157,12 @@ Spree::Core::Engine.add_routes do
|
|
|
98
157
|
|
|
99
158
|
# Digital Downloads
|
|
100
159
|
# Access via token in URL
|
|
101
|
-
get '
|
|
160
|
+
get 'digital_links/:token', to: 'digital_links#show', as: :digital_link_download
|
|
161
|
+
# Token-addressed so the emailed link works from a device that was
|
|
162
|
+
# never signed in.
|
|
163
|
+
get 'data_requests/:token/download', to: 'data_request_downloads#show', as: :data_request_download
|
|
164
|
+
# Legacy path — emailed and bookmarked URLs outlive the rename. Removed in 6.1.
|
|
165
|
+
get 'digitals/:token', to: 'digital_links#show', as: :digital_download
|
|
102
166
|
|
|
103
167
|
# Data Feeds (public, no auth required)
|
|
104
168
|
resources :feeds, only: [:show], controller: 'data_feeds', param: :slug
|
|
@@ -106,7 +170,7 @@ Spree::Core::Engine.add_routes do
|
|
|
106
170
|
|
|
107
171
|
namespace :admin do
|
|
108
172
|
# Mounts a nested `custom_fields` resource on parents that include
|
|
109
|
-
# Spree::
|
|
173
|
+
# Spree::HasCustomFields. See docs/plans/5.4-6.0-custom-fields-rename.md.
|
|
110
174
|
concern :custom_fieldable do
|
|
111
175
|
resources :custom_fields
|
|
112
176
|
end
|
|
@@ -119,8 +183,26 @@ Spree::Core::Engine.add_routes do
|
|
|
119
183
|
resources :translations, only: [:index], controller: 'translations'
|
|
120
184
|
end
|
|
121
185
|
|
|
186
|
+
# Mounts the uniform nested products surface on parents that curate
|
|
187
|
+
# products (categories, collections, catalogs, price lists). Bulk by
|
|
188
|
+
# design: POST adds and DELETE removes any number of products in one
|
|
189
|
+
# request. `positioned: true` adds per-member reposition where the
|
|
190
|
+
# membership carries a manual order. See
|
|
191
|
+
# Spree::Api::V3::Admin::ProductMembership.
|
|
192
|
+
concern :product_membership do |options|
|
|
193
|
+
resources :products, controller: options.fetch(:controller), only: [:index, :create] do
|
|
194
|
+
patch :reposition, on: :member if options[:positioned]
|
|
195
|
+
end
|
|
196
|
+
delete 'products', to: "#{options.fetch(:controller)}#destroy"
|
|
197
|
+
end
|
|
198
|
+
|
|
122
199
|
# Definitions are per resource type, not per instance.
|
|
123
|
-
resources :custom_field_definitions
|
|
200
|
+
resources :custom_field_definitions do
|
|
201
|
+
collection do
|
|
202
|
+
# What a definition can be attached to, from the registry.
|
|
203
|
+
get :resource_types
|
|
204
|
+
end
|
|
205
|
+
end
|
|
124
206
|
|
|
125
207
|
# Translation discovery: the translatable-resources registry and the
|
|
126
208
|
# store's supported locales. See docs/plans/5.5-6.0-resource-translations-api.md.
|
|
@@ -131,26 +213,48 @@ Spree::Core::Engine.add_routes do
|
|
|
131
213
|
# option values in one save). Flat list of independent registry writes.
|
|
132
214
|
post 'translations/batch', to: 'translations/batches#create'
|
|
133
215
|
|
|
216
|
+
# Translation coverage across a whole resource type (?resource_type=),
|
|
217
|
+
# driving the centralized Translations page's grid.
|
|
218
|
+
get 'translations', to: 'translations_coverage#index'
|
|
219
|
+
|
|
134
220
|
# Authentication
|
|
135
221
|
post 'auth/login', to: 'auth#create'
|
|
136
222
|
post 'auth/refresh', to: 'auth#refresh'
|
|
137
223
|
post 'auth/logout', to: 'auth#logout'
|
|
138
224
|
|
|
225
|
+
# Provider discovery + SSO callback — unauthenticated; both are used
|
|
226
|
+
# before a session exists. Discovery drives the dashboard login page.
|
|
227
|
+
get 'auth/providers', to: 'auth#providers'
|
|
228
|
+
get 'auth/callback/:provider', to: 'auth#callback'
|
|
229
|
+
|
|
139
230
|
# Public invitation acceptance — unauthenticated; the prefixed ID +
|
|
140
231
|
# token in the URL act as the credential. Mounted under `auth/` so
|
|
141
232
|
# the issued refresh-token cookie's path matches `/auth/refresh`.
|
|
142
233
|
get 'auth/invitations/:id/lookup', to: 'invitation_acceptances#lookup'
|
|
143
234
|
post 'auth/invitations/:id/accept', to: 'invitation_acceptances#accept'
|
|
144
235
|
|
|
236
|
+
# First-run setup — unauthenticated; the one-time setup token is the
|
|
237
|
+
# credential, and the flow self-disables once any admin user exists.
|
|
238
|
+
get 'auth/setup', to: 'setup#show'
|
|
239
|
+
get 'auth/setup/countries', to: 'setup#countries'
|
|
240
|
+
post 'auth/setup', to: 'setup#create'
|
|
241
|
+
|
|
145
242
|
# Public password reset — unauthenticated; the token is the credential.
|
|
146
243
|
# Mounted under `auth/` so the refresh-token cookie issued on success
|
|
147
244
|
# shares its path with `/auth/refresh`.
|
|
148
245
|
post 'auth/password_resets', to: 'password_resets#create'
|
|
149
246
|
patch 'auth/password_resets/:id', to: 'password_resets#update'
|
|
150
247
|
|
|
151
|
-
#
|
|
248
|
+
# Semantic reporting (docs/plans/6.0-analytics-semantic-layer.md)
|
|
249
|
+
namespace :reporting do
|
|
250
|
+
post :query
|
|
251
|
+
get :schema
|
|
252
|
+
resources :saved_reports, only: %i[index show create update destroy]
|
|
253
|
+
end
|
|
254
|
+
|
|
255
|
+
# Dashboard (point-in-time counts registered on Spree.reporting)
|
|
152
256
|
namespace :dashboard do
|
|
153
|
-
get :
|
|
257
|
+
get :counters
|
|
154
258
|
end
|
|
155
259
|
|
|
156
260
|
# Current admin user + permissions (for UI permission checks)
|
|
@@ -159,7 +263,9 @@ Spree::Core::Engine.add_routes do
|
|
|
159
263
|
patch 'me', to: 'me#update'
|
|
160
264
|
|
|
161
265
|
# Store Settings
|
|
162
|
-
resource :store, only: [:show, :update], controller: 'store'
|
|
266
|
+
resource :store, only: [:show, :update], controller: 'store' do
|
|
267
|
+
get :data_sources
|
|
268
|
+
end
|
|
163
269
|
|
|
164
270
|
# Staff & access (invitations, admin users, roles, API keys)
|
|
165
271
|
resources :admin_users, only: [:index, :show, :update, :destroy]
|
|
@@ -189,7 +295,8 @@ Spree::Core::Engine.add_routes do
|
|
|
189
295
|
end
|
|
190
296
|
end
|
|
191
297
|
end
|
|
192
|
-
resources :roles, only: [:index, :show]
|
|
298
|
+
resources :roles, only: [:index, :show, :create, :update, :destroy]
|
|
299
|
+
resources :permissions, only: [:index]
|
|
193
300
|
|
|
194
301
|
# Direct Uploads (Active Storage)
|
|
195
302
|
resources :direct_uploads, only: [:create]
|
|
@@ -205,6 +312,7 @@ Spree::Core::Engine.add_routes do
|
|
|
205
312
|
resources :imports, only: [:index, :show, :create, :destroy] do
|
|
206
313
|
collection do
|
|
207
314
|
get :template
|
|
315
|
+
get :example
|
|
208
316
|
end
|
|
209
317
|
member do
|
|
210
318
|
patch :complete_mapping
|
|
@@ -215,14 +323,25 @@ Spree::Core::Engine.add_routes do
|
|
|
215
323
|
end
|
|
216
324
|
|
|
217
325
|
# Products
|
|
326
|
+
resources :product_types do
|
|
327
|
+
member do
|
|
328
|
+
post :apply_to_products
|
|
329
|
+
end
|
|
330
|
+
end
|
|
218
331
|
resources :products, concerns: [:custom_fieldable, :translatable] do
|
|
219
332
|
member do
|
|
220
333
|
post :clone
|
|
334
|
+
# Closing a review a seller opened
|
|
335
|
+
# (docs/plans/6.0-seller-product-submission.md).
|
|
336
|
+
patch :approve
|
|
337
|
+
patch :reject
|
|
221
338
|
end
|
|
222
339
|
collection do
|
|
223
340
|
post :bulk_status_update
|
|
224
341
|
post :bulk_add_to_categories
|
|
225
342
|
post :bulk_remove_from_categories
|
|
343
|
+
post :bulk_add_to_collections
|
|
344
|
+
post :bulk_remove_from_collections
|
|
226
345
|
post :bulk_add_to_channels
|
|
227
346
|
post :bulk_remove_from_channels
|
|
228
347
|
post :bulk_add_tags
|
|
@@ -233,6 +352,29 @@ Spree::Core::Engine.add_routes do
|
|
|
233
352
|
resources :media, controller: 'media', only: [:index, :create, :update, :destroy]
|
|
234
353
|
end
|
|
235
354
|
resources :media, controller: 'media', only: [:index, :create, :update, :destroy]
|
|
355
|
+
resources :digital_assets, controller: 'products/digital_assets',
|
|
356
|
+
only: [:index, :create, :show, :update, :destroy] do
|
|
357
|
+
collection do
|
|
358
|
+
get :providers
|
|
359
|
+
end
|
|
360
|
+
end
|
|
361
|
+
end
|
|
362
|
+
|
|
363
|
+
# Digital download grants — read and reset only; they are created by
|
|
364
|
+
# order completion, never by hand.
|
|
365
|
+
resources :digital_links, only: [:index, :show] do
|
|
366
|
+
member do
|
|
367
|
+
patch :reset
|
|
368
|
+
end
|
|
369
|
+
end
|
|
370
|
+
|
|
371
|
+
# Media library — every file in the store, placed or not. Files are put
|
|
372
|
+
# ON a product through the nested media routes above; this is where they
|
|
373
|
+
# are uploaded, browsed and deleted.
|
|
374
|
+
resources :media, controller: 'media_library', only: [:index, :show, :create, :update, :destroy] do
|
|
375
|
+
member do
|
|
376
|
+
get :usage
|
|
377
|
+
end
|
|
236
378
|
end
|
|
237
379
|
|
|
238
380
|
# Categories
|
|
@@ -242,39 +384,122 @@ Spree::Core::Engine.add_routes do
|
|
|
242
384
|
end
|
|
243
385
|
|
|
244
386
|
# Manual product membership + ordering within the category.
|
|
245
|
-
|
|
246
|
-
resources :products, controller: 'categories/products', only: [:index, :create, :destroy] do
|
|
247
|
-
member do
|
|
248
|
-
patch :reposition
|
|
249
|
-
end
|
|
250
|
-
end
|
|
387
|
+
concerns :product_membership, controller: 'categories/products', positioned: true
|
|
251
388
|
end
|
|
252
389
|
|
|
390
|
+
# Collections (flat, merchandising). Reordering the collection itself is a
|
|
391
|
+
# plain `position` update (acts_as_list reorders on save), so there is no
|
|
392
|
+
# top-level reposition action — only the nested membership has one.
|
|
393
|
+
resources :collections, concerns: [:custom_fieldable, :translatable] do
|
|
394
|
+
# Manual product membership + ordering within the collection.
|
|
395
|
+
concerns :product_membership, controller: 'collections/products', positioned: true
|
|
396
|
+
end
|
|
397
|
+
|
|
398
|
+
# Subclass discovery for the collection rules editor, mirroring
|
|
399
|
+
# `/promotion_rules/types`. Top-level (and read-only) because rules are
|
|
400
|
+
# written through the collection's own `rules` setter, not nested CRUD.
|
|
401
|
+
get 'collection_rules/types', to: 'collection_rules#types'
|
|
402
|
+
|
|
253
403
|
# Option Types (with nested option_values in payload)
|
|
254
404
|
resources :option_types, concerns: [:custom_fieldable, :translatable]
|
|
255
405
|
|
|
406
|
+
# Store policies (terms of service, privacy, returns, shipping, …)
|
|
407
|
+
resources :policies, concerns: [:translatable]
|
|
408
|
+
|
|
256
409
|
# Tax Categories
|
|
257
410
|
resources :tax_categories
|
|
258
411
|
|
|
412
|
+
# Tax Rates — the internal tax provider's configuration
|
|
413
|
+
resources :tax_rates
|
|
414
|
+
|
|
415
|
+
# Selectable tax engines and their declared limits (discovery only)
|
|
416
|
+
resources :tax_providers, only: [:index]
|
|
417
|
+
# How sellers get paid. Discovery only — the choice itself is a store
|
|
418
|
+
# preference, so there is nothing here to create.
|
|
419
|
+
resources :payout_providers, only: [:index]
|
|
420
|
+
|
|
421
|
+
# Return / claim / refund / cancellation reasons (dropdowns + settings management)
|
|
422
|
+
resources :return_reasons
|
|
423
|
+
resources :claim_reasons
|
|
424
|
+
resources :refund_reasons
|
|
425
|
+
resources :order_cancellation_reasons
|
|
426
|
+
|
|
259
427
|
# Markets
|
|
260
428
|
resources :markets
|
|
261
429
|
|
|
262
|
-
# Store Credit Categories (read-only — for store credit dropdowns)
|
|
263
|
-
resources :store_credit_categories, only: [:index, :show]
|
|
264
|
-
|
|
265
430
|
# Inventory
|
|
266
431
|
resources :stock_locations
|
|
267
432
|
resources :stock_reservations, only: [:index, :show]
|
|
268
|
-
resources :
|
|
269
|
-
|
|
433
|
+
resources :stock_levels, only: [:index, :show, :update, :destroy] do
|
|
434
|
+
collection do
|
|
435
|
+
post :bulk_upsert
|
|
436
|
+
end
|
|
437
|
+
end
|
|
438
|
+
resources :stock_movements, only: [:index, :show]
|
|
439
|
+
resources :stock_transfers do
|
|
440
|
+
member do
|
|
441
|
+
patch :mark_ready
|
|
442
|
+
patch :mark_in_transit
|
|
443
|
+
patch :mark_draft
|
|
444
|
+
patch :close
|
|
445
|
+
patch :cancel
|
|
446
|
+
end
|
|
447
|
+
resources :stock_receipts, only: [:index, :show, :create], module: :stock_transfers
|
|
448
|
+
end
|
|
449
|
+
|
|
450
|
+
# Purchasing
|
|
451
|
+
resources :suppliers
|
|
452
|
+
resources :purchase_orders do
|
|
453
|
+
member do
|
|
454
|
+
patch :mark_ordered
|
|
455
|
+
patch :mark_draft
|
|
456
|
+
patch :close
|
|
457
|
+
patch :cancel
|
|
458
|
+
end
|
|
459
|
+
resources :stock_receipts, only: [:index, :show, :create], module: :purchase_orders
|
|
460
|
+
end
|
|
270
461
|
|
|
271
462
|
# Payment Methods
|
|
463
|
+
resources :delivery_methods do
|
|
464
|
+
collection do
|
|
465
|
+
get :calculators
|
|
466
|
+
get :fulfillment_providers
|
|
467
|
+
get :rate_providers
|
|
468
|
+
end
|
|
469
|
+
resources :rules, controller: 'delivery_methods/rules', only: [:index, :show, :create, :update, :destroy]
|
|
470
|
+
end
|
|
471
|
+
resources :tracking_carriers, only: [:index]
|
|
472
|
+
resources :delivery_method_rules, only: [] do
|
|
473
|
+
collection do
|
|
474
|
+
get :types
|
|
475
|
+
end
|
|
476
|
+
end
|
|
477
|
+
resources :delivery_zones
|
|
478
|
+
resources :package_types
|
|
479
|
+
|
|
480
|
+
resources :delivery_profiles do
|
|
481
|
+
collection do
|
|
482
|
+
get :kinds
|
|
483
|
+
end
|
|
484
|
+
resources :origin_groups, controller: 'delivery_profiles/origin_groups',
|
|
485
|
+
only: [:index, :show, :create, :update, :destroy]
|
|
486
|
+
end
|
|
487
|
+
|
|
272
488
|
resources :payment_methods do
|
|
273
489
|
collection do
|
|
274
490
|
get :types
|
|
275
491
|
end
|
|
276
492
|
end
|
|
277
493
|
|
|
494
|
+
resources :integrations do
|
|
495
|
+
collection do
|
|
496
|
+
get :types
|
|
497
|
+
end
|
|
498
|
+
member do
|
|
499
|
+
post :test
|
|
500
|
+
end
|
|
501
|
+
end
|
|
502
|
+
|
|
278
503
|
# Promotions, with nested actions/rules/coupon codes.
|
|
279
504
|
resources :promotions do
|
|
280
505
|
resources :promotion_actions, only: [:index, :show, :create, :update, :destroy]
|
|
@@ -304,6 +529,19 @@ Spree::Core::Engine.add_routes do
|
|
|
304
529
|
resources :addresses, controller: 'customers/addresses'
|
|
305
530
|
resources :credit_cards, controller: 'customers/credit_cards', only: [:index, :show, :destroy]
|
|
306
531
|
resources :store_credits, controller: 'customers/store_credits'
|
|
532
|
+
resources :tax_identifiers, controller: 'customers/tax_identifiers' do
|
|
533
|
+
member do
|
|
534
|
+
post :validate
|
|
535
|
+
end
|
|
536
|
+
end
|
|
537
|
+
|
|
538
|
+
member do
|
|
539
|
+
# GDPR: answer a subject access request, or carry out an erasure.
|
|
540
|
+
# Both are how these requests actually arrive — by email to the
|
|
541
|
+
# merchant, from people who often can no longer sign in.
|
|
542
|
+
get :export
|
|
543
|
+
post :anonymize
|
|
544
|
+
end
|
|
307
545
|
|
|
308
546
|
collection do
|
|
309
547
|
post :bulk_add_to_groups
|
|
@@ -313,9 +551,164 @@ Spree::Core::Engine.add_routes do
|
|
|
313
551
|
end
|
|
314
552
|
end
|
|
315
553
|
|
|
554
|
+
# GDPR compliance log. Requests are records of what happened, so they
|
|
555
|
+
# are created and read but never edited or deleted — an editable audit
|
|
556
|
+
# trail is not one.
|
|
557
|
+
resources :data_requests, only: [:index, :show, :create]
|
|
558
|
+
resources :consent_records, only: [:index, :show]
|
|
559
|
+
|
|
316
560
|
# Customer groups (segmentation; used by promotion rules + bulk customer ops)
|
|
317
561
|
resources :customer_groups
|
|
318
562
|
|
|
563
|
+
# Marketplace sellers. Each status change is its own member action
|
|
564
|
+
# because each one is a workflow with its own arguments — mass
|
|
565
|
+
# assignment would skip the mail and the extension hooks.
|
|
566
|
+
resources :sellers, concerns: :custom_fieldable do
|
|
567
|
+
member do
|
|
568
|
+
post :invite
|
|
569
|
+
patch :approve
|
|
570
|
+
patch :suspend
|
|
571
|
+
patch :reject
|
|
572
|
+
# Where the seller stands against the marketplace's checklist,
|
|
573
|
+
# and the way back to onboarding when something has to be redone.
|
|
574
|
+
get :onboarding
|
|
575
|
+
patch :reopen_onboarding
|
|
576
|
+
end
|
|
577
|
+
|
|
578
|
+
# Where the seller stands on the ledger, one row per currency.
|
|
579
|
+
resources :balances, only: [:index], controller: 'sellers/balances'
|
|
580
|
+
|
|
581
|
+
# Settling this seller by hand. The scheduled sweep skips anyone on
|
|
582
|
+
# the `manual` interval — this is where the operator decides.
|
|
583
|
+
resources :payouts, only: [:create], controller: 'sellers/payouts'
|
|
584
|
+
|
|
585
|
+
# Who runs this seller, and the offers nobody has accepted yet.
|
|
586
|
+
# The operator is the only one who can repair a seller whose team
|
|
587
|
+
# has locked itself out, which the seller's own panel cannot do.
|
|
588
|
+
resources :team, only: [:index, :destroy], controller: 'sellers/team'
|
|
589
|
+
resources :invitations, only: [:index, :destroy], controller: 'sellers/invitations' do
|
|
590
|
+
member do
|
|
591
|
+
patch :resend
|
|
592
|
+
end
|
|
593
|
+
end
|
|
594
|
+
|
|
595
|
+
# What this seller submitted about the requirements, and the
|
|
596
|
+
# operator's decisions on it. Nested, because a submission means
|
|
597
|
+
# nothing outside the seller it belongs to.
|
|
598
|
+
resources :requirement_submissions, only: [:index, :show, :create],
|
|
599
|
+
controller: 'seller_requirement_submissions' do
|
|
600
|
+
member do
|
|
601
|
+
patch :accept
|
|
602
|
+
patch :reject
|
|
603
|
+
get :download
|
|
604
|
+
end
|
|
605
|
+
end
|
|
606
|
+
end
|
|
607
|
+
|
|
608
|
+
# What this marketplace asks of a seller before it will let them
|
|
609
|
+
# trade. Configuration, so it hangs off the store rather than a
|
|
610
|
+
# seller.
|
|
611
|
+
resources :seller_requirements do
|
|
612
|
+
collection do
|
|
613
|
+
get :types
|
|
614
|
+
end
|
|
615
|
+
end
|
|
616
|
+
|
|
617
|
+
# Commissions — what the marketplace charges its sellers. Rates are
|
|
618
|
+
# configuration; lines are the record of what was charged, so they are
|
|
619
|
+
# read-only.
|
|
620
|
+
resources :commission_rates do
|
|
621
|
+
collection do
|
|
622
|
+
get :rule_types
|
|
623
|
+
end
|
|
624
|
+
end
|
|
625
|
+
resources :commission_lines, only: [:index, :show]
|
|
626
|
+
|
|
627
|
+
# The fund ledger — what sellers earned, and what has been sent them.
|
|
628
|
+
# Both are written by fulfilment and by the sweep rather than by a
|
|
629
|
+
# caller, so both are read-only. The one thing an operator does is say
|
|
630
|
+
# a settlement landed, which the built-in provider depends on: it
|
|
631
|
+
# records what to send and waits to be told it went.
|
|
632
|
+
resources :seller_transfers, only: [:index, :show]
|
|
633
|
+
resources :seller_payouts, only: [:index, :show] do
|
|
634
|
+
member do
|
|
635
|
+
patch :complete
|
|
636
|
+
end
|
|
637
|
+
end
|
|
638
|
+
|
|
639
|
+
# What one checkout produced when it reached several sellers. Read-only:
|
|
640
|
+
# everything an operator acts on lives on the orders inside it.
|
|
641
|
+
resources :order_groups, only: [:index, :show]
|
|
642
|
+
|
|
643
|
+
# Business customers — a tree of company nodes. Nested collections are
|
|
644
|
+
# listed and created under their node and then addressed directly, so
|
|
645
|
+
# a caller holding an entry id does not have to know its company.
|
|
646
|
+
resources :companies do
|
|
647
|
+
# The node's address book.
|
|
648
|
+
resources :addresses, controller: 'companies/addresses'
|
|
649
|
+
|
|
650
|
+
# The people with standing over the node. Creation takes an email:
|
|
651
|
+
# a membership for an existing customer, an invitation otherwise.
|
|
652
|
+
resources :memberships, controller: 'companies/memberships',
|
|
653
|
+
only: [:index, :show, :create, :destroy]
|
|
654
|
+
# DELETE revokes the invitation rather than erasing the record.
|
|
655
|
+
resources :invitations, controller: 'companies/invitations',
|
|
656
|
+
only: [:index, :show, :destroy]
|
|
657
|
+
|
|
658
|
+
# The business's own registration — the number on its invoices, which
|
|
659
|
+
# outranks the buyer's own. Same shape as the customer's.
|
|
660
|
+
resources :tax_identifiers, controller: 'companies/tax_identifiers' do
|
|
661
|
+
member do
|
|
662
|
+
post :validate
|
|
663
|
+
end
|
|
664
|
+
end
|
|
665
|
+
|
|
666
|
+
# Exemption evidence. Accepting or withdrawing one is its own action —
|
|
667
|
+
# never mass assignment — and a verified certificate is revoked
|
|
668
|
+
# rather than deleted.
|
|
669
|
+
resources :tax_exemption_certificates, controller: 'companies/tax_exemption_certificates' do
|
|
670
|
+
member do
|
|
671
|
+
patch :verify
|
|
672
|
+
patch :revoke
|
|
673
|
+
get :download
|
|
674
|
+
end
|
|
675
|
+
end
|
|
676
|
+
end
|
|
677
|
+
|
|
678
|
+
|
|
679
|
+
# Catalogs — assortment + optional price list, assigned to a buyer
|
|
680
|
+
# audience (customer group, or company subtree).
|
|
681
|
+
resources :catalogs do
|
|
682
|
+
member do
|
|
683
|
+
post :assign
|
|
684
|
+
post :import_products
|
|
685
|
+
# Going live is its own act, not a column write: an agreement is
|
|
686
|
+
# checked before it starts reaching buyers, and what has to happen
|
|
687
|
+
# alongside hangs off the workflow's hooks.
|
|
688
|
+
patch :activate
|
|
689
|
+
patch :deactivate
|
|
690
|
+
end
|
|
691
|
+
# Assortment membership. Unordered: a catalog decides what a buyer
|
|
692
|
+
# sees, never the order they see it in.
|
|
693
|
+
concerns :product_membership, controller: 'catalogs/products'
|
|
694
|
+
|
|
695
|
+
# Commercial terms. Typed per grain rather than one rules endpoint:
|
|
696
|
+
# quantity rules are per variant, minimums are per currency.
|
|
697
|
+
#
|
|
698
|
+
# Quantity rules are written as a whole set, because the agreement
|
|
699
|
+
# editor stages every term behind the catalog's Save: a half-applied
|
|
700
|
+
# agreement is not a state to leave a merchant in. They are read
|
|
701
|
+
# back on the assortment rows themselves (`expand=quantity_rule` on
|
|
702
|
+
# this catalog's products), where the variants they roll up are
|
|
703
|
+
# already loaded (docs/plans/6.0-volume-pricing.md).
|
|
704
|
+
resources :quantity_rules, controller: 'catalogs/quantity_rules', only: [] do
|
|
705
|
+
collection { put :upsert, path: '' }
|
|
706
|
+
end
|
|
707
|
+
resources :order_minimums, controller: 'catalogs/order_minimums',
|
|
708
|
+
only: [:index, :show, :create, :update, :destroy]
|
|
709
|
+
end
|
|
710
|
+
resources :catalog_assignments, only: [:show, :destroy]
|
|
711
|
+
|
|
319
712
|
# Price lists
|
|
320
713
|
resources :price_lists do
|
|
321
714
|
collection do
|
|
@@ -325,6 +718,9 @@ Spree::Core::Engine.add_routes do
|
|
|
325
718
|
patch :activate
|
|
326
719
|
patch :deactivate
|
|
327
720
|
end
|
|
721
|
+
# Which products the list prices. Adding materializes placeholder
|
|
722
|
+
# prices per variant x currency; removing hard-deletes the rows.
|
|
723
|
+
concerns :product_membership, controller: 'price_lists/products'
|
|
328
724
|
end
|
|
329
725
|
|
|
330
726
|
# Prices (generic — covers base prices AND price-list overrides).
|
|
@@ -339,6 +735,18 @@ Spree::Core::Engine.add_routes do
|
|
|
339
735
|
resources :gift_cards
|
|
340
736
|
resources :gift_card_batches, only: [:index, :show, :create]
|
|
341
737
|
|
|
738
|
+
# Store credits across all customers. Read-only: issuing, editing and
|
|
739
|
+
# deleting a credit stays nested under the customer that holds it.
|
|
740
|
+
resources :store_credits, only: [:index, :show] do
|
|
741
|
+
resources :events, only: [:index], controller: 'store_credits/events'
|
|
742
|
+
end
|
|
743
|
+
|
|
744
|
+
# Post-sale, across all orders. Read-only — creating any of these
|
|
745
|
+
# needs an order, so writes live under /orders/:order_id/...
|
|
746
|
+
resources :returns, only: [:index, :show]
|
|
747
|
+
resources :exchanges, only: [:index, :show]
|
|
748
|
+
resources :claims, only: [:index, :show]
|
|
749
|
+
|
|
342
750
|
# Channels (per-store distribution surfaces)
|
|
343
751
|
resources :channels do
|
|
344
752
|
member do
|
|
@@ -366,18 +774,64 @@ Spree::Core::Engine.add_routes do
|
|
|
366
774
|
patch :complete
|
|
367
775
|
patch :cancel
|
|
368
776
|
patch :approve
|
|
369
|
-
patch :resume
|
|
370
777
|
post :resend_confirmation
|
|
778
|
+
post :resend_digital_links
|
|
779
|
+
# The buyer's purchase order, streamed through the API so it is
|
|
780
|
+
# never reachable without admin credentials.
|
|
781
|
+
get :po_document
|
|
371
782
|
end
|
|
372
783
|
|
|
373
784
|
resources :items, only: [:index, :show, :create, :update, :destroy], controller: 'orders/items'
|
|
374
785
|
resources :fulfillments, controller: 'orders/fulfillments', only: [:index, :show, :create, :update] do
|
|
375
786
|
member do
|
|
376
787
|
patch :fulfill
|
|
788
|
+
patch :mark_delivered
|
|
377
789
|
patch :cancel
|
|
378
|
-
patch :resume
|
|
379
790
|
patch :split
|
|
380
791
|
end
|
|
792
|
+
|
|
793
|
+
resources :labels, controller: 'orders/labels', only: [:index, :show, :create, :destroy] do
|
|
794
|
+
member do
|
|
795
|
+
get :download
|
|
796
|
+
patch :refund
|
|
797
|
+
end
|
|
798
|
+
end
|
|
799
|
+
resources :deliveries, controller: 'orders/deliveries', only: [:index, :show, :create, :update, :destroy] do
|
|
800
|
+
member do
|
|
801
|
+
patch :mark_delivered
|
|
802
|
+
end
|
|
803
|
+
end
|
|
804
|
+
end
|
|
805
|
+
resources :returns, controller: 'orders/returns', only: [:index, :show, :create, :update] do
|
|
806
|
+
member do
|
|
807
|
+
patch :approve
|
|
808
|
+
patch :receive
|
|
809
|
+
patch :refund
|
|
810
|
+
patch :cancel
|
|
811
|
+
end
|
|
812
|
+
|
|
813
|
+
resources :labels, controller: 'orders/labels', only: [:index, :show, :create, :destroy] do
|
|
814
|
+
member do
|
|
815
|
+
get :download
|
|
816
|
+
patch :refund
|
|
817
|
+
end
|
|
818
|
+
end
|
|
819
|
+
end
|
|
820
|
+
resources :exchanges, controller: 'orders/exchanges', only: [:index, :show, :create, :update] do
|
|
821
|
+
member do
|
|
822
|
+
patch :approve
|
|
823
|
+
patch :receive
|
|
824
|
+
patch :fulfill
|
|
825
|
+
patch :cancel
|
|
826
|
+
end
|
|
827
|
+
end
|
|
828
|
+
resources :claims, controller: 'orders/claims', only: [:index, :show, :create, :update] do
|
|
829
|
+
member do
|
|
830
|
+
patch :approve
|
|
831
|
+
patch :resolve
|
|
832
|
+
patch :deny
|
|
833
|
+
patch :cancel
|
|
834
|
+
end
|
|
381
835
|
end
|
|
382
836
|
resources :payments, controller: 'orders/payments', only: [:index, :show, :create] do
|
|
383
837
|
member do
|
|
@@ -386,15 +840,270 @@ Spree::Core::Engine.add_routes do
|
|
|
386
840
|
end
|
|
387
841
|
end
|
|
388
842
|
resources :refunds, controller: 'orders/refunds', only: [:index, :create]
|
|
389
|
-
resources :
|
|
843
|
+
resources :tax_lines, controller: 'orders/tax_lines', only: [:index, :show]
|
|
844
|
+
# Read-only — the registration frozen onto the order at completion.
|
|
845
|
+
resource :tax_identifier, controller: 'orders/tax_identifiers', only: [:show]
|
|
846
|
+
resources :discounts, controller: 'orders/discounts', only: [:index, :show, :create, :update, :destroy]
|
|
847
|
+
resources :discount_codes, controller: 'orders/discount_codes', only: [:create, :destroy]
|
|
848
|
+
resources :fees, controller: 'orders/fees', only: [:index, :show, :create, :update, :destroy]
|
|
390
849
|
resources :gift_cards, controller: 'orders/gift_cards', only: [:create, :destroy]
|
|
391
850
|
resource :store_credits, controller: 'orders/store_credits', only: [:create, :destroy]
|
|
392
851
|
end
|
|
393
852
|
end
|
|
394
853
|
|
|
854
|
+
# The marketplace seller panel. A branch of its own rather than a
|
|
855
|
+
# narrowing of :admin — every endpoint here scope-fetches through
|
|
856
|
+
# current_seller, which is what makes cross-seller access impossible by
|
|
857
|
+
# construction rather than by rule.
|
|
858
|
+
namespace :seller do
|
|
859
|
+
# Everything unauthenticated lives under auth/, so the refresh
|
|
860
|
+
# cookie's path covers it and nothing else.
|
|
861
|
+
post 'auth/login', to: 'auth#create'
|
|
862
|
+
post 'auth/refresh', to: 'auth#refresh'
|
|
863
|
+
post 'auth/logout', to: 'auth#logout'
|
|
864
|
+
get 'auth/providers', to: 'auth#providers'
|
|
865
|
+
|
|
866
|
+
# Public invitation acceptance — unauthenticated; the prefixed ID +
|
|
867
|
+
# token in the emailed link are the credential.
|
|
868
|
+
get 'auth/invitations/:id/lookup', to: 'invitation_acceptances#lookup'
|
|
869
|
+
post 'auth/invitations/:id/accept', to: 'invitation_acceptances#accept'
|
|
870
|
+
|
|
871
|
+
# Public password reset — unauthenticated; the emailed token is the
|
|
872
|
+
# credential. Under `auth/` so the refresh cookie issued on success
|
|
873
|
+
# shares its path with `/auth/refresh`.
|
|
874
|
+
post 'auth/password_resets', to: 'password_resets#create'
|
|
875
|
+
patch 'auth/password_resets/:id', to: 'password_resets#update'
|
|
876
|
+
|
|
877
|
+
get 'me', to: 'me#show'
|
|
878
|
+
|
|
879
|
+
# Singular: the seller in play is always `current_seller`.
|
|
880
|
+
resource :profile, only: [:show, :update], controller: 'profile'
|
|
881
|
+
|
|
882
|
+
# The seller's own registrations — a collection, like a company's: a
|
|
883
|
+
# business trading in several regimes holds one in each.
|
|
884
|
+
resources :tax_identifiers, only: [:index, :create, :update, :destroy],
|
|
885
|
+
controller: 'tax_identifiers' do
|
|
886
|
+
member do
|
|
887
|
+
post :validate
|
|
888
|
+
end
|
|
889
|
+
end
|
|
890
|
+
|
|
891
|
+
resources :team, only: [:index, :create, :destroy], controller: 'team'
|
|
892
|
+
|
|
893
|
+
# Creating an invitation is hiring, so it lives on `team`; chasing or
|
|
894
|
+
# withdrawing one is bookkeeping on the offer.
|
|
895
|
+
resources :invitations, only: [:index, :destroy], controller: 'invitations' do
|
|
896
|
+
member do
|
|
897
|
+
patch :resend
|
|
898
|
+
end
|
|
899
|
+
end
|
|
900
|
+
|
|
901
|
+
resources :products, only: [:index, :show, :create, :update, :destroy] do
|
|
902
|
+
# Status moves are actions, not an attribute: putting a product on
|
|
903
|
+
# sale is the marketplace's call, so a seller asks rather than sets.
|
|
904
|
+
member do
|
|
905
|
+
patch :submit
|
|
906
|
+
patch :draft
|
|
907
|
+
patch :archive
|
|
908
|
+
end
|
|
909
|
+
|
|
910
|
+
# The same three moves over a selection. Only the ones a seller may
|
|
911
|
+
# make alone: there is no bulk route onto `active`, because reaching
|
|
912
|
+
# it is the operator's decision on one listing at a time.
|
|
913
|
+
collection do
|
|
914
|
+
post :bulk_submit
|
|
915
|
+
post :bulk_status_update
|
|
916
|
+
delete :bulk_destroy
|
|
917
|
+
end
|
|
918
|
+
end
|
|
919
|
+
|
|
920
|
+
|
|
921
|
+
# What this seller has sold. Cancelling is a member action because it
|
|
922
|
+
# is a workflow with its own arguments, and fulfilling is nested: a
|
|
923
|
+
# parcel means nothing outside the order it belongs to.
|
|
924
|
+
#
|
|
925
|
+
# No `update`: an order is created by a shopper checking out and its
|
|
926
|
+
# terms are the marketplace's, so the branch routes no general write.
|
|
927
|
+
# Correcting a delivery address is the one exception a merchant of
|
|
928
|
+
# record needs, and it is its own named action rather than a PATCH
|
|
929
|
+
# that would accept whatever the order serializer happens to permit.
|
|
930
|
+
resources :orders, only: [:index, :show] do
|
|
931
|
+
member do
|
|
932
|
+
patch :cancel
|
|
933
|
+
patch :address
|
|
934
|
+
end
|
|
935
|
+
|
|
936
|
+
# Singular: an order has one set of notes, so they are a resource to
|
|
937
|
+
# read and update rather than a verb on the order.
|
|
938
|
+
resource :notes, only: [:show, :update], controller: 'orders/notes'
|
|
939
|
+
|
|
940
|
+
# No `mark_delivered`: that a parcel arrived is the buyer's word,
|
|
941
|
+
# not the sender's, so confirming receipt stays with the operator
|
|
942
|
+
# and the carrier feed.
|
|
943
|
+
resources :fulfillments, only: [:index, :show, :update], controller: 'orders/fulfillments' do
|
|
944
|
+
member do
|
|
945
|
+
patch :fulfill
|
|
946
|
+
patch :cancel
|
|
947
|
+
patch :split
|
|
948
|
+
end
|
|
949
|
+
|
|
950
|
+
# A parcel's consignments and its postage. Both hang off the
|
|
951
|
+
# fulfillment because that is what actually travels.
|
|
952
|
+
resources :deliveries, controller: 'orders/deliveries', only: [:index, :show, :create, :update, :destroy]
|
|
953
|
+
resources :labels, controller: 'orders/labels', only: [:index, :show, :create, :destroy] do
|
|
954
|
+
member do
|
|
955
|
+
get :download
|
|
956
|
+
end
|
|
957
|
+
end
|
|
958
|
+
end
|
|
959
|
+
|
|
960
|
+
# Putting a sale right. The seller is merchant of record for their
|
|
961
|
+
# own child order, so taking the goods back and giving the money
|
|
962
|
+
# back are theirs (docs/plans/6.0-seller-order-management.md).
|
|
963
|
+
# Every status move is its own action, because each carries
|
|
964
|
+
# arguments of its own — receiving records what actually arrived,
|
|
965
|
+
# refunding names a method and an amount.
|
|
966
|
+
resources :returns, only: [:index, :show, :create], controller: 'orders/returns' do
|
|
967
|
+
member do
|
|
968
|
+
patch :approve
|
|
969
|
+
patch :receive
|
|
970
|
+
patch :refund
|
|
971
|
+
patch :cancel
|
|
972
|
+
end
|
|
973
|
+
end
|
|
974
|
+
|
|
975
|
+
resources :exchanges, only: [:index, :show, :create], controller: 'orders/exchanges' do
|
|
976
|
+
member do
|
|
977
|
+
patch :approve
|
|
978
|
+
patch :receive
|
|
979
|
+
patch :fulfill
|
|
980
|
+
patch :cancel
|
|
981
|
+
end
|
|
982
|
+
end
|
|
983
|
+
|
|
984
|
+
resources :claims, only: [:index, :show, :create], controller: 'orders/claims' do
|
|
985
|
+
member do
|
|
986
|
+
patch :approve
|
|
987
|
+
patch :resolve
|
|
988
|
+
patch :deny
|
|
989
|
+
patch :cancel
|
|
990
|
+
end
|
|
991
|
+
end
|
|
992
|
+
end
|
|
993
|
+
|
|
994
|
+
# The marketplace's own vocabularies. Read-only: a seller picks a
|
|
995
|
+
# reason, the operator decides what the reasons are.
|
|
996
|
+
resources :return_reasons, only: [:index]
|
|
997
|
+
resources :claim_reasons, only: [:index]
|
|
998
|
+
resources :order_cancellation_reasons, only: [:index]
|
|
999
|
+
|
|
1000
|
+
# Registry data — which carriers a tracking number can be pinned to.
|
|
1001
|
+
resources :tracking_carriers, only: [:index]
|
|
1002
|
+
|
|
1003
|
+
resources :direct_uploads, only: [:create]
|
|
1004
|
+
|
|
1005
|
+
# CSV of what this seller sold, or of their catalogue. Created, polled
|
|
1006
|
+
# and downloaded — no index, since a seller has no history page to
|
|
1007
|
+
# list, and no destroy, since retention is the marketplace's business.
|
|
1008
|
+
resources :exports, only: [:create, :show] do
|
|
1009
|
+
member do
|
|
1010
|
+
get :download
|
|
1011
|
+
end
|
|
1012
|
+
end
|
|
1013
|
+
|
|
1014
|
+
# Bulk-listing a catalog by CSV. The operator's pipeline, narrowed to
|
|
1015
|
+
# this seller: rows may only resolve onto their own products, and the
|
|
1016
|
+
# products they create are theirs and land as drafts for review
|
|
1017
|
+
# (docs/plans/5.6-admin-spa-csv-import.md).
|
|
1018
|
+
resources :imports, only: [:index, :show, :create, :destroy] do
|
|
1019
|
+
collection do
|
|
1020
|
+
get :template
|
|
1021
|
+
get :example
|
|
1022
|
+
end
|
|
1023
|
+
member do
|
|
1024
|
+
patch :complete_mapping
|
|
1025
|
+
patch :retry_failed_rows
|
|
1026
|
+
get :download
|
|
1027
|
+
end
|
|
1028
|
+
resources :rows, only: [:index], controller: 'import_rows'
|
|
1029
|
+
end
|
|
1030
|
+
|
|
1031
|
+
# The types a seller may list against. Read only — defining a type is
|
|
1032
|
+
# the operator's (docs/plans/6.0-seller-product-submission.md).
|
|
1033
|
+
resources :product_types, only: [:index, :show]
|
|
1034
|
+
|
|
1035
|
+
# The marketplace's delivery vocabulary, for the product form's picker.
|
|
1036
|
+
# Read only: a seller assigns a profile, never creates one
|
|
1037
|
+
# (docs/plans/6.0-multi-vendor-marketplace.md, Decision 13).
|
|
1038
|
+
resources :delivery_profiles, only: [:index]
|
|
1039
|
+
|
|
1040
|
+
# The marketplace's zones, for the destination picker on a seller's
|
|
1041
|
+
# own method. Read only for the same reason profiles are: where the
|
|
1042
|
+
# marketplace ships is its own decision
|
|
1043
|
+
# (docs/plans/6.0-multi-vendor-marketplace.md, Decision 13).
|
|
1044
|
+
resources :delivery_zones, only: [:index]
|
|
1045
|
+
|
|
1046
|
+
# How this seller ships. The listing carries the marketplace methods
|
|
1047
|
+
# shared with sellers alongside the seller's own; only the seller's
|
|
1048
|
+
# own can be written.
|
|
1049
|
+
resources :delivery_methods do
|
|
1050
|
+
collection do
|
|
1051
|
+
get :calculators
|
|
1052
|
+
get :rule_types
|
|
1053
|
+
end
|
|
1054
|
+
end
|
|
1055
|
+
|
|
1056
|
+
# What this seller packs into. The listing carries the marketplace's
|
|
1057
|
+
# own packaging alongside the seller's; only the seller's own can be
|
|
1058
|
+
# written (docs/plans/6.0-seller-package-types.md).
|
|
1059
|
+
resources :package_types
|
|
1060
|
+
|
|
1061
|
+
# No destroy: a location holds stock levels and is named on historical
|
|
1062
|
+
# fulfillments, so a seller retires one by deactivating it.
|
|
1063
|
+
resources :stock_locations, only: [:index, :show, :create, :update]
|
|
1064
|
+
|
|
1065
|
+
resources :countries, only: [:index]
|
|
1066
|
+
|
|
1067
|
+
# The seller's own policy documents.
|
|
1068
|
+
resources :policies
|
|
1069
|
+
|
|
1070
|
+
# The seller's own books, read-only: where they stand, what each
|
|
1071
|
+
# order earned them, and what has been sent. Written by fulfilment
|
|
1072
|
+
# and the sweep, never by the seller.
|
|
1073
|
+
resources :balances, only: [:index]
|
|
1074
|
+
resources :transfers, only: [:index, :show]
|
|
1075
|
+
resources :payouts, only: [:index, :show]
|
|
1076
|
+
|
|
1077
|
+
# Singular: the checklist is always `current_seller`'s.
|
|
1078
|
+
resource :onboarding, only: [:show], controller: 'onboarding' do
|
|
1079
|
+
post :submit_for_review
|
|
1080
|
+
# A fresh link to the payout provider's own onboarding. A POST
|
|
1081
|
+
# because asking for one creates the account at the provider if the
|
|
1082
|
+
# seller has none.
|
|
1083
|
+
post :payout_account
|
|
1084
|
+
end
|
|
1085
|
+
|
|
1086
|
+
resources :requirements, only: [] do
|
|
1087
|
+
resources :submissions, only: [:create], controller: 'requirement_submissions'
|
|
1088
|
+
end
|
|
1089
|
+
resources :requirement_submissions, only: [] do
|
|
1090
|
+
member do
|
|
1091
|
+
get :download
|
|
1092
|
+
end
|
|
1093
|
+
end
|
|
1094
|
+
end
|
|
1095
|
+
|
|
395
1096
|
# Webhooks (outside of store namespace — no API key authentication)
|
|
396
1097
|
namespace :webhooks do
|
|
397
1098
|
post 'payments/:payment_method_id', to: 'payments#create', as: :payment_webhook
|
|
1099
|
+
post 'fulfillments/:integration_id', to: 'fulfillments#create', as: :fulfillment_webhook
|
|
1100
|
+
# Marketplace events about sellers rather than about a payment —
|
|
1101
|
+
# whether a seller may be paid, and whether a payout reached their
|
|
1102
|
+
# bank. A separate endpoint because providers scope these separately:
|
|
1103
|
+
# events originating in a seller's own account arrive on a different
|
|
1104
|
+
# subscription, with a different signing secret, than the
|
|
1105
|
+
# marketplace's own payment events.
|
|
1106
|
+
post 'payouts/:payment_method_id', to: 'payouts#create', as: :payout_webhook
|
|
398
1107
|
end
|
|
399
1108
|
end
|
|
400
1109
|
end
|