spree_api 6.0.0.beta4 → 6.0.0.rc2
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/Rakefile +4 -48
- data/app/controllers/concerns/spree/api/v3/admin/email_template_lookup.rb +139 -0
- data/app/controllers/concerns/spree/api/v3/admin/product_membership.rb +10 -0
- data/app/controllers/concerns/spree/api/v3/admin/stock_receipt_actions.rb +26 -4
- data/app/controllers/concerns/spree/api/v3/admin/store_context.rb +1 -1
- data/app/controllers/concerns/spree/api/v3/admin/subclassed_resource.rb +15 -29
- data/app/controllers/concerns/spree/api/v3/admin/validation_details.rb +1 -1
- data/app/controllers/concerns/spree/api/v3/cart_resolvable.rb +10 -2
- data/app/controllers/concerns/spree/api/v3/channel_resolution.rb +3 -3
- data/app/controllers/concerns/spree/api/v3/company_address_writes.rb +3 -1
- data/app/controllers/concerns/spree/api/v3/current_password_confirmation.rb +1 -1
- data/app/controllers/concerns/spree/api/v3/error_handler.rb +55 -4
- data/app/controllers/concerns/spree/api/v3/file_uploads.rb +35 -0
- data/app/controllers/concerns/spree/api/v3/http_caching.rb +44 -11
- data/app/controllers/concerns/spree/api/v3/idempotent.rb +20 -5
- data/app/controllers/concerns/spree/api/v3/items_payload.rb +1 -1
- data/app/controllers/concerns/spree/api/v3/money_params.rb +52 -0
- data/app/controllers/concerns/spree/api/v3/order_lock.rb +2 -2
- data/app/controllers/concerns/spree/api/v3/orders/claim_actions.rb +1 -5
- data/app/controllers/concerns/spree/api/v3/orders/delivery_actions.rb +7 -11
- data/app/controllers/concerns/spree/api/v3/orders/exchange_actions.rb +1 -4
- data/app/controllers/concerns/spree/api/v3/orders/fulfillment_actions.rb +3 -15
- data/app/controllers/concerns/spree/api/v3/orders/post_sale_actions.rb +2 -10
- data/app/controllers/concerns/spree/api/v3/orders/return_actions.rb +1 -4
- data/app/controllers/concerns/spree/api/v3/orders/shipping_label_actions.rb +8 -28
- data/app/controllers/concerns/spree/api/v3/params_normalizer.rb +5 -0
- data/app/controllers/concerns/spree/api/v3/permission_serialization.rb +9 -1
- data/app/controllers/concerns/spree/api/v3/purchase_serialization.rb +26 -0
- data/app/controllers/concerns/spree/api/v3/request_params.rb +65 -0
- data/app/controllers/concerns/spree/api/v3/seller/seller_context.rb +1 -1
- data/app/controllers/concerns/spree/api/v3/store/storefront_products.rb +5 -4
- data/app/controllers/concerns/spree/api/v3/storefront_gating.rb +11 -5
- data/app/controllers/concerns/spree/api/v3/strict_money_params.rb +94 -0
- data/app/controllers/spree/api/v3/admin/admin_users_controller.rb +8 -4
- data/app/controllers/spree/api/v3/admin/allowed_origins_controller.rb +8 -1
- data/app/controllers/spree/api/v3/admin/api_keys_controller.rb +16 -8
- data/app/controllers/spree/api/v3/admin/base_controller.rb +1 -0
- data/app/controllers/spree/api/v3/admin/catalogs/order_minimums_controller.rb +2 -6
- data/app/controllers/spree/api/v3/admin/catalogs/quantity_rules_controller.rb +7 -9
- data/app/controllers/spree/api/v3/admin/catalogs_controller.rb +61 -34
- data/app/controllers/spree/api/v3/admin/categories/products_controller.rb +4 -1
- data/app/controllers/spree/api/v3/admin/categories_controller.rb +40 -20
- data/app/controllers/spree/api/v3/admin/channels_controller.rb +39 -10
- data/app/controllers/spree/api/v3/admin/claim_reasons_controller.rb +5 -1
- data/app/controllers/spree/api/v3/admin/collections/products_controller.rb +5 -3
- data/app/controllers/spree/api/v3/admin/collections_controller.rb +44 -15
- data/app/controllers/spree/api/v3/admin/commission_rates_controller.rb +62 -14
- data/app/controllers/spree/api/v3/admin/companies/addresses_controller.rb +11 -4
- data/app/controllers/spree/api/v3/admin/companies/invitations_controller.rb +1 -5
- data/app/controllers/spree/api/v3/admin/companies/memberships_controller.rb +9 -5
- data/app/controllers/spree/api/v3/admin/companies/tax_exemption_certificates_controller.rb +20 -27
- data/app/controllers/spree/api/v3/admin/companies/tax_identifiers_controller.rb +6 -5
- data/app/controllers/spree/api/v3/admin/companies_controller.rb +17 -7
- data/app/controllers/spree/api/v3/admin/countries_controller.rb +6 -2
- data/app/controllers/spree/api/v3/admin/coupon_codes_controller.rb +0 -4
- data/app/controllers/spree/api/v3/admin/custom_field_definitions_controller.rb +22 -4
- data/app/controllers/spree/api/v3/admin/custom_fields_controller.rb +12 -9
- data/app/controllers/spree/api/v3/admin/customer_groups_controller.rb +9 -5
- data/app/controllers/spree/api/v3/admin/customers/addresses_controller.rb +12 -11
- data/app/controllers/spree/api/v3/admin/customers/credit_cards_controller.rb +0 -4
- data/app/controllers/spree/api/v3/admin/customers/store_credits_controller.rb +11 -13
- data/app/controllers/spree/api/v3/admin/customers/tax_identifiers_controller.rb +6 -1
- data/app/controllers/spree/api/v3/admin/customers_controller.rb +37 -9
- data/app/controllers/spree/api/v3/admin/data_requests_controller.rb +8 -0
- data/app/controllers/spree/api/v3/admin/delivery_method_rules_controller.rb +1 -1
- data/app/controllers/spree/api/v3/admin/delivery_methods/rules_controller.rb +16 -8
- data/app/controllers/spree/api/v3/admin/delivery_methods_controller.rb +95 -62
- data/app/controllers/spree/api/v3/admin/delivery_profiles/origin_groups_controller.rb +8 -1
- data/app/controllers/spree/api/v3/admin/delivery_profiles_controller.rb +14 -7
- data/app/controllers/spree/api/v3/admin/delivery_zones_controller.rb +21 -5
- data/app/controllers/spree/api/v3/admin/email_templates/drafts_controller.rb +53 -0
- data/app/controllers/spree/api/v3/admin/email_templates/previews_controller.rb +34 -0
- data/app/controllers/spree/api/v3/admin/email_templates/publications_controller.rb +37 -0
- data/app/controllers/spree/api/v3/admin/email_templates/restorations_controller.rb +42 -0
- data/app/controllers/spree/api/v3/admin/email_templates/revisions_controller.rb +35 -0
- data/app/controllers/spree/api/v3/admin/email_templates/sample_records_controller.rb +33 -0
- data/app/controllers/spree/api/v3/admin/email_templates/test_emails_controller.rb +44 -0
- data/app/controllers/spree/api/v3/admin/email_templates_controller.rb +46 -0
- data/app/controllers/spree/api/v3/admin/exports_controller.rb +23 -6
- data/app/controllers/spree/api/v3/admin/files_controller.rb +29 -0
- data/app/controllers/spree/api/v3/admin/gift_card_batches_controller.rb +20 -1
- data/app/controllers/spree/api/v3/admin/gift_cards_controller.rb +19 -1
- data/app/controllers/spree/api/v3/admin/imports_controller.rb +37 -11
- data/app/controllers/spree/api/v3/admin/integrations_controller.rb +13 -1
- data/app/controllers/spree/api/v3/admin/invitation_acceptances_controller.rb +9 -2
- data/app/controllers/spree/api/v3/admin/invitations_controller.rb +8 -8
- data/app/controllers/spree/api/v3/admin/locales_controller.rb +1 -1
- data/app/controllers/spree/api/v3/admin/markets_controller.rb +30 -9
- data/app/controllers/spree/api/v3/admin/me_controller.rb +13 -4
- data/app/controllers/spree/api/v3/admin/media_controller.rb +22 -9
- data/app/controllers/spree/api/v3/admin/media_library_controller.rb +9 -5
- data/app/controllers/spree/api/v3/admin/option_types_controller.rb +24 -7
- data/app/controllers/spree/api/v3/admin/order_cancellation_reasons_controller.rb +5 -1
- data/app/controllers/spree/api/v3/admin/order_routing_rules_controller.rb +13 -5
- data/app/controllers/spree/api/v3/admin/orders/claims_controller.rb +39 -1
- data/app/controllers/spree/api/v3/admin/orders/deliveries_controller.rb +20 -6
- data/app/controllers/spree/api/v3/admin/orders/discount_codes_controller.rb +6 -2
- data/app/controllers/spree/api/v3/admin/orders/discounts_controller.rb +30 -6
- data/app/controllers/spree/api/v3/admin/orders/exchanges_controller.rb +36 -1
- data/app/controllers/spree/api/v3/admin/orders/fees_controller.rb +22 -1
- data/app/controllers/spree/api/v3/admin/orders/fulfillments_controller.rb +83 -22
- data/app/controllers/spree/api/v3/admin/orders/gift_cards_controller.rb +9 -5
- data/app/controllers/spree/api/v3/admin/orders/items_controller.rb +11 -1
- data/app/controllers/spree/api/v3/admin/orders/labels_controller.rb +37 -12
- data/app/controllers/spree/api/v3/admin/orders/payments_controller.rb +18 -19
- data/app/controllers/spree/api/v3/admin/orders/refunds_controller.rb +7 -5
- data/app/controllers/spree/api/v3/admin/orders/returns_controller.rb +37 -1
- data/app/controllers/spree/api/v3/admin/orders/store_credits_controller.rb +6 -3
- data/app/controllers/spree/api/v3/admin/orders_controller.rb +76 -62
- data/app/controllers/spree/api/v3/admin/package_types_controller.rb +30 -5
- data/app/controllers/spree/api/v3/admin/password_resets_controller.rb +26 -7
- data/app/controllers/spree/api/v3/admin/payment_methods_controller.rb +38 -22
- data/app/controllers/spree/api/v3/admin/policies_controller.rb +8 -4
- data/app/controllers/spree/api/v3/admin/price_lists_controller.rb +32 -67
- data/app/controllers/spree/api/v3/admin/prices_controller.rb +51 -8
- data/app/controllers/spree/api/v3/admin/product_types_controller.rb +25 -8
- data/app/controllers/spree/api/v3/admin/products/digital_assets_controller.rb +29 -16
- data/app/controllers/spree/api/v3/admin/products/variants_controller.rb +9 -18
- data/app/controllers/spree/api/v3/admin/products_controller.rb +122 -71
- data/app/controllers/spree/api/v3/admin/promotion_actions_controller.rb +11 -6
- data/app/controllers/spree/api/v3/admin/promotion_rules_controller.rb +10 -5
- data/app/controllers/spree/api/v3/admin/promotions_controller.rb +50 -14
- data/app/controllers/spree/api/v3/admin/purchase_orders_controller.rb +55 -8
- data/app/controllers/spree/api/v3/admin/refund_reasons_controller.rb +5 -1
- data/app/controllers/spree/api/v3/admin/reporting/saved_reports_controller.rb +9 -1
- data/app/controllers/spree/api/v3/admin/reporting_controller.rb +34 -0
- data/app/controllers/spree/api/v3/admin/resource_controller.rb +2 -1
- data/app/controllers/spree/api/v3/admin/return_reasons_controller.rb +5 -1
- data/app/controllers/spree/api/v3/admin/roles_controller.rb +13 -1
- data/app/controllers/spree/api/v3/admin/seller_payouts_controller.rb +7 -9
- data/app/controllers/spree/api/v3/admin/seller_requirement_submissions_controller.rb +17 -10
- data/app/controllers/spree/api/v3/admin/seller_requirements_controller.rb +32 -6
- data/app/controllers/spree/api/v3/admin/seller_transfers_controller.rb +0 -4
- data/app/controllers/spree/api/v3/admin/sellers/invitations_controller.rb +1 -1
- data/app/controllers/spree/api/v3/admin/sellers/payouts_controller.rb +1 -1
- data/app/controllers/spree/api/v3/admin/sellers_controller.rb +77 -32
- data/app/controllers/spree/api/v3/admin/setup_controller.rb +54 -23
- data/app/controllers/spree/api/v3/admin/stock_levels_controller.rb +38 -9
- data/app/controllers/spree/api/v3/admin/stock_locations_controller.rb +41 -9
- data/app/controllers/spree/api/v3/admin/stock_transfers_controller.rb +49 -8
- data/app/controllers/spree/api/v3/admin/store_controller.rb +122 -48
- data/app/controllers/spree/api/v3/admin/store_credits_controller.rb +1 -7
- data/app/controllers/spree/api/v3/admin/suppliers_controller.rb +16 -6
- data/app/controllers/spree/api/v3/admin/tags_controller.rb +8 -5
- data/app/controllers/spree/api/v3/admin/tax_categories_controller.rb +7 -4
- data/app/controllers/spree/api/v3/admin/tax_rates_controller.rb +21 -3
- data/app/controllers/spree/api/v3/admin/tracking_carriers_controller.rb +4 -0
- data/app/controllers/spree/api/v3/admin/translations/batches_controller.rb +17 -9
- data/app/controllers/spree/api/v3/admin/translations_controller.rb +4 -0
- data/app/controllers/spree/api/v3/admin/translations_coverage_controller.rb +5 -0
- data/app/controllers/spree/api/v3/admin/updates_controller.rb +39 -0
- data/app/controllers/spree/api/v3/admin/webhook_endpoints_controller.rb +40 -13
- data/app/controllers/spree/api/v3/admin/webhook_events_controller.rb +25 -0
- data/app/controllers/spree/api/v3/base_controller.rb +12 -0
- data/app/controllers/spree/api/v3/resource_controller.rb +99 -3
- data/app/controllers/spree/api/v3/seller/auth_controller.rb +10 -2
- data/app/controllers/spree/api/v3/seller/base_controller.rb +1 -0
- data/app/controllers/spree/api/v3/seller/countries_controller.rb +3 -3
- data/app/controllers/spree/api/v3/seller/delivery_methods_controller.rb +49 -60
- data/app/controllers/spree/api/v3/seller/exports_controller.rb +21 -4
- data/app/controllers/spree/api/v3/seller/files_controller.rb +27 -0
- data/app/controllers/spree/api/v3/seller/imports_controller.rb +25 -9
- data/app/controllers/spree/api/v3/seller/invitation_acceptances_controller.rb +12 -4
- data/app/controllers/spree/api/v3/seller/invitations_controller.rb +1 -1
- data/app/controllers/spree/api/v3/seller/me_controller.rb +15 -4
- data/app/controllers/spree/api/v3/seller/onboarding_controller.rb +11 -0
- data/app/controllers/spree/api/v3/seller/orders/claims_controller.rb +35 -0
- data/app/controllers/spree/api/v3/seller/orders/deliveries_controller.rb +12 -0
- data/app/controllers/spree/api/v3/seller/orders/exchanges_controller.rb +33 -0
- data/app/controllers/spree/api/v3/seller/orders/fulfillments_controller.rb +28 -2
- data/app/controllers/spree/api/v3/seller/orders/labels_controller.rb +23 -2
- data/app/controllers/spree/api/v3/seller/orders/notes_controller.rb +8 -1
- data/app/controllers/spree/api/v3/seller/orders/returns_controller.rb +32 -0
- data/app/controllers/spree/api/v3/seller/orders_controller.rb +35 -14
- data/app/controllers/spree/api/v3/seller/package_types_controller.rb +21 -9
- data/app/controllers/spree/api/v3/seller/password_resets_controller.rb +20 -11
- data/app/controllers/spree/api/v3/seller/policies_controller.rb +12 -4
- data/app/controllers/spree/api/v3/seller/products_controller.rb +115 -28
- data/app/controllers/spree/api/v3/seller/profile_controller.rb +33 -10
- data/app/controllers/spree/api/v3/seller/requirement_submissions_controller.rb +13 -6
- data/app/controllers/spree/api/v3/seller/resource_controller.rb +12 -0
- data/app/controllers/spree/api/v3/seller/stock_locations_controller.rb +44 -13
- data/app/controllers/spree/api/v3/seller/tax_identifiers_controller.rb +10 -1
- data/app/controllers/spree/api/v3/seller/team_controller.rb +5 -1
- data/app/controllers/spree/api/v3/store/auth_controller.rb +10 -0
- data/app/controllers/spree/api/v3/store/carts/discount_codes_controller.rb +9 -2
- data/app/controllers/spree/api/v3/store/carts/fulfillments_controller.rb +11 -11
- data/app/controllers/spree/api/v3/store/carts/gift_cards_controller.rb +13 -4
- data/app/controllers/spree/api/v3/store/carts/items_controller.rb +23 -7
- data/app/controllers/spree/api/v3/store/carts/payment_sessions_controller.rb +21 -7
- data/app/controllers/spree/api/v3/store/carts/payments_controller.rb +16 -3
- data/app/controllers/spree/api/v3/store/carts/po_documents_controller.rb +26 -28
- data/app/controllers/spree/api/v3/store/carts/store_credits_controller.rb +9 -1
- data/app/controllers/spree/api/v3/store/carts/tax_identifiers_controller.rb +5 -1
- data/app/controllers/spree/api/v3/store/carts_controller.rb +64 -52
- data/app/controllers/spree/api/v3/store/companies/addresses_controller.rb +12 -8
- data/app/controllers/spree/api/v3/store/companies/invitations_controller.rb +1 -5
- data/app/controllers/spree/api/v3/store/companies/members_controller.rb +4 -0
- data/app/controllers/spree/api/v3/store/companies_controller.rb +5 -1
- data/app/controllers/spree/api/v3/store/company_invitations_controller.rb +10 -2
- data/app/controllers/spree/api/v3/store/customer/addresses_controller.rb +8 -11
- data/app/controllers/spree/api/v3/store/customer/credit_cards_controller.rb +0 -4
- data/app/controllers/spree/api/v3/store/customer/data_requests_controller.rb +5 -5
- data/app/controllers/spree/api/v3/store/customer/digital_links_controller.rb +0 -4
- data/app/controllers/spree/api/v3/store/customer/gift_cards_controller.rb +0 -4
- data/app/controllers/spree/api/v3/store/customer/orders_controller.rb +0 -4
- data/app/controllers/spree/api/v3/store/customer/password_resets_controller.rb +25 -6
- data/app/controllers/spree/api/v3/store/customer/payment_setup_sessions_controller.rb +10 -9
- data/app/controllers/spree/api/v3/store/customer/store_credits_controller.rb +0 -5
- data/app/controllers/spree/api/v3/store/customer/tax_identifiers_controller.rb +5 -1
- data/app/controllers/spree/api/v3/store/customers_controller.rb +28 -2
- data/app/controllers/spree/api/v3/store/data_request_downloads_controller.rb +1 -1
- data/app/controllers/spree/api/v3/store/delivery_methods_controller.rb +1 -1
- data/app/controllers/spree/api/v3/store/newsletter_subscribers_controller.rb +27 -14
- data/app/controllers/spree/api/v3/store/orders/claims_controller.rb +12 -7
- data/app/controllers/spree/api/v3/store/orders/returns_controller.rb +11 -6
- data/app/controllers/spree/api/v3/store/orders_controller.rb +47 -10
- data/app/controllers/spree/api/v3/store/products_controller.rb +8 -0
- data/app/controllers/spree/api/v3/store/wishlist_items_controller.rb +10 -8
- data/app/controllers/spree/api/v3/store/wishlists_controller.rb +12 -4
- data/app/request_schemas/spree/api/v3/address_request_schema.rb +27 -0
- data/app/request_schemas/spree/api/v3/admin/address_request_schema.rb +13 -0
- data/app/request_schemas/spree/api/v3/admin/bulk_tags_request_schema.rb +17 -0
- data/app/request_schemas/spree/api/v3/admin/catalog_order_minimum_request_schema.rb +17 -0
- data/app/request_schemas/spree/api/v3/admin/email_template_language_request_schema.rb +17 -0
- data/app/request_schemas/spree/api/v3/admin/email_template_preview_request_schema.rb +32 -0
- data/app/request_schemas/spree/api/v3/admin/price_adjustment_tier_request_schema.rb +21 -0
- data/app/request_schemas/spree/api/v3/admin/price_list_price_request_schema.rb +21 -0
- data/app/request_schemas/spree/api/v3/admin/price_list_rule_request_schema.rb +19 -0
- data/app/request_schemas/spree/api/v3/admin/product_membership_reposition_request_schema.rb +17 -0
- data/app/request_schemas/spree/api/v3/admin/promotion_action_calculator_request_schema.rb +18 -0
- data/app/request_schemas/spree/api/v3/admin/promotion_action_line_item_request_schema.rb +15 -0
- data/app/request_schemas/spree/api/v3/admin/promotion_action_request_schema.rb +19 -0
- data/app/request_schemas/spree/api/v3/admin/promotion_rule_request_schema.rb +22 -0
- data/app/request_schemas/spree/api/v3/admin/reason_request_schema.rb +14 -0
- data/app/request_schemas/spree/api/v3/admin/tax_identifier_request_schema.rb +15 -0
- data/app/request_schemas/spree/api/v3/custom_field_value_request_schema.rb +15 -0
- data/app/request_schemas/spree/api/v3/file_upload_request_schema.rb +20 -0
- data/app/request_schemas/spree/api/v3/media_request_schema.rb +27 -0
- data/app/request_schemas/spree/api/v3/price_request_schema.rb +17 -0
- data/app/request_schemas/spree/api/v3/stock_level_request_schema.rb +18 -0
- data/app/request_schemas/spree/api/v3/store/address_request_schema.rb +29 -0
- data/app/request_schemas/spree/api/v3/tax_identifier_request_schema.rb +18 -0
- data/app/request_schemas/spree/api/v3/variant_option_request_schema.rb +13 -0
- data/app/request_schemas/spree/api/v3/variant_request_schema.rb +52 -0
- data/app/serializers/concerns/spree/api/v3/purchase_summary.rb +48 -0
- data/app/serializers/spree/api/v3/address_serializer.rb +4 -2
- data/app/serializers/spree/api/v3/admin/address_serializer.rb +8 -7
- data/app/serializers/spree/api/v3/admin/api_key_serializer.rb +2 -6
- data/app/serializers/spree/api/v3/admin/applied_promotion_serializer.rb +3 -1
- data/app/serializers/spree/api/v3/admin/cart_serializer.rb +3 -1
- data/app/serializers/spree/api/v3/admin/catalog_assignment_serializer.rb +1 -3
- data/app/serializers/spree/api/v3/admin/catalog_order_minimum_serializer.rb +3 -8
- data/app/serializers/spree/api/v3/admin/catalog_price_serializer.rb +3 -4
- data/app/serializers/spree/api/v3/admin/catalog_price_tier_serializer.rb +4 -3
- data/app/serializers/spree/api/v3/admin/catalog_product_term_serializer.rb +1 -3
- data/app/serializers/spree/api/v3/admin/catalog_quantity_rule_serializer.rb +1 -3
- data/app/serializers/spree/api/v3/admin/channel_serializer.rb +7 -10
- data/app/serializers/spree/api/v3/admin/claim_line_item_serializer.rb +7 -0
- data/app/serializers/spree/api/v3/admin/claim_reason_serializer.rb +1 -3
- data/app/serializers/spree/api/v3/admin/claim_serializer.rb +5 -0
- data/app/serializers/spree/api/v3/admin/commission_line_serializer.rb +7 -18
- data/app/serializers/spree/api/v3/admin/commission_rate_serializer.rb +7 -11
- data/app/serializers/spree/api/v3/admin/commission_rule_serializer.rb +1 -5
- data/app/serializers/spree/api/v3/admin/country_serializer.rb +4 -0
- data/app/serializers/spree/api/v3/admin/coupon_code_serializer.rb +1 -7
- data/app/serializers/spree/api/v3/admin/credit_card_serializer.rb +1 -7
- data/app/serializers/spree/api/v3/admin/custom_field_definition_serializer.rb +6 -2
- data/app/serializers/spree/api/v3/admin/customer_serializer.rb +5 -17
- data/app/serializers/spree/api/v3/admin/data_request_serializer.rb +2 -6
- data/app/serializers/spree/api/v3/admin/delivery_method_rule_serializer.rb +0 -2
- data/app/serializers/spree/api/v3/admin/delivery_method_serializer.rb +20 -30
- data/app/serializers/spree/api/v3/admin/delivery_method_service_serializer.rb +9 -1
- data/app/serializers/spree/api/v3/admin/delivery_origin_group_serializer.rb +1 -3
- data/app/serializers/spree/api/v3/admin/delivery_rate_serializer.rb +8 -0
- data/app/serializers/spree/api/v3/admin/delivery_serializer.rb +1 -3
- data/app/serializers/spree/api/v3/admin/delivery_zone_serializer.rb +1 -7
- data/app/serializers/spree/api/v3/admin/digital_asset_serializer.rb +4 -2
- data/app/serializers/spree/api/v3/admin/discount_serializer.rb +3 -1
- data/app/serializers/spree/api/v3/admin/email_template_draft_serializer.rb +19 -0
- data/app/serializers/spree/api/v3/admin/email_template_preview_serializer.rb +38 -0
- data/app/serializers/spree/api/v3/admin/email_template_revision_serializer.rb +18 -0
- data/app/serializers/spree/api/v3/admin/email_template_sample_record_serializer.rb +13 -0
- data/app/serializers/spree/api/v3/admin/email_template_serializer.rb +61 -0
- data/app/serializers/spree/api/v3/admin/exchange_line_item_serializer.rb +5 -0
- data/app/serializers/spree/api/v3/admin/exchange_serializer.rb +6 -3
- data/app/serializers/spree/api/v3/admin/export_serializer.rb +1 -7
- data/app/serializers/spree/api/v3/admin/fee_serializer.rb +3 -1
- data/app/serializers/spree/api/v3/admin/file_upload_serializer.rb +11 -0
- data/app/serializers/spree/api/v3/admin/file_upload_target_serializer.rb +10 -0
- data/app/serializers/spree/api/v3/admin/fulfillment_item_serializer.rb +1 -7
- data/app/serializers/spree/api/v3/admin/fulfillment_serializer.rb +13 -17
- data/app/serializers/spree/api/v3/admin/gift_card_serializer.rb +4 -10
- data/app/serializers/spree/api/v3/admin/import_serializer.rb +2 -2
- data/app/serializers/spree/api/v3/admin/integration_serializer.rb +1 -3
- data/app/serializers/spree/api/v3/admin/line_item_serializer.rb +14 -18
- data/app/serializers/spree/api/v3/admin/locale_serializer.rb +13 -0
- data/app/serializers/spree/api/v3/admin/market_serializer.rb +7 -2
- data/app/serializers/spree/api/v3/admin/media_serializer.rb +4 -5
- data/app/serializers/spree/api/v3/admin/order_cancellation_reason_serializer.rb +1 -3
- data/app/serializers/spree/api/v3/admin/order_group_serializer.rb +5 -9
- data/app/serializers/spree/api/v3/admin/order_routing_rule_serializer.rb +2 -6
- data/app/serializers/spree/api/v3/admin/order_serializer.rb +38 -48
- data/app/serializers/spree/api/v3/admin/package_type_serializer.rb +1 -3
- data/app/serializers/spree/api/v3/admin/payment_method_serializer.rb +7 -4
- data/app/serializers/spree/api/v3/admin/payment_serializer.rb +6 -8
- data/app/serializers/spree/api/v3/admin/payment_split_serializer.rb +8 -9
- data/app/serializers/spree/api/v3/admin/permission_serializer.rb +4 -4
- data/app/serializers/spree/api/v3/admin/price_adjustment_tier_serializer.rb +3 -6
- data/app/serializers/spree/api/v3/admin/price_history_serializer.rb +5 -2
- data/app/serializers/spree/api/v3/admin/price_list_serializer.rb +1 -5
- data/app/serializers/spree/api/v3/admin/price_rule_serializer.rb +2 -6
- data/app/serializers/spree/api/v3/admin/price_serializer.rb +2 -0
- data/app/serializers/spree/api/v3/admin/product_serializer.rb +4 -10
- data/app/serializers/spree/api/v3/admin/product_submission_serializer.rb +2 -10
- data/app/serializers/spree/api/v3/admin/product_type_serializer.rb +1 -3
- data/app/serializers/spree/api/v3/admin/promotion_action_serializer.rb +5 -9
- data/app/serializers/spree/api/v3/admin/promotion_rule_serializer.rb +1 -5
- data/app/serializers/spree/api/v3/admin/purchase_order_item_serializer.rb +6 -25
- data/app/serializers/spree/api/v3/admin/purchase_order_serializer.rb +4 -17
- data/app/serializers/spree/api/v3/admin/refund_reason_serializer.rb +1 -3
- data/app/serializers/spree/api/v3/admin/refund_serializer.rb +7 -0
- data/app/serializers/spree/api/v3/admin/reporting_result_serializer.rb +9 -2
- data/app/serializers/spree/api/v3/admin/return_line_item_serializer.rb +9 -0
- data/app/serializers/spree/api/v3/admin/return_reason_serializer.rb +1 -3
- data/app/serializers/spree/api/v3/admin/return_serializer.rb +8 -12
- data/app/serializers/spree/api/v3/admin/saved_report_serializer.rb +1 -3
- data/app/serializers/spree/api/v3/admin/seller_balance_serializer.rb +15 -10
- data/app/serializers/spree/api/v3/admin/seller_payout_serializer.rb +7 -7
- data/app/serializers/spree/api/v3/admin/seller_requirement_status_serializer.rb +2 -6
- data/app/serializers/spree/api/v3/admin/seller_requirement_submission_serializer.rb +1 -7
- data/app/serializers/spree/api/v3/admin/seller_serializer.rb +8 -16
- data/app/serializers/spree/api/v3/admin/seller_transfer_serializer.rb +11 -10
- data/app/serializers/spree/api/v3/admin/shipping_label_serializer.rb +8 -21
- data/app/serializers/spree/api/v3/admin/stock_level_serializer.rb +1 -3
- data/app/serializers/spree/api/v3/admin/stock_location_serializer.rb +4 -3
- data/app/serializers/spree/api/v3/admin/stock_movement_serializer.rb +3 -9
- data/app/serializers/spree/api/v3/admin/stock_receipt_item_serializer.rb +1 -7
- data/app/serializers/spree/api/v3/admin/stock_receipt_serializer.rb +1 -3
- data/app/serializers/spree/api/v3/admin/stock_reservation_serializer.rb +1 -3
- data/app/serializers/spree/api/v3/admin/stock_transfer_item_serializer.rb +1 -3
- data/app/serializers/spree/api/v3/admin/store_credit_event_serializer.rb +6 -3
- data/app/serializers/spree/api/v3/admin/store_credit_serializer.rb +11 -20
- data/app/serializers/spree/api/v3/admin/store_serializer.rb +21 -84
- data/app/serializers/spree/api/v3/admin/supplier_serializer.rb +2 -4
- data/app/serializers/spree/api/v3/admin/tax_exemption_certificate_serializer.rb +6 -10
- data/app/serializers/spree/api/v3/admin/tax_identifier_serializer.rb +1 -3
- data/app/serializers/spree/api/v3/admin/tax_line_serializer.rb +9 -3
- data/app/serializers/spree/api/v3/admin/tax_rate_serializer.rb +3 -19
- data/app/serializers/spree/api/v3/admin/update_status_serializer.rb +28 -0
- data/app/serializers/spree/api/v3/admin/variant_serializer.rb +13 -10
- data/app/serializers/spree/api/v3/admin/webhook_delivery_serializer.rb +1 -3
- data/app/serializers/spree/api/v3/admin/webhook_event_serializer.rb +23 -0
- data/app/serializers/spree/api/v3/applied_promotion_serializer.rb +2 -4
- data/app/serializers/spree/api/v3/base_serializer.rb +132 -7
- data/app/serializers/spree/api/v3/cart_serializer.rb +20 -66
- data/app/serializers/spree/api/v3/category_serializer.rb +5 -15
- data/app/serializers/spree/api/v3/claim_line_item_serializer.rb +6 -29
- data/app/serializers/spree/api/v3/claim_serializer.rb +2 -16
- data/app/serializers/spree/api/v3/collection_serializer.rb +1 -3
- data/app/serializers/spree/api/v3/company_serializer.rb +1 -3
- data/app/serializers/spree/api/v3/country_serializer.rb +2 -1
- data/app/serializers/spree/api/v3/currency_serializer.rb +9 -1
- data/app/serializers/spree/api/v3/custom_field_serializer.rb +1 -2
- data/app/serializers/spree/api/v3/customer_serializer.rb +3 -2
- data/app/serializers/spree/api/v3/delivery_rate_serializer.rb +8 -32
- data/app/serializers/spree/api/v3/delivery_zone_member_serializer.rb +1 -1
- data/app/serializers/spree/api/v3/digital_asset_serializer.rb +1 -3
- data/app/serializers/spree/api/v3/digital_link_serializer.rb +3 -9
- data/app/serializers/spree/api/v3/discount_serializer.rb +4 -12
- data/app/serializers/spree/api/v3/exchange_line_item_serializer.rb +6 -30
- data/app/serializers/spree/api/v3/exchange_serializer.rb +2 -16
- data/app/serializers/spree/api/v3/export_serializer.rb +1 -3
- data/app/serializers/spree/api/v3/fee_serializer.rb +2 -10
- data/app/serializers/spree/api/v3/file_upload_serializer.rb +28 -0
- data/app/serializers/spree/api/v3/file_upload_target_serializer.rb +17 -0
- data/app/serializers/spree/api/v3/fulfillment_serializer.rb +4 -11
- data/app/serializers/spree/api/v3/gift_card_batch_serializer.rb +3 -7
- data/app/serializers/spree/api/v3/gift_card_serializer.rb +7 -17
- data/app/serializers/spree/api/v3/import_row_serializer.rb +2 -6
- data/app/serializers/spree/api/v3/import_serializer.rb +3 -26
- data/app/serializers/spree/api/v3/invitation_serializer.rb +2 -19
- data/app/serializers/spree/api/v3/line_item_serializer.rb +19 -23
- data/app/serializers/spree/api/v3/locale_serializer.rb +3 -1
- data/app/serializers/spree/api/v3/market_serializer.rb +5 -5
- data/app/serializers/spree/api/v3/media_event_serializer.rb +1 -3
- data/app/serializers/spree/api/v3/media_serializer.rb +8 -5
- data/app/serializers/spree/api/v3/newsletter_subscriber_request_event_serializer.rb +35 -0
- data/app/serializers/spree/api/v3/newsletter_subscriber_serializer.rb +2 -6
- data/app/serializers/spree/api/v3/option_value_serializer.rb +1 -3
- data/app/serializers/spree/api/v3/order_group_serializer.rb +12 -25
- data/app/serializers/spree/api/v3/order_serializer.rb +14 -58
- data/app/serializers/spree/api/v3/password_reset_requested_event_serializer.rb +29 -0
- data/app/serializers/spree/api/v3/payment_method_serializer.rb +2 -6
- data/app/serializers/spree/api/v3/payment_serializer.rb +5 -10
- data/app/serializers/spree/api/v3/payment_session_serializer.rb +5 -13
- data/app/serializers/spree/api/v3/payment_setup_session_serializer.rb +3 -11
- data/app/serializers/spree/api/v3/policy_serializer.rb +1 -3
- data/app/serializers/spree/api/v3/price_history_serializer.rb +6 -8
- data/app/serializers/spree/api/v3/price_serializer.rb +7 -12
- data/app/serializers/spree/api/v3/product_filter_price_range_serializer.rb +10 -4
- data/app/serializers/spree/api/v3/product_publication_serializer.rb +1 -7
- data/app/serializers/spree/api/v3/product_serializer.rb +10 -24
- data/app/serializers/spree/api/v3/product_submission_serializer.rb +26 -0
- data/app/serializers/spree/api/v3/purchase_order_event_serializer.rb +23 -4
- data/app/serializers/spree/api/v3/refund_serializer.rb +11 -16
- data/app/serializers/spree/api/v3/return_line_item_serializer.rb +6 -21
- data/app/serializers/spree/api/v3/return_serializer.rb +4 -16
- data/app/serializers/spree/api/v3/saved_report_event_serializer.rb +23 -0
- data/app/serializers/spree/api/v3/seller/address_serializer.rb +12 -0
- data/app/serializers/spree/api/v3/seller/balance_serializer.rb +15 -10
- data/app/serializers/spree/api/v3/seller/claim_line_item_serializer.rb +7 -0
- data/app/serializers/spree/api/v3/seller/claim_serializer.rb +5 -0
- data/app/serializers/spree/api/v3/seller/country_serializer.rb +19 -0
- data/app/serializers/spree/api/v3/seller/delivery_method_rule_serializer.rb +1 -3
- data/app/serializers/spree/api/v3/seller/delivery_method_serializer.rb +5 -15
- data/app/serializers/spree/api/v3/seller/delivery_rate_serializer.rb +8 -13
- data/app/serializers/spree/api/v3/seller/delivery_serializer.rb +1 -3
- data/app/serializers/spree/api/v3/seller/delivery_zone_serializer.rb +1 -3
- data/app/serializers/spree/api/v3/seller/exchange_line_item_serializer.rb +5 -0
- data/app/serializers/spree/api/v3/seller/exchange_serializer.rb +6 -3
- data/app/serializers/spree/api/v3/seller/file_upload_serializer.rb +11 -0
- data/app/serializers/spree/api/v3/seller/file_upload_target_serializer.rb +10 -0
- data/app/serializers/spree/api/v3/seller/fulfillment_item_serializer.rb +1 -7
- data/app/serializers/spree/api/v3/seller/fulfillment_serializer.rb +2 -6
- data/app/serializers/spree/api/v3/seller/import_serializer.rb +2 -2
- data/app/serializers/spree/api/v3/seller/invitation_serializer.rb +1 -3
- data/app/serializers/spree/api/v3/seller/media_serializer.rb +2 -5
- data/app/serializers/spree/api/v3/seller/order_line_item_serializer.rb +8 -13
- data/app/serializers/spree/api/v3/seller/order_serializer.rb +19 -40
- data/app/serializers/spree/api/v3/seller/payment_split_serializer.rb +8 -9
- data/app/serializers/spree/api/v3/seller/payout_serializer.rb +6 -6
- data/app/serializers/spree/api/v3/seller/price_history_serializer.rb +11 -0
- data/app/serializers/spree/api/v3/seller/price_serializer.rb +11 -0
- data/app/serializers/spree/api/v3/seller/product_serializer.rb +3 -7
- data/app/serializers/spree/api/v3/seller/product_submission_serializer.rb +1 -21
- data/app/serializers/spree/api/v3/seller/profile_serializer.rb +9 -13
- data/app/serializers/spree/api/v3/seller/requirement_status_serializer.rb +3 -9
- data/app/serializers/spree/api/v3/seller/return_line_item_serializer.rb +8 -0
- data/app/serializers/spree/api/v3/seller/return_serializer.rb +8 -17
- data/app/serializers/spree/api/v3/seller/state_serializer.rb +10 -0
- data/app/serializers/spree/api/v3/seller/stock_location_serializer.rb +3 -0
- data/app/serializers/spree/api/v3/seller/transfer_serializer.rb +10 -9
- data/app/serializers/spree/api/v3/seller/variant_serializer.rb +8 -4
- data/app/serializers/spree/api/v3/seller_serializer.rb +1 -3
- data/app/serializers/spree/api/v3/shipping_label_event_serializer.rb +22 -4
- data/app/serializers/spree/api/v3/stock_level_serializer.rb +1 -7
- data/app/serializers/spree/api/v3/stock_location_serializer.rb +8 -1
- data/app/serializers/spree/api/v3/stock_movement_serializer.rb +1 -3
- data/app/serializers/spree/api/v3/stock_receipt_event_serializer.rb +20 -4
- data/app/serializers/spree/api/v3/stock_transfer_serializer.rb +1 -7
- data/app/serializers/spree/api/v3/store_credit_event_serializer.rb +2 -13
- data/app/serializers/spree/api/v3/store_credit_serializer.rb +3 -27
- data/app/serializers/spree/api/v3/supplier_event_serializer.rb +6 -4
- data/app/serializers/spree/api/v3/tax_line_serializer.rb +11 -23
- data/app/serializers/spree/api/v3/variant_serializer.rb +10 -24
- data/app/serializers/spree/api/v3/wishlist_item_serializer.rb +1 -11
- data/app/serializers/spree/api/v3/wishlist_serializer.rb +2 -6
- data/app/services/spree/api/v3/filter_predicates.rb +29 -0
- data/app/services/spree/api/v3/filter_table.rb +337 -0
- data/app/services/spree/api/v3/filters_aggregator.rb +2 -2
- data/app/services/spree/api/v3/request_schema.rb +430 -0
- data/app/services/spree/webhooks/deliver_webhook.rb +7 -3
- data/app/subscribers/spree/webhook_event_subscriber.rb +3 -10
- data/config/initializers/pagy.rb +1 -1
- data/config/initializers/typelizer.rb +7 -9
- data/config/locales/ar.yml +15 -0
- data/config/locales/be.yml +15 -0
- data/config/locales/bg.yml +15 -0
- data/config/locales/ca.yml +15 -0
- data/config/locales/cs.yml +15 -0
- data/config/locales/da.yml +15 -0
- data/config/locales/de-CH.yml +11 -0
- data/config/locales/de.yml +15 -0
- data/config/locales/el.yml +15 -0
- data/config/locales/en.yml +5 -40
- data/config/locales/es-CL.yml +10 -0
- data/config/locales/es-EC.yml +11 -0
- data/config/locales/es-MX.yml +12 -0
- data/config/locales/es.yml +15 -0
- data/config/locales/et.yml +15 -0
- data/config/locales/fa.yml +15 -0
- data/config/locales/fi.yml +15 -0
- data/config/locales/fr.yml +15 -0
- data/config/locales/hu.yml +15 -0
- data/config/locales/id.yml +15 -0
- data/config/locales/it.yml +15 -0
- data/config/locales/ja.yml +15 -0
- data/config/locales/km.yml +15 -0
- data/config/locales/ko.yml +15 -0
- data/config/locales/ku.yml +15 -0
- data/config/locales/lt.yml +15 -0
- data/config/locales/lv.yml +15 -0
- data/config/locales/nb.yml +15 -0
- data/config/locales/ne.yml +15 -0
- data/config/locales/nl.yml +15 -0
- data/config/locales/pl.yml +15 -0
- data/config/locales/pt-BR.yml +13 -0
- data/config/locales/pt.yml +15 -0
- data/config/locales/ro.yml +15 -0
- data/config/locales/ru.yml +15 -0
- data/config/locales/sk.yml +15 -0
- data/config/locales/sl-SI.yml +15 -0
- data/config/locales/sv.yml +15 -0
- data/config/locales/th.yml +15 -0
- data/config/locales/tr.yml +15 -0
- data/config/locales/uk.yml +15 -0
- data/config/locales/vi.yml +15 -0
- data/config/locales/zh-CN.yml +15 -0
- data/config/locales/zh-TW.yml +15 -0
- data/config/routes.rb +54 -102
- data/lib/spree/api/configuration.rb +5 -0
- data/lib/spree/api/dependencies.rb +54 -274
- data/lib/spree/api/middleware/request_size_limit.rb +24 -3
- data/lib/spree/api/openapi/filter_documentation.rb +136 -0
- data/lib/spree/api/openapi/schema_helper.rb +127 -81
- data/lib/spree/api/preference_families.rb +46 -0
- data/lib/spree/api/preference_types.rb +138 -0
- data/lib/spree/api/typelizer_generation.rb +39 -0
- data/lib/spree/api/webhook_event_types.rb +140 -0
- data/lib/spree/api.rb +0 -2
- data/lib/tasks/filters.rake +12 -0
- data/lib/typelizer/open_enums.rb +10 -0
- metadata +125 -40
- data/app/controllers/concerns/spree/api/v3/address_params.rb +0 -17
- data/app/controllers/concerns/spree/api/v3/direct_uploads.rb +0 -35
- data/app/controllers/spree/api/v3/admin/direct_uploads_controller.rb +0 -54
- data/app/controllers/spree/api/v3/seller/direct_uploads_controller.rb +0 -21
- data/config/i18n-tasks.yml +0 -40
- data/config/initializers/alba.rb +0 -5
|
@@ -5,6 +5,11 @@ module Spree
|
|
|
5
5
|
module V3
|
|
6
6
|
module Admin
|
|
7
7
|
class ExchangeSerializer < V3::ExchangeSerializer
|
|
8
|
+
without_formatted_money
|
|
9
|
+
|
|
10
|
+
# No guest price gating here, so the inherited money fields are always present.
|
|
11
|
+
typelize price_difference: [:string, nullable: false]
|
|
12
|
+
|
|
8
13
|
typelize memo: [:string, nullable: true],
|
|
9
14
|
metadata: 'Record<string, unknown>',
|
|
10
15
|
stock_location_id: [:string, nullable: true],
|
|
@@ -13,9 +18,7 @@ module Spree
|
|
|
13
18
|
|
|
14
19
|
attributes :memo, :metadata, created_at: :iso8601, updated_at: :iso8601
|
|
15
20
|
|
|
16
|
-
|
|
17
|
-
exchange.stock_location&.prefixed_id
|
|
18
|
-
end
|
|
21
|
+
prefixed_id_attributes :stock_location
|
|
19
22
|
|
|
20
23
|
actor_attributes :created_by
|
|
21
24
|
|
|
@@ -23,13 +23,7 @@ module Spree
|
|
|
23
23
|
# it — whose it is. A null `seller_id` means the operator's own.
|
|
24
24
|
# The name rides along so the list can show who without a second
|
|
25
25
|
# request per row.
|
|
26
|
-
|
|
27
|
-
export.store&.prefixed_id
|
|
28
|
-
end
|
|
29
|
-
|
|
30
|
-
attribute :seller_id do |export|
|
|
31
|
-
export.seller&.prefixed_id
|
|
32
|
-
end
|
|
26
|
+
prefixed_id_attributes :store, :seller
|
|
33
27
|
|
|
34
28
|
attribute :seller_name do |export|
|
|
35
29
|
export.seller&.name
|
|
@@ -3,7 +3,9 @@ module Spree
|
|
|
3
3
|
module V3
|
|
4
4
|
module Admin
|
|
5
5
|
class FeeSerializer < V3::FeeSerializer
|
|
6
|
-
|
|
6
|
+
without_formatted_money
|
|
7
|
+
|
|
8
|
+
typelize amount: [:string, nullable: false],
|
|
7
9
|
metadata: ['Record<string, unknown>', nullable: true]
|
|
8
10
|
|
|
9
11
|
attributes :metadata, created_at: :iso8601, updated_at: :iso8601
|
|
@@ -17,13 +17,7 @@ module Spree
|
|
|
17
17
|
|
|
18
18
|
attributes :quantity, :status
|
|
19
19
|
|
|
20
|
-
|
|
21
|
-
item.variant&.prefixed_id
|
|
22
|
-
end
|
|
23
|
-
|
|
24
|
-
attribute :line_item_id do |item|
|
|
25
|
-
item.line_item&.prefixed_id
|
|
26
|
-
end
|
|
20
|
+
prefixed_id_attributes :variant, :line_item
|
|
27
21
|
|
|
28
22
|
attribute :name do |item|
|
|
29
23
|
item.variant&.product&.name
|
|
@@ -3,33 +3,29 @@ module Spree
|
|
|
3
3
|
module V3
|
|
4
4
|
module Admin
|
|
5
5
|
class FulfillmentSerializer < V3::FulfillmentSerializer
|
|
6
|
+
without_formatted_money
|
|
7
|
+
|
|
6
8
|
# The Admin API has no guest gating — money fields inherited from the
|
|
7
9
|
# store serializer are always present, so override their nullability.
|
|
8
|
-
typelize cost: [:string, nullable: false],
|
|
9
|
-
total: [:string, nullable: false],
|
|
10
|
-
discount_total: [:string, nullable: false],
|
|
11
|
-
additional_tax_total: [:string, nullable: false],
|
|
12
|
-
included_tax_total: [:string, nullable: false],
|
|
13
|
-
tax_total: [:string, nullable: false]
|
|
10
|
+
typelize cost: [:string, nullable: false],
|
|
11
|
+
total: [:string, nullable: false],
|
|
12
|
+
discount_total: [:string, nullable: false],
|
|
13
|
+
additional_tax_total: [:string, nullable: false],
|
|
14
|
+
included_tax_total: [:string, nullable: false],
|
|
15
|
+
tax_total: [:string, nullable: false]
|
|
14
16
|
|
|
15
17
|
typelize metadata: 'Record<string, unknown>',
|
|
16
18
|
documents: "Array<{ kind: string; url: string }>",
|
|
17
19
|
provider_generates_labels: :boolean,
|
|
18
20
|
order_id: [:string, nullable: true],
|
|
19
|
-
stock_location_id: [:string, nullable: true]
|
|
20
|
-
adjustment_total: :string,
|
|
21
|
-
pre_tax_amount: :string
|
|
21
|
+
stock_location_id: [:string, nullable: true]
|
|
22
22
|
|
|
23
|
-
attributes :metadata, :
|
|
24
|
-
created_at: :iso8601, updated_at: :iso8601
|
|
23
|
+
attributes :metadata, created_at: :iso8601, updated_at: :iso8601
|
|
25
24
|
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
end
|
|
25
|
+
money_attributes :adjustment_total, :pre_tax_amount
|
|
26
|
+
typelize adjustment_total: [:string, nullable: false], pre_tax_amount: [:string, nullable: false]
|
|
29
27
|
|
|
30
|
-
|
|
31
|
-
fulfillment.stock_location&.prefixed_id
|
|
32
|
-
end
|
|
28
|
+
prefixed_id_attributes :order, :stock_location
|
|
33
29
|
|
|
34
30
|
# Customs forms and other paperwork the provider produced beside the
|
|
35
31
|
# label; the labels themselves are listed under +labels+.
|
|
@@ -6,12 +6,12 @@ module Spree
|
|
|
6
6
|
# context the admin UI needs: who the card was issued to (customer),
|
|
7
7
|
# who issued it (admin), and the orders that consumed it.
|
|
8
8
|
class GiftCardSerializer < V3::GiftCardSerializer
|
|
9
|
+
without_formatted_money
|
|
10
|
+
|
|
9
11
|
# The Admin API has no guest gating — money fields inherited from the
|
|
10
12
|
# store serializer are always present, so override their nullability.
|
|
11
13
|
typelize amount: [:string, nullable: false], amount_used: [:string, nullable: false],
|
|
12
|
-
amount_authorized: [:string, nullable: false], amount_remaining: [:string, nullable: false]
|
|
13
|
-
display_amount: [:string, nullable: false], display_amount_used: [:string, nullable: false],
|
|
14
|
-
display_amount_remaining: [:string, nullable: false]
|
|
14
|
+
amount_authorized: [:string, nullable: false], amount_remaining: [:string, nullable: false]
|
|
15
15
|
|
|
16
16
|
typelize customer_id: [:string, nullable: true],
|
|
17
17
|
created_by_id: [:string, nullable: true]
|
|
@@ -24,13 +24,7 @@ module Spree
|
|
|
24
24
|
params[:gift_card_codes] ? gift_card.display_code : gift_card.masked_code
|
|
25
25
|
end
|
|
26
26
|
|
|
27
|
-
|
|
28
|
-
gift_card.customer&.prefixed_id
|
|
29
|
-
end
|
|
30
|
-
|
|
31
|
-
attribute :created_by_id do |gift_card|
|
|
32
|
-
gift_card.created_by&.prefixed_id
|
|
33
|
-
end
|
|
27
|
+
prefixed_id_attributes :customer, :created_by
|
|
34
28
|
|
|
35
29
|
# Customer the card was issued to. Gated behind `expand?` to keep
|
|
36
30
|
# the list payload thin — the SPA's list view passes
|
|
@@ -9,7 +9,7 @@ module Spree
|
|
|
9
9
|
completed_rows_count: :number,
|
|
10
10
|
failed_rows_count: :number,
|
|
11
11
|
processing_errors: [:string, nullable: true],
|
|
12
|
-
|
|
12
|
+
delimiter: :string,
|
|
13
13
|
schema_fields: 'Array<{ name: string; label: string; required: boolean }>',
|
|
14
14
|
csv_headers: [:string, multi: true],
|
|
15
15
|
sample_row: 'Record<string, string | null>',
|
|
@@ -18,7 +18,7 @@ module Spree
|
|
|
18
18
|
original_file_url: [:string, nullable: true],
|
|
19
19
|
price_list_id: [:string, nullable: true]
|
|
20
20
|
|
|
21
|
-
attributes :processing_errors, :
|
|
21
|
+
attributes :processing_errors, :delimiter
|
|
22
22
|
|
|
23
23
|
# The list a price-list import writes into; nil for every other type.
|
|
24
24
|
attribute :price_list_id do |import|
|
|
@@ -9,8 +9,7 @@ module Spree
|
|
|
9
9
|
name: :string,
|
|
10
10
|
group: [:string, nullable: true],
|
|
11
11
|
active: :boolean,
|
|
12
|
-
preferences: 'Record<string, unknown>'
|
|
13
|
-
preference_schema: "Array<{ key: string; type: string; default: unknown; choices?: string[] }>"
|
|
12
|
+
preferences: 'Record<string, unknown>'
|
|
14
13
|
|
|
15
14
|
attributes :name, :active,
|
|
16
15
|
created_at: :iso8601, updated_at: :iso8601
|
|
@@ -24,7 +23,6 @@ module Spree
|
|
|
24
23
|
end
|
|
25
24
|
|
|
26
25
|
attribute :preferences, &:serialized_preferences
|
|
27
|
-
attribute :preference_schema, &:serialized_preference_schema
|
|
28
26
|
end
|
|
29
27
|
end
|
|
30
28
|
end
|
|
@@ -5,16 +5,18 @@ module Spree
|
|
|
5
5
|
# Admin API Line Item Serializer
|
|
6
6
|
# Extends the store serializer with metadata visibility
|
|
7
7
|
class LineItemSerializer < V3::LineItemSerializer
|
|
8
|
+
without_formatted_money
|
|
9
|
+
|
|
8
10
|
# The Admin API has no guest gating — money fields inherited from the
|
|
9
11
|
# store serializer are always present, so override their nullability.
|
|
10
|
-
typelize price: [:string, nullable: false],
|
|
11
|
-
total: [:string, nullable: false],
|
|
12
|
-
adjustment_total: [:string, nullable: false],
|
|
13
|
-
additional_tax_total: [:string, nullable: false],
|
|
14
|
-
included_tax_total: [:string, nullable: false],
|
|
15
|
-
discount_total: [:string, nullable: false],
|
|
16
|
-
pre_tax_amount: [:string, nullable: false],
|
|
17
|
-
discounted_amount: [:string, nullable: false]
|
|
12
|
+
typelize price: [:string, nullable: false],
|
|
13
|
+
total: [:string, nullable: false],
|
|
14
|
+
adjustment_total: [:string, nullable: false],
|
|
15
|
+
additional_tax_total: [:string, nullable: false],
|
|
16
|
+
included_tax_total: [:string, nullable: false],
|
|
17
|
+
discount_total: [:string, nullable: false],
|
|
18
|
+
pre_tax_amount: [:string, nullable: false],
|
|
19
|
+
discounted_amount: [:string, nullable: false]
|
|
18
20
|
|
|
19
21
|
typelize metadata: 'Record<string, unknown>',
|
|
20
22
|
cost_price: [:string, nullable: true],
|
|
@@ -34,7 +36,7 @@ module Spree
|
|
|
34
36
|
# Base price, not resolved: resolving would call the pricing provider
|
|
35
37
|
# once per line on a read path that must stay provider-free.
|
|
36
38
|
attribute :catalog_price do |line_item|
|
|
37
|
-
line_item.variant&.amount_in(line_item.currency)
|
|
39
|
+
Spree::Money::Rounding.format(line_item.variant&.amount_in(line_item.currency), line_item.currency, unit_price: true)
|
|
38
40
|
end
|
|
39
41
|
|
|
40
42
|
# Which agreement priced this line. The list id is stamped on the
|
|
@@ -44,9 +46,7 @@ module Spree
|
|
|
44
46
|
# Empty on a shop-price or hand-negotiated line. Names ride along
|
|
45
47
|
# beside the ids so a page of lines does not cost a request each to
|
|
46
48
|
# label, as `company_name` already does.
|
|
47
|
-
|
|
48
|
-
line_item.price_list&.prefixed_id
|
|
49
|
-
end
|
|
49
|
+
prefixed_id_attributes :price_list
|
|
50
50
|
|
|
51
51
|
attribute :price_list_name do |line_item|
|
|
52
52
|
line_item.price_list&.name
|
|
@@ -60,13 +60,9 @@ module Spree
|
|
|
60
60
|
line_item.price_list&.catalog&.name
|
|
61
61
|
end
|
|
62
62
|
|
|
63
|
-
|
|
64
|
-
line_item.cost_price&.to_s
|
|
65
|
-
end
|
|
63
|
+
money_attributes :cost_price, unit_price: true
|
|
66
64
|
|
|
67
|
-
|
|
68
|
-
line_item.tax_category&.prefixed_id
|
|
69
|
-
end
|
|
65
|
+
prefixed_id_attributes :tax_category
|
|
70
66
|
|
|
71
67
|
# Override inherited associations to use admin serializers
|
|
72
68
|
many :option_values, resource: proc { Spree.api.admin_option_value_serializer }
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
module Spree
|
|
2
|
+
module Api
|
|
3
|
+
module V3
|
|
4
|
+
module Admin
|
|
5
|
+
# The dashboard names locales with Intl.DisplayNames in the admin's
|
|
6
|
+
# own language, so the Admin API sends the code alone.
|
|
7
|
+
class LocaleSerializer < V3::LocaleSerializer
|
|
8
|
+
_attributes.delete(:name)
|
|
9
|
+
end
|
|
10
|
+
end
|
|
11
|
+
end
|
|
12
|
+
end
|
|
13
|
+
end
|
|
@@ -3,11 +3,16 @@ module Spree
|
|
|
3
3
|
module V3
|
|
4
4
|
module Admin
|
|
5
5
|
class MarketSerializer < V3::MarketSerializer
|
|
6
|
-
|
|
6
|
+
# The Store API keeps this deprecated name until 6.1.
|
|
7
|
+
_attributes.delete(:country_isos)
|
|
8
|
+
|
|
9
|
+
typelize tax_provider: [:string, nullable: true, comment: 'Tax provider; null uses the store default. Built-in: internal. Provider gems register more.']
|
|
10
|
+
|
|
11
|
+
attributes created_at: :iso8601, updated_at: :iso8601
|
|
7
12
|
|
|
8
13
|
# Which tax engine computes for this market. Nil means the store-wide
|
|
9
14
|
# default; the selectable values come from /admin/tax_providers.
|
|
10
|
-
|
|
15
|
+
api_type_attributes :tax_provider
|
|
11
16
|
|
|
12
17
|
many :countries,
|
|
13
18
|
resource: proc { Spree.api.admin_country_serializer },
|
|
@@ -52,14 +52,13 @@ module Spree
|
|
|
52
52
|
# (a category image, a store logo) accepts on write. Handing it over
|
|
53
53
|
# lets those fields adopt a library file, sharing the blob instead of
|
|
54
54
|
# uploading a second copy — the same economics as placing media on a
|
|
55
|
-
# product, through endpoints that need no change.
|
|
55
|
+
# product, through endpoints that need no change. Minted fresh, with
|
|
56
|
+
# the same expiry as an upload, on every read.
|
|
56
57
|
attribute :signed_id do |asset|
|
|
57
|
-
asset.attachment_blob
|
|
58
|
+
Spree::Uploads.signed_id_for(asset.attachment_blob) if asset.attachment_blob
|
|
58
59
|
end
|
|
59
60
|
|
|
60
|
-
|
|
61
|
-
asset.viewable&.prefixed_id
|
|
62
|
-
end
|
|
61
|
+
prefixed_id_attributes :viewable
|
|
63
62
|
|
|
64
63
|
# Forces Content-Disposition: attachment so admins downloading from
|
|
65
64
|
# cloud storage (S3) get a save-as instead of an inline view. Mirrors
|
|
@@ -19,9 +19,7 @@ module Spree
|
|
|
19
19
|
|
|
20
20
|
# Lets the dashboard hide destructive controls instead of offering a
|
|
21
21
|
# delete that the model will refuse.
|
|
22
|
-
attribute :can_be_deleted
|
|
23
|
-
reason.can_be_deleted?
|
|
24
|
-
end
|
|
22
|
+
attribute :can_be_deleted, &:can_be_deleted?
|
|
25
23
|
end
|
|
26
24
|
end
|
|
27
25
|
end
|
|
@@ -9,6 +9,8 @@ module Spree
|
|
|
9
9
|
# place and this adds only what an operator needs on top: the payment
|
|
10
10
|
# shares, and the timestamps every admin surface carries.
|
|
11
11
|
class OrderGroupSerializer < V3::OrderGroupSerializer
|
|
12
|
+
without_formatted_money
|
|
13
|
+
|
|
12
14
|
typelize customer_id: 'string | null',
|
|
13
15
|
cart_id: 'string | null',
|
|
14
16
|
seller_count: :number,
|
|
@@ -17,9 +19,7 @@ module Spree
|
|
|
17
19
|
store_owner_notification_delivered: :boolean,
|
|
18
20
|
created_at: :string, updated_at: :string
|
|
19
21
|
|
|
20
|
-
|
|
21
|
-
group.customer&.prefixed_id
|
|
22
|
-
end
|
|
22
|
+
prefixed_id_attributes :customer
|
|
23
23
|
|
|
24
24
|
attribute :cart_id do |group|
|
|
25
25
|
Spree::Cart.prefixed_id_for(group.cart_id)
|
|
@@ -28,13 +28,9 @@ module Spree
|
|
|
28
28
|
# How many sellers this checkout reached — the operator's headline
|
|
29
29
|
# question about a group, and cheaper than counting the orders client
|
|
30
30
|
# side once a group is large.
|
|
31
|
-
|
|
32
|
-
group.seller_count
|
|
33
|
-
end
|
|
31
|
+
attributes :seller_count
|
|
34
32
|
|
|
35
|
-
attribute :includes_first_party
|
|
36
|
-
group.includes_first_party?
|
|
37
|
-
end
|
|
33
|
+
attribute :includes_first_party, &:includes_first_party?
|
|
38
34
|
|
|
39
35
|
# A split checkout is confirmed once, from here — every child order
|
|
40
36
|
# places silently, so their own flags are false and only the group
|
|
@@ -12,8 +12,7 @@ module Spree
|
|
|
12
12
|
channel_id: :string,
|
|
13
13
|
position: :number,
|
|
14
14
|
active: :boolean,
|
|
15
|
-
preferences: 'Record<string, unknown>'
|
|
16
|
-
preference_schema: "Array<{ key: string; type: string; default: unknown; choices?: string[] }>"
|
|
15
|
+
preferences: 'Record<string, unknown>'
|
|
17
16
|
|
|
18
17
|
attributes :position, :active
|
|
19
18
|
attributes created_at: :iso8601, updated_at: :iso8601
|
|
@@ -22,12 +21,9 @@ module Spree
|
|
|
22
21
|
rule.class.api_type
|
|
23
22
|
end
|
|
24
23
|
|
|
25
|
-
|
|
26
|
-
rule.channel&.prefixed_id
|
|
27
|
-
end
|
|
24
|
+
prefixed_id_attributes :channel
|
|
28
25
|
|
|
29
26
|
attribute :preferences, &:serialized_preferences
|
|
30
|
-
attribute :preference_schema, &:serialized_preference_schema
|
|
31
27
|
|
|
32
28
|
end
|
|
33
29
|
end
|
|
@@ -5,6 +5,8 @@ module Spree
|
|
|
5
5
|
# Admin API Order Serializer
|
|
6
6
|
# Full order data including admin-only fields
|
|
7
7
|
class OrderSerializer < V3::OrderSerializer
|
|
8
|
+
without_formatted_money
|
|
9
|
+
|
|
8
10
|
include Concerns::ExternalReferencesAttribute
|
|
9
11
|
|
|
10
12
|
|
|
@@ -16,37 +18,23 @@ module Spree
|
|
|
16
18
|
|
|
17
19
|
# The Admin API has no guest gating — money fields inherited from the
|
|
18
20
|
# store serializer are always present, so override their nullability.
|
|
19
|
-
typelize item_total: [:string, nullable: false],
|
|
20
|
-
delivery_total: [:string, nullable: false],
|
|
21
|
-
adjustment_total: [:string, nullable: false],
|
|
22
|
-
discount_total: [:string, nullable: false],
|
|
23
|
-
tax_total: [:string, nullable: false],
|
|
24
|
-
included_tax_total: [:string, nullable: false],
|
|
25
|
-
additional_tax_total: [:string, nullable: false],
|
|
26
|
-
store_credit_total: [:string, nullable: false],
|
|
27
|
-
gift_card_total: [:string, nullable: false],
|
|
28
|
-
fee_total: [:string, nullable: false],
|
|
29
|
-
total: [:string, nullable: false],
|
|
30
|
-
amount_due: [:string, nullable: false]
|
|
31
|
-
|
|
32
|
-
# Back-office only: what the marketplace earned on this sale — the fee,
|
|
33
|
-
# the tax charged on it, and the two together. Never on the store
|
|
34
|
-
# serializer: a commission settles between the platform and the
|
|
35
|
-
# seller, and the shopper does not pay it.
|
|
36
|
-
#
|
|
37
|
-
# The tax stands on its own because it is separately reportable —
|
|
38
|
-
# the platform files it as output tax on a B2B supply to the seller.
|
|
39
|
-
typelize commission_amount_total: [:string, nullable: false],
|
|
40
|
-
display_commission_amount_total: [:string, nullable: false],
|
|
41
|
-
commission_tax_total: [:string, nullable: false],
|
|
42
|
-
display_commission_tax_total: [:string, nullable: false],
|
|
43
|
-
commission_total: [:string, nullable: false],
|
|
44
|
-
display_commission_total: [:string, nullable: false]
|
|
21
|
+
typelize item_total: [:string, nullable: false],
|
|
22
|
+
delivery_total: [:string, nullable: false],
|
|
23
|
+
adjustment_total: [:string, nullable: false],
|
|
24
|
+
discount_total: [:string, nullable: false],
|
|
25
|
+
tax_total: [:string, nullable: false],
|
|
26
|
+
included_tax_total: [:string, nullable: false],
|
|
27
|
+
additional_tax_total: [:string, nullable: false],
|
|
28
|
+
store_credit_total: [:string, nullable: false],
|
|
29
|
+
gift_card_total: [:string, nullable: false],
|
|
30
|
+
fee_total: [:string, nullable: false],
|
|
31
|
+
total: [:string, nullable: false],
|
|
32
|
+
amount_due: [:string, nullable: false]
|
|
45
33
|
|
|
46
34
|
typelize status: [:string, enum: Spree::Order::STATUSES],
|
|
47
35
|
last_ip_address: [:string, nullable: true],
|
|
48
36
|
considered_risky: :boolean, confirmation_delivered: :boolean,
|
|
49
|
-
store_owner_notification_delivered: :boolean,
|
|
37
|
+
store_owner_notification_delivered: [:boolean, nullable: true],
|
|
50
38
|
internal_note: [:string, nullable: true], internal_note_html: [:string, nullable: true],
|
|
51
39
|
approver_id: [:string, nullable: true],
|
|
52
40
|
approver_type: [:string, nullable: true, enum: Spree::Actor::BUILT_IN_KINDS, enum_type_name: 'ActorKind'],
|
|
@@ -59,24 +47,34 @@ module Spree
|
|
|
59
47
|
cancel_reason_id: [:string, nullable: true],
|
|
60
48
|
cancel_reason_name: [:string, nullable: true],
|
|
61
49
|
cancel_note: [:string, nullable: true],
|
|
62
|
-
payment_total: :string, display_payment_total: :string,
|
|
63
50
|
tags: [:string, multi: true],
|
|
64
51
|
metadata: 'Record<string, unknown>'
|
|
65
52
|
|
|
66
53
|
# Admin-only attributes
|
|
67
54
|
attributes :status, :last_ip_address, :considered_risky,
|
|
68
55
|
:confirmation_delivered, :store_owner_notification_delivered,
|
|
69
|
-
:
|
|
70
|
-
:cancel_note,
|
|
71
|
-
:commission_amount_total, :display_commission_amount_total,
|
|
72
|
-
:commission_tax_total, :display_commission_tax_total,
|
|
73
|
-
:commission_total, :display_commission_total,
|
|
56
|
+
:metadata, :cancel_note,
|
|
74
57
|
canceled_at: :iso8601, approved_at: :iso8601,
|
|
75
58
|
created_at: :iso8601, updated_at: :iso8601
|
|
76
59
|
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
60
|
+
money_attributes :payment_total
|
|
61
|
+
typelize payment_total: [:string, nullable: false]
|
|
62
|
+
|
|
63
|
+
# Back-office only: what the marketplace earned on this sale — the fee,
|
|
64
|
+
# the tax charged on it, and the two together. Never on the store
|
|
65
|
+
# serializer: a commission settles between the platform and the
|
|
66
|
+
# seller, and the shopper does not pay it.
|
|
67
|
+
#
|
|
68
|
+
# The tax stands on its own because it is separately reportable —
|
|
69
|
+
# the platform files it as output tax on a B2B supply to the seller.
|
|
70
|
+
money_attributes :commission_amount_total,
|
|
71
|
+
:commission_tax_total,
|
|
72
|
+
:commission_total
|
|
73
|
+
typelize commission_amount_total: [:string, nullable: false],
|
|
74
|
+
commission_tax_total: [:string, nullable: false],
|
|
75
|
+
commission_total: [:string, nullable: false]
|
|
76
|
+
|
|
77
|
+
prefixed_id_attributes :preferred_stock_location
|
|
80
78
|
|
|
81
79
|
# Our own endpoint rather than a pre-signed storage URL: the
|
|
82
80
|
# controller streams the bytes, so admin auth runs on every download
|
|
@@ -90,9 +88,7 @@ module Spree
|
|
|
90
88
|
# Which company node the order is for, so the dashboard can show and
|
|
91
89
|
# change it. Read back from the column rather than #resolved_company:
|
|
92
90
|
# a placed order must report what it was stamped with.
|
|
93
|
-
|
|
94
|
-
order.company&.prefixed_id
|
|
95
|
-
end
|
|
91
|
+
prefixed_id_attributes :company
|
|
96
92
|
|
|
97
93
|
attribute :company_name do |order|
|
|
98
94
|
order.company&.name
|
|
@@ -100,9 +96,7 @@ module Spree
|
|
|
100
96
|
|
|
101
97
|
# Whose sale this is — nil on the operator's own goods. The full
|
|
102
98
|
# profile is `?expand=seller`.
|
|
103
|
-
|
|
104
|
-
order.seller&.prefixed_id
|
|
105
|
-
end
|
|
99
|
+
prefixed_id_attributes :seller
|
|
106
100
|
|
|
107
101
|
one :seller,
|
|
108
102
|
resource: proc { Spree.api.admin_seller_serializer },
|
|
@@ -136,9 +130,7 @@ module Spree
|
|
|
136
130
|
# secret key names the key.
|
|
137
131
|
actor_attributes :approver, :canceler, :created_by
|
|
138
132
|
|
|
139
|
-
|
|
140
|
-
order.cancel_reason&.prefixed_id
|
|
141
|
-
end
|
|
133
|
+
prefixed_id_attributes :cancel_reason
|
|
142
134
|
|
|
143
135
|
# The reason's name alongside its id, so an order list can show why
|
|
144
136
|
# each canceled order was called off without expanding a record per
|
|
@@ -147,9 +139,7 @@ module Spree
|
|
|
147
139
|
order.cancel_reason&.name
|
|
148
140
|
end
|
|
149
141
|
|
|
150
|
-
|
|
151
|
-
order.customer&.prefixed_id
|
|
152
|
-
end
|
|
142
|
+
prefixed_id_attributes :customer
|
|
153
143
|
|
|
154
144
|
# Override inherited associations to use admin serializers
|
|
155
145
|
# Renamed from the store's `discounts` key: on the admin surface that
|
|
@@ -39,9 +39,7 @@ module Spree
|
|
|
39
39
|
# Whose packaging this is: a seller's own, or (null) the
|
|
40
40
|
# marketplace's shared vocabulary
|
|
41
41
|
# (docs/plans/6.0-seller-package-types.md).
|
|
42
|
-
|
|
43
|
-
package_type.seller&.prefixed_id
|
|
44
|
-
end
|
|
42
|
+
prefixed_id_attributes :seller
|
|
45
43
|
|
|
46
44
|
attribute :seller_name do |package_type|
|
|
47
45
|
package_type.seller&.name
|
|
@@ -4,24 +4,27 @@ module Spree
|
|
|
4
4
|
module Admin
|
|
5
5
|
class PaymentMethodSerializer < V3::PaymentMethodSerializer
|
|
6
6
|
typelize active: :boolean,
|
|
7
|
-
auto_capture: [:boolean, nullable: true],
|
|
8
7
|
capture_method: "'checkout' | 'on_dispatch' | 'manual' | null",
|
|
9
8
|
resolved_capture_method: "'checkout' | 'on_dispatch' | 'manual'",
|
|
10
9
|
storefront_visible: :boolean,
|
|
11
10
|
position: :number,
|
|
12
11
|
metadata: 'Record<string, unknown>',
|
|
13
12
|
preferences: 'Record<string, unknown>',
|
|
14
|
-
|
|
13
|
+
logo_url: [:string, nullable: true],
|
|
14
|
+
docs_url: [:string, nullable: true],
|
|
15
|
+
third_party: :boolean
|
|
15
16
|
|
|
16
17
|
# Null capture_method means the method inherits from its store;
|
|
17
18
|
# resolved_capture_method is what actually applies, so the dashboard
|
|
18
19
|
# can show the inherited value.
|
|
19
|
-
attributes :metadata, :active, :
|
|
20
|
+
attributes :metadata, :active, :capture_method, :resolved_capture_method,
|
|
20
21
|
:storefront_visible, :position,
|
|
21
22
|
created_at: :iso8601, updated_at: :iso8601
|
|
22
23
|
|
|
23
24
|
attribute :preferences, &:serialized_preferences
|
|
24
|
-
attribute
|
|
25
|
+
attribute(:logo_url) { |payment_method| payment_method.class.logo_url }
|
|
26
|
+
attribute(:docs_url) { |payment_method| payment_method.class.docs_url }
|
|
27
|
+
attribute(:third_party) { |payment_method| payment_method.class.third_party? }
|
|
25
28
|
end
|
|
26
29
|
end
|
|
27
30
|
end
|
|
@@ -3,12 +3,13 @@ module Spree
|
|
|
3
3
|
module V3
|
|
4
4
|
module Admin
|
|
5
5
|
class PaymentSerializer < V3::PaymentSerializer
|
|
6
|
+
without_formatted_money
|
|
7
|
+
|
|
6
8
|
# The Admin API has no guest gating — money fields inherited from the
|
|
7
9
|
# store serializer are always present, so override their nullability.
|
|
8
|
-
typelize amount: [:string, nullable: false]
|
|
10
|
+
typelize amount: [:string, nullable: false]
|
|
9
11
|
|
|
10
12
|
typelize metadata: 'Record<string, unknown>',
|
|
11
|
-
captured_amount: :string,
|
|
12
13
|
order_id: [:string, nullable: true],
|
|
13
14
|
avs_response: [:string, nullable: true],
|
|
14
15
|
cvv_response_code: [:string, nullable: true],
|
|
@@ -17,13 +18,10 @@ module Spree
|
|
|
17
18
|
attributes :metadata, :avs_response, :cvv_response_code, :cvv_response_message,
|
|
18
19
|
created_at: :iso8601, updated_at: :iso8601
|
|
19
20
|
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
end
|
|
21
|
+
money_attributes :captured_amount
|
|
22
|
+
typelize captured_amount: [:string, nullable: false]
|
|
23
23
|
|
|
24
|
-
|
|
25
|
-
payment.order&.prefixed_id
|
|
26
|
-
end
|
|
24
|
+
prefixed_id_attributes :order
|
|
27
25
|
|
|
28
26
|
# Override inherited associations to use admin serializers
|
|
29
27
|
one :payment_method, resource: proc { Spree.api.admin_payment_method_serializer }, if: proc { expand?('payment_method') }
|