spree_api 5.6.1 → 6.0.0.beta2
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 +20 -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 +18 -9
- 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 -2
- 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 +19 -4
- 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 +2 -2
- 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 +71 -8
- 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 +164 -33
- 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 +239 -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 +66 -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 +74 -16
- data/app/controllers/spree/api/v3/resource_controller.rb +170 -39
- 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/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 +10 -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/actor_serializer.rb +28 -0
- data/app/serializers/spree/api/v3/admin/address_serializer.rb +27 -4
- data/app/serializers/spree/api/v3/admin/admin_user_serializer.rb +13 -10
- data/app/serializers/spree/api/v3/admin/api_key_serializer.rb +15 -2
- 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 +28 -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 +2 -2
- 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 +34 -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 +46 -5
- data/app/serializers/spree/api/v3/admin/market_serializer.rb +5 -1
- data/app/serializers/spree/api/v3/admin/media_serializer.rb +50 -2
- 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 +126 -31
- 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 +6 -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 +58 -0
- data/app/serializers/spree/api/v3/admin/role_serializer.rb +24 -6
- data/app/serializers/spree/api/v3/admin/saved_report_serializer.rb +32 -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 +48 -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 +65 -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 +61 -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/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 +1 -1
- data/app/serializers/spree/api/v3/import_serializer.rb +18 -4
- data/app/serializers/spree/api/v3/invitation_serializer.rb +1 -1
- 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/{asset_serializer.rb → media_event_serializer.rb} +4 -4
- 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_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 -15
- data/app/serializers/spree/api/v3/stock_receipt_event_serializer.rb +11 -0
- data/app/serializers/spree/api/v3/stock_transfer_serializer.rb +6 -6
- 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 +6 -6
- 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 +730 -22
- data/lib/spree/api/configuration.rb +19 -19
- data/lib/spree/api/dependencies.rb +174 -227
- data/lib/spree/api/engine.rb +6 -0
- data/lib/spree/api/openapi/schema_helper.rb +179 -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 +342 -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/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 -34
- 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
|
@@ -7,7 +7,16 @@ module Spree
|
|
|
7
7
|
typelize number: :string, current_step: :string, completed_steps: 'string[]', token: :string, email: [:string, nullable: true],
|
|
8
8
|
customer_note: [:string, nullable: true], market_id: [:string, nullable: true], channel_id: [:string, nullable: true],
|
|
9
9
|
currency: :string, locale: [:string, nullable: true], total_quantity: :number,
|
|
10
|
-
|
|
10
|
+
coupon_code: [:string, nullable: true],
|
|
11
|
+
preferred_stock_location_id: [:string, nullable: true],
|
|
12
|
+
company_id: [:string, nullable: true], company_name: [:string, nullable: true],
|
|
13
|
+
po_number: [:string, nullable: true], po_number_required: :boolean,
|
|
14
|
+
po_document_filename: [:string, nullable: true],
|
|
15
|
+
po_document_byte_size: ['number | null'],
|
|
16
|
+
order_minimum: ['number | null'], order_minimum_shortfall: ['number | null'],
|
|
17
|
+
below_order_minimum: ['boolean | null'],
|
|
18
|
+
freight_summary: [:FreightSummary, nullable: true],
|
|
19
|
+
requirements: 'Array<{step: string, field: string, code: string, message: string}>',
|
|
11
20
|
item_total: [:string, nullable: true], display_item_total: [:string, nullable: true],
|
|
12
21
|
delivery_total: [:string, nullable: true], display_delivery_total: [:string, nullable: true],
|
|
13
22
|
adjustment_total: [:string, nullable: true], display_adjustment_total: [:string, nullable: true],
|
|
@@ -15,21 +24,17 @@ module Spree
|
|
|
15
24
|
tax_total: [:string, nullable: true], display_tax_total: [:string, nullable: true],
|
|
16
25
|
included_tax_total: [:string, nullable: true], display_included_tax_total: [:string, nullable: true],
|
|
17
26
|
additional_tax_total: [:string, nullable: true], display_additional_tax_total: [:string, nullable: true],
|
|
27
|
+
fee_total: [:string, nullable: true], display_fee_total: [:string, nullable: true],
|
|
18
28
|
store_credit_total: [:string, nullable: true], display_store_credit_total: [:string, nullable: true],
|
|
19
29
|
gift_card_total: [:string, nullable: true], display_gift_card_total: [:string, nullable: true],
|
|
20
30
|
covered_by_store_credit: :boolean,
|
|
21
31
|
total: [:string, nullable: true], display_total: [:string, nullable: true],
|
|
22
32
|
amount_due: [:string, nullable: true], display_amount_due: [:string, nullable: true],
|
|
23
33
|
shipping_eq_billing_address: :boolean,
|
|
24
|
-
warnings: 'Array<{code: string, message: string, line_item_id?: string, variant_id?: string}>',
|
|
34
|
+
warnings: 'Array<{code: string, message: string, line_item_id?: string, variant_id?: string, item_index?: number}>',
|
|
25
35
|
billing_address: { nullable: true }, shipping_address: { nullable: true },
|
|
26
36
|
gift_card: { nullable: true }, market: { nullable: true }
|
|
27
37
|
|
|
28
|
-
# Override ID to use cart_ prefix
|
|
29
|
-
attribute :id do |order|
|
|
30
|
-
"cart_#{Spree::PrefixedId::SQIDS.encode([order.id])}"
|
|
31
|
-
end
|
|
32
|
-
|
|
33
38
|
attribute :market_id do |order|
|
|
34
39
|
order.market&.prefixed_id
|
|
35
40
|
end
|
|
@@ -41,8 +46,40 @@ module Spree
|
|
|
41
46
|
order.channel&.prefixed_id
|
|
42
47
|
end
|
|
43
48
|
|
|
44
|
-
|
|
45
|
-
|
|
49
|
+
# Pickup selection — mirrors the writable param on cart update.
|
|
50
|
+
attribute :preferred_stock_location_id do |cart|
|
|
51
|
+
cart.preferred_stock_location&.prefixed_id
|
|
52
|
+
end
|
|
53
|
+
|
|
54
|
+
# Which company node the purchase is for — mirrors the writable
|
|
55
|
+
# `company_id` param. Read from the column, never re-resolved.
|
|
56
|
+
attribute :company_id do |cart|
|
|
57
|
+
cart.company&.prefixed_id
|
|
58
|
+
end
|
|
59
|
+
|
|
60
|
+
attribute :company_name do |cart|
|
|
61
|
+
cart.company&.name
|
|
62
|
+
end
|
|
63
|
+
|
|
64
|
+
# The buyer's own purchase-order reference, and whether their company
|
|
65
|
+
# demands one — the storefront marks the field required from this
|
|
66
|
+
# rather than fetching the company to ask.
|
|
67
|
+
attribute :po_number_required do |cart|
|
|
68
|
+
cart.po_number_required?
|
|
69
|
+
end
|
|
70
|
+
|
|
71
|
+
attribute :po_document_filename do |cart|
|
|
72
|
+
cart.po_document.blob&.filename&.to_s if cart.po_document.attached?
|
|
73
|
+
end
|
|
74
|
+
|
|
75
|
+
attribute :po_document_byte_size do |cart|
|
|
76
|
+
cart.po_document.blob&.byte_size if cart.po_document.attached?
|
|
77
|
+
end
|
|
78
|
+
|
|
79
|
+
# @deprecated `number` mirrors `id` (carts have no order-style
|
|
80
|
+
# number) — kept one release for 5.x clients; removed in 6.1.
|
|
81
|
+
attributes :number, :token, :email, :customer_note, :po_number,
|
|
82
|
+
:currency, :locale, :total_quantity, :warnings, :coupon_code
|
|
46
83
|
|
|
47
84
|
# Nulled for gated (prices_hidden) guests so the cart can't leak the
|
|
48
85
|
# prices that product/variant serializers already withhold.
|
|
@@ -53,7 +90,8 @@ module Spree
|
|
|
53
90
|
:additional_tax_total, :display_additional_tax_total, :total, :display_total,
|
|
54
91
|
:gift_card_total, :display_gift_card_total,
|
|
55
92
|
:amount_due, :display_amount_due,
|
|
56
|
-
:delivery_total, :display_delivery_total
|
|
93
|
+
:delivery_total, :display_delivery_total,
|
|
94
|
+
:fee_total, :display_fee_total
|
|
57
95
|
|
|
58
96
|
attribute :store_credit_total do |order|
|
|
59
97
|
order.total_applied_store_credit.to_s unless params[:hide_prices]
|
|
@@ -75,15 +113,55 @@ module Spree
|
|
|
75
113
|
order.completed_checkout_steps
|
|
76
114
|
end
|
|
77
115
|
|
|
116
|
+
# The order-minimum requirement names both amounts in its message, so
|
|
117
|
+
# it is dropped rather than redacted for a gated guest: a requirement
|
|
118
|
+
# with its numbers stripped tells them nothing they can act on.
|
|
78
119
|
attribute :requirements do |order|
|
|
79
|
-
Spree::Checkout::Requirements.new(order).call
|
|
120
|
+
requirements = Spree::Checkout::Requirements.new(order).call
|
|
121
|
+
next requirements unless params[:hide_prices]
|
|
122
|
+
|
|
123
|
+
requirements.reject { |requirement| requirement[:code] == 'order_minimum_not_met' }
|
|
124
|
+
end
|
|
125
|
+
|
|
126
|
+
# The order minimum in force for this buyer, or nil when their
|
|
127
|
+
# agreements state none. Exposed alongside the shortfall so a
|
|
128
|
+
# storefront can render "$180 to reach the $500 minimum" without
|
|
129
|
+
# doing the arithmetic or knowing where the number came from.
|
|
130
|
+
#
|
|
131
|
+
# Gated with the rest of the price surface: a threshold and a
|
|
132
|
+
# shortfall are amounts, and a storefront that hides prices from
|
|
133
|
+
# guests must not hand them "$180 short of $500" instead.
|
|
134
|
+
attribute :order_minimum do |order|
|
|
135
|
+
order.order_minimum_amount&.to_f unless params[:hide_prices]
|
|
80
136
|
end
|
|
81
137
|
|
|
138
|
+
attribute :order_minimum_shortfall do |order|
|
|
139
|
+
order.order_minimum_shortfall&.to_f unless params[:hide_prices]
|
|
140
|
+
end
|
|
141
|
+
|
|
142
|
+
attribute :below_order_minimum do |order|
|
|
143
|
+
order.below_order_minimum? unless params[:hide_prices]
|
|
144
|
+
end
|
|
145
|
+
|
|
146
|
+
# The shipment as a freight forwarder reads it: cartons, pallets,
|
|
147
|
+
# cubic meters, gross weight. Null for anything the store never
|
|
148
|
+
# measured that way, which is every retail cart.
|
|
149
|
+
#
|
|
150
|
+
# The totals are logistics rather than amounts, so they survive a
|
|
151
|
+
# storefront that hides prices; the per-line SKU and product name do
|
|
152
|
+
# not, being the catalog identity such a storefront exists to
|
|
153
|
+
# withhold.
|
|
154
|
+
one :freight_summary, resource: proc { Spree.api.freight_summary_serializer }
|
|
155
|
+
|
|
82
156
|
attribute :shipping_eq_billing_address do |order|
|
|
83
157
|
order.shipping_eq_billing_address?
|
|
84
158
|
end
|
|
85
159
|
|
|
86
|
-
many :discounts, resource: proc { Spree.api.
|
|
160
|
+
many :order_promotions, key: :discounts, resource: proc { Spree.api.applied_promotion_serializer }
|
|
161
|
+
# Itemized charges (duties, surcharges, COD, handling). Storefronts
|
|
162
|
+
# group and label these themselves — cross-border duty in particular
|
|
163
|
+
# has to be shown broken out rather than folded into a total.
|
|
164
|
+
many :fees, resource: proc { Spree.api.fee_serializer }
|
|
87
165
|
many :line_items, key: :items, resource: proc { Spree.api.line_item_serializer }
|
|
88
166
|
many :fulfillments, resource: proc { Spree.api.fulfillment_serializer }
|
|
89
167
|
many :payments, resource: proc { Spree.api.payment_serializer }
|
|
@@ -18,11 +18,11 @@ module Spree
|
|
|
18
18
|
end
|
|
19
19
|
|
|
20
20
|
attribute :description do |category|
|
|
21
|
-
category.description
|
|
21
|
+
Spree::RichTextHelper.to_plain_text(category.description)
|
|
22
22
|
end
|
|
23
23
|
|
|
24
24
|
attribute :description_html do |category|
|
|
25
|
-
category.
|
|
25
|
+
category.description_html
|
|
26
26
|
end
|
|
27
27
|
|
|
28
28
|
attribute :image_url do |category|
|
|
@@ -60,7 +60,7 @@ module Spree
|
|
|
60
60
|
resource: proc { Spree.api.category_serializer },
|
|
61
61
|
if: proc { expand?('ancestors') }
|
|
62
62
|
|
|
63
|
-
many :
|
|
63
|
+
many :storefront_custom_fields,
|
|
64
64
|
key: :custom_fields,
|
|
65
65
|
resource: proc { Spree.api.custom_field_serializer },
|
|
66
66
|
if: proc { expand?('custom_fields') }
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
module Spree
|
|
4
|
+
module Api
|
|
5
|
+
module V3
|
|
6
|
+
class ClaimLineItemSerializer < BaseSerializer
|
|
7
|
+
typelize quantity: :number,
|
|
8
|
+
send_replacement: :boolean,
|
|
9
|
+
refund_amount: :string,
|
|
10
|
+
display_refund_amount: :string,
|
|
11
|
+
paid_amount: :string,
|
|
12
|
+
description: [:string, nullable: true],
|
|
13
|
+
variant_id: [:string, nullable: true],
|
|
14
|
+
replacement_variant_id: [:string, nullable: true],
|
|
15
|
+
line_item_id: [:string, nullable: true]
|
|
16
|
+
|
|
17
|
+
attributes :quantity, :send_replacement, :description
|
|
18
|
+
|
|
19
|
+
attribute :refund_amount do |line|
|
|
20
|
+
line.refund_amount.to_s
|
|
21
|
+
end
|
|
22
|
+
|
|
23
|
+
# What the customer actually paid for these units — the ceiling the
|
|
24
|
+
# resolve workflow enforces, and what the dashboard offers when the
|
|
25
|
+
# claim carries no explicit amount.
|
|
26
|
+
attribute :paid_amount do |line|
|
|
27
|
+
line.paid_amount.to_s
|
|
28
|
+
end
|
|
29
|
+
|
|
30
|
+
attribute :display_refund_amount do |line|
|
|
31
|
+
line.display_refund_amount.to_s
|
|
32
|
+
end
|
|
33
|
+
|
|
34
|
+
attribute :variant_id do |line|
|
|
35
|
+
line.variant&.prefixed_id
|
|
36
|
+
end
|
|
37
|
+
|
|
38
|
+
attribute :replacement_variant_id do |line|
|
|
39
|
+
line.replacement_variant&.prefixed_id
|
|
40
|
+
end
|
|
41
|
+
|
|
42
|
+
attribute :line_item_id do |line|
|
|
43
|
+
line.line_item&.prefixed_id
|
|
44
|
+
end
|
|
45
|
+
|
|
46
|
+
one :variant, resource: proc { Spree.api.variant_serializer }, if: proc { expand?('variant') }
|
|
47
|
+
end
|
|
48
|
+
end
|
|
49
|
+
end
|
|
50
|
+
end
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
module Spree
|
|
4
|
+
module Api
|
|
5
|
+
module V3
|
|
6
|
+
# What went wrong with a delivery. Embedded in claims so a customer sees
|
|
7
|
+
# the reason's name rather than only its id; the vocabulary itself has
|
|
8
|
+
# no Store API controller of its own.
|
|
9
|
+
#
|
|
10
|
+
# Parallel to ReturnReasonSerializer rather than sharing a base class:
|
|
11
|
+
# Typelizer emits one TS type per serializer, so a shared parent would
|
|
12
|
+
# publish an abstract `Reason` type that no endpoint returns.
|
|
13
|
+
class ClaimReasonSerializer < BaseSerializer
|
|
14
|
+
typelize name: :string, active: :boolean
|
|
15
|
+
|
|
16
|
+
attributes :name, :active
|
|
17
|
+
end
|
|
18
|
+
end
|
|
19
|
+
end
|
|
20
|
+
end
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
module Spree
|
|
4
|
+
module Api
|
|
5
|
+
module V3
|
|
6
|
+
# Customer-facing view of a claim.
|
|
7
|
+
class ClaimSerializer < BaseSerializer
|
|
8
|
+
typelize number: :string,
|
|
9
|
+
status: [:string, enum: Spree::Claim.statuses, enum_type_name: 'ClaimStatus'],
|
|
10
|
+
resolution: [:string, nullable: true],
|
|
11
|
+
order_id: [:string, nullable: true],
|
|
12
|
+
reason_id: [:string, nullable: true],
|
|
13
|
+
refund_total: :string,
|
|
14
|
+
display_refund_total: :string,
|
|
15
|
+
approved_at: [:string, nullable: true],
|
|
16
|
+
resolved_at: [:string, nullable: true],
|
|
17
|
+
denied_at: [:string, nullable: true],
|
|
18
|
+
canceled_at: [:string, nullable: true]
|
|
19
|
+
|
|
20
|
+
attributes :number, :status, :resolution
|
|
21
|
+
|
|
22
|
+
attribute :order_id do |claim|
|
|
23
|
+
claim.order&.prefixed_id
|
|
24
|
+
end
|
|
25
|
+
|
|
26
|
+
attribute :reason_id do |claim|
|
|
27
|
+
claim.reason&.prefixed_id
|
|
28
|
+
end
|
|
29
|
+
|
|
30
|
+
attribute :refund_total do |claim|
|
|
31
|
+
claim.refund_total.to_s
|
|
32
|
+
end
|
|
33
|
+
|
|
34
|
+
attribute :display_refund_total do |claim|
|
|
35
|
+
claim.display_refund_total.to_s
|
|
36
|
+
end
|
|
37
|
+
|
|
38
|
+
attribute :approved_at do |claim|
|
|
39
|
+
claim.approved_at&.iso8601
|
|
40
|
+
end
|
|
41
|
+
|
|
42
|
+
attribute :resolved_at do |claim|
|
|
43
|
+
claim.resolved_at&.iso8601
|
|
44
|
+
end
|
|
45
|
+
|
|
46
|
+
attribute :denied_at do |claim|
|
|
47
|
+
claim.denied_at&.iso8601
|
|
48
|
+
end
|
|
49
|
+
|
|
50
|
+
attribute :canceled_at do |claim|
|
|
51
|
+
claim.canceled_at&.iso8601
|
|
52
|
+
end
|
|
53
|
+
|
|
54
|
+
one :reason, resource: proc { Spree.api.claim_reason_serializer }, if: proc { expand?('reason') }
|
|
55
|
+
|
|
56
|
+
many :claim_line_items,
|
|
57
|
+
resource: proc { Spree.api.claim_line_item_serializer },
|
|
58
|
+
if: proc { expand?('claim_line_items') }
|
|
59
|
+
end
|
|
60
|
+
end
|
|
61
|
+
end
|
|
62
|
+
end
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
module Spree
|
|
2
|
+
module Api
|
|
3
|
+
module V3
|
|
4
|
+
# Store (customer-facing) collection serializer. Deliberately omits the
|
|
5
|
+
# merchandising config — automatic / rules_match_policy / rules — which is
|
|
6
|
+
# back-office state exposed only by the Admin serializer.
|
|
7
|
+
class CollectionSerializer < BaseSerializer
|
|
8
|
+
typelize name: :string, permalink: :string, position: :number,
|
|
9
|
+
sort_order: :string,
|
|
10
|
+
meta_title: [:string, nullable: true], meta_description: [:string, nullable: true], meta_keywords: [:string, nullable: true],
|
|
11
|
+
description: :string, description_html: :string,
|
|
12
|
+
image_url: [:string, nullable: true], square_image_url: [:string, nullable: true],
|
|
13
|
+
products_count: :number
|
|
14
|
+
|
|
15
|
+
attributes :name, :permalink, :position, :sort_order,
|
|
16
|
+
:meta_title, :meta_description, :meta_keywords, :products_count
|
|
17
|
+
|
|
18
|
+
attribute :description do |collection|
|
|
19
|
+
Spree::RichTextHelper.to_plain_text(collection.description)
|
|
20
|
+
end
|
|
21
|
+
|
|
22
|
+
attribute :description_html do |collection|
|
|
23
|
+
collection.description_html
|
|
24
|
+
end
|
|
25
|
+
|
|
26
|
+
attribute :image_url do |collection|
|
|
27
|
+
image_url_for(collection.image)
|
|
28
|
+
end
|
|
29
|
+
|
|
30
|
+
attribute :square_image_url do |collection|
|
|
31
|
+
image_url_for(collection.square_image)
|
|
32
|
+
end
|
|
33
|
+
|
|
34
|
+
many :storefront_custom_fields,
|
|
35
|
+
key: :custom_fields,
|
|
36
|
+
resource: proc { Spree.api.custom_field_serializer },
|
|
37
|
+
if: proc { expand?('custom_fields') }
|
|
38
|
+
end
|
|
39
|
+
end
|
|
40
|
+
end
|
|
41
|
+
end
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
module Spree
|
|
2
|
+
module Api
|
|
3
|
+
module V3
|
|
4
|
+
# A pending (or spent) invitation into a company node. The token is
|
|
5
|
+
# deliberately absent — it travels only in the invite email.
|
|
6
|
+
class CompanyInvitationSerializer < BaseSerializer
|
|
7
|
+
typelize email: :string, company_id: :string, status: [:string, enum: %w[pending accepted revoked expired]],
|
|
8
|
+
expires_at: [:string, nullable: true]
|
|
9
|
+
|
|
10
|
+
attributes :email, expires_at: :iso8601
|
|
11
|
+
|
|
12
|
+
attribute :company_id do |invitation|
|
|
13
|
+
invitation.company.prefixed_id
|
|
14
|
+
end
|
|
15
|
+
|
|
16
|
+
# Derived, not a column: expiry is a date fact, acceptance and
|
|
17
|
+
# revocation are stamps.
|
|
18
|
+
attribute :status do |invitation|
|
|
19
|
+
if invitation.accepted? then 'accepted'
|
|
20
|
+
elsif invitation.revoked? then 'revoked'
|
|
21
|
+
elsif invitation.expired? then 'expired'
|
|
22
|
+
else 'pending'
|
|
23
|
+
end
|
|
24
|
+
end
|
|
25
|
+
end
|
|
26
|
+
end
|
|
27
|
+
end
|
|
28
|
+
end
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
module Spree
|
|
2
|
+
module Api
|
|
3
|
+
module V3
|
|
4
|
+
# A person with standing over a company node, as the storefront
|
|
5
|
+
# self-service surface lists them. Within a company OSS trusts every
|
|
6
|
+
# member, so members see each other.
|
|
7
|
+
class CompanyMembershipSerializer < BaseSerializer
|
|
8
|
+
typelize company_id: :string, customer_id: :string,
|
|
9
|
+
email: [:string, nullable: true]
|
|
10
|
+
|
|
11
|
+
# Both associations are required, so these are never null and the
|
|
12
|
+
# types above say so.
|
|
13
|
+
attribute :company_id do |membership|
|
|
14
|
+
membership.company.prefixed_id
|
|
15
|
+
end
|
|
16
|
+
|
|
17
|
+
attribute :customer_id do |membership|
|
|
18
|
+
membership.customer.prefixed_id
|
|
19
|
+
end
|
|
20
|
+
|
|
21
|
+
# Lists members by who they are without a customer request per row.
|
|
22
|
+
attribute :email do |membership|
|
|
23
|
+
membership.customer.email
|
|
24
|
+
end
|
|
25
|
+
end
|
|
26
|
+
end
|
|
27
|
+
end
|
|
28
|
+
end
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
module Spree
|
|
2
|
+
module Api
|
|
3
|
+
module V3
|
|
4
|
+
# The company node as members and event subscribers see it: the
|
|
5
|
+
# storefront self-service surface renders it directly, lifecycle events
|
|
6
|
+
# use it as their payload, and the admin serializer extends it so
|
|
7
|
+
# back-office fields stay in one place.
|
|
8
|
+
class CompanySerializer < BaseSerializer
|
|
9
|
+
typelize name: :string,
|
|
10
|
+
kind: [:string, enum: Spree::Company::KINDS], parent_id: [:string, nullable: true],
|
|
11
|
+
po_number_required: :boolean,
|
|
12
|
+
ancestors: 'Array<{id: string, name: string, kind: string}>'
|
|
13
|
+
|
|
14
|
+
# `po_number_required` is buyer-facing by design: the checkout marks
|
|
15
|
+
# the PO field required from it.
|
|
16
|
+
attributes :name, :kind, :po_number_required
|
|
17
|
+
|
|
18
|
+
attribute :parent_id do |company|
|
|
19
|
+
company.parent&.prefixed_id
|
|
20
|
+
end
|
|
21
|
+
|
|
22
|
+
# The path above this node, root first — lets a client render
|
|
23
|
+
# "Acme / EMEA / Berlin" without a request per level. Bounded by the
|
|
24
|
+
# tree's depth cap.
|
|
25
|
+
attribute :ancestors do |company|
|
|
26
|
+
company.ancestors.reverse.map do |node|
|
|
27
|
+
{ 'id' => node.prefixed_id, 'name' => node.name, 'kind' => node.kind }
|
|
28
|
+
end
|
|
29
|
+
end
|
|
30
|
+
end
|
|
31
|
+
end
|
|
32
|
+
end
|
|
33
|
+
end
|
|
@@ -6,8 +6,8 @@ module Spree
|
|
|
6
6
|
class CustomFieldSerializer < BaseSerializer
|
|
7
7
|
typelize key: :string,
|
|
8
8
|
label: :string,
|
|
9
|
-
type: [:string, deprecated: 'Use `field_type` instead. The legacy `type` field returns the Ruby STI class name (e.g. `Spree::
|
|
10
|
-
field_type: Spree::
|
|
9
|
+
type: [:string, deprecated: 'Use `field_type` instead. The legacy `type` field returns the Ruby STI class name (e.g. `Spree::CustomFields::ShortText`) and will be removed in a future minor.'],
|
|
10
|
+
field_type: Spree::CustomField::FIELD_TYPE_TOKENS,
|
|
11
11
|
value: :any
|
|
12
12
|
|
|
13
13
|
attributes :label, :type, :field_type
|
|
@@ -9,10 +9,18 @@ module Spree
|
|
|
9
9
|
phone: [:string, nullable: true], accepts_email_marketing: :boolean,
|
|
10
10
|
available_store_credit_total: :string, display_available_store_credit_total: :string,
|
|
11
11
|
default_billing_address: { nullable: true }, default_shipping_address: { nullable: true },
|
|
12
|
-
newsletter_subscriber: { nullable: true }
|
|
12
|
+
newsletter_subscriber: { nullable: true },
|
|
13
|
+
email_marketing_consent_updated_at: [:string, nullable: true]
|
|
13
14
|
|
|
14
15
|
attributes :email, :first_name, :last_name, :phone, :accepts_email_marketing
|
|
15
16
|
|
|
17
|
+
# When the opt-in last moved. Customer-facing because a person asking
|
|
18
|
+
# "when did I agree to this?" is exercising a right, not reading
|
|
19
|
+
# operational data.
|
|
20
|
+
attribute :email_marketing_consent_updated_at do |user|
|
|
21
|
+
user.email_marketing_consent_updated_at&.iso8601
|
|
22
|
+
end
|
|
23
|
+
|
|
16
24
|
attribute :full_name do |user|
|
|
17
25
|
user.full_name.presence || user.email
|
|
18
26
|
end
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
module Spree
|
|
2
|
+
module Api
|
|
3
|
+
module V3
|
|
4
|
+
# The event shape for `data_request.*`.
|
|
5
|
+
#
|
|
6
|
+
# Deliberately not the store serializer: that one carries `download_url`,
|
|
7
|
+
# a working unauthenticated link to a person's entire personal-data
|
|
8
|
+
# export. An event goes to every subscribed endpoint and is persisted in
|
|
9
|
+
# the delivery log, so a subscriber would receive the credential and a
|
|
10
|
+
# copy would sit in a queryable admin-readable column for the life of the
|
|
11
|
+
# log. Subscribers get the fact that a request finished; fetching the
|
|
12
|
+
# file stays an authenticated act by the person it belongs to.
|
|
13
|
+
class DataRequestEventSerializer < BaseSerializer
|
|
14
|
+
typelize number: :string, kind: [:string, enum: Spree::DataRequest::KINDS], status: [:string, enum: Spree::DataRequest.statuses, enum_type_name: 'DataRequestStatus'],
|
|
15
|
+
requested_at: [:string, nullable: true],
|
|
16
|
+
completed_at: [:string, nullable: true]
|
|
17
|
+
|
|
18
|
+
attributes :number, :kind, :status
|
|
19
|
+
|
|
20
|
+
attribute :requested_at do |data_request|
|
|
21
|
+
data_request.requested_at&.iso8601
|
|
22
|
+
end
|
|
23
|
+
|
|
24
|
+
attribute :completed_at do |data_request|
|
|
25
|
+
data_request.completed_at&.iso8601
|
|
26
|
+
end
|
|
27
|
+
end
|
|
28
|
+
end
|
|
29
|
+
end
|
|
30
|
+
end
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
module Spree
|
|
2
|
+
module Api
|
|
3
|
+
module V3
|
|
4
|
+
# Store API Data Request Serializer
|
|
5
|
+
# A customer's own GDPR access or erasure request.
|
|
6
|
+
class DataRequestSerializer < BaseSerializer
|
|
7
|
+
typelize number: :string, kind: [:string, enum: Spree::DataRequest::KINDS], status: [:string, enum: Spree::DataRequest.statuses, enum_type_name: 'DataRequestStatus'],
|
|
8
|
+
requested_at: [:string, nullable: true],
|
|
9
|
+
completed_at: [:string, nullable: true],
|
|
10
|
+
expires_at: [:string, nullable: true],
|
|
11
|
+
download_url: [:string, nullable: true]
|
|
12
|
+
|
|
13
|
+
attributes :number, :kind, :status
|
|
14
|
+
|
|
15
|
+
attribute :requested_at do |data_request|
|
|
16
|
+
data_request.requested_at&.iso8601
|
|
17
|
+
end
|
|
18
|
+
|
|
19
|
+
attribute :completed_at do |data_request|
|
|
20
|
+
data_request.completed_at&.iso8601
|
|
21
|
+
end
|
|
22
|
+
|
|
23
|
+
attribute :expires_at do |data_request|
|
|
24
|
+
data_request.expires_at&.iso8601
|
|
25
|
+
end
|
|
26
|
+
|
|
27
|
+
# Present only while the file is still there — a link the storefront
|
|
28
|
+
# can render without having to reason about expiry itself.
|
|
29
|
+
attribute :download_url do |data_request, params|
|
|
30
|
+
next nil unless data_request.downloadable?
|
|
31
|
+
|
|
32
|
+
host = (params&.dig(:store) || data_request.store)&.formatted_url
|
|
33
|
+
next nil if host.blank?
|
|
34
|
+
|
|
35
|
+
Spree::Api::DataRequestUrls.download_url(data_request, host)
|
|
36
|
+
end
|
|
37
|
+
end
|
|
38
|
+
end
|
|
39
|
+
end
|
|
40
|
+
end
|
|
@@ -2,9 +2,19 @@ module Spree
|
|
|
2
2
|
module Api
|
|
3
3
|
module V3
|
|
4
4
|
class DeliveryMethodSerializer < BaseSerializer
|
|
5
|
-
typelize name: :string, code: [:string, nullable: true]
|
|
5
|
+
typelize name: :string, code: [:string, nullable: true],
|
|
6
|
+
digital: :boolean, pickup: :boolean, pickup_point: :boolean,
|
|
7
|
+
estimated_transit_business_days_min: [:number, nullable: true],
|
|
8
|
+
estimated_transit_business_days_max: [:number, nullable: true]
|
|
6
9
|
|
|
7
|
-
attributes :name, :code
|
|
10
|
+
attributes :name, :code,
|
|
11
|
+
:estimated_transit_business_days_min, :estimated_transit_business_days_max
|
|
12
|
+
|
|
13
|
+
# Derived from the fulfillment provider class — the storefront needs
|
|
14
|
+
# the delivery kind to render the right checkout affordances.
|
|
15
|
+
attribute :digital, &:digital?
|
|
16
|
+
attribute :pickup, &:pickup?
|
|
17
|
+
attribute :pickup_point, &:pickup_point?
|
|
8
18
|
end
|
|
9
19
|
end
|
|
10
20
|
end
|
|
@@ -7,38 +7,55 @@ module Spree
|
|
|
7
7
|
total: :string, display_total: :string,
|
|
8
8
|
additional_tax_total: :string, display_additional_tax_total: :string,
|
|
9
9
|
included_tax_total: :string, display_included_tax_total: :string,
|
|
10
|
-
tax_total: :string, display_tax_total: :string
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
10
|
+
tax_total: :string, display_tax_total: :string,
|
|
11
|
+
carrier: [:string, nullable: true],
|
|
12
|
+
service_level: [:string, nullable: true],
|
|
13
|
+
estimated_delivery_date: [:string, nullable: true],
|
|
14
|
+
unpriced: :boolean,
|
|
15
|
+
freight_summary: [:FreightSummary, nullable: true]
|
|
16
|
+
|
|
17
|
+
attribute :delivery_method_id do |deliver_rate|
|
|
18
|
+
deliver_rate.delivery_method&.prefixed_id
|
|
14
19
|
end
|
|
15
20
|
|
|
21
|
+
# Carrier, service level and delivery date come from the rate provider
|
|
22
|
+
# and are what the customer chooses between; nil on calculator-priced
|
|
23
|
+
# methods. Provider metadata stays admin-only.
|
|
16
24
|
attributes :name, :selected,
|
|
17
25
|
:cost, :total,
|
|
18
26
|
:additional_tax_total, :included_tax_total,
|
|
19
|
-
:tax_total
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
27
|
+
:tax_total,
|
|
28
|
+
:carrier, :service_level, :estimated_delivery_date,
|
|
29
|
+
:unpriced
|
|
30
|
+
|
|
31
|
+
# What the shipment looks like to a freight forwarder — cartons,
|
|
32
|
+
# pallets, cubic meters, gross weight. Present only on freight rates;
|
|
33
|
+
# it is what a buyer sees in place of a price they cannot be quoted
|
|
34
|
+
# yet, and stays readable on the placed order because the provider
|
|
35
|
+
# froze it here when it quoted.
|
|
36
|
+
one :freight_summary, resource: proc { Spree.api.freight_summary_serializer }
|
|
37
|
+
|
|
38
|
+
attribute :display_cost do |deliver_rate|
|
|
39
|
+
deliver_rate.display_cost.to_s
|
|
23
40
|
end
|
|
24
41
|
|
|
25
|
-
attribute :display_total do |
|
|
26
|
-
|
|
42
|
+
attribute :display_total do |deliver_rate|
|
|
43
|
+
deliver_rate.display_total.to_s
|
|
27
44
|
end
|
|
28
45
|
|
|
29
|
-
attribute :display_additional_tax_total do |
|
|
30
|
-
|
|
46
|
+
attribute :display_additional_tax_total do |deliver_rate|
|
|
47
|
+
deliver_rate.display_additional_tax_total.to_s
|
|
31
48
|
end
|
|
32
49
|
|
|
33
|
-
attribute :display_included_tax_total do |
|
|
34
|
-
|
|
50
|
+
attribute :display_included_tax_total do |deliver_rate|
|
|
51
|
+
deliver_rate.display_included_tax_total.to_s
|
|
35
52
|
end
|
|
36
53
|
|
|
37
|
-
attribute :display_tax_total do |
|
|
38
|
-
|
|
54
|
+
attribute :display_tax_total do |deliver_rate|
|
|
55
|
+
deliver_rate.display_tax_total.to_s
|
|
39
56
|
end
|
|
40
57
|
|
|
41
|
-
one :
|
|
58
|
+
one :delivery_method, resource: proc { Spree.api.delivery_method_serializer }
|
|
42
59
|
end
|
|
43
60
|
end
|
|
44
61
|
end
|