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
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
module Spree
|
|
2
|
+
module Api
|
|
3
|
+
module V3
|
|
4
|
+
module Admin
|
|
5
|
+
# A variant and quantity the `create_line_items` promotion action adds.
|
|
6
|
+
class PromotionActionLineItemRequestSchema < Spree::Api::V3::RequestSchema
|
|
7
|
+
publishes 'PromotionActionLineItemParams'
|
|
8
|
+
|
|
9
|
+
attribute :variant_id, :id, required: true
|
|
10
|
+
attribute :quantity, :integer, required: true
|
|
11
|
+
end
|
|
12
|
+
end
|
|
13
|
+
end
|
|
14
|
+
end
|
|
15
|
+
end
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
module Spree
|
|
2
|
+
module Api
|
|
3
|
+
module V3
|
|
4
|
+
module Admin
|
|
5
|
+
# The keys of a promotion action beyond `type`, shared by the promotion action endpoints and the `actions` written with a promotion.
|
|
6
|
+
class PromotionActionRequestSchema < Spree::Api::V3::RequestSchema
|
|
7
|
+
attribute :preferences, :hash,
|
|
8
|
+
description: "Values for the action kind's settings schema, from `GET /promotion_actions/types`."
|
|
9
|
+
attribute :calculator, :object, shape: Spree::Api::V3::Admin::PromotionActionCalculatorRequestSchema,
|
|
10
|
+
permit: false,
|
|
11
|
+
description: 'For adjustment actions.'
|
|
12
|
+
attribute :line_items, :array, of: Spree::Api::V3::Admin::PromotionActionLineItemRequestSchema,
|
|
13
|
+
permit: false,
|
|
14
|
+
description: 'For `create_line_items`: the variants to add and their quantities. Variants left out are removed.'
|
|
15
|
+
end
|
|
16
|
+
end
|
|
17
|
+
end
|
|
18
|
+
end
|
|
19
|
+
end
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
module Spree
|
|
2
|
+
module Api
|
|
3
|
+
module V3
|
|
4
|
+
module Admin
|
|
5
|
+
# The keys of a promotion rule or action beyond `type`, shared by the
|
|
6
|
+
# nested promotion rule and action endpoints and by the `rules` and
|
|
7
|
+
# `actions` written with a promotion. Kind-specific keys are read
|
|
8
|
+
# per kind from its `additional_permitted_attributes`, so they are
|
|
9
|
+
# documented here and left out of the permit list.
|
|
10
|
+
class PromotionRuleRequestSchema < Spree::Api::V3::RequestSchema
|
|
11
|
+
attribute :preferences, :hash,
|
|
12
|
+
description: "Values for the rule kind's settings schema, from `GET /promotion_rules/types`."
|
|
13
|
+
attribute :product_ids, :array, of: :id, permit: false, description: 'For the `product` rule.'
|
|
14
|
+
attribute :category_ids, :array, of: :id, permit: false, description: 'For the `category` rule.'
|
|
15
|
+
attribute :customer_ids, :array, of: :id,
|
|
16
|
+
permit: false,
|
|
17
|
+
description: 'For the `user` rule: the customers who qualify.'
|
|
18
|
+
end
|
|
19
|
+
end
|
|
20
|
+
end
|
|
21
|
+
end
|
|
22
|
+
end
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
module Spree
|
|
2
|
+
module Api
|
|
3
|
+
module V3
|
|
4
|
+
module Admin
|
|
5
|
+
# A reason staff pick from: claim, refund, return and order
|
|
6
|
+
# cancellation reasons all take the same body.
|
|
7
|
+
class ReasonRequestSchema < Spree::Api::V3::RequestSchema
|
|
8
|
+
attribute :name, :string, required: true, on: :create
|
|
9
|
+
attribute :active, :boolean, description: 'Whether the reason is offered on new records.'
|
|
10
|
+
end
|
|
11
|
+
end
|
|
12
|
+
end
|
|
13
|
+
end
|
|
14
|
+
end
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
module Spree
|
|
2
|
+
module Api
|
|
3
|
+
module V3
|
|
4
|
+
module Admin
|
|
5
|
+
# A customer's or a company's tax registration, as staff write it.
|
|
6
|
+
class TaxIdentifierRequestSchema < Spree::Api::V3::RequestSchema
|
|
7
|
+
attribute :kind, :string,
|
|
8
|
+
example: 'gb_vat',
|
|
9
|
+
description: "#{Spree::Api::V3::TaxIdentifierRequestSchema::KIND_DESCRIPTION}"
|
|
10
|
+
attribute :value, :string, example: 'GB123456789'
|
|
11
|
+
end
|
|
12
|
+
end
|
|
13
|
+
end
|
|
14
|
+
end
|
|
15
|
+
end
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
module Spree
|
|
2
|
+
module Api
|
|
3
|
+
module V3
|
|
4
|
+
# A custom field value written inline with its owner (product, category, seller…).
|
|
5
|
+
class CustomFieldValueRequestSchema < Spree::Api::V3::RequestSchema
|
|
6
|
+
publishes 'CustomFieldValueParams'
|
|
7
|
+
|
|
8
|
+
attribute :id, :id
|
|
9
|
+
attribute :custom_field_definition_id, :id
|
|
10
|
+
attribute :value, :any,
|
|
11
|
+
description: 'A scalar for text, number and boolean fields; a list or a hash for JSON fields.'
|
|
12
|
+
end
|
|
13
|
+
end
|
|
14
|
+
end
|
|
15
|
+
end
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
module Spree
|
|
2
|
+
module Api
|
|
3
|
+
module V3
|
|
4
|
+
# A file sent to `POST /files` (Spree::Api::V3::FileUploads): its
|
|
5
|
+
# details for a direct upload, or its bytes in a multipart request.
|
|
6
|
+
class FileUploadRequestSchema < Spree::Api::V3::RequestSchema
|
|
7
|
+
attribute :filename, :string, required: true, example: 'registration.pdf'
|
|
8
|
+
attribute :content_type, :string, required: true, example: 'application/pdf'
|
|
9
|
+
attribute :byte_size, :integer, example: 51_234
|
|
10
|
+
attribute :checksum, :string,
|
|
11
|
+
example: 'rL0Y20zC+Fzt72VPzMSk2A==',
|
|
12
|
+
description: 'Base64-encoded MD5 digest of the file; the storage service checks the bytes against it.'
|
|
13
|
+
attribute :visibility, :string,
|
|
14
|
+
choices: Spree::FileUpload::VISIBILITIES,
|
|
15
|
+
description: '`public` (the default) for images, videos and CSV files anyone may fetch, `private` for any type.'
|
|
16
|
+
attribute :file, :string, format: :binary, description: 'The bytes, for a multipart upload.'
|
|
17
|
+
end
|
|
18
|
+
end
|
|
19
|
+
end
|
|
20
|
+
end
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
module Spree
|
|
2
|
+
module Api
|
|
3
|
+
module V3
|
|
4
|
+
# What a media row itself carries, whichever endpoint writes it. Not
|
|
5
|
+
# published on its own: each endpoint adds how the file arrives.
|
|
6
|
+
class MediaRequestSchema < Spree::Api::V3::RequestSchema
|
|
7
|
+
attribute :alt, :string, nullable: true, example: 'Front view'
|
|
8
|
+
attribute :position, :integer, example: 1
|
|
9
|
+
attribute :media_type, :string,
|
|
10
|
+
choices: Spree::Media::MEDIA_TYPES,
|
|
11
|
+
example: 'image',
|
|
12
|
+
description: 'Defaults to `image`. `video` needs a `signed_id`; `external_video` needs an `external_video_url`.'
|
|
13
|
+
attribute :external_video_url, :string,
|
|
14
|
+
nullable: true,
|
|
15
|
+
description: 'YouTube or Vimeo link. Required when `media_type` is `external_video`.'
|
|
16
|
+
attribute :poster_signed_id, :string,
|
|
17
|
+
description: "A `signed_id` from `files.upload()` for a video's poster frame."
|
|
18
|
+
attribute :focal_point_x, :number,
|
|
19
|
+
nullable: true,
|
|
20
|
+
description: 'Where the image is anchored when cropped, from 0 to 1.'
|
|
21
|
+
attribute :focal_point_y, :number,
|
|
22
|
+
nullable: true,
|
|
23
|
+
description: 'Where the image is anchored when cropped, from 0 to 1.'
|
|
24
|
+
end
|
|
25
|
+
end
|
|
26
|
+
end
|
|
27
|
+
end
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
module Spree
|
|
2
|
+
module Api
|
|
3
|
+
module V3
|
|
4
|
+
# A variant's price in one currency.
|
|
5
|
+
class PriceRequestSchema < Spree::Api::V3::RequestSchema
|
|
6
|
+
publishes 'PriceParams'
|
|
7
|
+
|
|
8
|
+
attribute :currency, :currency, required: true, example: 'USD'
|
|
9
|
+
attribute :amount, :decimal,
|
|
10
|
+
required: true,
|
|
11
|
+
example: '29.99',
|
|
12
|
+
description: 'A canonical decimal string (`"1234.56"`: period decimal, no grouping). The API does not parse localized input.'
|
|
13
|
+
attribute :compare_at_amount, :decimal, nullable: true, example: '39.99'
|
|
14
|
+
end
|
|
15
|
+
end
|
|
16
|
+
end
|
|
17
|
+
end
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
module Spree
|
|
2
|
+
module Api
|
|
3
|
+
module V3
|
|
4
|
+
# A variant's stock at one location.
|
|
5
|
+
class StockLevelRequestSchema < Spree::Api::V3::RequestSchema
|
|
6
|
+
publishes 'StockLevelParams'
|
|
7
|
+
|
|
8
|
+
# Rows are matched by location: an `id` would be ignored.
|
|
9
|
+
attribute :stock_location_id, :id, required: true, description: 'The location holding the stock (`sloc_...`).'
|
|
10
|
+
attribute :count_on_hand, :integer,
|
|
11
|
+
required: true,
|
|
12
|
+
description: 'Units physically at the location, not units available to sell: stock promised to placed orders counts until it ships. Sent as the count the shelf should end at; the API records the difference as an adjustment in the stock history.'
|
|
13
|
+
attribute :backorderable, :boolean,
|
|
14
|
+
description: 'Whether this location sells the variant beyond what it holds.'
|
|
15
|
+
end
|
|
16
|
+
end
|
|
17
|
+
end
|
|
18
|
+
end
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
module Spree
|
|
2
|
+
module Api
|
|
3
|
+
module V3
|
|
4
|
+
module Store
|
|
5
|
+
# An address as a shopper writes it on the Store API: on a cart and in
|
|
6
|
+
# their own address book. Not published on its own.
|
|
7
|
+
class AddressRequestSchema < Spree::Api::V3::RequestSchema
|
|
8
|
+
attribute :first_name, :string
|
|
9
|
+
attribute :last_name, :string
|
|
10
|
+
attribute :company, :string
|
|
11
|
+
attribute :address1, :string
|
|
12
|
+
attribute :address2, :string
|
|
13
|
+
attribute :city, :string
|
|
14
|
+
attribute :postal_code, :string
|
|
15
|
+
attribute :phone, :string
|
|
16
|
+
attribute :country_code, :country,
|
|
17
|
+
example: 'US',
|
|
18
|
+
description: 'ISO 3166-1 alpha-2 country code, such as `US` or `DE`.'
|
|
19
|
+
attribute :state_code, :string,
|
|
20
|
+
example: 'NY',
|
|
21
|
+
description: 'ISO 3166-2 subdivision code without the country prefix, such as `CA` or `NY`.'
|
|
22
|
+
attribute :state_name, :string, description: 'The state name, for countries without predefined states.'
|
|
23
|
+
attribute :country_iso, :string, deprecated: 'Use `country_code`. Removed in 6.1.'
|
|
24
|
+
attribute :state_abbr, :string, deprecated: 'Use `state_code`. Removed in 6.1.'
|
|
25
|
+
end
|
|
26
|
+
end
|
|
27
|
+
end
|
|
28
|
+
end
|
|
29
|
+
end
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
module Spree
|
|
2
|
+
module Api
|
|
3
|
+
module V3
|
|
4
|
+
# A tax registration. Each endpoint publishes it under its own name
|
|
5
|
+
# (`TaxIdentifierParams`, `SellerTaxIdentifierParams`). `kind` is
|
|
6
|
+
# registry-driven, so a plain string: any kind is stored, and one with a
|
|
7
|
+
# validator in Spree.tax_identifier_validators is checked by it.
|
|
8
|
+
class TaxIdentifierRequestSchema < Spree::Api::V3::RequestSchema
|
|
9
|
+
KIND_DESCRIPTION = 'The registration the number belongs to, such as `eu_vat` or `gb_vat`. ' \
|
|
10
|
+
'Any kind is accepted; one with a registered validator is checked by it. ' \
|
|
11
|
+
'Built-in: `eu_vat`. Extensions may register more.'.freeze
|
|
12
|
+
|
|
13
|
+
attribute :kind, :string, required: true, example: 'eu_vat', description: KIND_DESCRIPTION
|
|
14
|
+
attribute :value, :string, required: true, example: 'DE123456789'
|
|
15
|
+
end
|
|
16
|
+
end
|
|
17
|
+
end
|
|
18
|
+
end
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
module Spree
|
|
2
|
+
module Api
|
|
3
|
+
module V3
|
|
4
|
+
# One option pair of a variant, such as size Small. Option types and values are created when missing.
|
|
5
|
+
class VariantOptionRequestSchema < Spree::Api::V3::RequestSchema
|
|
6
|
+
publishes 'VariantOptionParams'
|
|
7
|
+
|
|
8
|
+
attribute :name, :string, required: true, example: 'size'
|
|
9
|
+
attribute :value, :string, required: true, example: 'Small'
|
|
10
|
+
end
|
|
11
|
+
end
|
|
12
|
+
end
|
|
13
|
+
end
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
module Spree
|
|
2
|
+
module Api
|
|
3
|
+
module V3
|
|
4
|
+
# A variant's own attributes, shared by the variant endpoints and the
|
|
5
|
+
# variants nested in a product payload. Not published on its own: each
|
|
6
|
+
# endpoint includes these fields into its own type.
|
|
7
|
+
class VariantRequestSchema < Spree::Api::V3::RequestSchema
|
|
8
|
+
attribute :sku, :string
|
|
9
|
+
attribute :barcode, :string
|
|
10
|
+
attribute :cost_price, :decimal, nullable: true
|
|
11
|
+
attribute :cost_currency, :currency
|
|
12
|
+
attribute :weight, :number, nullable: true
|
|
13
|
+
attribute :height, :number, nullable: true
|
|
14
|
+
attribute :width, :number, nullable: true
|
|
15
|
+
attribute :depth, :number, nullable: true
|
|
16
|
+
attribute :weight_unit, :string, choices: Spree::Variant::WEIGHT_UNITS
|
|
17
|
+
attribute :dimensions_unit, :string, choices: Spree::Variant::DIMENSION_UNITS
|
|
18
|
+
attribute :hs_code, :string
|
|
19
|
+
attribute :customs_description, :string
|
|
20
|
+
attribute :country_of_origin, :country
|
|
21
|
+
attribute :minimum_order_quantity, :integer, nullable: true
|
|
22
|
+
attribute :order_multiple, :integer, nullable: true
|
|
23
|
+
attribute :purchase_unit, :string
|
|
24
|
+
attribute :units_per_carton, :integer, nullable: true, description: 'How many units fill one carton.'
|
|
25
|
+
attribute :carton_package_type_id, :id,
|
|
26
|
+
nullable: true,
|
|
27
|
+
description: 'The carton this variant is packed into: a package type of kind `carton`. Its dimensions are shared by every product packed the same way, so a corrected carton size fixes all of them at once.'
|
|
28
|
+
attribute :carton_weight, :number,
|
|
29
|
+
nullable: true,
|
|
30
|
+
description: "What one packed carton weighs, in the variant's weight unit."
|
|
31
|
+
attribute :cartons_per_pallet, :integer, nullable: true, description: 'How many cartons stack on one pallet.'
|
|
32
|
+
attribute :seller_id, :id
|
|
33
|
+
attribute :delivery_profile_id, :id, nullable: true
|
|
34
|
+
attribute :track_inventory, :boolean
|
|
35
|
+
attribute :preorderable, :boolean,
|
|
36
|
+
description: "Sell this variant before it's in stock. Adds the pre-order label and ships-by promise; the cap comes from `backorder_limit`, an incoming stock count, or backorder."
|
|
37
|
+
attribute :preorder_ships_at, :datetime,
|
|
38
|
+
nullable: true,
|
|
39
|
+
description: 'The "ships by" date shown to customers while the variant is a pre-order. Once it passes, the variant is no longer a pre-order. Null clears it.'
|
|
40
|
+
attribute :backorder_limit, :integer,
|
|
41
|
+
nullable: true,
|
|
42
|
+
description: 'Maximum units sellable beyond available stock, capping backorders and pre-orders. Null is unlimited.'
|
|
43
|
+
attribute :tax_category_id, :id
|
|
44
|
+
attribute :position, :integer
|
|
45
|
+
attribute :prices, :array, of: Spree::Api::V3::PriceRequestSchema,
|
|
46
|
+
description: 'Per-currency prices. Upserted by currency.'
|
|
47
|
+
attribute :stock_levels, :array, of: Spree::Api::V3::StockLevelRequestSchema,
|
|
48
|
+
description: 'Stock per location. Upserted by location; omitted locations are removed.'
|
|
49
|
+
end
|
|
50
|
+
end
|
|
51
|
+
end
|
|
52
|
+
end
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
module Spree
|
|
2
|
+
module Api
|
|
3
|
+
module V3
|
|
4
|
+
# The money summary a cart, an order and a multi-seller purchase all
|
|
5
|
+
# carry, declared once so a storefront renders any of them with one
|
|
6
|
+
# component, and a fix to one is a fix to all three.
|
|
7
|
+
#
|
|
8
|
+
# Every amount is nulled for a guest the storefront hides prices from,
|
|
9
|
+
# the payments' own included.
|
|
10
|
+
module PurchaseSummary
|
|
11
|
+
extend ActiveSupport::Concern
|
|
12
|
+
|
|
13
|
+
included do
|
|
14
|
+
typelize covered_by_store_credit: :boolean
|
|
15
|
+
|
|
16
|
+
money_attributes :item_total, :display_item_total,
|
|
17
|
+
:discount_total, :display_discount_total,
|
|
18
|
+
:tax_total, :display_tax_total,
|
|
19
|
+
:included_tax_total, :display_included_tax_total,
|
|
20
|
+
:additional_tax_total, :display_additional_tax_total,
|
|
21
|
+
:delivery_total, :display_delivery_total,
|
|
22
|
+
:fee_total, :display_fee_total,
|
|
23
|
+
:gift_card_total, :display_gift_card_total,
|
|
24
|
+
:store_credit_total, :display_store_credit_total,
|
|
25
|
+
:total, :display_total,
|
|
26
|
+
:amount_due, :display_amount_due,
|
|
27
|
+
descriptions: {
|
|
28
|
+
item_total: 'The line items: each price times its quantity, before discounts, fees and delivery.',
|
|
29
|
+
discount_total: 'What promotions take off, as a negative amount. Manual discounts are not included.',
|
|
30
|
+
tax_total: 'All tax, both included in prices and added on top.',
|
|
31
|
+
included_tax_total: 'Tax already included in the prices, as in a store whose prices are tax-inclusive.',
|
|
32
|
+
additional_tax_total: 'Tax added on top of the prices.',
|
|
33
|
+
delivery_total: 'What delivery costs, before delivery discounts.',
|
|
34
|
+
fee_total: 'Every fee charged, such as handling or a customs duty.',
|
|
35
|
+
gift_card_total: 'What a gift card pays.',
|
|
36
|
+
store_credit_total: 'What store credit pays, apart from gift cards.',
|
|
37
|
+
total: 'What the customer pays in all: items, delivery, fees and added tax, less discounts.',
|
|
38
|
+
amount_due: 'What is left to pay after payments and store credit.'
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
attribute :covered_by_store_credit, &:covered_by_store_credit?
|
|
42
|
+
|
|
43
|
+
many :payments, resource: proc { Spree.api.payment_serializer }
|
|
44
|
+
end
|
|
45
|
+
end
|
|
46
|
+
end
|
|
47
|
+
end
|
|
48
|
+
end
|
|
@@ -6,8 +6,10 @@ module Spree
|
|
|
6
6
|
address1: [:string, nullable: true], address2: [:string, nullable: true],
|
|
7
7
|
city: [:string, nullable: true], postal_code: [:string, nullable: true], phone: [:string, nullable: true],
|
|
8
8
|
company: [:string, nullable: true], state_code: [:string, nullable: true],
|
|
9
|
-
state_abbr: [:string, nullable: true
|
|
10
|
-
|
|
9
|
+
state_abbr: [:string, nullable: true, deprecated: 'Use `state_code`. Removed in 6.1.'],
|
|
10
|
+
state_name: [:string, nullable: true],
|
|
11
|
+
state_text: [:string, nullable: true], country_code: [:string, enum: Spree::IsoData.country_codes, enum_type_name: 'CountryCode'],
|
|
12
|
+
country_iso: [:string, deprecated: 'Use `country_code`. Removed in 6.1.'],
|
|
11
13
|
country_name: :string,
|
|
12
14
|
quick_checkout: :boolean, is_default_billing: :boolean, is_default_shipping: :boolean,
|
|
13
15
|
label: [:string, nullable: true]
|
|
@@ -3,6 +3,9 @@ module Spree
|
|
|
3
3
|
module V3
|
|
4
4
|
module Admin
|
|
5
5
|
class AddressSerializer < V3::AddressSerializer
|
|
6
|
+
# The Store API keeps these deprecated names until 6.1.
|
|
7
|
+
%i[state_abbr country_iso].each { |key| _attributes.delete(key) }
|
|
8
|
+
|
|
6
9
|
typelize customer_id: [:string, nullable: true],
|
|
7
10
|
owner_id: [:string, nullable: true],
|
|
8
11
|
owner_type: [:string, nullable: true],
|
|
@@ -24,18 +27,16 @@ module Spree
|
|
|
24
27
|
address.longitude&.to_f
|
|
25
28
|
end
|
|
26
29
|
|
|
27
|
-
|
|
28
|
-
address.customer_owner&.prefixed_id
|
|
29
|
-
end
|
|
30
|
+
prefixed_id_attributes customer_id: :customer_owner
|
|
30
31
|
|
|
31
32
|
# Who the row belongs to — a customer's book, a company node's, or a
|
|
32
33
|
# seller's billing address. `customer_id` above stays as the
|
|
33
34
|
# customer-only shorthand the customers surface reads.
|
|
34
|
-
|
|
35
|
-
address.owner&.prefixed_id
|
|
36
|
-
end
|
|
35
|
+
prefixed_id_attributes :owner
|
|
37
36
|
|
|
38
|
-
|
|
37
|
+
attribute :owner_type do |address|
|
|
38
|
+
Spree::Base.polymorphic_api_type(address.owner_type)
|
|
39
|
+
end
|
|
39
40
|
end
|
|
40
41
|
end
|
|
41
42
|
end
|
|
@@ -27,17 +27,13 @@ module Spree
|
|
|
27
27
|
created_at: :iso8601, updated_at: :iso8601,
|
|
28
28
|
revoked_at: :iso8601, last_used_at: :iso8601
|
|
29
29
|
|
|
30
|
-
|
|
31
|
-
key.channel&.prefixed_id
|
|
32
|
-
end
|
|
30
|
+
prefixed_id_attributes :channel
|
|
33
31
|
|
|
34
32
|
# Returned only on the create response — `plaintext_token` is held in
|
|
35
33
|
# memory on the model after `generate_token` and is never persisted
|
|
36
34
|
# for secret keys, so we serialize it whenever it's available rather
|
|
37
35
|
# than gating on the action.
|
|
38
|
-
|
|
39
|
-
key.plaintext_token
|
|
40
|
-
end
|
|
36
|
+
attributes :plaintext_token
|
|
41
37
|
|
|
42
38
|
# A key can be minted by another key, which has no email — so the
|
|
43
39
|
# address is answered only for the actors that have one, and
|
|
@@ -3,9 +3,11 @@ module Spree
|
|
|
3
3
|
module V3
|
|
4
4
|
module Admin
|
|
5
5
|
class AppliedPromotionSerializer < V3::AppliedPromotionSerializer
|
|
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
|
attributes created_at: :iso8601, updated_at: :iso8601
|
|
11
13
|
end
|
|
@@ -12,7 +12,9 @@ module Spree
|
|
|
12
12
|
# are redeclared with admin counterparts — admin serializers never
|
|
13
13
|
# reference store serializers.
|
|
14
14
|
class CartSerializer < V3::CartSerializer
|
|
15
|
-
|
|
15
|
+
without_formatted_money
|
|
16
|
+
|
|
17
|
+
%i[fulfillments payments payment_methods gift_card discounts fees number].each { |key| _attributes.delete(key) }
|
|
16
18
|
|
|
17
19
|
typelize completed_at: [:string, nullable: true]
|
|
18
20
|
|
|
@@ -18,9 +18,7 @@ module Spree
|
|
|
18
18
|
assignment.assignable_type.demodulize.underscore
|
|
19
19
|
end
|
|
20
20
|
|
|
21
|
-
|
|
22
|
-
assignment.assignable&.prefixed_id
|
|
23
|
-
end
|
|
21
|
+
prefixed_id_attributes :assignable
|
|
24
22
|
|
|
25
23
|
attribute :assignable_name do |assignment|
|
|
26
24
|
assignment.assignable.try(:name)
|
|
@@ -5,17 +5,12 @@ module Spree
|
|
|
5
5
|
# The least a whole order must come to under a catalog's agreement,
|
|
6
6
|
# in one currency.
|
|
7
7
|
class CatalogOrderMinimumSerializer < V3::BaseSerializer
|
|
8
|
-
typelize currency: :string,
|
|
8
|
+
typelize currency: [:string, enum: Spree::Money::Rounding::CURRENCY_CODES, enum_type_name: 'CurrencyCode']
|
|
9
9
|
|
|
10
10
|
attributes :currency, created_at: :iso8601, updated_at: :iso8601
|
|
11
11
|
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
end
|
|
15
|
-
|
|
16
|
-
attribute :display_amount do |minimum|
|
|
17
|
-
minimum.display_amount.to_s
|
|
18
|
-
end
|
|
12
|
+
money_attributes :amount
|
|
13
|
+
typelize amount: [:string, nullable: false]
|
|
19
14
|
end
|
|
20
15
|
end
|
|
21
16
|
end
|
|
@@ -17,8 +17,7 @@ module Spree
|
|
|
17
17
|
_attributes.delete(:id)
|
|
18
18
|
|
|
19
19
|
typelize id: 'string | null', label: 'string | null', sku: 'string | null',
|
|
20
|
-
|
|
21
|
-
currency: :string, source: [:string, enum: Spree::CatalogPrice::SOURCES], break_count: :number
|
|
20
|
+
currency: [:string, enum: Spree::Money::Rounding::CURRENCY_CODES, enum_type_name: 'CurrencyCode'], source: [:string, enum: Spree::CatalogPrice::SOURCES], break_count: :number
|
|
22
21
|
|
|
23
22
|
# The variant this prices, so a row can name what it is showing —
|
|
24
23
|
# a product's variants can be priced differently, and one figure
|
|
@@ -33,9 +32,9 @@ module Spree
|
|
|
33
32
|
# though it were the only one.
|
|
34
33
|
attributes :currency, :source, :break_count
|
|
35
34
|
|
|
36
|
-
|
|
35
|
+
money_attributes :amount, unit_price: true
|
|
36
|
+
typelize amount: [:string, nullable: false]
|
|
37
37
|
|
|
38
|
-
attributes :display_amount
|
|
39
38
|
|
|
40
39
|
# The ladder itself, so the agreement page can show what a buyer
|
|
41
40
|
# pays at each threshold without opening the price sheet
|
|
@@ -11,11 +11,12 @@ module Spree
|
|
|
11
11
|
class CatalogPriceTierSerializer < V3::BaseSerializer
|
|
12
12
|
_attributes.delete(:id)
|
|
13
13
|
|
|
14
|
-
typelize min_quantity: :number
|
|
14
|
+
typelize min_quantity: :number
|
|
15
15
|
|
|
16
|
-
attributes :min_quantity
|
|
16
|
+
attributes :min_quantity
|
|
17
17
|
|
|
18
|
-
|
|
18
|
+
money_attributes :amount, unit_price: true
|
|
19
|
+
typelize amount: [:string, nullable: false]
|
|
19
20
|
end
|
|
20
21
|
end
|
|
21
22
|
end
|
|
@@ -28,9 +28,7 @@ module Spree
|
|
|
28
28
|
# True when the product's variants carry different terms, so the
|
|
29
29
|
# editor shows "mixed" rather than claiming one variant's pair is
|
|
30
30
|
# the product's.
|
|
31
|
-
attribute :mixed
|
|
32
|
-
term.mixed?
|
|
33
|
-
end
|
|
31
|
+
attribute :mixed, &:mixed?
|
|
34
32
|
end
|
|
35
33
|
end
|
|
36
34
|
end
|
|
@@ -15,9 +15,7 @@ module Spree
|
|
|
15
15
|
attributes :minimum_order_quantity, :order_multiple,
|
|
16
16
|
created_at: :iso8601, updated_at: :iso8601
|
|
17
17
|
|
|
18
|
-
|
|
19
|
-
rule.variant&.prefixed_id
|
|
20
|
-
end
|
|
18
|
+
prefixed_id_attributes :variant
|
|
21
19
|
|
|
22
20
|
attribute :variant_sku do |rule|
|
|
23
21
|
rule.variant&.sku
|
|
@@ -4,16 +4,15 @@ module Spree
|
|
|
4
4
|
module Admin
|
|
5
5
|
class ChannelSerializer < V3::ChannelSerializer
|
|
6
6
|
typelize store_id: :string,
|
|
7
|
-
|
|
8
|
-
preferred_storefront_access: [:string, nullable: true],
|
|
9
|
-
preferred_guest_checkout: [:boolean, nullable: true],
|
|
7
|
+
order_routing_strategy: [:string, nullable: true, comment: 'Order routing strategy; null inherits the store setting. Built-in: rules. Extensions may register more.'],
|
|
10
8
|
stock_location_ids: [:string, multi: true],
|
|
11
9
|
default_catalog_id: [:string, nullable: true]
|
|
12
10
|
|
|
13
|
-
attributes :
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
11
|
+
attributes created_at: :iso8601, updated_at: :iso8601
|
|
12
|
+
|
|
13
|
+
preference_attributes Spree::Channel, except: %i[order_routing_strategy]
|
|
14
|
+
|
|
15
|
+
api_type_attributes :order_routing_strategy
|
|
17
16
|
|
|
18
17
|
# Fulfillment-origin allowlist; empty means every store location
|
|
19
18
|
# serves this channel.
|
|
@@ -23,9 +22,7 @@ module Spree
|
|
|
23
22
|
|
|
24
23
|
# When set, only the default catalog's products are visible on this
|
|
25
24
|
# channel; unset means every publication.
|
|
26
|
-
|
|
27
|
-
record.default_catalog&.prefixed_id
|
|
28
|
-
end
|
|
25
|
+
prefixed_id_attributes :default_catalog
|
|
29
26
|
end
|
|
30
27
|
end
|
|
31
28
|
end
|
|
@@ -5,6 +5,13 @@ module Spree
|
|
|
5
5
|
module V3
|
|
6
6
|
module Admin
|
|
7
7
|
class ClaimLineItemSerializer < V3::ClaimLineItemSerializer
|
|
8
|
+
without_formatted_money
|
|
9
|
+
|
|
10
|
+
# No guest price gating here, so the inherited money fields are always present.
|
|
11
|
+
typelize refund_amount: [:string, nullable: false], paid_amount: [:string, nullable: false],
|
|
12
|
+
pre_tax_amount: [:string, nullable: false], included_tax_total: [:string, nullable: false],
|
|
13
|
+
additional_tax_total: [:string, nullable: false], tax_total: [:string, nullable: false]
|
|
14
|
+
|
|
8
15
|
attributes created_at: :iso8601, updated_at: :iso8601
|
|
9
16
|
|
|
10
17
|
one :variant, resource: proc { Spree.api.admin_variant_serializer }, if: proc { expand?('variant') }
|
|
@@ -11,9 +11,7 @@ module Spree
|
|
|
11
11
|
|
|
12
12
|
# Lets the dashboard hide destructive controls instead of offering a
|
|
13
13
|
# delete that the model will refuse.
|
|
14
|
-
attribute :can_be_deleted
|
|
15
|
-
reason.can_be_deleted?
|
|
16
|
-
end
|
|
14
|
+
attribute :can_be_deleted, &:can_be_deleted?
|
|
17
15
|
end
|
|
18
16
|
end
|
|
19
17
|
end
|
|
@@ -5,6 +5,11 @@ module Spree
|
|
|
5
5
|
module V3
|
|
6
6
|
module Admin
|
|
7
7
|
class ClaimSerializer < V3::ClaimSerializer
|
|
8
|
+
without_formatted_money
|
|
9
|
+
|
|
10
|
+
# No guest price gating here, so the inherited money fields are always present.
|
|
11
|
+
typelize refund_total: [:string, nullable: false]
|
|
12
|
+
|
|
8
13
|
typelize memo: [:string, nullable: true],
|
|
9
14
|
metadata: 'Record<string, unknown>',
|
|
10
15
|
created_by_id: [:string, nullable: true],
|