spree_api 6.0.0.beta4 → 6.0.0.rc1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/Rakefile +4 -31
- data/app/controllers/concerns/spree/api/v3/admin/email_template_lookup.rb +139 -0
- data/app/controllers/concerns/spree/api/v3/admin/store_context.rb +1 -1
- data/app/controllers/concerns/spree/api/v3/admin/subclassed_resource.rb +1 -1
- data/app/controllers/concerns/spree/api/v3/cart_resolvable.rb +7 -0
- data/app/controllers/concerns/spree/api/v3/channel_resolution.rb +2 -2
- data/app/controllers/concerns/spree/api/v3/current_password_confirmation.rb +1 -1
- data/app/controllers/concerns/spree/api/v3/error_handler.rb +7 -2
- data/app/controllers/concerns/spree/api/v3/http_caching.rb +44 -11
- data/app/controllers/concerns/spree/api/v3/idempotent.rb +20 -5
- data/app/controllers/concerns/spree/api/v3/items_payload.rb +1 -1
- data/app/controllers/concerns/spree/api/v3/order_lock.rb +2 -2
- data/app/controllers/concerns/spree/api/v3/orders/delivery_actions.rb +1 -5
- data/app/controllers/concerns/spree/api/v3/orders/fulfillment_actions.rb +2 -10
- data/app/controllers/concerns/spree/api/v3/orders/post_sale_actions.rb +2 -10
- data/app/controllers/concerns/spree/api/v3/orders/shipping_label_actions.rb +4 -8
- data/app/controllers/concerns/spree/api/v3/permission_serialization.rb +9 -1
- data/app/controllers/concerns/spree/api/v3/seller/seller_context.rb +1 -1
- data/app/controllers/concerns/spree/api/v3/store/storefront_products.rb +5 -4
- data/app/controllers/concerns/spree/api/v3/storefront_gating.rb +11 -5
- data/app/controllers/spree/api/v3/admin/admin_users_controller.rb +0 -5
- data/app/controllers/spree/api/v3/admin/api_keys_controller.rb +1 -1
- data/app/controllers/spree/api/v3/admin/catalogs/order_minimums_controller.rb +0 -6
- data/app/controllers/spree/api/v3/admin/catalogs/quantity_rules_controller.rb +0 -4
- data/app/controllers/spree/api/v3/admin/catalogs_controller.rb +1 -1
- data/app/controllers/spree/api/v3/admin/channels_controller.rb +0 -4
- data/app/controllers/spree/api/v3/admin/collections/products_controller.rb +1 -2
- data/app/controllers/spree/api/v3/admin/commission_rates_controller.rb +2 -2
- data/app/controllers/spree/api/v3/admin/companies/addresses_controller.rb +0 -4
- data/app/controllers/spree/api/v3/admin/companies/invitations_controller.rb +1 -5
- data/app/controllers/spree/api/v3/admin/companies/memberships_controller.rb +0 -4
- data/app/controllers/spree/api/v3/admin/companies/tax_exemption_certificates_controller.rb +1 -9
- data/app/controllers/spree/api/v3/admin/companies/tax_identifiers_controller.rb +0 -4
- data/app/controllers/spree/api/v3/admin/companies_controller.rb +0 -4
- data/app/controllers/spree/api/v3/admin/countries_controller.rb +1 -1
- data/app/controllers/spree/api/v3/admin/coupon_codes_controller.rb +0 -4
- data/app/controllers/spree/api/v3/admin/custom_field_definitions_controller.rb +9 -1
- data/app/controllers/spree/api/v3/admin/custom_fields_controller.rb +0 -4
- data/app/controllers/spree/api/v3/admin/customer_groups_controller.rb +0 -4
- data/app/controllers/spree/api/v3/admin/customers/addresses_controller.rb +0 -4
- data/app/controllers/spree/api/v3/admin/customers/credit_cards_controller.rb +0 -4
- data/app/controllers/spree/api/v3/admin/customers/store_credits_controller.rb +0 -4
- data/app/controllers/spree/api/v3/admin/customers_controller.rb +2 -2
- data/app/controllers/spree/api/v3/admin/delivery_methods/rules_controller.rb +1 -1
- data/app/controllers/spree/api/v3/admin/delivery_methods_controller.rb +3 -5
- data/app/controllers/spree/api/v3/admin/delivery_profiles_controller.rb +1 -6
- data/app/controllers/spree/api/v3/admin/email_templates/drafts_controller.rb +40 -0
- data/app/controllers/spree/api/v3/admin/email_templates/previews_controller.rb +30 -0
- data/app/controllers/spree/api/v3/admin/email_templates/publications_controller.rb +30 -0
- data/app/controllers/spree/api/v3/admin/email_templates/restorations_controller.rb +34 -0
- data/app/controllers/spree/api/v3/admin/email_templates/revisions_controller.rb +35 -0
- data/app/controllers/spree/api/v3/admin/email_templates/sample_records_controller.rb +33 -0
- data/app/controllers/spree/api/v3/admin/email_templates/test_emails_controller.rb +40 -0
- data/app/controllers/spree/api/v3/admin/email_templates_controller.rb +46 -0
- data/app/controllers/spree/api/v3/admin/imports_controller.rb +1 -2
- data/app/controllers/spree/api/v3/admin/invitations_controller.rb +0 -7
- data/app/controllers/spree/api/v3/admin/me_controller.rb +1 -1
- data/app/controllers/spree/api/v3/admin/media_library_controller.rb +5 -5
- data/app/controllers/spree/api/v3/admin/order_routing_rules_controller.rb +0 -4
- data/app/controllers/spree/api/v3/admin/orders/deliveries_controller.rb +1 -5
- data/app/controllers/spree/api/v3/admin/orders/discount_codes_controller.rb +1 -1
- data/app/controllers/spree/api/v3/admin/orders/discounts_controller.rb +1 -1
- data/app/controllers/spree/api/v3/admin/orders/fulfillments_controller.rb +18 -16
- data/app/controllers/spree/api/v3/admin/orders/gift_cards_controller.rb +3 -3
- data/app/controllers/spree/api/v3/admin/orders/labels_controller.rb +2 -10
- data/app/controllers/spree/api/v3/admin/orders/payments_controller.rb +2 -14
- data/app/controllers/spree/api/v3/admin/orders/refunds_controller.rb +1 -5
- data/app/controllers/spree/api/v3/admin/orders_controller.rb +3 -3
- data/app/controllers/spree/api/v3/admin/password_resets_controller.rb +9 -7
- data/app/controllers/spree/api/v3/admin/price_lists_controller.rb +6 -53
- data/app/controllers/spree/api/v3/admin/prices_controller.rb +0 -4
- data/app/controllers/spree/api/v3/admin/products/digital_assets_controller.rb +2 -6
- data/app/controllers/spree/api/v3/admin/products/variants_controller.rb +0 -4
- data/app/controllers/spree/api/v3/admin/products_controller.rb +1 -1
- data/app/controllers/spree/api/v3/admin/promotion_actions_controller.rb +0 -4
- data/app/controllers/spree/api/v3/admin/promotion_rules_controller.rb +0 -4
- data/app/controllers/spree/api/v3/admin/purchase_orders_controller.rb +1 -1
- data/app/controllers/spree/api/v3/admin/resource_controller.rb +1 -1
- data/app/controllers/spree/api/v3/admin/seller_payouts_controller.rb +1 -9
- data/app/controllers/spree/api/v3/admin/seller_requirement_submissions_controller.rb +2 -10
- data/app/controllers/spree/api/v3/admin/seller_transfers_controller.rb +0 -4
- data/app/controllers/spree/api/v3/admin/sellers/invitations_controller.rb +1 -1
- data/app/controllers/spree/api/v3/admin/sellers/payouts_controller.rb +1 -1
- data/app/controllers/spree/api/v3/admin/sellers_controller.rb +2 -10
- data/app/controllers/spree/api/v3/admin/setup_controller.rb +3 -11
- data/app/controllers/spree/api/v3/admin/stock_transfers_controller.rb +1 -1
- data/app/controllers/spree/api/v3/admin/store_controller.rb +6 -1
- data/app/controllers/spree/api/v3/admin/tags_controller.rb +8 -5
- data/app/controllers/spree/api/v3/admin/webhook_endpoints_controller.rb +17 -12
- data/app/controllers/spree/api/v3/admin/webhook_events_controller.rb +25 -0
- data/app/controllers/spree/api/v3/base_controller.rb +10 -0
- data/app/controllers/spree/api/v3/resource_controller.rb +44 -1
- data/app/controllers/spree/api/v3/seller/auth_controller.rb +2 -2
- data/app/controllers/spree/api/v3/seller/countries_controller.rb +1 -1
- data/app/controllers/spree/api/v3/seller/exports_controller.rb +3 -3
- data/app/controllers/spree/api/v3/seller/invitation_acceptances_controller.rb +3 -3
- data/app/controllers/spree/api/v3/seller/invitations_controller.rb +1 -1
- data/app/controllers/spree/api/v3/seller/me_controller.rb +1 -1
- data/app/controllers/spree/api/v3/seller/orders/labels_controller.rb +1 -1
- data/app/controllers/spree/api/v3/seller/password_resets_controller.rb +10 -11
- data/app/controllers/spree/api/v3/seller/products_controller.rb +2 -1
- data/app/controllers/spree/api/v3/seller/requirement_submissions_controller.rb +1 -1
- data/app/controllers/spree/api/v3/seller/team_controller.rb +1 -1
- data/app/controllers/spree/api/v3/store/carts/discount_codes_controller.rb +1 -1
- data/app/controllers/spree/api/v3/store/carts/fulfillments_controller.rb +3 -11
- data/app/controllers/spree/api/v3/store/carts/gift_cards_controller.rb +5 -3
- data/app/controllers/spree/api/v3/store/carts/items_controller.rb +6 -2
- data/app/controllers/spree/api/v3/store/carts/payment_sessions_controller.rb +1 -1
- data/app/controllers/spree/api/v3/store/carts/payments_controller.rb +5 -3
- data/app/controllers/spree/api/v3/store/carts/po_documents_controller.rb +2 -2
- data/app/controllers/spree/api/v3/store/carts/store_credits_controller.rb +2 -0
- data/app/controllers/spree/api/v3/store/carts_controller.rb +9 -6
- data/app/controllers/spree/api/v3/store/companies/addresses_controller.rb +0 -4
- data/app/controllers/spree/api/v3/store/companies/invitations_controller.rb +1 -5
- data/app/controllers/spree/api/v3/store/company_invitations_controller.rb +1 -1
- data/app/controllers/spree/api/v3/store/customer/addresses_controller.rb +0 -4
- data/app/controllers/spree/api/v3/store/customer/credit_cards_controller.rb +0 -4
- data/app/controllers/spree/api/v3/store/customer/data_requests_controller.rb +0 -5
- data/app/controllers/spree/api/v3/store/customer/digital_links_controller.rb +0 -4
- data/app/controllers/spree/api/v3/store/customer/gift_cards_controller.rb +0 -4
- data/app/controllers/spree/api/v3/store/customer/orders_controller.rb +0 -4
- data/app/controllers/spree/api/v3/store/customer/password_resets_controller.rb +8 -6
- data/app/controllers/spree/api/v3/store/customer/payment_setup_sessions_controller.rb +0 -4
- data/app/controllers/spree/api/v3/store/customer/store_credits_controller.rb +0 -5
- data/app/controllers/spree/api/v3/store/data_request_downloads_controller.rb +1 -1
- data/app/controllers/spree/api/v3/store/delivery_methods_controller.rb +1 -1
- data/app/controllers/spree/api/v3/store/newsletter_subscribers_controller.rb +5 -14
- data/app/controllers/spree/api/v3/store/orders/claims_controller.rb +1 -5
- data/app/controllers/spree/api/v3/store/orders/returns_controller.rb +1 -5
- data/app/controllers/spree/api/v3/store/wishlist_items_controller.rb +0 -4
- data/app/serializers/spree/api/v3/admin/address_serializer.rb +5 -7
- data/app/serializers/spree/api/v3/admin/api_key_serializer.rb +2 -6
- data/app/serializers/spree/api/v3/admin/catalog_assignment_serializer.rb +1 -3
- data/app/serializers/spree/api/v3/admin/catalog_order_minimum_serializer.rb +1 -7
- data/app/serializers/spree/api/v3/admin/catalog_product_term_serializer.rb +1 -3
- data/app/serializers/spree/api/v3/admin/catalog_quantity_rule_serializer.rb +1 -3
- data/app/serializers/spree/api/v3/admin/channel_serializer.rb +5 -6
- data/app/serializers/spree/api/v3/admin/claim_reason_serializer.rb +1 -3
- data/app/serializers/spree/api/v3/admin/commission_rule_serializer.rb +1 -3
- data/app/serializers/spree/api/v3/admin/coupon_code_serializer.rb +1 -7
- data/app/serializers/spree/api/v3/admin/credit_card_serializer.rb +1 -7
- data/app/serializers/spree/api/v3/admin/custom_field_definition_serializer.rb +6 -2
- data/app/serializers/spree/api/v3/admin/customer_serializer.rb +2 -10
- data/app/serializers/spree/api/v3/admin/data_request_serializer.rb +2 -6
- data/app/serializers/spree/api/v3/admin/delivery_method_serializer.rb +8 -22
- data/app/serializers/spree/api/v3/admin/delivery_origin_group_serializer.rb +1 -3
- data/app/serializers/spree/api/v3/admin/delivery_serializer.rb +1 -3
- data/app/serializers/spree/api/v3/admin/delivery_zone_serializer.rb +1 -7
- data/app/serializers/spree/api/v3/admin/digital_asset_serializer.rb +4 -2
- data/app/serializers/spree/api/v3/admin/email_template_draft_serializer.rb +19 -0
- data/app/serializers/spree/api/v3/admin/email_template_preview_serializer.rb +38 -0
- data/app/serializers/spree/api/v3/admin/email_template_revision_serializer.rb +18 -0
- data/app/serializers/spree/api/v3/admin/email_template_sample_record_serializer.rb +13 -0
- data/app/serializers/spree/api/v3/admin/email_template_serializer.rb +61 -0
- data/app/serializers/spree/api/v3/admin/exchange_serializer.rb +1 -3
- data/app/serializers/spree/api/v3/admin/export_serializer.rb +1 -7
- data/app/serializers/spree/api/v3/admin/fulfillment_item_serializer.rb +1 -7
- data/app/serializers/spree/api/v3/admin/fulfillment_serializer.rb +1 -7
- data/app/serializers/spree/api/v3/admin/gift_card_serializer.rb +1 -7
- data/app/serializers/spree/api/v3/admin/line_item_serializer.rb +2 -6
- data/app/serializers/spree/api/v3/admin/market_serializer.rb +4 -2
- data/app/serializers/spree/api/v3/admin/media_serializer.rb +1 -3
- data/app/serializers/spree/api/v3/admin/order_cancellation_reason_serializer.rb +1 -3
- data/app/serializers/spree/api/v3/admin/order_group_serializer.rb +3 -9
- data/app/serializers/spree/api/v3/admin/order_routing_rule_serializer.rb +1 -3
- data/app/serializers/spree/api/v3/admin/order_serializer.rb +5 -15
- data/app/serializers/spree/api/v3/admin/package_type_serializer.rb +1 -3
- data/app/serializers/spree/api/v3/admin/payment_method_serializer.rb +7 -1
- data/app/serializers/spree/api/v3/admin/payment_serializer.rb +2 -7
- data/app/serializers/spree/api/v3/admin/permission_serializer.rb +4 -4
- data/app/serializers/spree/api/v3/admin/price_rule_serializer.rb +1 -3
- data/app/serializers/spree/api/v3/admin/product_serializer.rb +2 -10
- data/app/serializers/spree/api/v3/admin/product_submission_serializer.rb +2 -10
- data/app/serializers/spree/api/v3/admin/product_type_serializer.rb +1 -3
- data/app/serializers/spree/api/v3/admin/promotion_action_serializer.rb +1 -3
- data/app/serializers/spree/api/v3/admin/promotion_rule_serializer.rb +1 -3
- data/app/serializers/spree/api/v3/admin/purchase_order_item_serializer.rb +2 -15
- data/app/serializers/spree/api/v3/admin/purchase_order_serializer.rb +2 -15
- data/app/serializers/spree/api/v3/admin/refund_reason_serializer.rb +1 -3
- data/app/serializers/spree/api/v3/admin/refund_serializer.rb +4 -1
- data/app/serializers/spree/api/v3/admin/return_line_item_serializer.rb +1 -0
- data/app/serializers/spree/api/v3/admin/return_reason_serializer.rb +1 -3
- data/app/serializers/spree/api/v3/admin/return_serializer.rb +3 -11
- data/app/serializers/spree/api/v3/admin/saved_report_serializer.rb +1 -3
- data/app/serializers/spree/api/v3/admin/seller_payout_serializer.rb +4 -2
- data/app/serializers/spree/api/v3/admin/seller_requirement_status_serializer.rb +2 -6
- data/app/serializers/spree/api/v3/admin/seller_requirement_submission_serializer.rb +1 -7
- data/app/serializers/spree/api/v3/admin/seller_serializer.rb +5 -15
- data/app/serializers/spree/api/v3/admin/seller_transfer_serializer.rb +4 -2
- data/app/serializers/spree/api/v3/admin/shipping_label_serializer.rb +6 -19
- data/app/serializers/spree/api/v3/admin/stock_level_serializer.rb +1 -3
- data/app/serializers/spree/api/v3/admin/stock_location_serializer.rb +1 -3
- data/app/serializers/spree/api/v3/admin/stock_movement_serializer.rb +1 -3
- data/app/serializers/spree/api/v3/admin/stock_receipt_item_serializer.rb +1 -7
- data/app/serializers/spree/api/v3/admin/stock_receipt_serializer.rb +1 -3
- data/app/serializers/spree/api/v3/admin/stock_reservation_serializer.rb +1 -3
- data/app/serializers/spree/api/v3/admin/stock_transfer_item_serializer.rb +1 -3
- data/app/serializers/spree/api/v3/admin/store_credit_event_serializer.rb +1 -3
- data/app/serializers/spree/api/v3/admin/store_credit_serializer.rb +4 -18
- data/app/serializers/spree/api/v3/admin/store_serializer.rb +24 -6
- data/app/serializers/spree/api/v3/admin/supplier_serializer.rb +1 -3
- data/app/serializers/spree/api/v3/admin/tax_exemption_certificate_serializer.rb +3 -9
- data/app/serializers/spree/api/v3/admin/tax_identifier_serializer.rb +1 -3
- data/app/serializers/spree/api/v3/admin/tax_line_serializer.rb +5 -1
- data/app/serializers/spree/api/v3/admin/tax_rate_serializer.rb +1 -7
- data/app/serializers/spree/api/v3/admin/variant_serializer.rb +6 -7
- data/app/serializers/spree/api/v3/admin/webhook_delivery_serializer.rb +1 -3
- data/app/serializers/spree/api/v3/admin/webhook_event_serializer.rb +23 -0
- data/app/serializers/spree/api/v3/applied_promotion_serializer.rb +2 -4
- data/app/serializers/spree/api/v3/base_serializer.rb +20 -0
- data/app/serializers/spree/api/v3/cart_serializer.rb +17 -45
- data/app/serializers/spree/api/v3/category_serializer.rb +5 -15
- data/app/serializers/spree/api/v3/claim_line_item_serializer.rb +11 -26
- data/app/serializers/spree/api/v3/claim_serializer.rb +2 -15
- data/app/serializers/spree/api/v3/collection_serializer.rb +1 -3
- data/app/serializers/spree/api/v3/company_serializer.rb +1 -3
- data/app/serializers/spree/api/v3/custom_field_serializer.rb +1 -2
- data/app/serializers/spree/api/v3/delivery_rate_serializer.rb +3 -23
- data/app/serializers/spree/api/v3/digital_asset_serializer.rb +1 -3
- data/app/serializers/spree/api/v3/digital_link_serializer.rb +3 -9
- data/app/serializers/spree/api/v3/discount_serializer.rb +1 -12
- data/app/serializers/spree/api/v3/exchange_line_item_serializer.rb +9 -27
- data/app/serializers/spree/api/v3/exchange_serializer.rb +2 -15
- data/app/serializers/spree/api/v3/export_serializer.rb +1 -3
- data/app/serializers/spree/api/v3/fee_serializer.rb +2 -10
- data/app/serializers/spree/api/v3/fulfillment_serializer.rb +4 -11
- data/app/serializers/spree/api/v3/gift_card_batch_serializer.rb +1 -3
- data/app/serializers/spree/api/v3/gift_card_serializer.rb +5 -17
- data/app/serializers/spree/api/v3/import_row_serializer.rb +2 -6
- data/app/serializers/spree/api/v3/import_serializer.rb +3 -14
- data/app/serializers/spree/api/v3/invitation_serializer.rb +2 -19
- data/app/serializers/spree/api/v3/line_item_serializer.rb +6 -20
- data/app/serializers/spree/api/v3/media_event_serializer.rb +1 -3
- data/app/serializers/spree/api/v3/media_serializer.rb +1 -3
- data/app/serializers/spree/api/v3/newsletter_subscriber_request_event_serializer.rb +35 -0
- data/app/serializers/spree/api/v3/newsletter_subscriber_serializer.rb +2 -6
- data/app/serializers/spree/api/v3/option_value_serializer.rb +1 -3
- data/app/serializers/spree/api/v3/order_group_serializer.rb +2 -23
- data/app/serializers/spree/api/v3/order_serializer.rb +12 -38
- data/app/serializers/spree/api/v3/password_reset_requested_event_serializer.rb +29 -0
- data/app/serializers/spree/api/v3/payment_method_serializer.rb +2 -6
- data/app/serializers/spree/api/v3/payment_serializer.rb +5 -10
- data/app/serializers/spree/api/v3/payment_session_serializer.rb +3 -9
- data/app/serializers/spree/api/v3/payment_setup_session_serializer.rb +3 -11
- data/app/serializers/spree/api/v3/policy_serializer.rb +1 -3
- data/app/serializers/spree/api/v3/price_history_serializer.rb +1 -3
- data/app/serializers/spree/api/v3/price_serializer.rb +1 -3
- data/app/serializers/spree/api/v3/product_publication_serializer.rb +1 -7
- data/app/serializers/spree/api/v3/product_serializer.rb +7 -21
- data/app/serializers/spree/api/v3/product_submission_serializer.rb +26 -0
- data/app/serializers/spree/api/v3/purchase_order_event_serializer.rb +23 -4
- data/app/serializers/spree/api/v3/refund_serializer.rb +3 -11
- data/app/serializers/spree/api/v3/return_line_item_serializer.rb +12 -19
- data/app/serializers/spree/api/v3/return_serializer.rb +6 -15
- data/app/serializers/spree/api/v3/saved_report_event_serializer.rb +23 -0
- data/app/serializers/spree/api/v3/seller/delivery_method_serializer.rb +1 -7
- data/app/serializers/spree/api/v3/seller/delivery_rate_serializer.rb +1 -7
- data/app/serializers/spree/api/v3/seller/delivery_serializer.rb +1 -3
- data/app/serializers/spree/api/v3/seller/delivery_zone_serializer.rb +1 -3
- data/app/serializers/spree/api/v3/seller/exchange_serializer.rb +1 -3
- data/app/serializers/spree/api/v3/seller/fulfillment_item_serializer.rb +1 -7
- data/app/serializers/spree/api/v3/seller/fulfillment_serializer.rb +2 -6
- data/app/serializers/spree/api/v3/seller/invitation_serializer.rb +1 -3
- data/app/serializers/spree/api/v3/seller/order_line_item_serializer.rb +7 -13
- data/app/serializers/spree/api/v3/seller/order_serializer.rb +4 -25
- data/app/serializers/spree/api/v3/seller/payout_serializer.rb +4 -2
- data/app/serializers/spree/api/v3/seller/product_serializer.rb +1 -7
- data/app/serializers/spree/api/v3/seller/product_submission_serializer.rb +1 -21
- data/app/serializers/spree/api/v3/seller/profile_serializer.rb +2 -6
- data/app/serializers/spree/api/v3/seller/requirement_status_serializer.rb +3 -9
- data/app/serializers/spree/api/v3/seller/return_serializer.rb +3 -15
- data/app/serializers/spree/api/v3/seller/transfer_serializer.rb +4 -2
- data/app/serializers/spree/api/v3/seller_serializer.rb +1 -3
- data/app/serializers/spree/api/v3/shipping_label_event_serializer.rb +22 -4
- data/app/serializers/spree/api/v3/stock_level_serializer.rb +1 -7
- data/app/serializers/spree/api/v3/stock_movement_serializer.rb +1 -3
- data/app/serializers/spree/api/v3/stock_receipt_event_serializer.rb +20 -4
- data/app/serializers/spree/api/v3/stock_transfer_serializer.rb +1 -7
- data/app/serializers/spree/api/v3/store_credit_event_serializer.rb +2 -11
- data/app/serializers/spree/api/v3/store_credit_serializer.rb +2 -24
- data/app/serializers/spree/api/v3/supplier_event_serializer.rb +6 -4
- data/app/serializers/spree/api/v3/tax_line_serializer.rb +10 -20
- data/app/serializers/spree/api/v3/variant_serializer.rb +7 -21
- data/app/serializers/spree/api/v3/wishlist_item_serializer.rb +1 -11
- data/app/serializers/spree/api/v3/wishlist_serializer.rb +2 -6
- data/app/subscribers/spree/webhook_event_subscriber.rb +3 -10
- data/config/initializers/pagy.rb +1 -1
- data/config/initializers/typelizer.rb +6 -8
- data/config/locales/ar.yml +15 -0
- data/config/locales/be.yml +15 -0
- data/config/locales/bg.yml +15 -0
- data/config/locales/ca.yml +15 -0
- data/config/locales/cs.yml +15 -0
- data/config/locales/da.yml +15 -0
- data/config/locales/de-CH.yml +11 -0
- data/config/locales/de.yml +15 -0
- data/config/locales/el.yml +15 -0
- data/config/locales/en.yml +5 -40
- data/config/locales/es-CL.yml +10 -0
- data/config/locales/es-EC.yml +11 -0
- data/config/locales/es-MX.yml +12 -0
- data/config/locales/es.yml +15 -0
- data/config/locales/et.yml +15 -0
- data/config/locales/fa.yml +15 -0
- data/config/locales/fi.yml +15 -0
- data/config/locales/fr.yml +15 -0
- data/config/locales/hu.yml +15 -0
- data/config/locales/id.yml +15 -0
- data/config/locales/it.yml +15 -0
- data/config/locales/ja.yml +15 -0
- data/config/locales/km.yml +15 -0
- data/config/locales/ko.yml +15 -0
- data/config/locales/ku.yml +15 -0
- data/config/locales/lt.yml +15 -0
- data/config/locales/lv.yml +15 -0
- data/config/locales/nb.yml +15 -0
- data/config/locales/ne.yml +15 -0
- data/config/locales/nl.yml +15 -0
- data/config/locales/pl.yml +15 -0
- data/config/locales/pt-BR.yml +13 -0
- data/config/locales/pt.yml +15 -0
- data/config/locales/ro.yml +15 -0
- data/config/locales/ru.yml +15 -0
- data/config/locales/sk.yml +15 -0
- data/config/locales/sl-SI.yml +15 -0
- data/config/locales/sv.yml +15 -0
- data/config/locales/th.yml +15 -0
- data/config/locales/tr.yml +15 -0
- data/config/locales/uk.yml +15 -0
- data/config/locales/vi.yml +15 -0
- data/config/locales/zh-CN.yml +15 -0
- data/config/locales/zh-TW.yml +15 -0
- data/config/routes.rb +49 -99
- data/lib/spree/api/dependencies.rb +53 -274
- data/lib/spree/api/openapi/schema_helper.rb +1 -1
- data/lib/spree/api/typelizer_generation.rb +35 -0
- data/lib/spree/api/webhook_event_types.rb +140 -0
- data/lib/spree/api.rb +0 -2
- metadata +71 -36
- data/config/i18n-tasks.yml +0 -40
- data/config/initializers/alba.rb +0 -5
|
@@ -16,6 +16,12 @@ module Spree
|
|
|
16
16
|
customer_support_email: [:string, nullable: true],
|
|
17
17
|
new_order_notifications_email: [:string, nullable: true],
|
|
18
18
|
preferred_send_consumer_transactional_emails: :boolean,
|
|
19
|
+
preferred_email_accent_color: [:string, nullable: true],
|
|
20
|
+
preferred_email_background_color: [:string, nullable: true],
|
|
21
|
+
preferred_email_card_color: [:string, nullable: true],
|
|
22
|
+
preferred_email_text_color: [:string, nullable: true],
|
|
23
|
+
preferred_email_heading_color: [:string, nullable: true],
|
|
24
|
+
preferred_email_font: [:string, nullable: true, enum: Spree::Emails::Branding::FONTS.keys],
|
|
19
25
|
preferred_admin_locale: [:string, nullable: true],
|
|
20
26
|
preferred_timezone: :string,
|
|
21
27
|
preferred_weight_unit: [:string, enum: Spree::Variant::WEIGHT_UNITS],
|
|
@@ -34,12 +40,12 @@ module Spree
|
|
|
34
40
|
preferred_track_price_history: :boolean,
|
|
35
41
|
preferred_show_products_without_price: :boolean,
|
|
36
42
|
preferred_disable_sku_validation: :boolean,
|
|
37
|
-
preferred_order_routing_strategy: :string,
|
|
43
|
+
preferred_order_routing_strategy: [:string, comment: 'Order routing strategy. Built-in: rules. Extensions may register more.'],
|
|
38
44
|
preferred_pricing_provider: :string,
|
|
39
45
|
preferred_inventory_provider: :string,
|
|
40
46
|
preferred_pricing_provider_failure_policy: :string,
|
|
41
47
|
preferred_inventory_provider_failure_policy: :string,
|
|
42
|
-
preferred_payout_provider:
|
|
48
|
+
preferred_payout_provider: [:string, nullable: true, comment: 'Payout provider; null uses the installation default. Built-in: system. Provider gems register more (e.g. stripe).'],
|
|
43
49
|
preferred_default_payouts_schedule_interval: :string,
|
|
44
50
|
preferred_default_minimum_payout_amount: :number,
|
|
45
51
|
preferred_auto_approve_sellers: :boolean,
|
|
@@ -68,6 +74,12 @@ module Spree
|
|
|
68
74
|
:customer_support_email,
|
|
69
75
|
:new_order_notifications_email,
|
|
70
76
|
:preferred_send_consumer_transactional_emails,
|
|
77
|
+
:preferred_email_accent_color,
|
|
78
|
+
:preferred_email_background_color,
|
|
79
|
+
:preferred_email_card_color,
|
|
80
|
+
:preferred_email_text_color,
|
|
81
|
+
:preferred_email_heading_color,
|
|
82
|
+
:preferred_email_font,
|
|
71
83
|
:preferred_admin_locale,
|
|
72
84
|
:preferred_timezone,
|
|
73
85
|
:preferred_weight_unit,
|
|
@@ -86,18 +98,14 @@ module Spree
|
|
|
86
98
|
:preferred_track_price_history,
|
|
87
99
|
:preferred_show_products_without_price,
|
|
88
100
|
:preferred_disable_sku_validation,
|
|
89
|
-
:preferred_order_routing_strategy,
|
|
90
101
|
:preferred_pricing_provider,
|
|
91
102
|
:preferred_inventory_provider,
|
|
92
103
|
:preferred_pricing_provider_failure_policy,
|
|
93
104
|
:preferred_inventory_provider_failure_policy,
|
|
94
|
-
:preferred_payout_provider,
|
|
95
105
|
:preferred_default_payouts_schedule_interval,
|
|
96
|
-
:preferred_default_minimum_payout_amount,
|
|
97
106
|
:preferred_auto_approve_sellers,
|
|
98
107
|
:preferred_auto_approve_seller_products,
|
|
99
108
|
:preferred_send_seller_transactional_emails,
|
|
100
|
-
:preferred_default_commission_tax_rate,
|
|
101
109
|
:preferred_document_number_format,
|
|
102
110
|
:preferred_order_number_prefix,
|
|
103
111
|
:preferred_order_number_suffix,
|
|
@@ -108,6 +116,8 @@ module Spree
|
|
|
108
116
|
:preferred_digital_asset_authorized_days,
|
|
109
117
|
created_at: :iso8601, updated_at: :iso8601
|
|
110
118
|
|
|
119
|
+
api_type_attributes :preferred_order_routing_strategy, :preferred_payout_provider
|
|
120
|
+
|
|
111
121
|
# Once the counter has issued a number the starting value no longer
|
|
112
122
|
# applies, so the settings page can say that instead of accepting a
|
|
113
123
|
# value that does nothing.
|
|
@@ -115,6 +125,14 @@ module Spree
|
|
|
115
125
|
Spree::NumberSequence.started?(store: store)
|
|
116
126
|
end
|
|
117
127
|
|
|
128
|
+
attribute :preferred_default_minimum_payout_amount do |store|
|
|
129
|
+
store.preferred_default_minimum_payout_amount&.to_f
|
|
130
|
+
end
|
|
131
|
+
|
|
132
|
+
attribute :preferred_default_commission_tax_rate do |store|
|
|
133
|
+
store.preferred_default_commission_tax_rate&.to_f
|
|
134
|
+
end
|
|
135
|
+
|
|
118
136
|
attribute :url, &:storefront_url
|
|
119
137
|
|
|
120
138
|
# The backend's own public URL — what a headless client sets as its
|
|
@@ -29,9 +29,7 @@ module Spree
|
|
|
29
29
|
|
|
30
30
|
# Lets the dashboard hide the delete control rather than offer one
|
|
31
31
|
# the model will refuse.
|
|
32
|
-
attribute :can_be_deleted
|
|
33
|
-
supplier.can_be_deleted?
|
|
34
|
-
end
|
|
32
|
+
attribute :can_be_deleted, &:can_be_deleted?
|
|
35
33
|
end
|
|
36
34
|
end
|
|
37
35
|
end
|
|
@@ -19,9 +19,7 @@ module Spree
|
|
|
19
19
|
issued_at: :iso8601, expires_at: :iso8601, verified_at: :iso8601,
|
|
20
20
|
created_at: :iso8601, updated_at: :iso8601
|
|
21
21
|
|
|
22
|
-
|
|
23
|
-
certificate.company&.prefixed_id
|
|
24
|
-
end
|
|
22
|
+
prefixed_id_attributes :company
|
|
25
23
|
|
|
26
24
|
# The jurisdiction the certificate holds in, in the same vocabulary the
|
|
27
25
|
# tax lines use.
|
|
@@ -33,14 +31,10 @@ module Spree
|
|
|
33
31
|
certificate.verified? && !certificate.lapsed?
|
|
34
32
|
end
|
|
35
33
|
|
|
36
|
-
attribute :lapsed
|
|
37
|
-
certificate.lapsed?
|
|
38
|
-
end
|
|
34
|
+
attribute :lapsed, &:lapsed?
|
|
39
35
|
|
|
40
36
|
# Lets the dashboard hide a delete the model will refuse.
|
|
41
|
-
attribute :can_be_deleted
|
|
42
|
-
certificate.can_be_deleted?
|
|
43
|
-
end
|
|
37
|
+
attribute :can_be_deleted, &:can_be_deleted?
|
|
44
38
|
|
|
45
39
|
attribute :document_filename do |certificate|
|
|
46
40
|
certificate.document.blob&.filename&.to_s if certificate.document.attached?
|
|
@@ -18,9 +18,7 @@ module Spree
|
|
|
18
18
|
# Whether this installation can check a number of this kind at all —
|
|
19
19
|
# what tells a nil verdict "not checked yet" apart from "nothing here
|
|
20
20
|
# knows how to ask".
|
|
21
|
-
attribute :validatable
|
|
22
|
-
tax_identifier.validatable?
|
|
23
|
-
end
|
|
21
|
+
attribute :validatable, &:validatable?
|
|
24
22
|
|
|
25
23
|
# The owner, reported under the name of what it is, so a client can
|
|
26
24
|
# tell a customer's durable registration from a cart override or an
|
|
@@ -6,7 +6,8 @@ module Spree
|
|
|
6
6
|
typelize amount: [:string, nullable: false], display_amount: [:string, nullable: false],
|
|
7
7
|
provider_id: [:string, nullable: true], metadata: ['Record<string, unknown>', nullable: true],
|
|
8
8
|
taxability_reason: [:string, nullable: true], country_code: [:string, nullable: true],
|
|
9
|
-
state_code: [:string, nullable: true], data: ['Record<string, unknown>', nullable: true]
|
|
9
|
+
state_code: [:string, nullable: true], data: ['Record<string, unknown>', nullable: true],
|
|
10
|
+
original_tax_line_id: [:string, nullable: true]
|
|
10
11
|
|
|
11
12
|
# The treatment and its jurisdiction stay admin-only: no surveyed
|
|
12
13
|
# platform shows a buyer a machine-readable tax reason, and `label`
|
|
@@ -14,6 +15,9 @@ module Spree
|
|
|
14
15
|
# breakdown, which is what an e-invoicing integration reads.
|
|
15
16
|
attributes :provider_id, :metadata, :taxability_reason, :country_code, :state_code, :data,
|
|
16
17
|
created_at: :iso8601, updated_at: :iso8601
|
|
18
|
+
|
|
19
|
+
# The sale row a credit gives back.
|
|
20
|
+
prefixed_id_attributes :original_tax_line
|
|
17
21
|
end
|
|
18
22
|
end
|
|
19
23
|
end
|
|
@@ -30,13 +30,7 @@ module Spree
|
|
|
30
30
|
tax_rate.amount_percentage&.to_f
|
|
31
31
|
end
|
|
32
32
|
|
|
33
|
-
|
|
34
|
-
tax_rate.tax_category&.prefixed_id
|
|
35
|
-
end
|
|
36
|
-
|
|
37
|
-
attribute :store_id do |tax_rate|
|
|
38
|
-
tax_rate.store&.prefixed_id
|
|
39
|
-
end
|
|
33
|
+
prefixed_id_attributes :tax_category, :store
|
|
40
34
|
|
|
41
35
|
# The jurisdiction the rate taxes, as codes: a null country means every
|
|
42
36
|
# country, and a country with no state means the whole country. Read
|
|
@@ -40,12 +40,13 @@ module Spree
|
|
|
40
40
|
preorder_ships_at: :iso8601, deleted_at: :iso8601,
|
|
41
41
|
created_at: :iso8601, updated_at: :iso8601
|
|
42
42
|
|
|
43
|
-
attribute :preorderable
|
|
44
|
-
variant.preorderable?
|
|
45
|
-
end
|
|
43
|
+
attribute :preorderable, &:preorderable?
|
|
46
44
|
|
|
45
|
+
# Stored on the row only — nil means inherit from the product. The
|
|
46
|
+
# model's +tax_category+ reader resolves the effective category for
|
|
47
|
+
# tax; the admin form needs the raw column to tell override from inherit.
|
|
47
48
|
attribute :tax_category_id do |variant|
|
|
48
|
-
variant
|
|
49
|
+
Spree::TaxCategory.prefixed_id_for(variant[:tax_category_id])
|
|
49
50
|
end
|
|
50
51
|
|
|
51
52
|
# Encoded from the foreign key: loading the carton row just to
|
|
@@ -82,9 +83,7 @@ module Spree
|
|
|
82
83
|
# seller's row ships; on an owned product the write is a no-op, since
|
|
83
84
|
# every variant ships as the product does. The dashboard need not
|
|
84
85
|
# know which.
|
|
85
|
-
|
|
86
|
-
variant.resolved_delivery_profile&.prefixed_id
|
|
87
|
-
end
|
|
86
|
+
prefixed_id_attributes delivery_profile_id: :resolved_delivery_profile
|
|
88
87
|
|
|
89
88
|
one :seller,
|
|
90
89
|
resource: proc { Spree.api.admin_seller_serializer },
|
|
@@ -38,9 +38,7 @@ module Spree
|
|
|
38
38
|
Spree::WebhookPayloadRedaction.split(delivery.payload).first
|
|
39
39
|
end
|
|
40
40
|
|
|
41
|
-
|
|
42
|
-
delivery.webhook_endpoint&.prefixed_id
|
|
43
|
-
end
|
|
41
|
+
prefixed_id_attributes :webhook_endpoint
|
|
44
42
|
|
|
45
43
|
# Delegated from the parent endpoint — saves callers from having to
|
|
46
44
|
# join the endpoint payload to show "where did this delivery go?".
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
module Spree
|
|
2
|
+
module Api
|
|
3
|
+
module V3
|
|
4
|
+
module Admin
|
|
5
|
+
# One event catalog entry (Spree::Events::Catalog::Entry).
|
|
6
|
+
class WebhookEventSerializer
|
|
7
|
+
include Alba::Resource
|
|
8
|
+
include Typelizer::DSL
|
|
9
|
+
|
|
10
|
+
typelize name: :string, group: :string, credential: :boolean,
|
|
11
|
+
credential_permission: [:string, nullable: true],
|
|
12
|
+
deprecated: :boolean, replaced_by: [:string, nullable: true]
|
|
13
|
+
|
|
14
|
+
attributes :name, :group, :credential_permission
|
|
15
|
+
|
|
16
|
+
attribute(:credential, &:credential?)
|
|
17
|
+
attribute(:deprecated, &:deprecated?)
|
|
18
|
+
attribute(:replaced_by, &:deprecated_alias_of)
|
|
19
|
+
end
|
|
20
|
+
end
|
|
21
|
+
end
|
|
22
|
+
end
|
|
23
|
+
end
|
|
@@ -6,11 +6,9 @@ module Spree
|
|
|
6
6
|
# the typed Spree::Discount money rows.
|
|
7
7
|
class AppliedPromotionSerializer < BaseSerializer
|
|
8
8
|
typelize name: :string, description: [:string, nullable: true], code: [:string, nullable: true],
|
|
9
|
-
|
|
9
|
+
promotion_id: :string
|
|
10
10
|
|
|
11
|
-
|
|
12
|
-
record.promotion&.prefixed_id
|
|
13
|
-
end
|
|
11
|
+
prefixed_id_attributes :promotion
|
|
14
12
|
|
|
15
13
|
attributes :name, :description, :code
|
|
16
14
|
|
|
@@ -22,11 +22,31 @@ module Spree
|
|
|
22
22
|
# (product prices AND cart/order/line-item totals) is gated from one
|
|
23
23
|
# place instead of per-attribute opt-in.
|
|
24
24
|
def self.money_attributes(*names)
|
|
25
|
+
typelize(**names.index_with { [:string, nullable: true] })
|
|
26
|
+
|
|
25
27
|
names.each do |name|
|
|
26
28
|
attribute(name) { |object| object.public_send(name) unless params[:hide_prices] }
|
|
27
29
|
end
|
|
28
30
|
end
|
|
29
31
|
|
|
32
|
+
# Declares `<association>_id` attributes carrying the associated
|
|
33
|
+
# record's prefixed id, or nil when there is none. Pass
|
|
34
|
+
# `seller_id: :resolved_seller` when the attribute name and the
|
|
35
|
+
# association it reads differ.
|
|
36
|
+
def self.prefixed_id_attributes(*associations, **renamed)
|
|
37
|
+
associations.index_by { |association| :"#{association}_id" }.merge(renamed).each do |name, association|
|
|
38
|
+
attribute(name) { |object| object.public_send(association)&.prefixed_id }
|
|
39
|
+
end
|
|
40
|
+
end
|
|
41
|
+
|
|
42
|
+
# Declares attributes whose column stores a provider or strategy class
|
|
43
|
+
# name, sent as its shorthand (`manual`, `rules`) instead.
|
|
44
|
+
def self.api_type_attributes(*names)
|
|
45
|
+
names.each do |name|
|
|
46
|
+
attribute(name) { |object| Spree::ApiTyped.api_type_for(object.public_send(name)) }
|
|
47
|
+
end
|
|
48
|
+
end
|
|
49
|
+
|
|
30
50
|
# Declares the wire form of an `acted_by` association: the actor's
|
|
31
51
|
# prefixed id, the kind of actor it is, and the expansion. Both
|
|
32
52
|
# halves read off the columns, so naming an actor costs no query and
|
|
@@ -4,58 +4,36 @@ module Spree
|
|
|
4
4
|
# Store API Cart Serializer
|
|
5
5
|
# Pre-purchase cart data with checkout progression info
|
|
6
6
|
class CartSerializer < BaseSerializer
|
|
7
|
-
typelize number: :string, current_step: :string, completed_steps: 'string[]', token: :string,
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
coupon_code: [:string, nullable: true],
|
|
11
|
-
preferred_stock_location_id: [:string, nullable: true],
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
order_minimum: ['number | null'], order_minimum_shortfall: ['number | null'],
|
|
17
|
-
below_order_minimum: ['boolean | null'],
|
|
7
|
+
typelize number: :string, current_step: :string, completed_steps: 'string[]', token: :string,
|
|
8
|
+
email: [:string, nullable: true], customer_note: [:string, nullable: true],
|
|
9
|
+
market_id: [:string, nullable: true], channel_id: [:string, nullable: true], currency: :string,
|
|
10
|
+
locale: [:string, nullable: true], total_quantity: :number, coupon_code: [:string, nullable: true],
|
|
11
|
+
preferred_stock_location_id: [:string, nullable: true], company_id: [:string, nullable: true],
|
|
12
|
+
company_name: [:string, nullable: true], po_number: [:string, nullable: true],
|
|
13
|
+
po_number_required: :boolean, po_document_filename: [:string, nullable: true],
|
|
14
|
+
po_document_byte_size: ['number | null'], order_minimum: ['number | null'],
|
|
15
|
+
order_minimum_shortfall: ['number | null'], below_order_minimum: ['boolean | null'],
|
|
18
16
|
freight_summary: [:FreightSummary, nullable: true],
|
|
19
17
|
requirements: 'Array<{step: string, field: string, code: string, message: string}>',
|
|
20
|
-
item_total: [:string, nullable: true], display_item_total: [:string, nullable: true],
|
|
21
|
-
delivery_total: [:string, nullable: true], display_delivery_total: [:string, nullable: true],
|
|
22
|
-
adjustment_total: [:string, nullable: true], display_adjustment_total: [:string, nullable: true],
|
|
23
|
-
discount_total: [:string, nullable: true], display_discount_total: [:string, nullable: true],
|
|
24
|
-
tax_total: [:string, nullable: true], display_tax_total: [:string, nullable: true],
|
|
25
|
-
included_tax_total: [:string, nullable: true], display_included_tax_total: [:string, nullable: true],
|
|
26
|
-
additional_tax_total: [:string, nullable: true], display_additional_tax_total: [:string, nullable: true],
|
|
27
|
-
fee_total: [:string, nullable: true], display_fee_total: [:string, nullable: true],
|
|
28
18
|
store_credit_total: [:string, nullable: true], display_store_credit_total: [:string, nullable: true],
|
|
29
|
-
|
|
30
|
-
covered_by_store_credit: :boolean,
|
|
31
|
-
total: [:string, nullable: true], display_total: [:string, nullable: true],
|
|
32
|
-
amount_due: [:string, nullable: true], display_amount_due: [:string, nullable: true],
|
|
33
|
-
shipping_eq_billing_address: :boolean,
|
|
19
|
+
covered_by_store_credit: :boolean, shipping_eq_billing_address: :boolean,
|
|
34
20
|
warnings: 'Array<{code: string, message: string, line_item_id?: string, variant_id?: string, item_index?: number}>',
|
|
35
21
|
billing_address: { nullable: true }, shipping_address: { nullable: true },
|
|
36
22
|
gift_card: { nullable: true }, market: { nullable: true }
|
|
37
23
|
|
|
38
|
-
|
|
39
|
-
order.market&.prefixed_id
|
|
40
|
-
end
|
|
24
|
+
prefixed_id_attributes :market
|
|
41
25
|
|
|
42
26
|
# Which surface this cart belongs to — lets a multi-channel storefront
|
|
43
27
|
# verify a cookie-persisted cart against its own channel before
|
|
44
28
|
# adopting it (see the wholesale reference storefront's cart guard).
|
|
45
|
-
|
|
46
|
-
order.channel&.prefixed_id
|
|
47
|
-
end
|
|
29
|
+
prefixed_id_attributes :channel
|
|
48
30
|
|
|
49
31
|
# Pickup selection — mirrors the writable param on cart update.
|
|
50
|
-
|
|
51
|
-
cart.preferred_stock_location&.prefixed_id
|
|
52
|
-
end
|
|
32
|
+
prefixed_id_attributes :preferred_stock_location
|
|
53
33
|
|
|
54
34
|
# Which company node the purchase is for — mirrors the writable
|
|
55
35
|
# `company_id` param. Read from the column, never re-resolved.
|
|
56
|
-
|
|
57
|
-
cart.company&.prefixed_id
|
|
58
|
-
end
|
|
36
|
+
prefixed_id_attributes :company
|
|
59
37
|
|
|
60
38
|
attribute :company_name do |cart|
|
|
61
39
|
cart.company&.name
|
|
@@ -64,9 +42,7 @@ module Spree
|
|
|
64
42
|
# The buyer's own purchase-order reference, and whether their company
|
|
65
43
|
# demands one — the storefront marks the field required from this
|
|
66
44
|
# rather than fetching the company to ask.
|
|
67
|
-
attribute :po_number_required
|
|
68
|
-
cart.po_number_required?
|
|
69
|
-
end
|
|
45
|
+
attribute :po_number_required, &:po_number_required?
|
|
70
46
|
|
|
71
47
|
attribute :po_document_filename do |cart|
|
|
72
48
|
cart.po_document.blob&.filename&.to_s if cart.po_document.attached?
|
|
@@ -101,9 +77,7 @@ module Spree
|
|
|
101
77
|
order.display_total_applied_store_credit.to_s unless params[:hide_prices]
|
|
102
78
|
end
|
|
103
79
|
|
|
104
|
-
attribute :covered_by_store_credit
|
|
105
|
-
order.covered_by_store_credit?
|
|
106
|
-
end
|
|
80
|
+
attribute :covered_by_store_credit, &:covered_by_store_credit?
|
|
107
81
|
|
|
108
82
|
attribute :current_step do |order|
|
|
109
83
|
order.current_checkout_step
|
|
@@ -153,9 +127,7 @@ module Spree
|
|
|
153
127
|
# withhold.
|
|
154
128
|
one :freight_summary, resource: proc { Spree.api.freight_summary_serializer }
|
|
155
129
|
|
|
156
|
-
attribute :shipping_eq_billing_address
|
|
157
|
-
order.shipping_eq_billing_address?
|
|
158
|
-
end
|
|
130
|
+
attribute :shipping_eq_billing_address, &:shipping_eq_billing_address?
|
|
159
131
|
|
|
160
132
|
many :order_promotions, key: :discounts, resource: proc { Spree.api.applied_promotion_serializer }
|
|
161
133
|
# Itemized charges (duties, surcharges, COD, handling). Storefronts
|
|
@@ -13,17 +13,13 @@ module Spree
|
|
|
13
13
|
:meta_title, :meta_description, :meta_keywords,
|
|
14
14
|
:children_count
|
|
15
15
|
|
|
16
|
-
|
|
17
|
-
category.parent&.prefixed_id
|
|
18
|
-
end
|
|
16
|
+
prefixed_id_attributes :parent
|
|
19
17
|
|
|
20
18
|
attribute :description do |category|
|
|
21
19
|
Spree::RichTextHelper.to_plain_text(category.description)
|
|
22
20
|
end
|
|
23
21
|
|
|
24
|
-
|
|
25
|
-
category.description_html
|
|
26
|
-
end
|
|
22
|
+
attributes :description_html
|
|
27
23
|
|
|
28
24
|
attribute :image_url do |category|
|
|
29
25
|
image_url_for(category.image)
|
|
@@ -33,17 +29,11 @@ module Spree
|
|
|
33
29
|
image_url_for(category.square_image)
|
|
34
30
|
end
|
|
35
31
|
|
|
36
|
-
attribute :is_root
|
|
37
|
-
category.root?
|
|
38
|
-
end
|
|
32
|
+
attribute :is_root, &:root?
|
|
39
33
|
|
|
40
|
-
attribute :is_child
|
|
41
|
-
category.child?
|
|
42
|
-
end
|
|
34
|
+
attribute :is_child, &:child?
|
|
43
35
|
|
|
44
|
-
attribute :is_leaf
|
|
45
|
-
category.leaf?
|
|
46
|
-
end
|
|
36
|
+
attribute :is_leaf, &:leaf?
|
|
47
37
|
|
|
48
38
|
# Conditional associations
|
|
49
39
|
# Note: We pass empty expand to nested categories to prevent infinite recursion
|
|
@@ -9,6 +9,10 @@ module Spree
|
|
|
9
9
|
refund_amount: :string,
|
|
10
10
|
display_refund_amount: :string,
|
|
11
11
|
paid_amount: :string,
|
|
12
|
+
pre_tax_amount: :string,
|
|
13
|
+
included_tax_total: :string,
|
|
14
|
+
additional_tax_total: :string,
|
|
15
|
+
tax_total: :string,
|
|
12
16
|
description: [:string, nullable: true],
|
|
13
17
|
variant_id: [:string, nullable: true],
|
|
14
18
|
replacement_variant_id: [:string, nullable: true],
|
|
@@ -16,32 +20,13 @@ module Spree
|
|
|
16
20
|
|
|
17
21
|
attributes :quantity, :send_replacement, :description
|
|
18
22
|
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
attribute :paid_amount do |line|
|
|
27
|
-
line.paid_amount.to_s
|
|
28
|
-
end
|
|
29
|
-
|
|
30
|
-
attribute :display_refund_amount do |line|
|
|
31
|
-
line.display_refund_amount.to_s
|
|
32
|
-
end
|
|
33
|
-
|
|
34
|
-
attribute :variant_id do |line|
|
|
35
|
-
line.variant&.prefixed_id
|
|
36
|
-
end
|
|
37
|
-
|
|
38
|
-
attribute :replacement_variant_id do |line|
|
|
39
|
-
line.replacement_variant&.prefixed_id
|
|
40
|
-
end
|
|
41
|
-
|
|
42
|
-
attribute :line_item_id do |line|
|
|
43
|
-
line.line_item&.prefixed_id
|
|
44
|
-
end
|
|
23
|
+
attributes refund_amount: :string
|
|
24
|
+
# What the customer actually paid for these units, tax included — the
|
|
25
|
+
# ceiling the resolve workflow enforces, and what the dashboard offers
|
|
26
|
+
# when the claim carries no explicit amount.
|
|
27
|
+
attributes paid_amount: :string, pre_tax_amount: :string, included_tax_total: :string,
|
|
28
|
+
additional_tax_total: :string, tax_total: :string, display_refund_amount: :string
|
|
29
|
+
prefixed_id_attributes :variant, :replacement_variant, :line_item
|
|
45
30
|
|
|
46
31
|
one :variant, resource: proc { Spree.api.variant_serializer }, if: proc { expand?('variant') }
|
|
47
32
|
end
|
|
@@ -19,22 +19,9 @@ module Spree
|
|
|
19
19
|
|
|
20
20
|
attributes :number, :status, :resolution
|
|
21
21
|
|
|
22
|
-
|
|
23
|
-
claim.order&.prefixed_id
|
|
24
|
-
end
|
|
25
|
-
|
|
26
|
-
attribute :reason_id do |claim|
|
|
27
|
-
claim.reason&.prefixed_id
|
|
28
|
-
end
|
|
29
|
-
|
|
30
|
-
attribute :refund_total do |claim|
|
|
31
|
-
claim.refund_total.to_s
|
|
32
|
-
end
|
|
33
|
-
|
|
34
|
-
attribute :display_refund_total do |claim|
|
|
35
|
-
claim.display_refund_total.to_s
|
|
36
|
-
end
|
|
22
|
+
prefixed_id_attributes :order, :reason
|
|
37
23
|
|
|
24
|
+
attributes refund_total: :string, display_refund_total: :string
|
|
38
25
|
attribute :approved_at do |claim|
|
|
39
26
|
claim.approved_at&.iso8601
|
|
40
27
|
end
|
|
@@ -19,9 +19,7 @@ module Spree
|
|
|
19
19
|
Spree::RichTextHelper.to_plain_text(collection.description)
|
|
20
20
|
end
|
|
21
21
|
|
|
22
|
-
|
|
23
|
-
collection.description_html
|
|
24
|
-
end
|
|
22
|
+
attributes :description_html
|
|
25
23
|
|
|
26
24
|
attribute :image_url do |collection|
|
|
27
25
|
image_url_for(collection.image)
|
|
@@ -15,9 +15,7 @@ module Spree
|
|
|
15
15
|
# the PO field required from it.
|
|
16
16
|
attributes :name, :kind, :po_number_required
|
|
17
17
|
|
|
18
|
-
|
|
19
|
-
company.parent&.prefixed_id
|
|
20
|
-
end
|
|
18
|
+
prefixed_id_attributes :parent
|
|
21
19
|
|
|
22
20
|
# The path above this node, root first — lets a client render
|
|
23
21
|
# "Acme / EMEA / Berlin" without a request per level. Bounded by the
|
|
@@ -6,11 +6,10 @@ module Spree
|
|
|
6
6
|
class CustomFieldSerializer < BaseSerializer
|
|
7
7
|
typelize key: :string,
|
|
8
8
|
label: :string,
|
|
9
|
-
type: [:string, deprecated: 'Use `field_type` instead. The legacy `type` field returns the Ruby STI class name (e.g. `Spree::CustomFields::ShortText`) and will be removed in a future minor.'],
|
|
10
9
|
field_type: Spree::CustomField::FIELD_TYPE_TOKENS,
|
|
11
10
|
value: :any
|
|
12
11
|
|
|
13
|
-
attributes :label, :
|
|
12
|
+
attributes :label, :field_type
|
|
14
13
|
|
|
15
14
|
attribute :key, &:full_key
|
|
16
15
|
attribute :value, &:serialize_value
|
|
@@ -14,9 +14,7 @@ module Spree
|
|
|
14
14
|
unpriced: :boolean,
|
|
15
15
|
freight_summary: [:FreightSummary, nullable: true]
|
|
16
16
|
|
|
17
|
-
|
|
18
|
-
deliver_rate.delivery_method&.prefixed_id
|
|
19
|
-
end
|
|
17
|
+
prefixed_id_attributes :delivery_method
|
|
20
18
|
|
|
21
19
|
# Carrier, service level and delivery date come from the rate provider
|
|
22
20
|
# and are what the customer chooses between; nil on calculator-priced
|
|
@@ -35,26 +33,8 @@ module Spree
|
|
|
35
33
|
# froze it here when it quoted.
|
|
36
34
|
one :freight_summary, resource: proc { Spree.api.freight_summary_serializer }
|
|
37
35
|
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
end
|
|
41
|
-
|
|
42
|
-
attribute :display_total do |deliver_rate|
|
|
43
|
-
deliver_rate.display_total.to_s
|
|
44
|
-
end
|
|
45
|
-
|
|
46
|
-
attribute :display_additional_tax_total do |deliver_rate|
|
|
47
|
-
deliver_rate.display_additional_tax_total.to_s
|
|
48
|
-
end
|
|
49
|
-
|
|
50
|
-
attribute :display_included_tax_total do |deliver_rate|
|
|
51
|
-
deliver_rate.display_included_tax_total.to_s
|
|
52
|
-
end
|
|
53
|
-
|
|
54
|
-
attribute :display_tax_total do |deliver_rate|
|
|
55
|
-
deliver_rate.display_tax_total.to_s
|
|
56
|
-
end
|
|
57
|
-
|
|
36
|
+
attributes display_cost: :string, display_total: :string, display_additional_tax_total: :string,
|
|
37
|
+
display_included_tax_total: :string, display_tax_total: :string
|
|
58
38
|
one :delivery_method, resource: proc { Spree.api.delivery_method_serializer }
|
|
59
39
|
end
|
|
60
40
|
end
|
|
@@ -8,9 +8,7 @@ module Spree
|
|
|
8
8
|
filename: [:string, nullable: true],
|
|
9
9
|
content_type: [:string, nullable: true]
|
|
10
10
|
|
|
11
|
-
|
|
12
|
-
digital_asset.variant&.prefixed_id
|
|
13
|
-
end
|
|
11
|
+
prefixed_id_attributes :variant
|
|
14
12
|
|
|
15
13
|
attribute :filename do |digital_asset|
|
|
16
14
|
digital_asset.filename&.to_s
|
|
@@ -16,17 +16,11 @@ module Spree
|
|
|
16
16
|
digital_link.expires_at&.iso8601
|
|
17
17
|
end
|
|
18
18
|
|
|
19
|
-
attribute :authorizable
|
|
20
|
-
digital_link.authorizable?
|
|
21
|
-
end
|
|
19
|
+
attribute :authorizable, &:authorizable?
|
|
22
20
|
|
|
23
|
-
attribute :expired
|
|
24
|
-
digital_link.expired?
|
|
25
|
-
end
|
|
21
|
+
attribute :expired, &:expired?
|
|
26
22
|
|
|
27
|
-
attribute :access_limit_exceeded
|
|
28
|
-
digital_link.access_limit_exceeded?
|
|
29
|
-
end
|
|
23
|
+
attribute :access_limit_exceeded, &:access_limit_exceeded?
|
|
30
24
|
end
|
|
31
25
|
end
|
|
32
26
|
end
|
|
@@ -7,7 +7,6 @@ module Spree
|
|
|
7
7
|
class DiscountSerializer < BaseSerializer
|
|
8
8
|
typelize label: :string, kind: [:string, enum: Spree::Discount::KINDS], code: [:string, nullable: true],
|
|
9
9
|
value: [:string, nullable: true], value_type: [:string, nullable: true],
|
|
10
|
-
amount: [:string, nullable: true], display_amount: [:string, nullable: true],
|
|
11
10
|
promotion_id: [:string, nullable: true], line_item_id: [:string, nullable: true],
|
|
12
11
|
fulfillment_id: [:string, nullable: true]
|
|
13
12
|
|
|
@@ -17,17 +16,7 @@ module Spree
|
|
|
17
16
|
record.value&.to_s
|
|
18
17
|
end
|
|
19
18
|
|
|
20
|
-
|
|
21
|
-
record.promotion&.prefixed_id
|
|
22
|
-
end
|
|
23
|
-
|
|
24
|
-
attribute :line_item_id do |record|
|
|
25
|
-
record.line_item&.prefixed_id
|
|
26
|
-
end
|
|
27
|
-
|
|
28
|
-
attribute :fulfillment_id do |record|
|
|
29
|
-
record.fulfillment&.prefixed_id
|
|
30
|
-
end
|
|
19
|
+
prefixed_id_attributes :promotion, :line_item, :fulfillment
|
|
31
20
|
|
|
32
21
|
money_attributes :amount, :display_amount
|
|
33
22
|
end
|