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
|
@@ -4,11 +4,18 @@ module Spree
|
|
|
4
4
|
# Store API Order Serializer
|
|
5
5
|
# Post-purchase order data (completed orders)
|
|
6
6
|
class OrderSerializer < BaseSerializer
|
|
7
|
-
typelize
|
|
7
|
+
typelize cart_id: [:string, nullable: true],
|
|
8
|
+
number: :string, email: :string,
|
|
8
9
|
customer_note: [:string, nullable: true],
|
|
9
10
|
market_id: [:string, nullable: true], channel_id: [:string, nullable: true],
|
|
11
|
+
company_id: [:string, nullable: true], company_name: [:string, nullable: true],
|
|
12
|
+
po_number: [:string, nullable: true],
|
|
13
|
+
po_document_filename: [:string, nullable: true],
|
|
14
|
+
po_document_byte_size: ['number | null'],
|
|
10
15
|
currency: :string, locale: [:string, nullable: true], total_quantity: :number,
|
|
11
|
-
|
|
16
|
+
coupon_code: [:string, nullable: true],
|
|
17
|
+
fulfillment_status: [:string, nullable: true, enum: Spree::Order::FULFILLMENT_STATUSES],
|
|
18
|
+
payment_status: [:string, nullable: true, enum: Spree::Order::PAYMENT_STATUSES],
|
|
12
19
|
item_total: [:string, nullable: true], display_item_total: [:string, nullable: true],
|
|
13
20
|
delivery_total: [:string, nullable: true], display_delivery_total: [:string, nullable: true],
|
|
14
21
|
adjustment_total: [:string, nullable: true], display_adjustment_total: [:string, nullable: true],
|
|
@@ -16,12 +23,15 @@ module Spree
|
|
|
16
23
|
tax_total: [:string, nullable: true], display_tax_total: [:string, nullable: true],
|
|
17
24
|
included_tax_total: [:string, nullable: true], display_included_tax_total: [:string, nullable: true],
|
|
18
25
|
additional_tax_total: [:string, nullable: true], display_additional_tax_total: [:string, nullable: true],
|
|
26
|
+
fee_total: [:string, nullable: true], display_fee_total: [:string, nullable: true],
|
|
19
27
|
store_credit_total: [:string, nullable: true], display_store_credit_total: [:string, nullable: true],
|
|
20
28
|
gift_card_total: [:string, nullable: true], display_gift_card_total: [:string, nullable: true],
|
|
21
29
|
covered_by_store_credit: :boolean,
|
|
22
30
|
total: [:string, nullable: true], display_total: [:string, nullable: true],
|
|
23
31
|
amount_due: [:string, nullable: true], display_amount_due: [:string, nullable: true],
|
|
24
32
|
completed_at: [:string, nullable: true],
|
|
33
|
+
withdrawal_period_ends_at: [:string, nullable: true],
|
|
34
|
+
within_withdrawal_period: :boolean,
|
|
25
35
|
billing_address: { nullable: true }, shipping_address: { nullable: true },
|
|
26
36
|
gift_card: { nullable: true }, market: { nullable: true }
|
|
27
37
|
|
|
@@ -29,12 +39,50 @@ module Spree
|
|
|
29
39
|
order.market&.prefixed_id
|
|
30
40
|
end
|
|
31
41
|
|
|
42
|
+
# The EU cooling-off deadline. Customer-facing by design: a buyer
|
|
43
|
+
# deciding whether they can still send something back should not have
|
|
44
|
+
# to work the date out from a policy page.
|
|
45
|
+
attribute :withdrawal_period_ends_at do |order|
|
|
46
|
+
order.withdrawal_period_ends_at&.iso8601
|
|
47
|
+
end
|
|
48
|
+
|
|
49
|
+
attribute :within_withdrawal_period do |order|
|
|
50
|
+
order.within_withdrawal_period?
|
|
51
|
+
end
|
|
52
|
+
|
|
53
|
+
# The checkout handle this order was born from (nil for admin drafts).
|
|
54
|
+
# Lets abandonment tooling match cart.* events to the conversion.
|
|
55
|
+
# Encoded from the FK — loading the cart row just for its id would be
|
|
56
|
+
# an N+1 on order lists.
|
|
57
|
+
attribute :cart_id do |order|
|
|
58
|
+
Spree::Cart.prefixed_id_for(order.cart_id)
|
|
59
|
+
end
|
|
60
|
+
|
|
32
61
|
attribute :channel_id do |order|
|
|
33
62
|
order.channel&.prefixed_id
|
|
34
63
|
end
|
|
35
64
|
|
|
36
|
-
|
|
37
|
-
|
|
65
|
+
# Which company node the order was placed for — frozen at completion.
|
|
66
|
+
attribute :company_id do |order|
|
|
67
|
+
order.company&.prefixed_id
|
|
68
|
+
end
|
|
69
|
+
|
|
70
|
+
attribute :company_name do |order|
|
|
71
|
+
order.company&.name
|
|
72
|
+
end
|
|
73
|
+
|
|
74
|
+
# The buyer's own purchase-order reference, carried from the cart. Their
|
|
75
|
+
# accounting reconciles against it, so it stays on the order forever.
|
|
76
|
+
attribute :po_document_filename do |order|
|
|
77
|
+
order.po_document.blob&.filename&.to_s if order.po_document.attached?
|
|
78
|
+
end
|
|
79
|
+
|
|
80
|
+
attribute :po_document_byte_size do |order|
|
|
81
|
+
order.po_document.blob&.byte_size if order.po_document.attached?
|
|
82
|
+
end
|
|
83
|
+
|
|
84
|
+
attributes :number, :email, :customer_note, :po_number,
|
|
85
|
+
:currency, :locale, :total_quantity, :coupon_code,
|
|
38
86
|
:fulfillment_status, :payment_status,
|
|
39
87
|
completed_at: :iso8601
|
|
40
88
|
|
|
@@ -47,7 +95,8 @@ module Spree
|
|
|
47
95
|
:additional_tax_total, :display_additional_tax_total, :total, :display_total,
|
|
48
96
|
:gift_card_total, :display_gift_card_total,
|
|
49
97
|
:amount_due, :display_amount_due,
|
|
50
|
-
:delivery_total, :display_delivery_total
|
|
98
|
+
:delivery_total, :display_delivery_total,
|
|
99
|
+
:fee_total, :display_fee_total
|
|
51
100
|
|
|
52
101
|
attribute :store_credit_total do |order|
|
|
53
102
|
order.total_applied_store_credit.to_s unless params[:hide_prices]
|
|
@@ -61,7 +110,10 @@ module Spree
|
|
|
61
110
|
order.covered_by_store_credit?
|
|
62
111
|
end
|
|
63
112
|
|
|
64
|
-
many :discounts, resource: proc { Spree.api.
|
|
113
|
+
many :order_promotions, key: :discounts, resource: proc { Spree.api.applied_promotion_serializer }
|
|
114
|
+
# Itemized charges (duties, surcharges, COD, handling) — see the cart
|
|
115
|
+
# serializer; the order keeps them visible after placement.
|
|
116
|
+
many :fees, resource: proc { Spree.api.fee_serializer }
|
|
65
117
|
many :line_items, key: :items, resource: proc { Spree.api.line_item_serializer }
|
|
66
118
|
many :fulfillments, resource: proc { Spree.api.fulfillment_serializer }
|
|
67
119
|
many :payments, resource: proc { Spree.api.payment_serializer }
|
|
@@ -2,7 +2,7 @@ module Spree
|
|
|
2
2
|
module Api
|
|
3
3
|
module V3
|
|
4
4
|
class PaymentMethodSerializer < BaseSerializer
|
|
5
|
-
typelize name: :string, description: [:string, nullable: true], type: :string,
|
|
5
|
+
typelize name: :string, description: [:string, nullable: true], type: [:string, comment: 'Payment method type. Built-in: check, store_credit, custom_payment_source_method, bogus (test only); payment provider gems register their own, for example stripe.'],
|
|
6
6
|
session_required: :boolean, source_required: :boolean
|
|
7
7
|
|
|
8
8
|
attributes :name, :description
|
|
@@ -2,7 +2,7 @@ module Spree
|
|
|
2
2
|
module Api
|
|
3
3
|
module V3
|
|
4
4
|
class PaymentSerializer < BaseSerializer
|
|
5
|
-
typelize status: :string, payment_method_id: :string, response_code: [:string, nullable: true],
|
|
5
|
+
typelize status: [:string, enum: Spree::Payment.statuses, enum_type_name: 'PaymentStatus'], payment_method_id: :string, response_code: [:string, nullable: true],
|
|
6
6
|
number: :string, amount: [:string, nullable: true], display_amount: [:string, nullable: true],
|
|
7
7
|
source_type: [:string, nullable: true, enum: %w[credit_card store_credit payment_source]],
|
|
8
8
|
source_id: [:string, nullable: true],
|
|
@@ -12,16 +12,12 @@ module Spree
|
|
|
12
12
|
payment.payment_method&.prefixed_id
|
|
13
13
|
end
|
|
14
14
|
|
|
15
|
-
attributes :response_code, :number
|
|
15
|
+
attributes :response_code, :number, :status
|
|
16
16
|
|
|
17
17
|
# Nulled for gated (prices_hidden) guests so a payment can't leak the
|
|
18
18
|
# amount the cart/order totals already withhold.
|
|
19
19
|
money_attributes :amount, :display_amount
|
|
20
20
|
|
|
21
|
-
attribute :status do |payment|
|
|
22
|
-
payment.state
|
|
23
|
-
end
|
|
24
|
-
|
|
25
21
|
attribute :source_type do |payment|
|
|
26
22
|
case payment.source_type
|
|
27
23
|
when 'Spree::CreditCard'
|
|
@@ -2,10 +2,11 @@ module Spree
|
|
|
2
2
|
module Api
|
|
3
3
|
module V3
|
|
4
4
|
class PaymentSessionSerializer < BaseSerializer
|
|
5
|
-
typelize status: :string, amount: :string, currency: :string,
|
|
5
|
+
typelize status: [:string, enum: Spree::PaymentSession.statuses, enum_type_name: 'PaymentSessionStatus'], amount: :string, currency: :string,
|
|
6
6
|
external_id: :string, external_data: 'Record<string, unknown>',
|
|
7
7
|
expires_at: [:string, nullable: true], customer_external_id: [:string, nullable: true],
|
|
8
|
-
payment_method_id: :string, order_id: :string
|
|
8
|
+
payment_method_id: :string, order_id: [:string, nullable: true],
|
|
9
|
+
cart_id: [:string, nullable: true]
|
|
9
10
|
|
|
10
11
|
attributes :status, :currency, :external_id, :external_data,
|
|
11
12
|
:customer_external_id,
|
|
@@ -19,8 +20,14 @@ module Spree
|
|
|
19
20
|
session.payment_method&.prefixed_id
|
|
20
21
|
end
|
|
21
22
|
|
|
23
|
+
# Bridge: reports the owner (cart during checkout, order after
|
|
24
|
+
# completion) until clients migrate to cart_id/order_id.
|
|
22
25
|
attribute :order_id do |session|
|
|
23
|
-
session.
|
|
26
|
+
session.owner&.prefixed_id
|
|
27
|
+
end
|
|
28
|
+
|
|
29
|
+
attribute :cart_id do |session|
|
|
30
|
+
session.cart&.prefixed_id
|
|
24
31
|
end
|
|
25
32
|
|
|
26
33
|
one :payment_method, resource: proc { Spree.api.payment_method_serializer }
|
|
@@ -2,7 +2,7 @@ module Spree
|
|
|
2
2
|
module Api
|
|
3
3
|
module V3
|
|
4
4
|
class PaymentSetupSessionSerializer < BaseSerializer
|
|
5
|
-
typelize status: :string, external_id: [:string, nullable: true], external_client_secret: [:string, nullable: true],
|
|
5
|
+
typelize status: [:string, enum: Spree::PaymentSetupSession.statuses, enum_type_name: 'PaymentSetupSessionStatus'], external_id: [:string, nullable: true], external_client_secret: [:string, nullable: true],
|
|
6
6
|
external_data: 'Record<string, unknown>',
|
|
7
7
|
payment_method_id: [:string, nullable: true], payment_source_id: [:string, nullable: true],
|
|
8
8
|
payment_source_type: [:string, nullable: true], customer_id: [:string, nullable: true]
|
|
@@ -8,13 +8,18 @@ module Spree
|
|
|
8
8
|
attributes :name, :slug
|
|
9
9
|
|
|
10
10
|
attribute :body do |policy|
|
|
11
|
-
policy.body
|
|
11
|
+
Spree::RichTextHelper.to_plain_text(policy.body)
|
|
12
12
|
end
|
|
13
13
|
|
|
14
14
|
attribute :body_html do |policy|
|
|
15
|
-
policy.
|
|
15
|
+
policy.body_html
|
|
16
16
|
end
|
|
17
17
|
|
|
18
|
+
# The one timestamp a store serializer carries. When a legal document
|
|
19
|
+
# last changed is what a shopper is entitled to see on the page —
|
|
20
|
+
# "last updated" is the convention for policies — not operational
|
|
21
|
+
# detail. `created_at` stays admin-only.
|
|
22
|
+
attributes updated_at: :iso8601
|
|
18
23
|
end
|
|
19
24
|
end
|
|
20
25
|
end
|
|
@@ -9,6 +9,7 @@ module Spree
|
|
|
9
9
|
meta_description: [:string, nullable: true], meta_keywords: [:string, nullable: true],
|
|
10
10
|
variant_count: :number,
|
|
11
11
|
default_variant_id: :string,
|
|
12
|
+
buy_box_variant_id: [:string, nullable: true],
|
|
12
13
|
thumbnail_url: [:string, nullable: true],
|
|
13
14
|
available_on: [:string, nullable: true],
|
|
14
15
|
preorder_ships_at: [:string, nullable: true],
|
|
@@ -55,10 +56,23 @@ module Spree
|
|
|
55
56
|
product.description
|
|
56
57
|
end
|
|
57
58
|
|
|
59
|
+
# The product's stable identity for add-to-cart. Deliberately NOT the
|
|
60
|
+
# buy-box winner: that moves with price and stock, and a client that
|
|
61
|
+
# cached or linked this id must not find it pointing at a different
|
|
62
|
+
# row tomorrow. On a single-seller catalog the two coincide anyway.
|
|
58
63
|
attribute :default_variant_id do |product|
|
|
59
64
|
product.default_variant&.prefixed_id
|
|
60
65
|
end
|
|
61
66
|
|
|
67
|
+
# The offer a storefront should lead with when several sellers share
|
|
68
|
+
# the listing — the buy-box winner in the request's currency. Nil when
|
|
69
|
+
# nothing wins. Separate from `default_variant_id` so a storefront opts
|
|
70
|
+
# into the marketplace behaviour without the identity field moving
|
|
71
|
+
# under it; storefronts that ignore it lose nothing.
|
|
72
|
+
attribute :buy_box_variant_id do |product|
|
|
73
|
+
product.buy_box_variant(currency: current_currency)&.prefixed_id
|
|
74
|
+
end
|
|
75
|
+
|
|
62
76
|
# Main product image URL for listings (cached primary_media)
|
|
63
77
|
attribute :thumbnail_url do |product|
|
|
64
78
|
image_url_for(product.primary_media)
|
|
@@ -68,16 +82,22 @@ module Spree
|
|
|
68
82
|
product.tags.map(&:name) # not pluck as we preload tags
|
|
69
83
|
end
|
|
70
84
|
|
|
71
|
-
# Price object - calculated price with price list resolution
|
|
85
|
+
# Price object - calculated price with price list resolution.
|
|
86
|
+
#
|
|
87
|
+
# Priced off the buy-box winner, not `default_variant_id`. Price is a
|
|
88
|
+
# display fact that already moves with price lists and currency, so it
|
|
89
|
+
# is not an identity — and it must agree with `buy_box_variant_id`: the
|
|
90
|
+
# price a shopper sees is the price of the offer they are shown. On a
|
|
91
|
+
# single-seller catalog winner and default variant are the same row.
|
|
72
92
|
attribute :price do |product|
|
|
73
|
-
price = price_for(product
|
|
93
|
+
price = price_for(featured_variant(product))
|
|
74
94
|
Spree.api.price_serializer.new(price, params: params).to_h if price.present?
|
|
75
95
|
end
|
|
76
96
|
|
|
77
97
|
# Original price - base price without price list resolution (for showing strikethrough)
|
|
78
98
|
# Returns null when same as calculated price, only populated when a price list discount is applied
|
|
79
99
|
attribute :original_price do |product|
|
|
80
|
-
variant = product
|
|
100
|
+
variant = featured_variant(product)
|
|
81
101
|
calculated = price_for(variant)
|
|
82
102
|
base = price_in(variant)
|
|
83
103
|
|
|
@@ -86,7 +106,18 @@ module Spree
|
|
|
86
106
|
end
|
|
87
107
|
end
|
|
88
108
|
|
|
109
|
+
# Nil on the marketplace's own first-party products. The id is always
|
|
110
|
+
# present so a storefront can group or link by seller without paying
|
|
111
|
+
# for the expand; `?expand=seller` adds the public profile.
|
|
112
|
+
attribute :seller_id do |product|
|
|
113
|
+
product.seller&.prefixed_id
|
|
114
|
+
end
|
|
115
|
+
|
|
89
116
|
# Conditional associations
|
|
117
|
+
one :seller,
|
|
118
|
+
resource: proc { Spree.api.seller_serializer },
|
|
119
|
+
if: proc { expand?('seller') }
|
|
120
|
+
|
|
90
121
|
one :primary_media,
|
|
91
122
|
resource: proc { Spree.api.media_serializer },
|
|
92
123
|
if: proc { expand?('primary_media') }
|
|
@@ -112,24 +143,25 @@ module Spree
|
|
|
112
143
|
resource: proc { Spree.api.option_value_serializer },
|
|
113
144
|
if: proc { expand?('option_values') }
|
|
114
145
|
|
|
115
|
-
many :
|
|
116
|
-
proc { |
|
|
117
|
-
|
|
146
|
+
many :categories,
|
|
147
|
+
proc { |categories, params|
|
|
148
|
+
store_id = params[:store].id
|
|
149
|
+
categories.select { |c| c.store_id == store_id }
|
|
118
150
|
},
|
|
119
|
-
key: :categories,
|
|
120
151
|
resource: proc { Spree.api.category_serializer },
|
|
121
152
|
if: proc { expand?('categories') }
|
|
122
153
|
|
|
123
|
-
many :
|
|
154
|
+
many :storefront_custom_fields,
|
|
124
155
|
key: :custom_fields,
|
|
125
156
|
resource: proc { Spree.api.custom_field_serializer },
|
|
126
157
|
if: proc { expand?('custom_fields') }
|
|
127
158
|
|
|
128
|
-
typelize prior_price: ['PriceHistory', nullable: true]
|
|
159
|
+
typelize prior_price: ['PriceHistory', nullable: true],
|
|
160
|
+
seller_id: [:string, nullable: true]
|
|
129
161
|
|
|
130
162
|
attribute :prior_price,
|
|
131
163
|
if: proc { expand?('prior_price') } do |product|
|
|
132
|
-
record = price_in(product
|
|
164
|
+
record = price_in(featured_variant(product))&.prior_price
|
|
133
165
|
Spree.api.price_history_serializer.new(record, params: params).to_h if record
|
|
134
166
|
end
|
|
135
167
|
end
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
module Spree
|
|
2
|
+
module Api
|
|
3
|
+
module V3
|
|
4
|
+
# Base Product Type Serializer.
|
|
5
|
+
#
|
|
6
|
+
# ProductType is back-office vocabulary and is NOT exposed on the Store
|
|
7
|
+
# API — no endpoint, no expand, no filter. This class exists solely as the
|
|
8
|
+
# parent of the Admin serializer, per the house convention that every
|
|
9
|
+
# admin serializer extends a store-namespace base.
|
|
10
|
+
class ProductTypeSerializer < BaseSerializer
|
|
11
|
+
typelize name: :string
|
|
12
|
+
|
|
13
|
+
attributes :name
|
|
14
|
+
end
|
|
15
|
+
end
|
|
16
|
+
end
|
|
17
|
+
end
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
module Spree
|
|
2
|
+
module Api
|
|
3
|
+
module V3
|
|
4
|
+
# Payload of the purchase_order.* events. Purchase orders have no
|
|
5
|
+
# storefront serializer, so the event shape is declared here rather than
|
|
6
|
+
# found by convention.
|
|
7
|
+
class PurchaseOrderEventSerializer < Admin::PurchaseOrderSerializer
|
|
8
|
+
end
|
|
9
|
+
end
|
|
10
|
+
end
|
|
11
|
+
end
|
|
@@ -6,7 +6,7 @@ module Spree
|
|
|
6
6
|
class RefundSerializer < BaseSerializer
|
|
7
7
|
typelize amount: [:string, nullable: true], transaction_id: [:string, nullable: true],
|
|
8
8
|
payment_id: [:string, nullable: true], refund_reason_id: [:string, nullable: true],
|
|
9
|
-
|
|
9
|
+
originator_id: [:string, nullable: true], originator_type: [:string, nullable: true]
|
|
10
10
|
|
|
11
11
|
attributes :transaction_id
|
|
12
12
|
|
|
@@ -22,8 +22,14 @@ module Spree
|
|
|
22
22
|
refund.reason&.prefixed_id
|
|
23
23
|
end
|
|
24
24
|
|
|
25
|
-
|
|
26
|
-
|
|
25
|
+
# What triggered this refund — a Return, Exchange or Claim; nil for a
|
|
26
|
+
# manual refund.
|
|
27
|
+
attribute :originator_id do |refund|
|
|
28
|
+
refund.originator&.prefixed_id
|
|
29
|
+
end
|
|
30
|
+
|
|
31
|
+
attribute :originator_type do |refund|
|
|
32
|
+
refund.originator_type
|
|
27
33
|
end
|
|
28
34
|
end
|
|
29
35
|
end
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
module Spree
|
|
4
|
+
module Api
|
|
5
|
+
module V3
|
|
6
|
+
class ReturnLineItemSerializer < BaseSerializer
|
|
7
|
+
typelize quantity: :number,
|
|
8
|
+
received_quantity: :number,
|
|
9
|
+
resellable: :boolean,
|
|
10
|
+
pre_tax_amount: :string,
|
|
11
|
+
display_pre_tax_amount: :string,
|
|
12
|
+
variant_id: [:string, nullable: true],
|
|
13
|
+
line_item_id: [:string, nullable: true],
|
|
14
|
+
fulfillment_item_id: [:string, nullable: true]
|
|
15
|
+
|
|
16
|
+
attributes :quantity, :received_quantity, :resellable
|
|
17
|
+
|
|
18
|
+
attribute :pre_tax_amount do |line|
|
|
19
|
+
line.pre_tax_amount.to_s
|
|
20
|
+
end
|
|
21
|
+
|
|
22
|
+
attribute :display_pre_tax_amount do |line|
|
|
23
|
+
line.display_pre_tax_amount.to_s
|
|
24
|
+
end
|
|
25
|
+
|
|
26
|
+
attribute :variant_id do |line|
|
|
27
|
+
line.variant&.prefixed_id
|
|
28
|
+
end
|
|
29
|
+
|
|
30
|
+
attribute :line_item_id do |line|
|
|
31
|
+
line.line_item&.prefixed_id
|
|
32
|
+
end
|
|
33
|
+
|
|
34
|
+
attribute :fulfillment_item_id do |line|
|
|
35
|
+
line.fulfillment_item&.prefixed_id
|
|
36
|
+
end
|
|
37
|
+
|
|
38
|
+
one :variant, resource: proc { Spree.api.variant_serializer }, if: proc { expand?('variant') }
|
|
39
|
+
end
|
|
40
|
+
end
|
|
41
|
+
end
|
|
42
|
+
end
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
module Spree
|
|
4
|
+
module Api
|
|
5
|
+
module V3
|
|
6
|
+
# Why a customer sent something back. Embedded in returns and exchanges
|
|
7
|
+
# so a customer sees the reason's name rather than only its id; the
|
|
8
|
+
# vocabulary itself has no Store API controller of its own.
|
|
9
|
+
#
|
|
10
|
+
# Parallel to ClaimReasonSerializer rather than sharing a base class:
|
|
11
|
+
# Typelizer emits one TS type per serializer, so a shared parent would
|
|
12
|
+
# publish an abstract `Reason` type that no endpoint returns.
|
|
13
|
+
class ReturnReasonSerializer < BaseSerializer
|
|
14
|
+
typelize name: :string, active: :boolean
|
|
15
|
+
|
|
16
|
+
attributes :name, :active
|
|
17
|
+
end
|
|
18
|
+
end
|
|
19
|
+
end
|
|
20
|
+
end
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
module Spree
|
|
4
|
+
module Api
|
|
5
|
+
module V3
|
|
6
|
+
# Customer-facing view of a return. No timestamps, no internal notes,
|
|
7
|
+
# no staff attribution — see the serializer rules in CLAUDE.md.
|
|
8
|
+
class ReturnSerializer < BaseSerializer
|
|
9
|
+
typelize number: :string,
|
|
10
|
+
status: [:string, enum: Spree::Return.statuses, enum_type_name: 'ReturnStatus'],
|
|
11
|
+
order_id: [:string, nullable: true],
|
|
12
|
+
reason_id: [:string, nullable: true],
|
|
13
|
+
refund_total: :string,
|
|
14
|
+
display_refund_total: :string,
|
|
15
|
+
approved_at: [:string, nullable: true],
|
|
16
|
+
received_at: [:string, nullable: true],
|
|
17
|
+
refunded_at: [:string, nullable: true],
|
|
18
|
+
canceled_at: [:string, nullable: true]
|
|
19
|
+
|
|
20
|
+
attributes :number, :status
|
|
21
|
+
|
|
22
|
+
attribute :order_id do |return_record|
|
|
23
|
+
return_record.order&.prefixed_id
|
|
24
|
+
end
|
|
25
|
+
|
|
26
|
+
attribute :reason_id do |return_record|
|
|
27
|
+
return_record.reason&.prefixed_id
|
|
28
|
+
end
|
|
29
|
+
|
|
30
|
+
attribute :refund_total do |return_record|
|
|
31
|
+
return_record.refund_total.to_s
|
|
32
|
+
end
|
|
33
|
+
|
|
34
|
+
attribute :display_refund_total do |return_record|
|
|
35
|
+
return_record.display_refund_total.to_s
|
|
36
|
+
end
|
|
37
|
+
|
|
38
|
+
attribute :approved_at do |return_record|
|
|
39
|
+
return_record.approved_at&.iso8601
|
|
40
|
+
end
|
|
41
|
+
|
|
42
|
+
attribute :received_at do |return_record|
|
|
43
|
+
return_record.received_at&.iso8601
|
|
44
|
+
end
|
|
45
|
+
|
|
46
|
+
attribute :refunded_at do |return_record|
|
|
47
|
+
return_record.refunded_at&.iso8601
|
|
48
|
+
end
|
|
49
|
+
|
|
50
|
+
attribute :canceled_at do |return_record|
|
|
51
|
+
return_record.canceled_at&.iso8601
|
|
52
|
+
end
|
|
53
|
+
|
|
54
|
+
one :reason, resource: proc { Spree.api.return_reason_serializer }, if: proc { expand?('reason') }
|
|
55
|
+
|
|
56
|
+
many :return_line_items,
|
|
57
|
+
resource: proc { Spree.api.return_line_item_serializer },
|
|
58
|
+
if: proc { expand?('return_line_items') }
|
|
59
|
+
end
|
|
60
|
+
end
|
|
61
|
+
end
|
|
62
|
+
end
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
module Spree
|
|
2
|
+
module Api
|
|
3
|
+
module V3
|
|
4
|
+
module Seller
|
|
5
|
+
# This seller's position in one currency (Spree::SellerBalance).
|
|
6
|
+
#
|
|
7
|
+
# A computed value rather than a record, so it carries no id.
|
|
8
|
+
class BalanceSerializer < V3::BaseSerializer
|
|
9
|
+
typelize currency: :string,
|
|
10
|
+
settlement_currency: :string,
|
|
11
|
+
converted: :boolean,
|
|
12
|
+
earned: :string, display_earned: :string,
|
|
13
|
+
payable: :string, display_payable: :string,
|
|
14
|
+
paid: :string, display_paid: :string,
|
|
15
|
+
balance: :string, display_balance: :string,
|
|
16
|
+
pending: :string, display_pending: :string
|
|
17
|
+
|
|
18
|
+
_attributes.delete(:id)
|
|
19
|
+
|
|
20
|
+
# Two sides when the account settles in another currency: what the
|
|
21
|
+
# sales were worth, and what the account received once the provider
|
|
22
|
+
# converted. Never added together.
|
|
23
|
+
attributes :currency, :settlement_currency
|
|
24
|
+
|
|
25
|
+
attribute(:converted) { |balance| balance.converted? }
|
|
26
|
+
|
|
27
|
+
%i[earned payable paid balance pending].each do |figure|
|
|
28
|
+
attribute(figure) { |balance| balance.public_send(figure).to_s }
|
|
29
|
+
attribute(:"display_#{figure}") { |balance| balance.public_send(:"display_#{figure}").to_s }
|
|
30
|
+
end
|
|
31
|
+
end
|
|
32
|
+
end
|
|
33
|
+
end
|
|
34
|
+
end
|
|
35
|
+
end
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
module Spree
|
|
4
|
+
module Api
|
|
5
|
+
module V3
|
|
6
|
+
module Seller
|
|
7
|
+
# One line of a claim — what went wrong, and what is being sent or
|
|
8
|
+
# refunded to put it right.
|
|
9
|
+
class ClaimLineItemSerializer < V3::ClaimLineItemSerializer
|
|
10
|
+
typelize name: [:string, nullable: true]
|
|
11
|
+
|
|
12
|
+
attribute :name do |line|
|
|
13
|
+
line.line_item&.name || line.variant&.name
|
|
14
|
+
end
|
|
15
|
+
|
|
16
|
+
one :variant, resource: proc { Spree.api.seller_variant_serializer }, if: proc { expand?('variant') }
|
|
17
|
+
end
|
|
18
|
+
end
|
|
19
|
+
end
|
|
20
|
+
end
|
|
21
|
+
end
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
module Spree
|
|
4
|
+
module Api
|
|
5
|
+
module V3
|
|
6
|
+
module Seller
|
|
7
|
+
# A claim on one of this seller's orders.
|
|
8
|
+
#
|
|
9
|
+
# Built on the shared V3 serializer rather than the admin one, which
|
|
10
|
+
# expands the order and the customer behind it.
|
|
11
|
+
class ClaimSerializer < V3::ClaimSerializer
|
|
12
|
+
typelize memo: [:string, nullable: true]
|
|
13
|
+
|
|
14
|
+
attributes :memo
|
|
15
|
+
|
|
16
|
+
many :claim_line_items,
|
|
17
|
+
resource: proc { Spree.api.seller_claim_line_item_serializer },
|
|
18
|
+
if: proc { expand?('claim_line_items') }
|
|
19
|
+
|
|
20
|
+
one :reason, resource: proc { Spree.api.seller_reason_serializer }, if: proc { expand?('reason') }
|
|
21
|
+
end
|
|
22
|
+
end
|
|
23
|
+
end
|
|
24
|
+
end
|
|
25
|
+
end
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
module Spree
|
|
2
|
+
module Api
|
|
3
|
+
module V3
|
|
4
|
+
module Seller
|
|
5
|
+
# One condition on a seller's delivery method — "orders over $50",
|
|
6
|
+
# "under 20kg".
|
|
7
|
+
#
|
|
8
|
+
# Declared rather than subclassed from the admin serializer, like
|
|
9
|
+
# every serializer on this branch. `product_ids` is absent: the rules
|
|
10
|
+
# a seller may use are preference-only (see the seller delivery
|
|
11
|
+
# methods controller), so no rule here carries an association.
|
|
12
|
+
class DeliveryMethodRuleSerializer < BaseSerializer
|
|
13
|
+
typelize type: [:string, comment: 'Rule type. Built-in: item_total_rule, weight_rule, excluded_products_rule, channel_rule, volume_rule, company_rule. Extensions may register more.'],
|
|
14
|
+
active: :boolean,
|
|
15
|
+
preferences: 'Record<string, unknown>',
|
|
16
|
+
preference_schema: "Array<{ key: string; type: string; default: unknown; choices?: string[] }>"
|
|
17
|
+
|
|
18
|
+
attributes :active
|
|
19
|
+
|
|
20
|
+
# Wire shorthand (e.g. `item_total_rule`), matching the types
|
|
21
|
+
# discovery endpoint.
|
|
22
|
+
attribute :type do |rule|
|
|
23
|
+
rule.class.api_type
|
|
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
|