spree_api 5.6.1 → 6.0.0.beta1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/LICENSE +28 -0
- data/Rakefile +1 -1
- data/app/controllers/concerns/spree/api/v3/address_params.rb +17 -0
- data/app/controllers/concerns/spree/api/v3/admin/product_listing.rb +46 -0
- data/app/controllers/concerns/spree/api/v3/admin/product_membership.rb +110 -0
- data/app/controllers/concerns/spree/api/v3/admin/receivable_actions.rb +68 -0
- data/app/controllers/concerns/spree/api/v3/admin/reporting_authorization.rb +27 -0
- data/app/controllers/concerns/spree/api/v3/admin/role_grant_guard.rb +69 -33
- data/app/controllers/concerns/spree/api/v3/admin/stock_receipt_actions.rb +86 -0
- data/app/controllers/concerns/spree/api/v3/admin/store_context.rb +97 -0
- data/app/controllers/concerns/spree/api/v3/admin/subclassed_resource.rb +12 -6
- data/app/controllers/concerns/spree/api/v3/admin/validation_details.rb +91 -0
- data/app/controllers/concerns/spree/api/v3/admin_authentication.rb +9 -5
- data/app/controllers/concerns/spree/api/v3/api_key_authentication.rb +41 -5
- data/app/controllers/concerns/spree/api/v3/authentication_strategies.rb +48 -0
- data/app/controllers/concerns/spree/api/v3/bulk_operations.rb +4 -6
- data/app/controllers/concerns/spree/api/v3/cart_resolvable.rb +52 -16
- data/app/controllers/concerns/spree/api/v3/company_address_writes.rb +37 -0
- data/app/controllers/concerns/spree/api/v3/current_password_confirmation.rb +41 -0
- data/app/controllers/concerns/spree/api/v3/direct_uploads.rb +35 -0
- data/app/controllers/concerns/spree/api/v3/error_handler.rb +53 -11
- data/app/controllers/concerns/spree/api/v3/idempotent.rb +10 -4
- data/app/controllers/concerns/spree/api/v3/items_payload.rb +54 -0
- data/app/controllers/concerns/spree/api/v3/jwt_authentication.rb +23 -3
- data/app/controllers/concerns/spree/api/v3/key_store_context.rb +31 -0
- data/app/controllers/concerns/spree/api/v3/locale_and_currency.rb +3 -3
- data/app/controllers/concerns/spree/api/v3/order_lock.rb +22 -3
- data/app/controllers/concerns/spree/api/v3/orders/claim_actions.rb +112 -0
- data/app/controllers/concerns/spree/api/v3/orders/delivery_actions.rb +105 -0
- data/app/controllers/concerns/spree/api/v3/orders/exchange_actions.rb +117 -0
- data/app/controllers/concerns/spree/api/v3/orders/fulfillment_actions.rb +157 -0
- data/app/controllers/concerns/spree/api/v3/orders/post_sale_actions.rb +76 -0
- data/app/controllers/concerns/spree/api/v3/orders/return_actions.rb +116 -0
- data/app/controllers/concerns/spree/api/v3/orders/shipping_label_actions.rb +128 -0
- data/app/controllers/concerns/spree/api/v3/params_normalizer.rb +7 -4
- data/app/controllers/concerns/spree/api/v3/permission_serialization.rb +42 -0
- data/app/controllers/concerns/spree/api/v3/rate_limit_headers.rb +40 -6
- data/app/controllers/concerns/spree/api/v3/scoped_authorization.rb +80 -26
- data/app/controllers/concerns/spree/api/v3/seller/auth_cookies.rb +62 -0
- data/app/controllers/concerns/spree/api/v3/seller/seller_context.rb +127 -0
- data/app/controllers/concerns/spree/api/v3/seller_authentication.rb +40 -0
- data/app/controllers/concerns/spree/api/v3/storefront_access.rb +38 -0
- data/app/controllers/concerns/spree/api/v3/streams_shipping_label.rb +37 -0
- data/app/controllers/concerns/spree/api/v3/tax_identifier_validation.rb +41 -0
- data/app/controllers/spree/api/v3/admin/admin_users_controller.rb +11 -14
- data/app/controllers/spree/api/v3/admin/allowed_origins_controller.rb +1 -1
- data/app/controllers/spree/api/v3/admin/api_keys_controller.rb +16 -7
- data/app/controllers/spree/api/v3/admin/auth_controller.rb +138 -22
- data/app/controllers/spree/api/v3/admin/base_controller.rb +2 -0
- data/app/controllers/spree/api/v3/admin/catalog_assignments_controller.rb +27 -0
- data/app/controllers/spree/api/v3/admin/catalogs/base_controller.rb +29 -0
- data/app/controllers/spree/api/v3/admin/catalogs/order_minimums_controller.rb +40 -0
- data/app/controllers/spree/api/v3/admin/catalogs/products_controller.rb +107 -0
- data/app/controllers/spree/api/v3/admin/catalogs/quantity_rules_controller.rb +75 -0
- data/app/controllers/spree/api/v3/admin/catalogs_controller.rb +191 -0
- data/app/controllers/spree/api/v3/admin/categories/products_controller.rb +28 -41
- data/app/controllers/spree/api/v3/admin/categories_controller.rb +16 -7
- data/app/controllers/spree/api/v3/admin/channels_controller.rb +50 -2
- data/app/controllers/spree/api/v3/admin/claim_reasons_controller.rb +25 -0
- data/app/controllers/spree/api/v3/admin/claims_controller.rb +31 -0
- data/app/controllers/spree/api/v3/admin/collection_rules_controller.rb +40 -0
- data/app/controllers/spree/api/v3/admin/collections/products_controller.rb +101 -0
- data/app/controllers/spree/api/v3/admin/collections_controller.rb +56 -0
- data/app/controllers/spree/api/v3/admin/commission_lines_controller.rb +39 -0
- data/app/controllers/spree/api/v3/admin/commission_rates_controller.rb +174 -0
- data/app/controllers/spree/api/v3/admin/companies/addresses_controller.rb +65 -0
- data/app/controllers/spree/api/v3/admin/companies/base_controller.rb +29 -0
- data/app/controllers/spree/api/v3/admin/companies/invitations_controller.rb +56 -0
- data/app/controllers/spree/api/v3/admin/companies/memberships_controller.rb +66 -0
- data/app/controllers/spree/api/v3/admin/companies/tax_exemption_certificates_controller.rb +137 -0
- data/app/controllers/spree/api/v3/admin/companies/tax_identifiers_controller.rb +46 -0
- data/app/controllers/spree/api/v3/admin/companies_controller.rb +59 -0
- data/app/controllers/spree/api/v3/admin/concerns/external_references.rb +166 -0
- data/app/controllers/spree/api/v3/admin/consent_records_controller.rb +31 -0
- data/app/controllers/spree/api/v3/admin/countries_controller.rb +12 -4
- data/app/controllers/spree/api/v3/admin/custom_field_definitions_controller.rb +19 -4
- data/app/controllers/spree/api/v3/admin/custom_fields_controller.rb +5 -5
- data/app/controllers/spree/api/v3/admin/customer_groups_controller.rb +1 -1
- data/app/controllers/spree/api/v3/admin/customers/addresses_controller.rb +4 -4
- data/app/controllers/spree/api/v3/admin/customers/base_controller.rb +1 -1
- data/app/controllers/spree/api/v3/admin/customers/store_credits_controller.rb +2 -3
- data/app/controllers/spree/api/v3/admin/customers/tax_identifiers_controller.rb +43 -0
- data/app/controllers/spree/api/v3/admin/customers_controller.rb +190 -11
- data/app/controllers/spree/api/v3/admin/dashboard_controller.rb +24 -20
- data/app/controllers/spree/api/v3/admin/data_requests_controller.rb +60 -0
- data/app/controllers/spree/api/v3/admin/delivery_method_rules_controller.rb +54 -0
- data/app/controllers/spree/api/v3/admin/delivery_methods/rules_controller.rb +114 -0
- data/app/controllers/spree/api/v3/admin/delivery_methods_controller.rb +243 -0
- data/app/controllers/spree/api/v3/admin/delivery_profiles/origin_groups_controller.rb +80 -0
- data/app/controllers/spree/api/v3/admin/delivery_profiles_controller.rb +107 -0
- data/app/controllers/spree/api/v3/admin/delivery_zones_controller.rb +116 -0
- data/app/controllers/spree/api/v3/admin/digital_links_controller.rb +48 -0
- data/app/controllers/spree/api/v3/admin/direct_uploads_controller.rb +17 -3
- data/app/controllers/spree/api/v3/admin/exchanges_controller.rb +31 -0
- data/app/controllers/spree/api/v3/admin/exports_controller.rb +2 -2
- data/app/controllers/spree/api/v3/admin/gift_card_batches_controller.rb +1 -1
- data/app/controllers/spree/api/v3/admin/gift_cards_controller.rb +3 -2
- data/app/controllers/spree/api/v3/admin/imports_controller.rb +71 -8
- data/app/controllers/spree/api/v3/admin/integrations_controller.rb +67 -0
- data/app/controllers/spree/api/v3/admin/invitation_acceptances_controller.rb +5 -5
- data/app/controllers/spree/api/v3/admin/invitations_controller.rb +5 -1
- data/app/controllers/spree/api/v3/admin/locales_controller.rb +3 -1
- data/app/controllers/spree/api/v3/admin/markets_controller.rb +9 -5
- data/app/controllers/spree/api/v3/admin/me_controller.rb +4 -30
- data/app/controllers/spree/api/v3/admin/media_controller.rb +88 -38
- data/app/controllers/spree/api/v3/admin/media_library_controller.rb +156 -0
- data/app/controllers/spree/api/v3/admin/option_types_controller.rb +1 -0
- data/app/controllers/spree/api/v3/admin/order_cancellation_reasons_controller.rb +25 -0
- data/app/controllers/spree/api/v3/admin/order_groups_controller.rb +43 -0
- data/app/controllers/spree/api/v3/admin/order_routing_rules_controller.rb +1 -1
- data/app/controllers/spree/api/v3/admin/orders/claims_controller.rb +56 -0
- data/app/controllers/spree/api/v3/admin/orders/deliveries_controller.rb +66 -0
- data/app/controllers/spree/api/v3/admin/orders/discount_codes_controller.rb +86 -0
- data/app/controllers/spree/api/v3/admin/orders/discounts_controller.rb +99 -0
- data/app/controllers/spree/api/v3/admin/orders/exchanges_controller.rb +62 -0
- data/app/controllers/spree/api/v3/admin/orders/fees_controller.rb +83 -0
- data/app/controllers/spree/api/v3/admin/orders/fulfillments_controller.rb +45 -67
- data/app/controllers/spree/api/v3/admin/orders/items_controller.rb +40 -22
- data/app/controllers/spree/api/v3/admin/orders/labels_controller.rb +75 -0
- data/app/controllers/spree/api/v3/admin/orders/payments_controller.rb +36 -18
- data/app/controllers/spree/api/v3/admin/orders/refunds_controller.rb +39 -18
- data/app/controllers/spree/api/v3/admin/orders/returns_controller.rb +70 -0
- data/app/controllers/spree/api/v3/admin/orders/store_credits_controller.rb +2 -2
- data/app/controllers/spree/api/v3/admin/orders/tax_identifiers_controller.rb +41 -0
- data/app/controllers/spree/api/v3/admin/orders/tax_lines_controller.rb +32 -0
- data/app/controllers/spree/api/v3/admin/orders_controller.rb +157 -32
- data/app/controllers/spree/api/v3/admin/package_types_controller.rb +39 -0
- data/app/controllers/spree/api/v3/admin/password_resets_controller.rb +1 -1
- data/app/controllers/spree/api/v3/admin/payment_methods_controller.rb +15 -4
- data/app/controllers/spree/api/v3/admin/payout_providers_controller.rb +27 -0
- data/app/controllers/spree/api/v3/admin/permissions_controller.rb +30 -0
- data/app/controllers/spree/api/v3/admin/policies_controller.rb +42 -0
- data/app/controllers/spree/api/v3/admin/price_lists/products_controller.rb +93 -0
- data/app/controllers/spree/api/v3/admin/price_lists_controller.rb +43 -29
- data/app/controllers/spree/api/v3/admin/prices_controller.rb +41 -4
- data/app/controllers/spree/api/v3/admin/product_types_controller.rb +93 -0
- data/app/controllers/spree/api/v3/admin/products/digital_assets_controller.rb +148 -0
- data/app/controllers/spree/api/v3/admin/products/variants_controller.rb +24 -3
- data/app/controllers/spree/api/v3/admin/products_controller.rb +149 -33
- data/app/controllers/spree/api/v3/admin/promotion_actions_controller.rb +6 -2
- data/app/controllers/spree/api/v3/admin/promotion_rules_controller.rb +1 -1
- data/app/controllers/spree/api/v3/admin/promotions_controller.rb +1 -5
- data/app/controllers/spree/api/v3/admin/purchase_orders/stock_receipts_controller.rb +32 -0
- data/app/controllers/spree/api/v3/admin/purchase_orders_controller.rb +161 -0
- data/app/controllers/spree/api/v3/admin/refund_reasons_controller.rb +25 -0
- data/app/controllers/spree/api/v3/admin/reporting/saved_reports_controller.rb +45 -0
- data/app/controllers/spree/api/v3/admin/reporting_controller.rb +95 -0
- data/app/controllers/spree/api/v3/admin/resource_controller.rb +27 -10
- data/app/controllers/spree/api/v3/admin/return_reasons_controller.rb +25 -0
- data/app/controllers/spree/api/v3/admin/returns_controller.rb +31 -0
- data/app/controllers/spree/api/v3/admin/roles_controller.rb +50 -6
- data/app/controllers/spree/api/v3/admin/seller_payouts_controller.rb +83 -0
- data/app/controllers/spree/api/v3/admin/seller_requirement_submissions_controller.rb +139 -0
- data/app/controllers/spree/api/v3/admin/seller_requirements_controller.rb +115 -0
- data/app/controllers/spree/api/v3/admin/seller_transfers_controller.rb +36 -0
- data/app/controllers/spree/api/v3/admin/sellers/balances_controller.rb +44 -0
- data/app/controllers/spree/api/v3/admin/sellers/invitations_controller.rb +77 -0
- data/app/controllers/spree/api/v3/admin/sellers/payouts_controller.rb +107 -0
- data/app/controllers/spree/api/v3/admin/sellers/team_controller.rb +64 -0
- data/app/controllers/spree/api/v3/admin/sellers_controller.rb +197 -0
- data/app/controllers/spree/api/v3/admin/setup_controller.rb +231 -0
- data/app/controllers/spree/api/v3/admin/stock_levels_controller.rb +172 -0
- data/app/controllers/spree/api/v3/admin/stock_locations_controller.rb +3 -2
- data/app/controllers/spree/api/v3/admin/stock_movements_controller.rb +37 -0
- data/app/controllers/spree/api/v3/admin/stock_reservations_controller.rb +1 -1
- data/app/controllers/spree/api/v3/admin/stock_transfers/stock_receipts_controller.rb +31 -0
- data/app/controllers/spree/api/v3/admin/stock_transfers_controller.rb +134 -38
- data/app/controllers/spree/api/v3/admin/store_controller.rb +65 -0
- data/app/controllers/spree/api/v3/admin/store_credits/events_controller.rb +47 -0
- data/app/controllers/spree/api/v3/admin/store_credits_controller.rb +87 -0
- data/app/controllers/spree/api/v3/admin/suppliers_controller.rb +30 -0
- data/app/controllers/spree/api/v3/admin/tags_controller.rb +2 -2
- data/app/controllers/spree/api/v3/admin/tax_categories_controller.rb +4 -0
- data/app/controllers/spree/api/v3/admin/tax_providers_controller.rb +25 -0
- data/app/controllers/spree/api/v3/admin/tax_rates_controller.rb +33 -0
- data/app/controllers/spree/api/v3/admin/tracking_carriers_controller.rb +33 -0
- data/app/controllers/spree/api/v3/admin/translatable_resources_controller.rb +37 -9
- data/app/controllers/spree/api/v3/admin/translations_controller.rb +10 -5
- data/app/controllers/spree/api/v3/admin/translations_coverage_controller.rb +150 -0
- data/app/controllers/spree/api/v3/admin/variants_controller.rb +11 -4
- data/app/controllers/spree/api/v3/admin/webhook_endpoints_controller.rb +1 -1
- data/app/controllers/spree/api/v3/base_controller.rb +59 -16
- data/app/controllers/spree/api/v3/resource_controller.rb +154 -38
- data/app/controllers/spree/api/v3/seller/auth_controller.rb +169 -0
- data/app/controllers/spree/api/v3/seller/balances_controller.rb +35 -0
- data/app/controllers/spree/api/v3/seller/base_controller.rb +25 -0
- data/app/controllers/spree/api/v3/seller/claim_reasons_controller.rb +20 -0
- data/app/controllers/spree/api/v3/seller/countries_controller.rb +38 -0
- data/app/controllers/spree/api/v3/seller/delivery_methods_controller.rb +265 -0
- data/app/controllers/spree/api/v3/seller/delivery_profiles_controller.rb +65 -0
- data/app/controllers/spree/api/v3/seller/delivery_zones_controller.rb +41 -0
- data/app/controllers/spree/api/v3/seller/direct_uploads_controller.rb +21 -0
- data/app/controllers/spree/api/v3/seller/exports_controller.rb +195 -0
- data/app/controllers/spree/api/v3/seller/import_rows_controller.rb +49 -0
- data/app/controllers/spree/api/v3/seller/imports_controller.rb +317 -0
- data/app/controllers/spree/api/v3/seller/invitation_acceptances_controller.rb +152 -0
- data/app/controllers/spree/api/v3/seller/invitations_controller.rb +71 -0
- data/app/controllers/spree/api/v3/seller/me_controller.rb +72 -0
- data/app/controllers/spree/api/v3/seller/onboarding_controller.rb +111 -0
- data/app/controllers/spree/api/v3/seller/order_cancellation_reasons_controller.rb +25 -0
- data/app/controllers/spree/api/v3/seller/orders/base_controller.rb +44 -0
- data/app/controllers/spree/api/v3/seller/orders/claims_controller.rb +45 -0
- data/app/controllers/spree/api/v3/seller/orders/deliveries_controller.rb +38 -0
- data/app/controllers/spree/api/v3/seller/orders/exchanges_controller.rb +50 -0
- data/app/controllers/spree/api/v3/seller/orders/fulfillments_controller.rb +79 -0
- data/app/controllers/spree/api/v3/seller/orders/labels_controller.rb +55 -0
- data/app/controllers/spree/api/v3/seller/orders/notes_controller.rb +82 -0
- data/app/controllers/spree/api/v3/seller/orders/returns_controller.rb +44 -0
- data/app/controllers/spree/api/v3/seller/orders_controller.rb +199 -0
- data/app/controllers/spree/api/v3/seller/package_types_controller.rb +100 -0
- data/app/controllers/spree/api/v3/seller/password_resets_controller.rb +155 -0
- data/app/controllers/spree/api/v3/seller/payouts_controller.rb +47 -0
- data/app/controllers/spree/api/v3/seller/policies_controller.rb +57 -0
- data/app/controllers/spree/api/v3/seller/product_types_controller.rb +35 -0
- data/app/controllers/spree/api/v3/seller/products_controller.rb +394 -0
- data/app/controllers/spree/api/v3/seller/profile_controller.rb +137 -0
- data/app/controllers/spree/api/v3/seller/reasons_controller.rb +45 -0
- data/app/controllers/spree/api/v3/seller/requirement_submissions_controller.rb +95 -0
- data/app/controllers/spree/api/v3/seller/resource_controller.rb +75 -0
- data/app/controllers/spree/api/v3/seller/return_reasons_controller.rb +20 -0
- data/app/controllers/spree/api/v3/seller/stock_locations_controller.rb +56 -0
- data/app/controllers/spree/api/v3/seller/tax_identifiers_controller.rb +48 -0
- data/app/controllers/spree/api/v3/seller/team_controller.rb +103 -0
- data/app/controllers/spree/api/v3/seller/tracking_carriers_controller.rb +35 -0
- data/app/controllers/spree/api/v3/seller/transfers_controller.rb +43 -0
- data/app/controllers/spree/api/v3/store/account/companies_controller.rb +42 -0
- data/app/controllers/spree/api/v3/store/auth_controller.rb +21 -34
- data/app/controllers/spree/api/v3/store/base_controller.rb +4 -0
- data/app/controllers/spree/api/v3/store/carts/discount_codes_controller.rb +24 -2
- data/app/controllers/spree/api/v3/store/carts/fulfillments_controller.rb +41 -15
- data/app/controllers/spree/api/v3/store/carts/items_controller.rb +53 -20
- data/app/controllers/spree/api/v3/store/carts/payment_sessions_controller.rb +36 -20
- data/app/controllers/spree/api/v3/store/carts/po_documents_controller.rb +111 -0
- data/app/controllers/spree/api/v3/store/carts/store_credits_controller.rb +2 -2
- data/app/controllers/spree/api/v3/store/carts/tax_identifiers_controller.rb +96 -0
- data/app/controllers/spree/api/v3/store/carts_controller.rb +57 -12
- data/app/controllers/spree/api/v3/store/categories_controller.rb +6 -3
- data/app/controllers/spree/api/v3/store/collections/products_controller.rb +59 -0
- data/app/controllers/spree/api/v3/store/collections_controller.rb +36 -0
- data/app/controllers/spree/api/v3/store/companies/addresses_controller.rb +81 -0
- data/app/controllers/spree/api/v3/store/companies/base_controller.rb +24 -0
- data/app/controllers/spree/api/v3/store/companies/invitations_controller.rb +50 -0
- data/app/controllers/spree/api/v3/store/companies/members_controller.rb +66 -0
- data/app/controllers/spree/api/v3/store/companies/orders_controller.rb +28 -0
- data/app/controllers/spree/api/v3/store/companies_controller.rb +47 -0
- data/app/controllers/spree/api/v3/store/company_invitations_controller.rb +90 -0
- data/app/controllers/spree/api/v3/store/countries_controller.rb +8 -6
- data/app/controllers/spree/api/v3/store/customer/addresses_controller.rb +3 -1
- data/app/controllers/spree/api/v3/store/customer/data_requests_controller.rb +78 -0
- data/app/controllers/spree/api/v3/store/customer/digital_links_controller.rb +52 -0
- data/app/controllers/spree/api/v3/store/customer/orders_controller.rb +6 -0
- data/app/controllers/spree/api/v3/store/customer/password_resets_controller.rb +7 -3
- data/app/controllers/spree/api/v3/store/customer/payment_setup_sessions_controller.rb +3 -3
- data/app/controllers/spree/api/v3/store/customer/store_credits_controller.rb +0 -3
- data/app/controllers/spree/api/v3/store/customer/tax_identifiers_controller.rb +91 -0
- data/app/controllers/spree/api/v3/store/customers_controller.rb +26 -31
- data/app/controllers/spree/api/v3/store/data_feeds_controller.rb +11 -0
- data/app/controllers/spree/api/v3/store/data_request_downloads_controller.rb +58 -0
- data/app/controllers/spree/api/v3/store/delivery_methods_controller.rb +108 -0
- data/app/controllers/spree/api/v3/store/digital_links_controller.rb +105 -0
- data/app/controllers/spree/api/v3/store/markets/countries_controller.rb +5 -9
- data/app/controllers/spree/api/v3/store/markets_controller.rb +4 -4
- data/app/controllers/spree/api/v3/store/newsletter_subscribers_controller.rb +8 -9
- data/app/controllers/spree/api/v3/store/orders/claims_controller.rb +94 -0
- data/app/controllers/spree/api/v3/store/orders/returns_controller.rb +116 -0
- data/app/controllers/spree/api/v3/store/orders/tax_identifiers_controller.rb +46 -0
- data/app/controllers/spree/api/v3/store/orders_controller.rb +12 -15
- data/app/controllers/spree/api/v3/store/products/filters_controller.rb +10 -3
- data/app/controllers/spree/api/v3/store/products_controller.rb +25 -6
- data/app/controllers/spree/api/v3/store/resource_controller.rb +2 -0
- data/app/controllers/spree/api/v3/store/sellers_controller.rb +43 -0
- data/app/controllers/spree/api/v3/store/wishlist_items_controller.rb +9 -6
- data/app/controllers/spree/api/v3/store/wishlists_controller.rb +3 -3
- data/app/controllers/spree/api/v3/webhooks/fulfillments_controller.rb +88 -0
- data/app/controllers/spree/api/v3/webhooks/payments_controller.rb +5 -2
- data/app/controllers/spree/api/v3/webhooks/payouts_controller.rb +61 -0
- data/app/models/spree/api/data_request_urls.rb +25 -0
- data/app/models/spree/api/digital_link_urls.rb +26 -0
- data/app/serializers/spree/api/v3/address_serializer.rb +17 -5
- data/app/serializers/spree/api/v3/admin/address_serializer.rb +27 -4
- data/app/serializers/spree/api/v3/admin/admin_user_serializer.rb +13 -10
- data/app/serializers/spree/api/v3/admin/api_key_serializer.rb +1 -1
- data/app/serializers/spree/api/v3/admin/applied_promotion_serializer.rb +15 -0
- data/app/serializers/spree/api/v3/admin/cart_serializer.rb +34 -0
- data/app/serializers/spree/api/v3/admin/catalog_assignment_serializer.rb +32 -0
- data/app/serializers/spree/api/v3/admin/catalog_order_minimum_serializer.rb +23 -0
- data/app/serializers/spree/api/v3/admin/catalog_price_serializer.rb +48 -0
- data/app/serializers/spree/api/v3/admin/catalog_price_tier_serializer.rb +23 -0
- data/app/serializers/spree/api/v3/admin/catalog_product_serializer.rb +57 -0
- data/app/serializers/spree/api/v3/admin/catalog_product_term_serializer.rb +38 -0
- data/app/serializers/spree/api/v3/admin/catalog_quantity_rule_serializer.rb +37 -0
- data/app/serializers/spree/api/v3/admin/catalog_serializer.rb +46 -0
- data/app/serializers/spree/api/v3/admin/category_serializer.rb +3 -2
- data/app/serializers/spree/api/v3/admin/channel_serializer.rb +15 -1
- data/app/serializers/spree/api/v3/admin/claim_line_item_serializer.rb +16 -0
- data/app/serializers/spree/api/v3/admin/claim_reason_serializer.rb +21 -0
- data/app/serializers/spree/api/v3/admin/claim_serializer.rb +29 -0
- data/app/serializers/spree/api/v3/admin/collection_rule_serializer.rb +22 -0
- data/app/serializers/spree/api/v3/admin/collection_serializer.rb +29 -0
- data/app/serializers/spree/api/v3/admin/commission_line_serializer.rb +67 -0
- data/app/serializers/spree/api/v3/admin/commission_rate_serializer.rb +69 -0
- data/app/serializers/spree/api/v3/admin/commission_rule_serializer.rb +61 -0
- data/app/serializers/spree/api/v3/admin/company_invitation_serializer.rb +15 -0
- data/app/serializers/spree/api/v3/admin/company_membership_serializer.rb +11 -0
- data/app/serializers/spree/api/v3/admin/company_serializer.rb +37 -0
- data/app/serializers/spree/api/v3/admin/concerns/external_references_attribute.rb +33 -0
- data/app/serializers/spree/api/v3/admin/consent_record_serializer.rb +28 -0
- data/app/serializers/spree/api/v3/admin/country_serializer.rb +2 -2
- data/app/serializers/spree/api/v3/admin/credit_card_serializer.rb +1 -1
- data/app/serializers/spree/api/v3/admin/custom_field_definition_serializer.rb +2 -2
- data/app/serializers/spree/api/v3/admin/custom_field_serializer.rb +2 -2
- data/app/serializers/spree/api/v3/admin/customer_serializer.rb +23 -22
- data/app/serializers/spree/api/v3/admin/dashboard_counter_serializer.rb +24 -0
- data/app/serializers/spree/api/v3/admin/data_request_serializer.rb +36 -0
- data/app/serializers/spree/api/v3/admin/delivery_method_rule_serializer.rb +32 -0
- data/app/serializers/spree/api/v3/admin/delivery_method_serializer.rb +66 -1
- data/app/serializers/spree/api/v3/admin/delivery_method_service_serializer.rb +15 -0
- data/app/serializers/spree/api/v3/admin/delivery_origin_group_serializer.rb +34 -0
- data/app/serializers/spree/api/v3/admin/delivery_profile_serializer.rb +65 -0
- data/app/serializers/spree/api/v3/admin/delivery_rate_serializer.rb +10 -1
- data/app/serializers/spree/api/v3/admin/delivery_serializer.rb +20 -0
- data/app/serializers/spree/api/v3/admin/delivery_zone_member_serializer.rb +11 -0
- data/app/serializers/spree/api/v3/admin/delivery_zone_serializer.rb +29 -0
- data/app/serializers/spree/api/v3/admin/digital_asset_serializer.rb +59 -0
- data/app/serializers/spree/api/v3/admin/discount_serializer.rb +3 -4
- data/app/serializers/spree/api/v3/admin/exchange_line_item_serializer.rb +16 -0
- data/app/serializers/spree/api/v3/admin/exchange_serializer.rb +35 -0
- data/app/serializers/spree/api/v3/admin/export_serializer.rb +20 -1
- data/app/serializers/spree/api/v3/admin/fee_serializer.rb +14 -0
- data/app/serializers/spree/api/v3/admin/freight_summary_line_serializer.rb +46 -0
- data/app/serializers/spree/api/v3/admin/freight_summary_serializer.rb +16 -0
- data/app/serializers/spree/api/v3/admin/fulfillment_item_serializer.rb +39 -0
- data/app/serializers/spree/api/v3/admin/fulfillment_serializer.rb +31 -9
- data/app/serializers/spree/api/v3/admin/gift_card_serializer.rb +2 -3
- data/app/serializers/spree/api/v3/admin/import_serializer.rb +15 -2
- data/app/serializers/spree/api/v3/admin/integration_serializer.rb +32 -0
- data/app/serializers/spree/api/v3/admin/invitation_serializer.rb +4 -4
- data/app/serializers/spree/api/v3/admin/line_item_serializer.rb +19 -5
- data/app/serializers/spree/api/v3/admin/market_serializer.rb +5 -1
- data/app/serializers/spree/api/v3/admin/media_serializer.rb +50 -2
- data/app/serializers/spree/api/v3/admin/membership_product_serializer.rb +29 -0
- data/app/serializers/spree/api/v3/admin/order_cancellation_reason_serializer.rb +29 -0
- data/app/serializers/spree/api/v3/admin/order_group_serializer.rb +50 -0
- data/app/serializers/spree/api/v3/admin/order_routing_rule_serializer.rb +2 -6
- data/app/serializers/spree/api/v3/admin/order_serializer.rb +131 -19
- data/app/serializers/spree/api/v3/admin/package_type_serializer.rb +53 -0
- data/app/serializers/spree/api/v3/admin/payment_method_serializer.rb +8 -2
- data/app/serializers/spree/api/v3/admin/payment_serializer.rb +6 -0
- data/app/serializers/spree/api/v3/admin/payment_split_serializer.rb +41 -0
- data/app/serializers/spree/api/v3/admin/permission_serializer.rb +39 -0
- data/app/serializers/spree/api/v3/admin/policy_serializer.rb +11 -0
- data/app/serializers/spree/api/v3/admin/price_adjustment_tier_serializer.rb +22 -0
- data/app/serializers/spree/api/v3/admin/price_list_product_serializer.rb +32 -0
- data/app/serializers/spree/api/v3/admin/price_list_serializer.rb +20 -8
- data/app/serializers/spree/api/v3/admin/price_rule_serializer.rb +2 -12
- data/app/serializers/spree/api/v3/admin/price_serializer.rb +3 -0
- data/app/serializers/spree/api/v3/admin/product_serializer.rb +54 -8
- data/app/serializers/spree/api/v3/admin/product_submission_serializer.rb +39 -0
- data/app/serializers/spree/api/v3/admin/product_type_custom_field_definition_serializer.rb +44 -0
- data/app/serializers/spree/api/v3/admin/product_type_serializer.rb +34 -0
- data/app/serializers/spree/api/v3/admin/promotion_action_serializer.rb +6 -12
- data/app/serializers/spree/api/v3/admin/promotion_rule_serializer.rb +17 -15
- data/app/serializers/spree/api/v3/admin/purchase_order_item_serializer.rb +80 -0
- data/app/serializers/spree/api/v3/admin/purchase_order_serializer.rb +94 -0
- data/app/serializers/spree/api/v3/admin/refund_reason_serializer.rb +27 -0
- data/app/serializers/spree/api/v3/admin/refund_serializer.rb +0 -5
- data/app/serializers/spree/api/v3/admin/reporting_result_serializer.rb +72 -0
- data/app/serializers/spree/api/v3/admin/return_line_item_serializer.rb +16 -0
- data/app/serializers/spree/api/v3/admin/return_reason_serializer.rb +21 -0
- data/app/serializers/spree/api/v3/admin/return_serializer.rb +59 -0
- data/app/serializers/spree/api/v3/admin/role_serializer.rb +24 -6
- data/app/serializers/spree/api/v3/admin/saved_report_serializer.rb +33 -0
- data/app/serializers/spree/api/v3/admin/seller_balance_serializer.rb +37 -0
- data/app/serializers/spree/api/v3/admin/seller_payout_serializer.rb +46 -0
- data/app/serializers/spree/api/v3/admin/seller_requirement_serializer.rb +68 -0
- data/app/serializers/spree/api/v3/admin/seller_requirement_status_serializer.rb +48 -0
- data/app/serializers/spree/api/v3/admin/seller_requirement_submission_serializer.rb +57 -0
- data/app/serializers/spree/api/v3/admin/seller_serializer.rb +92 -0
- data/app/serializers/spree/api/v3/admin/seller_team_member_serializer.rb +29 -0
- data/app/serializers/spree/api/v3/admin/seller_transfer_serializer.rb +53 -0
- data/app/serializers/spree/api/v3/admin/shipping_label_serializer.rb +82 -0
- data/app/serializers/spree/api/v3/admin/state_serializer.rb +1 -1
- data/app/serializers/spree/api/v3/admin/stock_level_serializer.rb +65 -0
- data/app/serializers/spree/api/v3/admin/stock_location_serializer.rb +20 -4
- data/app/serializers/spree/api/v3/admin/stock_movement_serializer.rb +116 -0
- data/app/serializers/spree/api/v3/admin/stock_receipt_item_serializer.rb +57 -0
- data/app/serializers/spree/api/v3/admin/stock_receipt_serializer.rb +49 -0
- data/app/serializers/spree/api/v3/admin/stock_reservation_serializer.rb +5 -5
- data/app/serializers/spree/api/v3/admin/stock_transfer_item_serializer.rb +57 -0
- data/app/serializers/spree/api/v3/admin/stock_transfer_serializer.rb +36 -16
- data/app/serializers/spree/api/v3/admin/store_credit_event_serializer.rb +32 -0
- data/app/serializers/spree/api/v3/admin/store_credit_serializer.rb +42 -7
- data/app/serializers/spree/api/v3/admin/store_serializer.rb +63 -1
- data/app/serializers/spree/api/v3/admin/supplier_serializer.rb +39 -0
- data/app/serializers/spree/api/v3/admin/tax_exemption_certificate_serializer.rb +67 -0
- data/app/serializers/spree/api/v3/admin/tax_identifier_serializer.rb +43 -0
- data/app/serializers/spree/api/v3/admin/tax_line_serializer.rb +21 -0
- data/app/serializers/spree/api/v3/admin/tax_rate_serializer.rb +49 -0
- data/app/serializers/spree/api/v3/admin/variant_serializer.rb +49 -8
- data/app/serializers/spree/api/v3/applied_promotion_serializer.rb +23 -0
- data/app/serializers/spree/api/v3/base_serializer.rb +39 -2
- data/app/serializers/spree/api/v3/cart_serializer.rb +90 -12
- data/app/serializers/spree/api/v3/category_serializer.rb +3 -3
- data/app/serializers/spree/api/v3/claim_line_item_serializer.rb +50 -0
- data/app/serializers/spree/api/v3/claim_reason_serializer.rb +20 -0
- data/app/serializers/spree/api/v3/claim_serializer.rb +62 -0
- data/app/serializers/spree/api/v3/collection_serializer.rb +41 -0
- data/app/serializers/spree/api/v3/company_invitation_serializer.rb +28 -0
- data/app/serializers/spree/api/v3/company_membership_serializer.rb +28 -0
- data/app/serializers/spree/api/v3/company_serializer.rb +33 -0
- data/app/serializers/spree/api/v3/custom_field_serializer.rb +2 -2
- data/app/serializers/spree/api/v3/customer_serializer.rb +9 -1
- data/app/serializers/spree/api/v3/data_request_event_serializer.rb +30 -0
- data/app/serializers/spree/api/v3/data_request_serializer.rb +40 -0
- data/app/serializers/spree/api/v3/delivery_method_serializer.rb +12 -2
- data/app/serializers/spree/api/v3/delivery_rate_serializer.rb +34 -17
- data/app/serializers/spree/api/v3/delivery_serializer.rb +29 -0
- data/app/serializers/spree/api/v3/delivery_zone_member_serializer.rb +29 -0
- data/app/serializers/spree/api/v3/delivery_zone_serializer.rb +13 -0
- data/app/serializers/spree/api/v3/digital_asset_serializer.rb +23 -0
- data/app/serializers/spree/api/v3/digital_link_serializer.rb +6 -2
- data/app/serializers/spree/api/v3/discount_serializer.rb +21 -7
- data/app/serializers/spree/api/v3/exchange_line_item_serializer.rb +53 -0
- data/app/serializers/spree/api/v3/exchange_serializer.rb +61 -0
- data/app/serializers/spree/api/v3/fee_serializer.rb +27 -0
- data/app/serializers/spree/api/v3/freight_summary_serializer.rb +38 -0
- data/app/serializers/spree/api/v3/fulfillment_serializer.rb +28 -15
- data/app/serializers/spree/api/v3/gift_card_serializer.rb +2 -2
- data/app/serializers/spree/api/v3/import_row_serializer.rb +1 -1
- data/app/serializers/spree/api/v3/import_serializer.rb +18 -4
- data/app/serializers/spree/api/v3/invitation_serializer.rb +1 -1
- data/app/serializers/spree/api/v3/line_item_serializer.rb +18 -1
- data/app/serializers/spree/api/v3/market_serializer.rb +2 -2
- data/app/serializers/spree/api/v3/{asset_serializer.rb → media_event_serializer.rb} +4 -4
- data/app/serializers/spree/api/v3/media_serializer.rb +48 -7
- data/app/serializers/spree/api/v3/newsletter_subscriber_serializer.rb +1 -1
- data/app/serializers/spree/api/v3/option_type_serializer.rb +1 -1
- data/app/serializers/spree/api/v3/order_group_serializer.rb +60 -0
- data/app/serializers/spree/api/v3/order_serializer.rb +58 -6
- data/app/serializers/spree/api/v3/payment_method_serializer.rb +1 -1
- data/app/serializers/spree/api/v3/payment_serializer.rb +2 -6
- data/app/serializers/spree/api/v3/payment_session_serializer.rb +10 -3
- data/app/serializers/spree/api/v3/payment_setup_session_serializer.rb +1 -1
- data/app/serializers/spree/api/v3/policy_serializer.rb +7 -2
- data/app/serializers/spree/api/v3/product_filter_option_serializer.rb +1 -1
- data/app/serializers/spree/api/v3/product_serializer.rb +42 -10
- data/app/serializers/spree/api/v3/product_type_serializer.rb +17 -0
- data/app/serializers/spree/api/v3/purchase_order_event_serializer.rb +11 -0
- data/app/serializers/spree/api/v3/refund_serializer.rb +9 -3
- data/app/serializers/spree/api/v3/return_line_item_serializer.rb +42 -0
- data/app/serializers/spree/api/v3/return_reason_serializer.rb +20 -0
- data/app/serializers/spree/api/v3/return_serializer.rb +62 -0
- data/app/serializers/spree/api/v3/seller/balance_serializer.rb +35 -0
- data/app/serializers/spree/api/v3/seller/claim_line_item_serializer.rb +21 -0
- data/app/serializers/spree/api/v3/seller/claim_serializer.rb +25 -0
- data/app/serializers/spree/api/v3/seller/delivery_method_rule_serializer.rb +32 -0
- data/app/serializers/spree/api/v3/seller/delivery_method_serializer.rb +59 -0
- data/app/serializers/spree/api/v3/seller/delivery_profile_serializer.rb +26 -0
- data/app/serializers/spree/api/v3/seller/delivery_rate_serializer.rb +35 -0
- data/app/serializers/spree/api/v3/seller/delivery_serializer.rb +17 -0
- data/app/serializers/spree/api/v3/seller/delivery_zone_serializer.rb +26 -0
- data/app/serializers/spree/api/v3/seller/exchange_line_item_serializer.rb +29 -0
- data/app/serializers/spree/api/v3/seller/exchange_serializer.rb +30 -0
- data/app/serializers/spree/api/v3/seller/export_serializer.rb +44 -0
- data/app/serializers/spree/api/v3/seller/fulfillment_item_serializer.rb +43 -0
- data/app/serializers/spree/api/v3/seller/fulfillment_serializer.rb +76 -0
- data/app/serializers/spree/api/v3/seller/import_mapping_serializer.rb +20 -0
- data/app/serializers/spree/api/v3/seller/import_row_serializer.rb +17 -0
- data/app/serializers/spree/api/v3/seller/import_serializer.rb +77 -0
- data/app/serializers/spree/api/v3/seller/invitation_serializer.rb +29 -0
- data/app/serializers/spree/api/v3/seller/media_serializer.rb +26 -0
- data/app/serializers/spree/api/v3/seller/order_line_item_serializer.rb +44 -0
- data/app/serializers/spree/api/v3/seller/order_serializer.rb +119 -0
- data/app/serializers/spree/api/v3/seller/package_type_serializer.rb +52 -0
- data/app/serializers/spree/api/v3/seller/payment_split_serializer.rb +34 -0
- data/app/serializers/spree/api/v3/seller/payout_serializer.rb +36 -0
- data/app/serializers/spree/api/v3/seller/policy_serializer.rb +11 -0
- data/app/serializers/spree/api/v3/seller/product_serializer.rb +60 -0
- data/app/serializers/spree/api/v3/seller/product_submission_serializer.rb +30 -0
- data/app/serializers/spree/api/v3/seller/product_type_serializer.rb +29 -0
- data/app/serializers/spree/api/v3/seller/profile_serializer.rb +77 -0
- data/app/serializers/spree/api/v3/seller/reason_serializer.rb +24 -0
- data/app/serializers/spree/api/v3/seller/requirement_custom_field_serializer.rb +36 -0
- data/app/serializers/spree/api/v3/seller/requirement_status_serializer.rb +62 -0
- data/app/serializers/spree/api/v3/seller/requirement_submission_serializer.rb +33 -0
- data/app/serializers/spree/api/v3/seller/return_line_item_serializer.rb +24 -0
- data/app/serializers/spree/api/v3/seller/return_serializer.rb +51 -0
- data/app/serializers/spree/api/v3/seller/shipping_label_serializer.rb +23 -0
- data/app/serializers/spree/api/v3/seller/stock_level_serializer.rb +27 -0
- data/app/serializers/spree/api/v3/seller/stock_location_serializer.rb +17 -0
- data/app/serializers/spree/api/v3/seller/tax_identifier_serializer.rb +15 -0
- data/app/serializers/spree/api/v3/seller/team_member_serializer.rb +22 -0
- data/app/serializers/spree/api/v3/seller/transfer_serializer.rb +49 -0
- data/app/serializers/spree/api/v3/seller/variant_serializer.rb +71 -0
- data/app/serializers/spree/api/v3/seller_serializer.rb +50 -0
- data/app/serializers/spree/api/v3/shipping_label_event_serializer.rb +11 -0
- data/app/serializers/spree/api/v3/{stock_item_serializer.rb → stock_level_serializer.rb} +5 -5
- data/app/serializers/spree/api/v3/stock_location_serializer.rb +11 -7
- data/app/serializers/spree/api/v3/stock_movement_serializer.rb +8 -15
- data/app/serializers/spree/api/v3/stock_receipt_event_serializer.rb +11 -0
- data/app/serializers/spree/api/v3/stock_transfer_serializer.rb +6 -6
- data/app/serializers/spree/api/v3/store_credit_event_serializer.rb +29 -0
- data/app/serializers/spree/api/v3/supplier_event_serializer.rb +11 -0
- data/app/serializers/spree/api/v3/tax_identifier_serializer.rb +15 -0
- data/app/serializers/spree/api/v3/tax_line_serializer.rb +37 -0
- data/app/serializers/spree/api/v3/variant_serializer.rb +52 -2
- data/app/serializers/spree/api/v3/wishlist_item_serializer.rb +6 -6
- data/app/serializers/spree/api/v3/wishlist_serializer.rb +1 -1
- data/app/services/spree/api/v3/filters_aggregator.rb +14 -12
- data/app/services/spree/webhooks/deliver_webhook.rb +62 -26
- data/app/subscribers/spree/webhook_event_subscriber.rb +9 -5
- data/config/brakeman.ignore +1 -1
- data/config/initializers/typelizer.rb +51 -4
- data/config/locales/en.yml +5 -0
- data/config/routes.rb +730 -22
- data/lib/spree/api/configuration.rb +2 -7
- data/lib/spree/api/dependencies.rb +173 -227
- data/lib/spree/api/openapi/schema_helper.rb +179 -13
- data/lib/spree/api/testing_support/v3/base.rb +45 -15
- data/lib/spree/api.rb +10 -4
- data/lib/typelizer/open_enums.rb +35 -0
- metadata +341 -27
- data/app/controllers/spree/api/v3/admin/orders/adjustments_controller.rb +0 -25
- data/app/controllers/spree/api/v3/admin/stock_items_controller.rb +0 -42
- data/app/controllers/spree/api/v3/admin/store_credit_categories_controller.rb +0 -21
- data/app/controllers/spree/api/v3/store/digitals_controller.rb +0 -38
- data/app/serializers/spree/api/v3/admin/adjustment_serializer.rb +0 -24
- data/app/serializers/spree/api/v3/admin/dashboard_analytics_serializer.rb +0 -143
- data/app/serializers/spree/api/v3/admin/reimbursement_serializer.rb +0 -15
- data/app/serializers/spree/api/v3/admin/return_authorization_serializer.rb +0 -19
- data/app/serializers/spree/api/v3/admin/stock_item_serializer.rb +0 -34
- data/app/serializers/spree/api/v3/admin/store_credit_category_serializer.rb +0 -19
- data/app/serializers/spree/api/v3/customer_return_serializer.rb +0 -17
- data/app/serializers/spree/api/v3/digital_serializer.rb +0 -17
- data/app/serializers/spree/api/v3/reimbursement_serializer.rb +0 -27
- data/app/serializers/spree/api/v3/report_serializer.rb +0 -34
- data/app/serializers/spree/api/v3/return_authorization_serializer.rb +0 -31
- data/app/serializers/spree/api/v3/return_item_serializer.rb +0 -53
- data/app/serializers/spree/api/v3/shipping_category_serializer.rb +0 -11
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
module Spree
|
|
2
|
+
module Api
|
|
3
|
+
module V3
|
|
4
|
+
module Admin
|
|
5
|
+
# One product's contribution to the rollup: how many units, the
|
|
6
|
+
# cartons they fill and how those were measured.
|
|
7
|
+
#
|
|
8
|
+
# Back-office only. A buyer is told what their shipment costs and how
|
|
9
|
+
# big it is; which SKU accounts for which part of it is the
|
|
10
|
+
# warehouse's business.
|
|
11
|
+
class FreightSummaryLineSerializer < BaseSerializer
|
|
12
|
+
# A value object, not a record — it has no id of its own.
|
|
13
|
+
_attributes.delete(:id)
|
|
14
|
+
|
|
15
|
+
typelize variant_id: [:string, nullable: true],
|
|
16
|
+
sku: [:string, nullable: true],
|
|
17
|
+
name: [:string, nullable: true],
|
|
18
|
+
units: :number,
|
|
19
|
+
cartons: ['number | null'],
|
|
20
|
+
pallets: ['number | null'],
|
|
21
|
+
units_per_carton: ['number | null'],
|
|
22
|
+
cartons_per_pallet: ['number | null'],
|
|
23
|
+
weight_per_carton: [:string, nullable: true],
|
|
24
|
+
volume: :string,
|
|
25
|
+
weight: :string,
|
|
26
|
+
complete: :boolean
|
|
27
|
+
|
|
28
|
+
attributes :variant_id, :sku, :name, :units, :cartons, :pallets,
|
|
29
|
+
:units_per_carton, :cartons_per_pallet, :complete
|
|
30
|
+
|
|
31
|
+
attribute :weight_per_carton do |line|
|
|
32
|
+
decimal_string(line.weight_per_carton)
|
|
33
|
+
end
|
|
34
|
+
|
|
35
|
+
attribute :volume do |line|
|
|
36
|
+
decimal_string(line.volume)
|
|
37
|
+
end
|
|
38
|
+
|
|
39
|
+
attribute :weight do |line|
|
|
40
|
+
decimal_string(line.weight)
|
|
41
|
+
end
|
|
42
|
+
end
|
|
43
|
+
end
|
|
44
|
+
end
|
|
45
|
+
end
|
|
46
|
+
end
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
module Spree
|
|
2
|
+
module Api
|
|
3
|
+
module V3
|
|
4
|
+
module Admin
|
|
5
|
+
# The store's rollup plus what each product contributes to it — the
|
|
6
|
+
# breakdown a merchant checks a forwarder's quote against, and the
|
|
7
|
+
# reason the store shape carries totals alone.
|
|
8
|
+
class FreightSummarySerializer < V3::FreightSummarySerializer
|
|
9
|
+
typelize lines: [:FreightSummaryLine, multi: true]
|
|
10
|
+
|
|
11
|
+
many :lines, resource: proc { Spree.api.admin_freight_summary_line_serializer }
|
|
12
|
+
end
|
|
13
|
+
end
|
|
14
|
+
end
|
|
15
|
+
end
|
|
16
|
+
end
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
module Spree
|
|
4
|
+
module Api
|
|
5
|
+
module V3
|
|
6
|
+
module Admin
|
|
7
|
+
# A fulfilled unit. Admin-only: it exists so the dashboard can offer
|
|
8
|
+
# what is actually returnable or exchangeable — a return is against a
|
|
9
|
+
# shipped unit, not against a line item.
|
|
10
|
+
class FulfillmentItemSerializer < BaseSerializer
|
|
11
|
+
typelize quantity: :number,
|
|
12
|
+
status: [:string, enum: Spree::FulfillmentItem.statuses, enum_type_name: 'FulfillmentItemStatus'],
|
|
13
|
+
variant_id: [:string, nullable: true],
|
|
14
|
+
line_item_id: [:string, nullable: true],
|
|
15
|
+
name: [:string, nullable: true],
|
|
16
|
+
options_text: [:string, nullable: true]
|
|
17
|
+
|
|
18
|
+
attributes :quantity, :status
|
|
19
|
+
|
|
20
|
+
attribute :variant_id do |item|
|
|
21
|
+
item.variant&.prefixed_id
|
|
22
|
+
end
|
|
23
|
+
|
|
24
|
+
attribute :line_item_id do |item|
|
|
25
|
+
item.line_item&.prefixed_id
|
|
26
|
+
end
|
|
27
|
+
|
|
28
|
+
attribute :name do |item|
|
|
29
|
+
item.variant&.product&.name
|
|
30
|
+
end
|
|
31
|
+
|
|
32
|
+
attribute :options_text do |item|
|
|
33
|
+
item.variant&.options_text
|
|
34
|
+
end
|
|
35
|
+
end
|
|
36
|
+
end
|
|
37
|
+
end
|
|
38
|
+
end
|
|
39
|
+
end
|
|
@@ -13,6 +13,8 @@ module Spree
|
|
|
13
13
|
tax_total: [:string, nullable: false], display_tax_total: [:string, nullable: false]
|
|
14
14
|
|
|
15
15
|
typelize metadata: 'Record<string, unknown>',
|
|
16
|
+
documents: "Array<{ kind: string; url: string }>",
|
|
17
|
+
provider_generates_labels: :boolean,
|
|
16
18
|
order_id: [:string, nullable: true],
|
|
17
19
|
stock_location_id: [:string, nullable: true],
|
|
18
20
|
adjustment_total: :string,
|
|
@@ -21,26 +23,46 @@ module Spree
|
|
|
21
23
|
attributes :metadata, :adjustment_total, :pre_tax_amount,
|
|
22
24
|
created_at: :iso8601, updated_at: :iso8601
|
|
23
25
|
|
|
24
|
-
attribute :order_id do |
|
|
25
|
-
|
|
26
|
+
attribute :order_id do |fulfillment|
|
|
27
|
+
fulfillment.order&.prefixed_id
|
|
26
28
|
end
|
|
27
29
|
|
|
28
|
-
attribute :stock_location_id do |
|
|
29
|
-
|
|
30
|
+
attribute :stock_location_id do |fulfillment|
|
|
31
|
+
fulfillment.stock_location&.prefixed_id
|
|
32
|
+
end
|
|
33
|
+
|
|
34
|
+
# Customs forms and other paperwork the provider produced beside the
|
|
35
|
+
# label; the labels themselves are listed under +labels+.
|
|
36
|
+
attribute :documents do |fulfillment|
|
|
37
|
+
fulfillment.provider.documents(fulfillment).map(&:as_json)
|
|
38
|
+
end
|
|
39
|
+
|
|
40
|
+
# Every label bought or uploaded for this parcel, refunded ones
|
|
41
|
+
# included — the postage history of the box.
|
|
42
|
+
many :shipping_labels, key: :labels, resource: proc { Spree.api.admin_shipping_label_serializer }
|
|
43
|
+
|
|
44
|
+
# Whether the buy-label step applies to this parcel's provider.
|
|
45
|
+
attribute :provider_generates_labels do |fulfillment|
|
|
46
|
+
fulfillment.provider.class.generates_labels?
|
|
30
47
|
end
|
|
31
48
|
|
|
32
49
|
# Override inherited associations to use admin serializers
|
|
33
|
-
|
|
50
|
+
many :deliveries, resource: proc { Spree.api.admin_delivery_serializer }
|
|
51
|
+
one :delivery_method, resource: proc { Spree.api.admin_delivery_method_serializer }, if: proc { expand?('delivery_method') }
|
|
34
52
|
one :stock_location, resource: proc { Spree.api.admin_stock_location_serializer }, if: proc { expand?('stock_location') }
|
|
35
|
-
many :
|
|
53
|
+
many :delivery_rates, resource: proc { Spree.api.admin_delivery_rate_serializer }, if: proc { expand?('delivery_rates') }
|
|
54
|
+
many :tax_lines, resource: proc { Spree.api.admin_tax_line_serializer }, if: proc { expand?('tax_lines') }
|
|
55
|
+
|
|
56
|
+
# The units in this fulfillment — the dashboard needs them to offer
|
|
57
|
+
# what can actually be returned or exchanged.
|
|
58
|
+
many :fulfillment_items,
|
|
59
|
+
resource: proc { Spree.api.admin_fulfillment_item_serializer },
|
|
60
|
+
if: proc { expand?('fulfillment_items') }
|
|
36
61
|
|
|
37
62
|
one :order,
|
|
38
63
|
resource: proc { Spree.api.admin_order_serializer },
|
|
39
64
|
if: proc { expand?('order') }
|
|
40
65
|
|
|
41
|
-
many :adjustments,
|
|
42
|
-
resource: proc { Spree.api.admin_adjustment_serializer },
|
|
43
|
-
if: proc { expand?('adjustments') }
|
|
44
66
|
end
|
|
45
67
|
end
|
|
46
68
|
end
|
|
@@ -19,7 +19,7 @@ module Spree
|
|
|
19
19
|
attributes created_at: :iso8601, updated_at: :iso8601
|
|
20
20
|
|
|
21
21
|
attribute :customer_id do |gift_card|
|
|
22
|
-
gift_card.
|
|
22
|
+
gift_card.customer&.prefixed_id
|
|
23
23
|
end
|
|
24
24
|
|
|
25
25
|
attribute :created_by_id do |gift_card|
|
|
@@ -29,8 +29,7 @@ module Spree
|
|
|
29
29
|
# Customer the card was issued to. Gated behind `expand?` to keep
|
|
30
30
|
# the list payload thin — the SPA's list view passes
|
|
31
31
|
# `expand=customer,created_by` to populate the row chips.
|
|
32
|
-
one :
|
|
33
|
-
key: :customer,
|
|
32
|
+
one :customer,
|
|
34
33
|
resource: proc { Spree.api.admin_customer_serializer },
|
|
35
34
|
if: proc { expand?('customer') }
|
|
36
35
|
|
|
@@ -5,7 +5,8 @@ module Spree
|
|
|
5
5
|
# Admin API serializer for {Spree::Import} — drives the SPA import
|
|
6
6
|
# wizard: mapping payload while `mapping`, poll counters afterwards.
|
|
7
7
|
class ImportSerializer < V3::ImportSerializer
|
|
8
|
-
typelize
|
|
8
|
+
typelize seller_name: [:string, nullable: true],
|
|
9
|
+
completed_rows_count: :number,
|
|
9
10
|
failed_rows_count: :number,
|
|
10
11
|
processing_errors: [:string, nullable: true],
|
|
11
12
|
preferred_delimiter: :string,
|
|
@@ -14,10 +15,22 @@ module Spree
|
|
|
14
15
|
sample_row: 'Record<string, string | null>',
|
|
15
16
|
original_filename: [:string, nullable: true],
|
|
16
17
|
original_byte_size: [:number, nullable: true],
|
|
17
|
-
original_file_url: [:string, nullable: true]
|
|
18
|
+
original_file_url: [:string, nullable: true],
|
|
19
|
+
price_list_id: [:string, nullable: true]
|
|
18
20
|
|
|
19
21
|
attributes :processing_errors, :preferred_delimiter
|
|
20
22
|
|
|
23
|
+
# The list a price-list import writes into; nil for every other type.
|
|
24
|
+
attribute :price_list_id do |import|
|
|
25
|
+
import.try(:price_list_prefixed_id)
|
|
26
|
+
end
|
|
27
|
+
|
|
28
|
+
# Who ran it, for the operator's list — `seller_id` is on the base,
|
|
29
|
+
# and the name rides along so the column needs no second request.
|
|
30
|
+
attribute :seller_name do |import|
|
|
31
|
+
import.seller&.name
|
|
32
|
+
end
|
|
33
|
+
|
|
21
34
|
# The originally uploaded file — the audit trail. `original_file_url`
|
|
22
35
|
# is our own streaming endpoint (JWT-authenticated), not a signed
|
|
23
36
|
# ActiveStorage URL; see ExportSerializer#download_url.
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
module Spree
|
|
2
|
+
module Api
|
|
3
|
+
module V3
|
|
4
|
+
module Admin
|
|
5
|
+
# Admin-only — credentials never have a storefront surface. Secrets
|
|
6
|
+
# are `:password` preferences, masked by `serialized_preferences`.
|
|
7
|
+
class IntegrationSerializer < V3::BaseSerializer
|
|
8
|
+
typelize type: [:string, comment: 'Integration type, registered by the provider gem that owns it (for example the EasyPost provider). Core ships none.'],
|
|
9
|
+
name: :string,
|
|
10
|
+
group: [:string, nullable: true],
|
|
11
|
+
active: :boolean,
|
|
12
|
+
preferences: 'Record<string, unknown>',
|
|
13
|
+
preference_schema: "Array<{ key: string; type: string; default: unknown; choices?: string[] }>"
|
|
14
|
+
|
|
15
|
+
attributes :name, :active,
|
|
16
|
+
created_at: :iso8601, updated_at: :iso8601
|
|
17
|
+
|
|
18
|
+
attribute :type do |integration|
|
|
19
|
+
integration.class.api_type
|
|
20
|
+
end
|
|
21
|
+
|
|
22
|
+
attribute :group do |integration|
|
|
23
|
+
integration.class.integration_group
|
|
24
|
+
end
|
|
25
|
+
|
|
26
|
+
attribute :preferences, &:serialized_preferences
|
|
27
|
+
attribute :preference_schema, &:serialized_preference_schema
|
|
28
|
+
end
|
|
29
|
+
end
|
|
30
|
+
end
|
|
31
|
+
end
|
|
32
|
+
end
|
|
@@ -8,7 +8,7 @@ module Spree
|
|
|
8
8
|
# email-only — the full polymorphic identities aren't useful to the UI.
|
|
9
9
|
class InvitationSerializer < V3::BaseSerializer
|
|
10
10
|
typelize email: :string,
|
|
11
|
-
status: :string,
|
|
11
|
+
status: [:string, enum: Spree::Invitation.statuses, enum_type_name: 'InvitationStatus'],
|
|
12
12
|
role_id: :string,
|
|
13
13
|
role_name: :string,
|
|
14
14
|
inviter_email: :string,
|
|
@@ -34,10 +34,10 @@ module Spree
|
|
|
34
34
|
invitation.inviter.email
|
|
35
35
|
end
|
|
36
36
|
|
|
37
|
-
# Absolute URL when
|
|
38
|
-
#
|
|
37
|
+
# Absolute URL when a dashboard origin is configured, otherwise the
|
|
38
|
+
# path so the SPA can prepend `window.location.origin`.
|
|
39
39
|
attribute :acceptance_url do |invitation|
|
|
40
|
-
if Spree::Config[:
|
|
40
|
+
if Spree::Config[:dashboard_url].present?
|
|
41
41
|
Rails.application.routes.url_helpers.admin_invitation_acceptance_url(invitation)
|
|
42
42
|
else
|
|
43
43
|
"/accept-invitation/#{invitation.prefixed_id}?token=#{invitation.token}"
|
|
@@ -18,11 +18,21 @@ module Spree
|
|
|
18
18
|
|
|
19
19
|
typelize metadata: 'Record<string, unknown>',
|
|
20
20
|
cost_price: [:string, nullable: true],
|
|
21
|
-
tax_category_id: [:string, nullable: true]
|
|
21
|
+
tax_category_id: [:string, nullable: true],
|
|
22
|
+
price_source: [:string, nullable: true],
|
|
23
|
+
catalog_price: [:string, nullable: true]
|
|
22
24
|
|
|
23
|
-
|
|
25
|
+
# price_source is operational provenance — admin-only, never on the
|
|
26
|
+
# store serializer.
|
|
27
|
+
attributes :metadata, :price_source,
|
|
24
28
|
created_at: :iso8601, updated_at: :iso8601
|
|
25
29
|
|
|
30
|
+
# Base price, not resolved: resolving would call the pricing provider
|
|
31
|
+
# once per line on a read path that must stay provider-free.
|
|
32
|
+
attribute :catalog_price do |line_item|
|
|
33
|
+
line_item.variant&.amount_in(line_item.currency)&.to_s
|
|
34
|
+
end
|
|
35
|
+
|
|
26
36
|
attribute :cost_price do |line_item|
|
|
27
37
|
line_item.cost_price&.to_s
|
|
28
38
|
end
|
|
@@ -34,6 +44,13 @@ module Spree
|
|
|
34
44
|
# Override inherited associations to use admin serializers
|
|
35
45
|
many :option_values, resource: proc { Spree.api.admin_option_value_serializer }
|
|
36
46
|
many :digital_links, resource: proc { Spree.api.admin_digital_link_serializer }
|
|
47
|
+
many :tax_lines, resource: proc { Spree.api.admin_tax_line_serializer }, if: proc { expand?('tax_lines') }
|
|
48
|
+
|
|
49
|
+
# `seller_id` comes from the store serializer; the expand resolves
|
|
50
|
+
# to the operator's view of the seller rather than the public one.
|
|
51
|
+
one :seller,
|
|
52
|
+
resource: proc { Spree.api.admin_seller_serializer },
|
|
53
|
+
if: proc { expand?('seller') }
|
|
37
54
|
|
|
38
55
|
one :variant,
|
|
39
56
|
resource: proc { Spree.api.admin_variant_serializer },
|
|
@@ -43,9 +60,6 @@ module Spree
|
|
|
43
60
|
resource: proc { Spree.api.admin_tax_category_serializer },
|
|
44
61
|
if: proc { expand?('tax_category') }
|
|
45
62
|
|
|
46
|
-
many :adjustments,
|
|
47
|
-
resource: proc { Spree.api.admin_adjustment_serializer },
|
|
48
|
-
if: proc { expand?('adjustments') }
|
|
49
63
|
end
|
|
50
64
|
end
|
|
51
65
|
end
|
|
@@ -3,7 +3,11 @@ module Spree
|
|
|
3
3
|
module V3
|
|
4
4
|
module Admin
|
|
5
5
|
class MarketSerializer < V3::MarketSerializer
|
|
6
|
-
|
|
6
|
+
typelize tax_provider: [:string, nullable: true]
|
|
7
|
+
|
|
8
|
+
# Which tax engine computes for this market. Nil means the store-wide
|
|
9
|
+
# default; the selectable values come from /admin/tax_providers.
|
|
10
|
+
attributes :tax_provider, created_at: :iso8601, updated_at: :iso8601
|
|
7
11
|
|
|
8
12
|
many :countries,
|
|
9
13
|
resource: proc { Spree.api.admin_country_serializer },
|
|
@@ -3,12 +3,60 @@ module Spree
|
|
|
3
3
|
module V3
|
|
4
4
|
module Admin
|
|
5
5
|
class MediaSerializer < V3::MediaSerializer
|
|
6
|
-
|
|
6
|
+
include Concerns::ExternalReferencesAttribute
|
|
7
|
+
|
|
8
|
+
# Both are null for a library file that has not been placed yet.
|
|
9
|
+
typelize viewable_type: [:string, nullable: true],
|
|
10
|
+
viewable_id: [:string, nullable: true],
|
|
7
11
|
metadata: 'Record<string, unknown>',
|
|
8
|
-
download_url: [:string, nullable: true]
|
|
12
|
+
download_url: [:string, nullable: true],
|
|
13
|
+
embed_url: [:string, nullable: true],
|
|
14
|
+
filename: [:string, nullable: true],
|
|
15
|
+
content_type: [:string, nullable: true],
|
|
16
|
+
byte_size: [:number, nullable: true],
|
|
17
|
+
signed_id: [:string, nullable: true],
|
|
18
|
+
attached: :boolean
|
|
9
19
|
|
|
10
20
|
attributes created_at: :iso8601, updated_at: :iso8601
|
|
11
21
|
|
|
22
|
+
# Whether this file is placed on a product, or sitting in the library
|
|
23
|
+
# waiting to be used.
|
|
24
|
+
attribute :attached do |asset|
|
|
25
|
+
asset.viewable_id.present?
|
|
26
|
+
end
|
|
27
|
+
|
|
28
|
+
# File facts the library grid and detail panel show. Read from the
|
|
29
|
+
# blob rather than the legacy attachment_* columns, which are only
|
|
30
|
+
# populated on pre-6.0 rows.
|
|
31
|
+
attribute :filename do |asset|
|
|
32
|
+
asset.attachment_blob&.filename&.to_s
|
|
33
|
+
end
|
|
34
|
+
|
|
35
|
+
attribute :content_type do |asset|
|
|
36
|
+
asset.attachment_blob&.content_type
|
|
37
|
+
end
|
|
38
|
+
|
|
39
|
+
attribute :byte_size do |asset|
|
|
40
|
+
asset.attachment_blob&.byte_size
|
|
41
|
+
end
|
|
42
|
+
|
|
43
|
+
# The rendition rich text embeds point at: bounded to a sane width,
|
|
44
|
+
# never cropped, so a size chart or diagram keeps its proportions.
|
|
45
|
+
attribute :embed_url do |asset|
|
|
46
|
+
next nil unless asset.image? && asset.attachment.attached?
|
|
47
|
+
|
|
48
|
+
Rails.application.routes.url_helpers.cdn_image_url(asset.attachment.variant(:embed))
|
|
49
|
+
end
|
|
50
|
+
|
|
51
|
+
# The file's own signed id, which is what a plain attachment field
|
|
52
|
+
# (a category image, a store logo) accepts on write. Handing it over
|
|
53
|
+
# lets those fields adopt a library file, sharing the blob instead of
|
|
54
|
+
# uploading a second copy — the same economics as placing media on a
|
|
55
|
+
# product, through endpoints that need no change.
|
|
56
|
+
attribute :signed_id do |asset|
|
|
57
|
+
asset.attachment_blob&.signed_id
|
|
58
|
+
end
|
|
59
|
+
|
|
12
60
|
attribute :viewable_id do |asset|
|
|
13
61
|
asset.viewable&.prefixed_id
|
|
14
62
|
end
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
module Spree
|
|
2
|
+
module Api
|
|
3
|
+
module V3
|
|
4
|
+
module Admin
|
|
5
|
+
# A product as a curating parent's membership card reads it: the row's
|
|
6
|
+
# name and thumbnail, and nothing else.
|
|
7
|
+
#
|
|
8
|
+
# Deliberately not a subclass of the admin product serializer. These
|
|
9
|
+
# endpoints feed one card and the picker's exclusion list, neither of
|
|
10
|
+
# which reads a product's status, media, categories, publications,
|
|
11
|
+
# channels or custom fields — and the pages render a variant row per
|
|
12
|
+
# product, so a full product payload per row is the difference between
|
|
13
|
+
# a card that opens and one that crawls. A field a card starts needing
|
|
14
|
+
# is one line in the subclass that needs it
|
|
15
|
+
# (docs/plans/6.0-volume-pricing.md).
|
|
16
|
+
class MembershipProductSerializer < V3::BaseSerializer
|
|
17
|
+
typelize name: :string, thumbnail_url: [:string, nullable: true]
|
|
18
|
+
|
|
19
|
+
attributes :name
|
|
20
|
+
|
|
21
|
+
# The card's row image.
|
|
22
|
+
attribute :thumbnail_url do |product|
|
|
23
|
+
image_url_for(product.primary_media)
|
|
24
|
+
end
|
|
25
|
+
end
|
|
26
|
+
end
|
|
27
|
+
end
|
|
28
|
+
end
|
|
29
|
+
end
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
module Spree
|
|
4
|
+
module Api
|
|
5
|
+
module V3
|
|
6
|
+
module Admin
|
|
7
|
+
# Admin-only: reasons are back-office vocabulary and have no Store API
|
|
8
|
+
# controller, so there is no store serializer to extend.
|
|
9
|
+
#
|
|
10
|
+
# The reason serializers are deliberately parallel rather than sharing
|
|
11
|
+
# a base class: Typelizer emits one TS type per serializer, so a shared
|
|
12
|
+
# parent would publish an abstract `Reason` type into the admin SDK
|
|
13
|
+
# that no endpoint returns.
|
|
14
|
+
class OrderCancellationReasonSerializer < V3::BaseSerializer
|
|
15
|
+
typelize name: :string, active: :boolean, can_be_deleted: :boolean
|
|
16
|
+
|
|
17
|
+
attributes :name, :active,
|
|
18
|
+
created_at: :iso8601, updated_at: :iso8601
|
|
19
|
+
|
|
20
|
+
# Lets the dashboard hide destructive controls instead of offering a
|
|
21
|
+
# delete that the model will refuse.
|
|
22
|
+
attribute :can_be_deleted do |reason|
|
|
23
|
+
reason.can_be_deleted?
|
|
24
|
+
end
|
|
25
|
+
end
|
|
26
|
+
end
|
|
27
|
+
end
|
|
28
|
+
end
|
|
29
|
+
end
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
module Spree
|
|
2
|
+
module Api
|
|
3
|
+
module V3
|
|
4
|
+
module Admin
|
|
5
|
+
# Serializes Spree::OrderGroup for the back office — the checkout that
|
|
6
|
+
# produced several orders, and what ties them together.
|
|
7
|
+
#
|
|
8
|
+
# Extends the store serializer, so what a customer sees stays in one
|
|
9
|
+
# place and this adds only what an operator needs on top: the payment
|
|
10
|
+
# shares, and the timestamps every admin surface carries.
|
|
11
|
+
class OrderGroupSerializer < V3::OrderGroupSerializer
|
|
12
|
+
typelize customer_id: 'string | null',
|
|
13
|
+
cart_id: 'string | null',
|
|
14
|
+
seller_count: :number,
|
|
15
|
+
includes_first_party: :boolean,
|
|
16
|
+
created_at: :string, updated_at: :string
|
|
17
|
+
|
|
18
|
+
attribute :customer_id do |group|
|
|
19
|
+
group.customer&.prefixed_id
|
|
20
|
+
end
|
|
21
|
+
|
|
22
|
+
attribute :cart_id do |group|
|
|
23
|
+
Spree::Cart.prefixed_id_for(group.cart_id)
|
|
24
|
+
end
|
|
25
|
+
|
|
26
|
+
# How many sellers this checkout reached — the operator's headline
|
|
27
|
+
# question about a group, and cheaper than counting the orders client
|
|
28
|
+
# side once a group is large.
|
|
29
|
+
attribute :seller_count do |group|
|
|
30
|
+
group.seller_count
|
|
31
|
+
end
|
|
32
|
+
|
|
33
|
+
attribute :includes_first_party do |group|
|
|
34
|
+
group.includes_first_party?
|
|
35
|
+
end
|
|
36
|
+
|
|
37
|
+
attributes :created_at, :updated_at
|
|
38
|
+
|
|
39
|
+
# Re-declared against the admin serializers. Inheriting the store
|
|
40
|
+
# ones would render a customer-facing record inside a back-office
|
|
41
|
+
# response, which is the one thing an admin serializer must never do.
|
|
42
|
+
one :billing_address, resource: proc { Spree.api.admin_address_serializer }
|
|
43
|
+
one :shipping_address, resource: proc { Spree.api.admin_address_serializer }
|
|
44
|
+
many :orders, resource: proc { Spree.api.admin_order_serializer }
|
|
45
|
+
many :payments, resource: proc { Spree.api.admin_payment_serializer }
|
|
46
|
+
end
|
|
47
|
+
end
|
|
48
|
+
end
|
|
49
|
+
end
|
|
50
|
+
end
|
|
@@ -8,14 +8,12 @@ module Spree
|
|
|
8
8
|
# per-channel routing-rules editor. Same shape as PromotionRule so the
|
|
9
9
|
# frontend renders both with the same schema-driven preference form.
|
|
10
10
|
class OrderRoutingRuleSerializer < BaseSerializer
|
|
11
|
-
typelize type: :string,
|
|
11
|
+
typelize type: [:string, comment: 'Rule type. Built-in: preferred_location, default_location, minimize_splits. Extensions may register more.'],
|
|
12
12
|
channel_id: :string,
|
|
13
13
|
position: :number,
|
|
14
14
|
active: :boolean,
|
|
15
15
|
preferences: 'Record<string, unknown>',
|
|
16
|
-
preference_schema: "Array<{ key: string; type: string; default: unknown }>"
|
|
17
|
-
label: :string,
|
|
18
|
-
description: :string
|
|
16
|
+
preference_schema: "Array<{ key: string; type: string; default: unknown; choices?: string[] }>"
|
|
19
17
|
|
|
20
18
|
attributes :position, :active
|
|
21
19
|
attributes created_at: :iso8601, updated_at: :iso8601
|
|
@@ -31,8 +29,6 @@ module Spree
|
|
|
31
29
|
attribute :preferences, &:serialized_preferences
|
|
32
30
|
attribute :preference_schema, &:serialized_preference_schema
|
|
33
31
|
|
|
34
|
-
attribute :label, &:human_name
|
|
35
|
-
attribute :description, &:human_description
|
|
36
32
|
end
|
|
37
33
|
end
|
|
38
34
|
end
|