spree_core 6.0.0.beta3 → 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/README.md +2 -2
- data/app/helpers/spree/images_helper.rb +0 -57
- data/app/jobs/spree/base_job.rb +21 -0
- data/app/jobs/spree/carts/reap_expired_job.rb +2 -2
- data/app/jobs/spree/collections/regenerate_time_based_job.rb +6 -3
- data/app/jobs/spree/orders/finalize_stale_drafts_job.rb +8 -5
- data/app/jobs/spree/payments/cancel_unused_sessions_job.rb +61 -0
- data/app/jobs/spree/seller_payouts/sweep_seller_job.rb +2 -0
- data/app/mailers/spree/admin_user_mailer.rb +4 -19
- data/app/mailers/spree/base_mailer.rb +96 -13
- data/app/mailers/spree/email_template_mailer.rb +27 -0
- data/app/mailers/spree/export_mailer.rb +3 -4
- data/app/mailers/spree/import_mailer.rb +3 -4
- data/app/mailers/spree/invitation_mailer.rb +24 -7
- data/app/mailers/spree/seller_user_mailer.rb +4 -16
- data/app/mailers/spree/webhook_mailer.rb +2 -2
- data/app/models/concerns/spree/acted_by.rb +1 -1
- data/app/models/concerns/spree/admin_user_methods.rb +13 -1
- data/app/models/concerns/spree/api_typed.rb +91 -0
- data/app/models/concerns/spree/calculator/tiers.rb +76 -0
- data/app/models/concerns/spree/customer_methods.rb +15 -14
- data/app/models/concerns/spree/email_template_identity.rb +52 -0
- data/app/models/concerns/spree/parameterizable_name.rb +2 -0
- data/app/models/concerns/spree/payment_session_transitions.rb +8 -2
- data/app/models/concerns/spree/post_sale/taxation.rb +54 -0
- data/app/models/concerns/spree/post_sale/taxed_line.rb +51 -0
- data/app/models/concerns/spree/preference_schema.rb +4 -12
- data/app/models/concerns/spree/product_scopes.rb +11 -1
- data/app/models/concerns/spree/provider_listing.rb +41 -0
- data/app/models/concerns/spree/publishable.rb +82 -14
- data/app/models/concerns/spree/purchase/addresses.rb +23 -10
- data/app/models/concerns/spree/purchase/currency.rb +1 -1
- data/app/models/concerns/spree/purchase/deprecated_aliases.rb +87 -0
- data/app/models/concerns/spree/purchase/gift_cards.rb +10 -4
- data/app/models/concerns/spree/purchase/locale.rb +1 -1
- data/app/models/concerns/spree/purchase/payment_processing.rb +7 -3
- data/app/models/concerns/spree/purchase/purchase_order.rb +2 -2
- data/app/models/concerns/spree/purchase/totals.rb +49 -1
- data/app/models/concerns/spree/receivable.rb +1 -1
- data/app/models/concerns/spree/searchable.rb +0 -4
- data/app/models/concerns/spree/secret_preferences.rb +59 -0
- data/app/models/concerns/spree/single_store_resource.rb +1 -1
- data/app/models/concerns/spree/stores/email_branding.rb +31 -0
- data/app/models/concerns/spree/type_labels.rb +38 -0
- data/app/models/concerns/spree/typed_adjustment_line.rb +1 -1
- data/app/models/concerns/spree/typed_associations.rb +6 -0
- data/app/models/spree/address.rb +11 -1
- data/app/models/spree/adjusters/promotion.rb +1 -15
- data/app/models/spree/allowed_origin.rb +0 -1
- data/app/models/spree/api_key.rb +5 -6
- data/app/models/spree/authentication/strategies/oidc_strategy.rb +5 -5
- data/app/models/spree/base.rb +70 -22
- data/app/models/spree/calculator/flat_percent_item_total.rb +1 -3
- data/app/models/spree/calculator/flat_rate.rb +1 -3
- data/app/models/spree/calculator/flexi_rate.rb +1 -3
- data/app/models/spree/calculator/percent_on_line_item.rb +1 -1
- data/app/models/spree/calculator/price_sack.rb +1 -3
- data/app/models/spree/calculator/shipping/digital_delivery.rb +1 -3
- data/app/models/spree/calculator/shipping/flat_percent_item_total.rb +1 -3
- data/app/models/spree/calculator/shipping/flat_rate.rb +1 -3
- data/app/models/spree/calculator/shipping/flexi_rate.rb +1 -3
- data/app/models/spree/calculator/shipping/per_item.rb +1 -3
- data/app/models/spree/calculator/shipping/price_sack.rb +1 -3
- data/app/models/spree/calculator/tiered_flat_rate.rb +6 -23
- data/app/models/spree/calculator/tiered_percent.rb +7 -25
- data/app/models/spree/cart.rb +78 -18
- data/app/models/spree/channel/gating.rb +1 -1
- data/app/models/spree/channel.rb +4 -4
- data/app/models/spree/claim.rb +21 -1
- data/app/models/spree/claim_line_item.rb +41 -6
- data/app/models/spree/collection.rb +0 -1
- data/app/models/spree/collection_rule.rb +5 -21
- data/app/models/spree/commission_line.rb +1 -1
- data/app/models/spree/commission_rate.rb +2 -3
- data/app/models/spree/commission_rate_value.rb +1 -1
- data/app/models/spree/commission_rule.rb +4 -11
- data/app/models/spree/commission_rules/product_rule.rb +1 -1
- data/app/models/spree/company_invitation.rb +1 -0
- data/app/models/spree/consent_record.rb +0 -1
- data/app/models/spree/credit_card.rb +1 -1
- data/app/models/spree/current.rb +23 -0
- data/app/models/spree/custom_field.rb +2 -2
- data/app/models/spree/custom_field_definition.rb +9 -23
- data/app/models/spree/custom_fields/boolean.rb +1 -1
- data/app/models/spree/custom_fields/json.rb +1 -1
- data/app/models/spree/data_feed/google.rb +0 -2
- data/app/models/spree/data_request.rb +1 -1
- data/app/models/spree/delivery_method.rb +30 -13
- data/app/models/spree/delivery_method_rule.rb +4 -11
- data/app/models/spree/delivery_rate.rb +4 -5
- data/app/models/spree/delivery_rate_provider/base.rb +1 -0
- data/app/models/spree/delivery_zone.rb +0 -1
- data/app/models/spree/delivery_zone_member.rb +4 -4
- data/app/models/spree/digital_asset.rb +7 -0
- data/app/models/spree/digital_asset_provider/base.rb +2 -0
- data/app/models/spree/digital_link.rb +2 -5
- data/app/models/spree/discount.rb +1 -1
- data/app/models/spree/email_template.rb +25 -0
- data/app/models/spree/email_template_draft.rb +13 -0
- data/app/models/spree/email_template_revision.rb +17 -0
- data/app/models/spree/email_templates/entry.rb +118 -0
- data/app/models/spree/email_templates/sample_record.rb +16 -0
- data/app/models/spree/emails/branding.rb +80 -0
- data/app/models/spree/exchange.rb +15 -1
- data/app/models/spree/exchange_line_item.rb +121 -5
- data/app/models/spree/export.rb +0 -1
- data/app/models/spree/exports/products.rb +10 -1
- data/app/models/spree/exports/report.rb +1 -1
- data/app/models/spree/fee.rb +4 -2
- data/app/models/spree/fulfillment.rb +53 -27
- data/app/models/spree/fulfillment_changer.rb +2 -2
- data/app/models/spree/fulfillment_item.rb +0 -4
- data/app/models/spree/fulfillment_provider/base.rb +1 -0
- data/app/models/spree/gateway/bogus.rb +4 -0
- data/app/models/spree/gateway/custom_payment_source_method.rb +5 -0
- data/app/models/spree/gateway.rb +5 -1
- data/app/models/spree/gift_card.rb +12 -1
- data/app/models/spree/gift_card_batch.rb +0 -1
- data/app/models/spree/import.rb +2 -7
- data/app/models/spree/import_mapping.rb +1 -2
- data/app/models/spree/import_row.rb +2 -2
- data/app/models/spree/import_schemas/products.rb +1 -0
- data/app/models/spree/integration.rb +8 -18
- data/app/models/spree/invitation.rb +5 -5
- data/app/models/spree/line_item.rb +13 -2
- data/app/models/spree/locale.rb +11 -8
- data/app/models/spree/market.rb +1 -0
- data/app/models/spree/newsletter_subscriber.rb +3 -0
- data/app/models/spree/order.rb +56 -138
- data/app/models/spree/order_group.rb +11 -2
- data/app/models/spree/order_inventory.rb +10 -5
- data/app/models/spree/order_promotion.rb +1 -1
- data/app/models/spree/order_routing/has_strategy_preference.rb +1 -1
- data/app/models/spree/order_routing/strategy/base.rb +4 -2
- data/app/models/spree/order_routing/strategy/rules.rb +1 -1
- data/app/models/spree/order_routing_rule.rb +6 -22
- data/app/models/spree/package_type.rb +1 -2
- data/app/models/spree/payment/gateway_options.rb +14 -52
- data/app/models/spree/payment/processing.rb +2 -4
- data/app/models/spree/payment.rb +20 -5
- data/app/models/spree/payment_method/session_instrumentation.rb +1 -0
- data/app/models/spree/payment_method/store_credit.rb +4 -4
- data/app/models/spree/payment_method.rb +36 -4
- data/app/models/spree/payment_session.rb +5 -1
- data/app/models/spree/payment_setup_session.rb +1 -0
- data/app/models/spree/payout_provider/base.rb +3 -1
- data/app/models/spree/pickup_point_provider/base.rb +2 -0
- data/app/models/spree/price_list.rb +1 -2
- data/app/models/spree/price_rules/channel_rule.rb +1 -1
- data/app/models/spree/price_rules/customer_group_rule.rb +1 -1
- data/app/models/spree/product.rb +31 -7
- data/app/models/spree/product_submission.rb +0 -12
- data/app/models/spree/product_type.rb +0 -1
- data/app/models/spree/promotion/actions/create_line_items.rb +27 -17
- data/app/models/spree/promotion/rules/category.rb +0 -4
- data/app/models/spree/promotion/rules/channel.rb +0 -4
- data/app/models/spree/promotion/rules/country.rb +0 -4
- data/app/models/spree/promotion/rules/currency.rb +0 -4
- data/app/models/spree/promotion/rules/customer_group.rb +0 -4
- data/app/models/spree/promotion/rules/first_order.rb +0 -4
- data/app/models/spree/promotion/rules/item_total.rb +4 -8
- data/app/models/spree/promotion/rules/market.rb +0 -4
- data/app/models/spree/promotion/rules/one_use_per_user.rb +0 -4
- data/app/models/spree/promotion/rules/option_value.rb +0 -3
- data/app/models/spree/promotion/rules/product.rb +0 -4
- data/app/models/spree/promotion/rules/user.rb +0 -4
- data/app/models/spree/promotion/rules/user_logged_in.rb +0 -4
- data/app/models/spree/promotion.rb +35 -6
- data/app/models/spree/promotion_action.rb +7 -14
- data/app/models/spree/promotion_action_line_item.rb +1 -1
- data/app/models/spree/promotion_handler/coupon.rb +59 -27
- data/app/models/spree/promotion_rule.rb +7 -14
- data/app/models/spree/purchase_order.rb +1 -0
- data/app/models/spree/quantity_rule.rb +1 -1
- data/app/models/spree/refund.rb +28 -3
- data/app/models/spree/return.rb +30 -2
- data/app/models/spree/return_line_item.rb +65 -14
- data/app/models/spree/role.rb +7 -7
- data/app/models/spree/saved_report.rb +1 -1
- data/app/models/spree/seller.rb +2 -1
- data/app/models/spree/seller_payout.rb +7 -0
- data/app/models/spree/seller_requirement.rb +4 -12
- data/app/models/spree/seller_requirement_custom_field.rb +1 -2
- data/app/models/spree/seller_requirement_submission.rb +2 -2
- data/app/models/spree/seller_requirements/accept_terms.rb +2 -3
- data/app/models/spree/seller_transfer.rb +5 -0
- data/app/models/spree/shipping_label.rb +1 -0
- data/app/models/spree/stock/availability_validator.rb +2 -2
- data/app/models/spree/stock/inventory_unit_builder.rb +1 -1
- data/app/models/spree/stock/packer.rb +2 -2
- data/app/models/spree/stock/splitter/weight.rb +1 -1
- data/app/models/spree/stock_level/custom_events.rb +6 -0
- data/app/models/spree/stock_level.rb +1 -1
- data/app/models/spree/stock_movement.rb +1 -1
- data/app/models/spree/stock_receipt_item.rb +1 -1
- data/app/models/spree/stock_reservation.rb +2 -2
- data/app/models/spree/stock_transfer.rb +4 -2
- data/app/models/spree/store.rb +33 -7
- data/app/models/spree/store_credit.rb +8 -9
- data/app/models/spree/store_credit_event.rb +5 -5
- data/app/models/spree/tax_exemption_certificate.rb +2 -0
- data/app/models/spree/tax_identifier.rb +3 -1
- data/app/models/spree/tax_line.rb +53 -3
- data/app/models/spree/tax_provider/base.rb +71 -14
- data/app/models/spree/tax_provider/internal.rb +59 -33
- data/app/models/spree/tax_provider/recorded_share.rb +114 -0
- data/app/models/spree/tax_rate.rb +1 -2
- data/app/models/spree/taxonomy.rb +0 -1
- data/app/models/spree/variant.rb +4 -3
- data/app/models/spree/variant_media.rb +1 -1
- data/app/models/spree/webhook_endpoint.rb +10 -13
- data/app/models/spree/wishlist.rb +1 -6
- data/app/models/spree/wishlist_item/custom_events.rb +6 -0
- data/app/presenters/spree/csv/customer_presenter.rb +1 -1
- data/app/presenters/spree/csv/newsletter_subscriber_presenter.rb +1 -1
- data/app/presenters/spree/csv/order_line_item_presenter.rb +1 -1
- data/app/presenters/spree/csv/product_variant_presenter.rb +42 -12
- data/app/serializers/spree/emails/base_serializer.rb +14 -0
- data/app/serializers/spree/emails/export_serializer.rb +13 -0
- data/app/serializers/spree/emails/import_serializer.rb +19 -0
- data/app/serializers/spree/emails/invitation_serializer.rb +28 -0
- data/app/serializers/spree/emails/store_serializer.rb +31 -0
- data/app/serializers/spree/emails/user_serializer.rb +12 -0
- data/app/serializers/spree/emails/webhook_endpoint_serializer.rb +16 -0
- data/app/services/spree/carts/create.rb +8 -2
- data/app/services/spree/carts/destroy.rb +2 -2
- data/app/services/spree/carts/remove_out_of_stock_items.rb +2 -2
- data/app/services/spree/carts/split_by_seller.rb +1 -1
- data/app/services/spree/carts/update.rb +19 -5
- data/app/services/spree/catalogs/set_product_terms.rb +1 -1
- data/app/services/spree/categories/add_products.rb +13 -31
- data/app/services/spree/categories/remove_products.rb +12 -51
- data/app/services/spree/checkout/advance.rb +1 -4
- data/app/services/spree/collections/add_products.rb +10 -23
- data/app/services/spree/collections/remove_products.rb +7 -43
- data/app/services/spree/coupon_codes/bulk_generate.rb +8 -14
- data/app/services/spree/data_requests/create.rb +1 -1
- data/app/services/spree/deliveries/destroy.rb +2 -2
- data/app/services/spree/email_templates/check.rb +58 -0
- data/app/services/spree/email_templates/no_sample_record.rb +7 -0
- data/app/services/spree/email_templates/preview.rb +99 -0
- data/app/services/spree/emails/file_system.rb +23 -0
- data/app/services/spree/emails/filters.rb +84 -0
- data/app/services/spree/emails/liquid_context.rb +48 -0
- data/app/services/spree/emails/rendered_email.rb +14 -0
- data/app/services/spree/emails/renderer.rb +125 -0
- data/app/services/spree/emails/template.rb +51 -0
- data/app/services/spree/emails/template_data.rb +23 -0
- data/app/services/spree/emails/template_resolver.rb +109 -0
- data/app/services/spree/emails/text_converter.rb +72 -0
- data/app/services/spree/emails/translation_inliner.rb +134 -0
- data/app/services/spree/imports/row_processors/price_list_price.rb +10 -10
- data/app/services/spree/imports/row_processors/product_variant.rb +65 -34
- data/app/services/spree/imports/row_processors/purchase_order.rb +13 -13
- data/app/services/spree/locales.rb +4 -5
- data/app/services/spree/newsletter/subscribe.rb +8 -12
- data/app/services/spree/orders/build_fulfillments.rb +3 -2
- data/app/services/spree/orders/create.rb +2 -1
- data/app/services/spree/orders/discounts/create.rb +7 -4
- data/app/services/spree/orders/discounts/destroy.rb +1 -0
- data/app/services/spree/orders/discounts/update.rb +1 -0
- data/app/services/spree/orders/fees/create.rb +1 -0
- data/app/services/spree/orders/fees/destroy.rb +1 -0
- data/app/services/spree/orders/fees/update.rb +1 -0
- data/app/services/spree/orders/remove_line_item.rb +13 -3
- data/app/services/spree/orders/update.rb +10 -6
- data/app/services/spree/orders/update_item.rb +6 -3
- data/app/services/spree/orders/update_statuses.rb +3 -1
- data/app/services/spree/product_memberships.rb +61 -0
- data/app/services/spree/returns/eligibility_validator.rb +1 -1
- data/app/services/spree/search_provider/custom_field_schema.rb +2 -2
- data/app/services/spree/seeds/commission_rates.rb +1 -1
- data/app/services/spree/seeds/digital_delivery.rb +1 -1
- data/app/services/spree/seeds/payment_methods.rb +2 -2
- data/app/services/spree/seeds/saved_reports.rb +3 -3
- data/app/services/spree/sellers/requirements.rb +1 -2
- data/app/services/spree/shipping_labels/confirm_refund.rb +1 -1
- data/app/services/spree/shipping_labels/store_file.rb +3 -3
- data/app/services/spree/stock_levels/correct.rb +3 -3
- data/app/services/spree/stock_reservations/reserve.rb +2 -3
- data/app/services/spree/store_credits/apply.rb +15 -13
- data/app/services/spree/stores/provision_defaults.rb +15 -14
- data/app/subscribers/spree/seller_onboarding_subscriber.rb +1 -1
- data/app/views/layouts/spree/base_mailer.html.erb +2 -43
- data/app/views/layouts/spree/base_mailer.liquid +79 -0
- data/app/views/spree/admin_user_mailer/password_reset_email.liquid +14 -0
- data/app/views/spree/export_mailer/export_done.liquid +12 -0
- data/app/views/spree/import_mailer/import_done.liquid +15 -0
- data/app/views/spree/invitation_mailer/invitation_accepted.liquid +9 -0
- data/app/views/spree/invitation_mailer/invitation_email.liquid +13 -0
- data/app/views/spree/seller_user_mailer/password_reset_email.liquid +14 -0
- data/app/views/spree/shared/_mailer_button.html.erb +4 -5
- data/app/views/spree/shared/_mailer_hero.html.erb +6 -5
- data/app/views/spree/shared/_summary_row.liquid +8 -0
- data/app/views/spree/webhook_mailer/endpoint_disabled.liquid +21 -0
- data/app/workflows/spree/carts/add_item.rb +4 -4
- data/app/workflows/spree/carts/complete.rb +13 -3
- data/app/workflows/spree/carts/merge.rb +1 -1
- data/app/workflows/spree/carts/recalculate_totals.rb +5 -0
- data/app/workflows/spree/carts/upsert_items.rb +18 -9
- data/app/workflows/spree/claims/approve.rb +5 -22
- data/app/workflows/spree/claims/cancel.rb +5 -21
- data/app/workflows/spree/claims/create.rb +15 -0
- data/app/workflows/spree/claims/deny.rb +7 -0
- data/app/workflows/spree/claims/resolve.rb +34 -31
- data/app/workflows/spree/customers/anonymize.rb +3 -4
- data/app/workflows/spree/customers/create.rb +1 -1
- data/app/workflows/spree/data_requests/fulfill.rb +2 -2
- data/app/workflows/spree/deliveries/update_tracking.rb +1 -1
- data/app/workflows/spree/email_templates/discard_draft.rb +20 -0
- data/app/workflows/spree/email_templates/publish.rb +70 -0
- data/app/workflows/spree/email_templates/restore_revision.rb +33 -0
- data/app/workflows/spree/email_templates/revert.rb +29 -0
- data/app/workflows/spree/email_templates/save_draft.rb +85 -0
- data/app/workflows/spree/exchanges/approve.rb +5 -22
- data/app/workflows/spree/exchanges/cancel.rb +5 -21
- data/app/workflows/spree/exchanges/create.rb +6 -0
- data/app/workflows/spree/exchanges/fulfill.rb +75 -51
- data/app/workflows/spree/exchanges/receive.rb +6 -65
- data/app/workflows/spree/fulfillments/cancel.rb +1 -1
- data/app/workflows/spree/fulfillments/create.rb +51 -47
- data/app/workflows/spree/fulfillments/fulfill.rb +23 -27
- data/app/workflows/spree/fulfillments/mark_delivered.rb +1 -1
- data/app/workflows/spree/fulfillments/replacements.rb +59 -0
- data/app/workflows/spree/gift_cards/apply.rb +2 -2
- data/app/workflows/spree/orders/add_item.rb +5 -1
- data/app/workflows/spree/orders/cancel.rb +3 -3
- data/app/workflows/spree/orders/complete.rb +16 -8
- data/app/workflows/spree/payments/process.rb +2 -2
- data/app/workflows/spree/post_sale/approval.rb +35 -0
- data/app/workflows/spree/post_sale/cancellation.rb +44 -0
- data/app/workflows/spree/post_sale/receipt.rb +92 -0
- data/app/workflows/spree/products/nested_attributes.rb +1 -1
- data/app/workflows/spree/purchase_orders/cancel.rb +1 -1
- data/app/workflows/spree/purchase_orders/close.rb +3 -31
- data/app/workflows/spree/purchase_orders/mark_draft.rb +2 -2
- data/app/workflows/spree/purchase_orders/mark_ordered.rb +2 -2
- data/app/workflows/spree/purchase_orders/receive.rb +1 -1
- data/app/workflows/spree/purchase_orders/update.rb +5 -34
- data/app/workflows/spree/receivables/closing_short.rb +46 -0
- data/app/workflows/spree/receivables/draft_editing.rb +48 -0
- data/app/workflows/spree/refunds/create.rb +5 -2
- data/app/workflows/spree/refunds/order_payments.rb +14 -2
- data/app/workflows/spree/refunds/tax_credit.rb +67 -0
- data/app/workflows/spree/returns/approve.rb +5 -22
- data/app/workflows/spree/returns/cancel.rb +5 -22
- data/app/workflows/spree/returns/create.rb +8 -0
- data/app/workflows/spree/returns/receive.rb +5 -76
- data/app/workflows/spree/returns/refund.rb +31 -8
- data/app/workflows/spree/seller_requirement_submissions/create.rb +1 -2
- data/app/workflows/spree/seller_transfers/reverse.rb +28 -1
- data/app/workflows/spree/shipping_labels/purchase.rb +8 -8
- data/app/workflows/spree/shipping_labels/record.rb +5 -5
- data/app/workflows/spree/shipping_labels/refund.rb +2 -2
- data/app/workflows/spree/stock_receipts/recording.rb +4 -4
- data/app/workflows/spree/stock_transfers/cancel.rb +2 -2
- data/app/workflows/spree/stock_transfers/close.rb +3 -30
- data/app/workflows/spree/stock_transfers/mark_draft.rb +1 -1
- data/app/workflows/spree/stock_transfers/mark_in_transit.rb +3 -3
- data/app/workflows/spree/stock_transfers/mark_ready.rb +2 -2
- data/app/workflows/spree/stock_transfers/receive.rb +1 -1
- data/app/workflows/spree/stock_transfers/update.rb +5 -33
- data/config/i18n-tasks.yml +32 -18
- data/config/initializers/alba.rb +7 -0
- data/config/language_names.csv +264 -0
- data/config/locales/ar.yml +811 -0
- data/config/locales/be.yml +855 -0
- data/config/locales/bg.yml +723 -0
- data/config/locales/ca.yml +689 -0
- data/config/locales/cs.yml +855 -0
- data/config/locales/da.yml +771 -0
- data/config/locales/de-CH.yml +248 -0
- data/config/locales/de.yml +835 -0
- data/config/locales/el.yml +769 -0
- data/config/locales/en.yml +37 -503
- data/config/locales/es-CL.yml +301 -0
- data/config/locales/es-EC.yml +186 -0
- data/config/locales/es-MX.yml +334 -0
- data/config/locales/es.yml +831 -0
- data/config/locales/et.yml +644 -0
- data/config/locales/fa.yml +709 -0
- data/config/locales/fi.yml +771 -0
- data/config/locales/fr.yml +830 -0
- data/config/locales/hu.yml +751 -0
- data/config/locales/id.yml +756 -0
- data/config/locales/it.yml +833 -0
- data/config/locales/ja.yml +726 -0
- data/config/locales/km.yml +759 -0
- data/config/locales/ko.yml +575 -0
- data/config/locales/ku.yml +753 -0
- data/config/locales/lt.yml +821 -0
- data/config/locales/lv.yml +685 -0
- data/config/locales/nb.yml +824 -0
- data/config/locales/ne.yml +823 -0
- data/config/locales/nl.yml +826 -0
- data/config/locales/pl.yml +835 -0
- data/config/locales/pt-BR.yml +547 -0
- data/config/locales/pt.yml +636 -0
- data/config/locales/ro.yml +750 -0
- data/config/locales/ru.yml +834 -0
- data/config/locales/sk.yml +680 -0
- data/config/locales/sl-SI.yml +600 -0
- data/config/locales/sv.yml +827 -0
- data/config/locales/th.yml +745 -0
- data/config/locales/tr.yml +777 -0
- data/config/locales/uk.yml +836 -0
- data/config/locales/vi.yml +768 -0
- data/config/locales/zh-CN.yml +786 -0
- data/config/locales/zh-TW.yml +834 -0
- data/db/migrate/20260925000001_add_replacement_to_spree_fulfillment_items.rb +5 -0
- data/db/migrate/20261001000001_add_post_sale_tax.rb +30 -0
- data/db/migrate/20261001000001_convert_preferences_to_json.rb +166 -0
- data/db/migrate/20261001000001_create_spree_email_templates.rb +52 -0
- data/lib/generators/spree/dummy/dummy_generator.rb +0 -9
- data/lib/generators/spree/dummy/templates/rails/test.rb +7 -0
- data/lib/spree/checkout/default_requirements.rb +37 -13
- data/lib/spree/core/configuration.rb +1 -1
- data/lib/spree/core/controller_helpers/store.rb +1 -1
- data/lib/spree/core/dependencies.rb +5 -4
- data/lib/spree/core/emails/escaped_output.rb +60 -0
- data/lib/spree/core/engine.rb +48 -167
- data/lib/spree/core/permissions/default_catalog.rb +5 -0
- data/lib/spree/core/preferences/json_conversion.rb +182 -0
- data/lib/spree/core/preferences/masking.rb +4 -1
- data/lib/spree/core/preferences/preferable.rb +137 -83
- data/lib/spree/core/preferences/preferable_class_methods.rb +81 -146
- data/lib/spree/core/previews/import_preview.rb +10 -0
- data/lib/spree/core/tax/provider_error.rb +37 -0
- data/lib/spree/core/version.rb +1 -1
- data/lib/spree/core.rb +85 -370
- data/lib/spree/emails/editable_templates.rb +82 -0
- data/lib/spree/events/catalog.rb +189 -0
- data/lib/spree/events.rb +21 -1
- data/lib/spree/hooks.rb +0 -17
- data/lib/spree/i18n.rb +32 -15
- data/lib/spree/reporting/adapters/live.rb +6 -6
- data/lib/spree/reporting/default_vocabulary.rb +22 -10
- data/lib/spree/reporting/hydration.rb +1 -1
- data/lib/spree/reporting/query.rb +8 -0
- data/lib/spree/reporting/schema.rb +10 -10
- data/lib/spree/testing_support/editable_email_templates.rb +61 -0
- data/lib/spree/testing_support/emails.rb +22 -0
- data/lib/spree/testing_support/factories/cart_factory.rb +1 -1
- data/lib/spree/testing_support/factories/email_template_factory.rb +28 -0
- data/lib/spree/testing_support/factories/order_factory.rb +2 -2
- data/lib/spree/testing_support/factories/refund_factory.rb +1 -1
- data/lib/spree/testing_support/factories/stock_factory.rb +1 -1
- data/lib/spree/testing_support/factories/variant_factory.rb +1 -1
- data/lib/spree/testing_support/i18n.rb +3 -94
- data/lib/spree/testing_support/lifecycle_events.rb +1 -1
- data/lib/spree/testing_support/order_walkthrough.rb +1 -1
- data/lib/spree/testing_support/preferences.rb +0 -5
- data/lib/spree/testing_support/store.rb +9 -1
- data/lib/spree/upgrades/5_6_to_6_0/manifest.yml +45 -0
- data/lib/tasks/categories_and_collections.rake +3 -3
- data/lib/tasks/core.rake +6 -4
- data/lib/tasks/media.rake +3 -3
- data/lib/tasks/package_types.rake +1 -1
- data/lib/tasks/preferences_json.rake +101 -0
- data/spec/fixtures/mailer_views/custom_views_probe_mailer/welcome_email.html.erb +4 -0
- metadata +188 -44
- data/app/models/acts_as_taggable_on/tag_decorator.rb +0 -10
- data/app/models/concerns/spree/has_image_alt_text.rb +0 -18
- data/app/models/spree/base_analytics_event_handler.rb +0 -54
- data/app/models/spree/invitations/store.rb +0 -6
- data/app/models/spree/preference.rb +0 -14
- data/app/models/spree/promotion_handler/page.rb +0 -25
- data/app/models/spree/promotion_handler/promotion_duplicator.rb +0 -60
- data/app/models/spree/stock/differentiator.rb +0 -45
- data/app/presenters/spree/filters/options_presenter.rb +0 -47
- data/app/services/spree/carts/empty.rb +0 -42
- data/app/services/spree/country_to_timezone.rb +0 -273
- data/app/services/spree/payments/create.rb +0 -92
- data/app/validators/spree/url_validator.rb +0 -23
- data/app/views/active_storage/blobs/_blob.html.erb +0 -14
- data/app/views/spree/admin_user_mailer/password_reset_email.html.erb +0 -8
- data/app/views/spree/export_mailer/export_done.html.erb +0 -7
- data/app/views/spree/import_mailer/import_done.html.erb +0 -12
- data/app/views/spree/invitation_mailer/invitation_accepted.html.erb +0 -4
- data/app/views/spree/invitation_mailer/invitation_email.html.erb +0 -12
- data/app/views/spree/seller_user_mailer/password_reset_email.html.erb +0 -8
- data/app/views/spree/shared/_base_mailer_footer.html.erb +0 -19
- data/app/views/spree/shared/_base_mailer_header.html.erb +0 -8
- data/app/views/spree/shared/_base_mailer_stylesheets.html.erb +0 -399
- data/app/views/spree/shared/_mailer_logo.html.erb +0 -41
- data/app/views/spree/shared/_purchased_items_styles.html.erb +0 -119
- data/app/views/spree/webhook_mailer/endpoint_disabled.html.erb +0 -51
- data/app/views/spree/webhook_mailer/endpoint_disabled.text.erb +0 -10
- data/app/workflows/spree/fulfillments/purchase_label.rb +0 -40
- data/app/workflows/spree/returns/purchase_label.rb +0 -32
- data/lib/spree/analytics.rb +0 -11
- data/lib/spree/core/preferences/scoped_store.rb +0 -34
- data/lib/spree/core/preferences/store.rb +0 -105
- data/lib/spree/translation_migrations.rb +0 -52
|
@@ -0,0 +1,709 @@
|
|
|
1
|
+
---
|
|
2
|
+
fa:
|
|
3
|
+
activemodel:
|
|
4
|
+
errors:
|
|
5
|
+
messages:
|
|
6
|
+
blank: نمیتواند خالی باشد
|
|
7
|
+
activerecord:
|
|
8
|
+
attributes:
|
|
9
|
+
spree/address:
|
|
10
|
+
address1: آدرس
|
|
11
|
+
address2: ادامه آدرس
|
|
12
|
+
city: شهر
|
|
13
|
+
company: شرکت
|
|
14
|
+
country: کشور
|
|
15
|
+
label: نام آدرس
|
|
16
|
+
phone: تلفن
|
|
17
|
+
state: استان
|
|
18
|
+
spree/country:
|
|
19
|
+
iso: ISO
|
|
20
|
+
iso3: ISO3
|
|
21
|
+
iso_name: ISO Name
|
|
22
|
+
name: نام
|
|
23
|
+
numcode: ISO Code
|
|
24
|
+
spree/credit_card:
|
|
25
|
+
cc_type: نوع
|
|
26
|
+
month: ماه
|
|
27
|
+
number: عدد
|
|
28
|
+
year: سال
|
|
29
|
+
spree/customer_group:
|
|
30
|
+
description: توضیحات
|
|
31
|
+
name: نام
|
|
32
|
+
spree/gift_card:
|
|
33
|
+
amount_used: مبلغ استفادهشده
|
|
34
|
+
expires_at: تاریخ انقضا
|
|
35
|
+
spree/import:
|
|
36
|
+
preferred_delimiter: جداکننده
|
|
37
|
+
spree/import_mapping:
|
|
38
|
+
file_column: ستون فایل
|
|
39
|
+
schema_field: فیلد طرحواره
|
|
40
|
+
spree/import_row:
|
|
41
|
+
row_number: شماره
|
|
42
|
+
spree/inventory_unit:
|
|
43
|
+
state: استان
|
|
44
|
+
spree/invitation:
|
|
45
|
+
inviter: دعوتکننده
|
|
46
|
+
spree/line_item:
|
|
47
|
+
price: قیمت
|
|
48
|
+
quantity: مقدار
|
|
49
|
+
spree/option_type:
|
|
50
|
+
filterable: قابل فیلتر
|
|
51
|
+
kind: نوع
|
|
52
|
+
name: نام
|
|
53
|
+
spree/option_value:
|
|
54
|
+
color_code: کد رنگ
|
|
55
|
+
image: تصویر نمونه رنگ
|
|
56
|
+
spree/order:
|
|
57
|
+
completed_at: پایان یافته در
|
|
58
|
+
considered_risky: ریسکی
|
|
59
|
+
coupon_code: کد کوپن
|
|
60
|
+
created_at: ساخته شده در
|
|
61
|
+
email: ایمیل
|
|
62
|
+
internal_note: یادداشت داخلی
|
|
63
|
+
ip_address: آدرس IP
|
|
64
|
+
item_count: اقلام
|
|
65
|
+
item_total: مجموع ایتم ها
|
|
66
|
+
number: شماره
|
|
67
|
+
payment_state: وضعیت پرداخت
|
|
68
|
+
shipment_state: وضعیت مرسوله
|
|
69
|
+
special_instructions: دستورالعمل ویژه
|
|
70
|
+
state: وضعیت
|
|
71
|
+
total: مجموع
|
|
72
|
+
spree/payment:
|
|
73
|
+
number: شماره
|
|
74
|
+
spree/policy:
|
|
75
|
+
body: متن
|
|
76
|
+
owner: خطمشی برای
|
|
77
|
+
spree/price_list:
|
|
78
|
+
description: توضیحات
|
|
79
|
+
ends_at: پایان در
|
|
80
|
+
match_policy: خطمشی تطبیق
|
|
81
|
+
name: نام
|
|
82
|
+
priority: اولویت
|
|
83
|
+
starts_at: شروع در
|
|
84
|
+
status: وضعیت
|
|
85
|
+
spree/price_rule:
|
|
86
|
+
priority: اولویت
|
|
87
|
+
type: نوع
|
|
88
|
+
spree/product:
|
|
89
|
+
available_on: Available On
|
|
90
|
+
cost_price: Cost Price
|
|
91
|
+
description: Description
|
|
92
|
+
discontinue_on: توقف عرضه در
|
|
93
|
+
less_than: کمتر از
|
|
94
|
+
make_active_at: فعالسازی در
|
|
95
|
+
master_price: Master Price
|
|
96
|
+
more_than: بیشتر از
|
|
97
|
+
name: نام
|
|
98
|
+
on_hand: On Hand
|
|
99
|
+
tax_category: Tax Category
|
|
100
|
+
spree/promotion:
|
|
101
|
+
code: کد
|
|
102
|
+
generate_code: تولید کد تخفیف
|
|
103
|
+
name: نام
|
|
104
|
+
path: مسیر
|
|
105
|
+
promotion_category: دستهبندی تخفیف
|
|
106
|
+
spree/promotion_category:
|
|
107
|
+
code: کد
|
|
108
|
+
name: نام
|
|
109
|
+
spree/property:
|
|
110
|
+
name: نام
|
|
111
|
+
presentation: نمایش
|
|
112
|
+
spree/role:
|
|
113
|
+
name: نام
|
|
114
|
+
spree/shipment:
|
|
115
|
+
number: شماره
|
|
116
|
+
spree/state:
|
|
117
|
+
name: نام
|
|
118
|
+
spree/store:
|
|
119
|
+
address: آدرس
|
|
120
|
+
contact_phone: تلفن تماس
|
|
121
|
+
preferred_digital_asset_authorized_clicks: محدودیت تعداد دانلود
|
|
122
|
+
preferred_digital_asset_authorized_days: محدودیت روزهای دانلود
|
|
123
|
+
preferred_limit_digital_download_count: محدود کردن تعداد دانلود لینکهای دیجیتال
|
|
124
|
+
preferred_limit_digital_download_days: محدود کردن روزهای دانلود لینکهای دیجیتال
|
|
125
|
+
seo_robots: رباتهای SEO
|
|
126
|
+
storefront_custom_code_body_end: کد سفارشی پیش از بسته شدن تگ body
|
|
127
|
+
storefront_custom_code_body_start: کد سفارشی پس از باز شدن تگ body
|
|
128
|
+
storefront_custom_code_head: کد سفارشی در head صفحه
|
|
129
|
+
spree/store_credit:
|
|
130
|
+
amount_used: مبلغ استفادهشده
|
|
131
|
+
spree/tax_category:
|
|
132
|
+
description: توضیحات
|
|
133
|
+
name: نام
|
|
134
|
+
spree/taxon:
|
|
135
|
+
sort_order: ترتیب نمایش
|
|
136
|
+
spree/taxonomy:
|
|
137
|
+
name: نام
|
|
138
|
+
spree/user:
|
|
139
|
+
avatar: تصویر پروفایل
|
|
140
|
+
email: ایمیل
|
|
141
|
+
password: رمزعبور
|
|
142
|
+
password_confirmation: تایید رمزعبور
|
|
143
|
+
spree/variant:
|
|
144
|
+
cost_price: Cost Price
|
|
145
|
+
depth: Depth
|
|
146
|
+
height: Height
|
|
147
|
+
price: قیمت
|
|
148
|
+
sku: کد کالا
|
|
149
|
+
weight: وزن
|
|
150
|
+
width: عرض
|
|
151
|
+
spree/zone:
|
|
152
|
+
description: توضیحات
|
|
153
|
+
name: نام
|
|
154
|
+
user:
|
|
155
|
+
current_sign_in: ورود فعلی در
|
|
156
|
+
last_sign_in: آخرین ورود در
|
|
157
|
+
sign_in_count: تعداد ورودها
|
|
158
|
+
errors:
|
|
159
|
+
messages:
|
|
160
|
+
blank: نمیتواند خالی باشد
|
|
161
|
+
models:
|
|
162
|
+
spree/allowed_origin:
|
|
163
|
+
attributes:
|
|
164
|
+
origin:
|
|
165
|
+
must_be_origin_only: باید یک مبدأ (طرح و میزبان) بدون مسیر، پرسوجو یا قطعه باشد
|
|
166
|
+
spree/credit_card:
|
|
167
|
+
attributes:
|
|
168
|
+
base:
|
|
169
|
+
card_expired: اعتبار کارت تمام شده است
|
|
170
|
+
spree/gift_card:
|
|
171
|
+
attributes:
|
|
172
|
+
base:
|
|
173
|
+
cannot_destroy_used_gift_card: نمیتوان کارت هدیه استفادهشده را حذف کرد
|
|
174
|
+
spree/import:
|
|
175
|
+
attributes:
|
|
176
|
+
attachment:
|
|
177
|
+
content_type: نوع محتوای مجاز ندارد
|
|
178
|
+
type:
|
|
179
|
+
inclusion: در فهرست انواع مجاز قرار ندارد
|
|
180
|
+
spree/market:
|
|
181
|
+
attributes:
|
|
182
|
+
base:
|
|
183
|
+
cannot_destroy_default_market: نمیتوان بازار پیشفرض را حذف کرد.
|
|
184
|
+
cannot_destroy_last_market: نمیتوان تنها بازار موجود را حذف کرد.
|
|
185
|
+
spree/market_country:
|
|
186
|
+
attributes:
|
|
187
|
+
country:
|
|
188
|
+
already_in_market: قبلاً به بازار دیگری در این فروشگاه اختصاص داده شده است
|
|
189
|
+
not_in_shipping_zone: تحت پوشش هیچ منطقه ارسالی نیست. لطفاً ابتدا یک منطقه ارسال تنظیم کنید.
|
|
190
|
+
spree/payment:
|
|
191
|
+
attributes:
|
|
192
|
+
amount:
|
|
193
|
+
greater_than_max_amount: از حداکثر مبلغ مجاز %{max_amount} بیشتر است
|
|
194
|
+
spree/price_list:
|
|
195
|
+
attributes:
|
|
196
|
+
ends_at:
|
|
197
|
+
must_be_after_starts_at: باید پس از زمان شروع باشد
|
|
198
|
+
spree/product:
|
|
199
|
+
attributes:
|
|
200
|
+
base:
|
|
201
|
+
cannot_destroy_if_attached_to_line_items: نمیتوان محصولاتی را که به سفارشهای ثبتشده افزوده شدهاند حذف کرد. در چنین مواردی، لطفاً عرضه آنها را متوقف کنید.
|
|
202
|
+
discontinue_on:
|
|
203
|
+
invalid_date_range: باید پس از تاریخ در دسترس بودن باشد
|
|
204
|
+
spree/product_publication:
|
|
205
|
+
attributes:
|
|
206
|
+
unpublished_at:
|
|
207
|
+
must_be_after_published_at: باید پس از تاریخ انتشار باشد
|
|
208
|
+
spree/promotion:
|
|
209
|
+
attributes:
|
|
210
|
+
expires_at:
|
|
211
|
+
invalid_date_range: باید پس از تاریخ شروع باشد
|
|
212
|
+
spree/store:
|
|
213
|
+
attributes:
|
|
214
|
+
base:
|
|
215
|
+
cannot_destroy_only_store: نمیتوان تنها فروشگاه موجود را حذف کرد.
|
|
216
|
+
spree/store_credit:
|
|
217
|
+
attributes:
|
|
218
|
+
amount_authorized:
|
|
219
|
+
exceeds_total_credits: از مجموع اعتبارها بیشتر است.
|
|
220
|
+
amount_used:
|
|
221
|
+
cannot_be_greater_than_amount: نمیتواند بیشتر از مبلغ باشد.
|
|
222
|
+
greater_than_zero_restrict_delete: بیشتر از صفر است. نمیتوان اعتبار فروشگاه را حذف کرد.
|
|
223
|
+
spree/user:
|
|
224
|
+
attributes:
|
|
225
|
+
bill_address_id:
|
|
226
|
+
belongs_to_other_user: به کاربر دیگری تعلق دارد
|
|
227
|
+
deprecated_in_completed_order: در سفارش تکمیلشده منسوخ شده است
|
|
228
|
+
ship_address_id:
|
|
229
|
+
belongs_to_other_user: به کاربر دیگری تعلق دارد
|
|
230
|
+
deprecated_in_completed_order: در سفارش تکمیلشده منسوخ شده است
|
|
231
|
+
spree/variant:
|
|
232
|
+
attributes:
|
|
233
|
+
base:
|
|
234
|
+
cannot_destroy_if_attached_to_line_items: نمیتوان واریانتهایی را که به سفارشهای ثبتشده افزوده شدهاند حذف کرد. در چنین مواردی، لطفاً عرضه آنها را متوقف کنید.
|
|
235
|
+
spree/webhook_endpoint:
|
|
236
|
+
attributes:
|
|
237
|
+
url:
|
|
238
|
+
internal_address_not_allowed: نباید به یک آدرس شبکه داخلی یا خصوصی اشاره کند
|
|
239
|
+
models:
|
|
240
|
+
spree/address:
|
|
241
|
+
one: آدرس
|
|
242
|
+
other: آدرسها
|
|
243
|
+
spree/classification:
|
|
244
|
+
one: طبقهبندی
|
|
245
|
+
other: طبقهبندیها
|
|
246
|
+
spree/country:
|
|
247
|
+
one: کشور
|
|
248
|
+
other: کشورها
|
|
249
|
+
spree/credit_card:
|
|
250
|
+
one: کارت اعتباری
|
|
251
|
+
other: کارتهای اعتباری
|
|
252
|
+
spree/customer_group:
|
|
253
|
+
one: گروه مشتری
|
|
254
|
+
other: گروههای مشتری
|
|
255
|
+
spree/customer_group_user:
|
|
256
|
+
one: کاربر گروه مشتری
|
|
257
|
+
other: کاربران گروه مشتری
|
|
258
|
+
spree/export:
|
|
259
|
+
one: خروجی
|
|
260
|
+
other: خروجیها
|
|
261
|
+
spree/integration:
|
|
262
|
+
one: یکپارچهسازی
|
|
263
|
+
other: یکپارچهسازیها
|
|
264
|
+
spree/inventory_unit:
|
|
265
|
+
one: واحد موجودی
|
|
266
|
+
other: واحدهای موجودی
|
|
267
|
+
spree/line_item:
|
|
268
|
+
one: قلم سفارش
|
|
269
|
+
other: اقلام سفارش
|
|
270
|
+
spree/option_type:
|
|
271
|
+
one: نوع گزینه
|
|
272
|
+
other: انواع گزینه
|
|
273
|
+
spree/option_value:
|
|
274
|
+
one: مقدار گزینه
|
|
275
|
+
other: مقادیر گزینه
|
|
276
|
+
spree/order:
|
|
277
|
+
one: سفارش
|
|
278
|
+
other: سفارشات
|
|
279
|
+
spree/payment:
|
|
280
|
+
one: Payment
|
|
281
|
+
other: Payments
|
|
282
|
+
spree/payment_method:
|
|
283
|
+
one: روش پرداخت
|
|
284
|
+
other: روشهای پرداخت
|
|
285
|
+
spree/price:
|
|
286
|
+
one: قیمت
|
|
287
|
+
other: قیمتها
|
|
288
|
+
spree/price_list:
|
|
289
|
+
one: فهرست قیمت
|
|
290
|
+
other: فهرستهای قیمت
|
|
291
|
+
spree/price_rule:
|
|
292
|
+
one: قاعده قیمت
|
|
293
|
+
other: قواعد قیمت
|
|
294
|
+
spree/product:
|
|
295
|
+
one: محصول
|
|
296
|
+
other: محصولها
|
|
297
|
+
spree/promotion:
|
|
298
|
+
one: فروش ویژه
|
|
299
|
+
other: تخفیفها
|
|
300
|
+
spree/promotion_category:
|
|
301
|
+
one: دسته بندی فروش ویژه
|
|
302
|
+
other: دستهبندیهای تخفیف
|
|
303
|
+
spree/property:
|
|
304
|
+
one: خصوصیت
|
|
305
|
+
other: خصوصیات
|
|
306
|
+
spree/refund_reason:
|
|
307
|
+
one: دلیل استرداد
|
|
308
|
+
other: دلایل بازپرداخت
|
|
309
|
+
spree/role:
|
|
310
|
+
one: نقش
|
|
311
|
+
other: نقشها
|
|
312
|
+
spree/shipment:
|
|
313
|
+
one: نحوه ارسال
|
|
314
|
+
other: مرسولهها
|
|
315
|
+
spree/shipping_method:
|
|
316
|
+
one: روش ارسال
|
|
317
|
+
other: روشهای ارسال
|
|
318
|
+
spree/state:
|
|
319
|
+
one: State
|
|
320
|
+
other: States
|
|
321
|
+
spree/stock_location:
|
|
322
|
+
one: انبار
|
|
323
|
+
other: انبارها
|
|
324
|
+
spree/stock_movement:
|
|
325
|
+
one: جابهجایی موجودی
|
|
326
|
+
other: جابهجاییهای موجودی
|
|
327
|
+
spree/stock_transfer:
|
|
328
|
+
one: انتقال موجودی
|
|
329
|
+
other: انتقالهای موجودی
|
|
330
|
+
spree/store:
|
|
331
|
+
one: فروشگاه
|
|
332
|
+
other: فروشگاهها
|
|
333
|
+
spree/store_credit:
|
|
334
|
+
one: اعتبار فروشگاه
|
|
335
|
+
other: اعتبارهای فروشگاه
|
|
336
|
+
spree/tax_category:
|
|
337
|
+
one: دستهبندی مالیاتی
|
|
338
|
+
other: دستهبندیهای مالیاتی
|
|
339
|
+
spree/tax_rate:
|
|
340
|
+
one: نرخ مالیات
|
|
341
|
+
other: نرخهای مالیات
|
|
342
|
+
spree/taxon:
|
|
343
|
+
one: دستهبندی
|
|
344
|
+
other: دستهبندیها
|
|
345
|
+
spree/taxonomy:
|
|
346
|
+
one: Taxonomy
|
|
347
|
+
other: Taxonomies
|
|
348
|
+
spree/user:
|
|
349
|
+
one: کاربر
|
|
350
|
+
other: کاربرها
|
|
351
|
+
spree/variant:
|
|
352
|
+
one: Variant
|
|
353
|
+
other: Variants
|
|
354
|
+
spree/zone:
|
|
355
|
+
one: Zone
|
|
356
|
+
other: Zones
|
|
357
|
+
errors:
|
|
358
|
+
messages:
|
|
359
|
+
not_saved:
|
|
360
|
+
one: '۱ خطا مانع از ذخیره این %{resource} شد:'
|
|
361
|
+
other: "%{count} خطا مانع از ذخیره این %{resource} شد:"
|
|
362
|
+
number:
|
|
363
|
+
percentage:
|
|
364
|
+
format:
|
|
365
|
+
precision: 1
|
|
366
|
+
spree:
|
|
367
|
+
accepts_email_marketing: پذیرش بازاریابی ایمیلی
|
|
368
|
+
account: حساب
|
|
369
|
+
active: فعال
|
|
370
|
+
address: آدرس
|
|
371
|
+
adjustment: تعدیل
|
|
372
|
+
adjustment_labels:
|
|
373
|
+
tax_rates:
|
|
374
|
+
excluding_tax: "%{name}%{amount}"
|
|
375
|
+
including_tax: "%{name}%{amount} (در قیمت لحاظ شده)"
|
|
376
|
+
adjustments_deleted: تعدیلها حذف شدند
|
|
377
|
+
all: همه
|
|
378
|
+
amount: مقدار
|
|
379
|
+
api_key_no_current_key: هیچ کلید API این درخواست را احراز هویت نکرد
|
|
380
|
+
api_key_scopes_immutable: پس از ایجاد کلید قابل تغییر نیست؛ کلید جدیدی با دامنههای مورد نیاز خود بسازید و این کلید را باطل کنید
|
|
381
|
+
approver: تأییدکننده
|
|
382
|
+
authorized: مجاز شده
|
|
383
|
+
availability: موجود بودن
|
|
384
|
+
backordered: پیشسفارش شده
|
|
385
|
+
bill_address: آدرس
|
|
386
|
+
billing_address: آدرس پرداخت
|
|
387
|
+
calculator: ماشین حساب
|
|
388
|
+
canceled: لغو شده
|
|
389
|
+
canceler: لغوکننده
|
|
390
|
+
cannot_be_destroyed: سفارش قابل حذف نیست.
|
|
391
|
+
capture: Capture
|
|
392
|
+
cart: سبد خرید
|
|
393
|
+
cart_already_updated: سبد خرید قبلاً بهروزرسانی شده است.
|
|
394
|
+
cart_line_item:
|
|
395
|
+
delivery_unavailable: "%{li_name} قابل ارسال به نشانی انتخابشده نیست"
|
|
396
|
+
discontinued: "%{li_name} به دلیل توقف عرضه حذف شد"
|
|
397
|
+
out_of_stock: "%{li_name} به دلیل اتمام موجودی حذف شد"
|
|
398
|
+
categories: دسته بندی ها
|
|
399
|
+
category: دسته بندی
|
|
400
|
+
channel: کانال فروش
|
|
401
|
+
channels: کانالهای فروش
|
|
402
|
+
checkout: تصفیه حساب
|
|
403
|
+
checkout_requirements:
|
|
404
|
+
email_required: آدرس ایمیل الزامی است
|
|
405
|
+
line_items_required: حداقل یک کالا به سبد خرید خود اضافه کنید
|
|
406
|
+
payment_required: یک روش پرداخت اضافه کنید
|
|
407
|
+
ship_address_required: آدرس ارسال الزامی است
|
|
408
|
+
city: شهر
|
|
409
|
+
color_code: کد رنگ
|
|
410
|
+
company: کمپانی
|
|
411
|
+
compare_at_amount: مبلغ مقایسهای
|
|
412
|
+
compare_at_price: قیمت مقایسهای
|
|
413
|
+
complete: تکمیل
|
|
414
|
+
confirm: تایید
|
|
415
|
+
cost_price: قیمت
|
|
416
|
+
country: کشور
|
|
417
|
+
coupon_code: کد کوپن
|
|
418
|
+
coupon_code_applied: The coupon code was successfully applied to your order.
|
|
419
|
+
coupon_code_unknown_error: این کد تخفیف در حال حاضر قابل اعمال به سبد خرید نیست.
|
|
420
|
+
coupon_code_used: کد تخفیفی که وارد کردید قبلاً استفاده شده است. لطفاً دوباره تلاش کنید.
|
|
421
|
+
credit_card: کارت اعتباری
|
|
422
|
+
currency: واحد پول
|
|
423
|
+
currency_not_supported_by_store: توسط این فروشگاه پشتیبانی نمیشود
|
|
424
|
+
customer: مشتری
|
|
425
|
+
customers: مشتریان
|
|
426
|
+
default: پیش فرض
|
|
427
|
+
default_stock_location_name: محل فروشگاه
|
|
428
|
+
default_wishlist_name: فهرست علاقهمندیها
|
|
429
|
+
delivery: تحویل
|
|
430
|
+
depth: عمق
|
|
431
|
+
description: توضیح
|
|
432
|
+
destroy: پاک کردن
|
|
433
|
+
details: جزئیات
|
|
434
|
+
digital:
|
|
435
|
+
digital_delivery: تحویل دیجیتال
|
|
436
|
+
digital_assets: داراییهای دیجیتال
|
|
437
|
+
discontinued: عرضه متوقفشده
|
|
438
|
+
discontinued_variants_present: برخی از اقلام این سفارش محصولاتی دارند که دیگر در دسترس نیستند.
|
|
439
|
+
display_delivery_range: تحویل ظرف %{delivery_range} روز کاری
|
|
440
|
+
draft: پیشنویس
|
|
441
|
+
eligibility_errors:
|
|
442
|
+
messages:
|
|
443
|
+
has_excluded_product: سبد خرید شما محصولی دارد که مانع اعمال این کد تخفیف میشود.
|
|
444
|
+
item_total_less_than: این کد تخفیف برای سفارشهای کمتر از %{amount} قابل اعمال نیست.
|
|
445
|
+
item_total_less_than_or_equal: این کد تخفیف برای سفارشهای کمتر یا مساوی %{amount} قابل اعمال نیست.
|
|
446
|
+
item_total_more_than: این کد تخفیف برای سفارشهای بیشتر از %{amount} قابل اعمال نیست.
|
|
447
|
+
item_total_more_than_or_equal: این کد تخفیف برای سفارشهای بیشتر یا مساوی %{amount} قابل اعمال نیست.
|
|
448
|
+
limit_once_per_user: این کد تخفیف فقط یک بار برای هر کاربر قابل استفاده است.
|
|
449
|
+
missing_product: این کد تخفیف قابل اعمال نیست زیرا همه محصولات لازم را در سبد خرید خود ندارید.
|
|
450
|
+
missing_taxon: پیش از اعمال این کد تخفیف باید محصولی از همه دستهبندیهای مرتبط اضافه کنید.
|
|
451
|
+
no_applicable_products: پیش از اعمال این کد تخفیف باید یک محصول مرتبط اضافه کنید.
|
|
452
|
+
no_matching_channel: این کد تخفیف برای این کانال فروش معتبر نیست.
|
|
453
|
+
no_matching_market: این کد تخفیف در بازار شما معتبر نیست.
|
|
454
|
+
no_matching_taxons: پیش از اعمال این کد تخفیف باید محصولی از یک دستهبندی مرتبط اضافه کنید.
|
|
455
|
+
no_user_or_email_specified: پیش از اعمال این کد تخفیف باید وارد شوید یا ایمیل خود را وارد کنید.
|
|
456
|
+
no_user_specified: پیش از اعمال این کد تخفیف باید وارد شوید.
|
|
457
|
+
not_first_order: این کد تخفیف فقط برای نخستین سفارش شما قابل اعمال است.
|
|
458
|
+
wrong_country: این کد تخفیف در کشور شما واجد شرایط نیست
|
|
459
|
+
email: ایمیل
|
|
460
|
+
error: ایراد
|
|
461
|
+
error_user_destroy_with_orders: کاربری که با سفارشها مرتبط است قابل حذف نیست
|
|
462
|
+
error_user_does_not_have_any_store_credits: کاربر هیچ اعتبار فروشگاهی در دسترس ندارد
|
|
463
|
+
errors:
|
|
464
|
+
messages:
|
|
465
|
+
cannot_delete_default_channel: کانال پیشفرض قابل حذف نیست. ابتدا کانال دیگری را به پیشفرض ارتقا دهید.
|
|
466
|
+
channel_store_mismatch: باید به همان فروشگاه تعلق داشته باشد
|
|
467
|
+
invalid_order_routing_rule: یک قاعده مسیریابی سفارش ثبتشده نیست
|
|
468
|
+
invalid_order_routing_strategy: یک راهبرد مسیریابی سفارش ثبتشده نیست
|
|
469
|
+
store_association_can_not_be_changed: ارتباط فروشگاه قابل تغییر نیست
|
|
470
|
+
store_is_already_set: فروشگاه قبلاً تنظیم شده است
|
|
471
|
+
expired: منقضیشده
|
|
472
|
+
export_mailer:
|
|
473
|
+
export_done:
|
|
474
|
+
message: کارتان عالی بود، خروجی شما آماده است! لطفاً برای دانلود از پیوند زیر استفاده کنید.
|
|
475
|
+
subject: خروجی شما %{export_number} با موفقیت پردازش شد!
|
|
476
|
+
greeting: سلام %{user_name}،
|
|
477
|
+
field: فیلد
|
|
478
|
+
first_name: نام
|
|
479
|
+
flat_percent: Flat Percent
|
|
480
|
+
flat_rate_per_order: Flat Rate (per order)
|
|
481
|
+
flexible_rate: Flexible Rate
|
|
482
|
+
free: رایگان
|
|
483
|
+
gateway: درگاه
|
|
484
|
+
gateway_error: ایراد درگاه
|
|
485
|
+
gift_card: کارت هدیه
|
|
486
|
+
gift_card_already_redeemed: این کارت هدیه قبلاً استفاده شده است.
|
|
487
|
+
gift_card_applied: کارت هدیه با موفقیت به سفارش شما اعمال شد!
|
|
488
|
+
gift_card_customer_not_logged_in: کارت هدیه با کاربر مهمان قابل اعمال نیست.
|
|
489
|
+
gift_card_expired: کارت هدیه منقضی شده است.
|
|
490
|
+
gift_card_mismatched_currency: کارت هدیه با ارز فعلی قابل اعمال نیست.
|
|
491
|
+
gift_card_mismatched_customer: این کارت هدیه با کاربر دیگری مرتبط است.
|
|
492
|
+
gift_card_not_found: کارت هدیه یافت نشد.
|
|
493
|
+
gift_card_removed: کارت هدیه با موفقیت از سفارش شما حذف شد
|
|
494
|
+
gift_card_using_store_credit_error: پس از اعمال اعتبار فروشگاه نمیتوانید کارت هدیه را اعمال کنید.
|
|
495
|
+
height: ارتفاع
|
|
496
|
+
i18n:
|
|
497
|
+
this_file_language: فارسی (FA)
|
|
498
|
+
idempotency_key_reused: این Idempotency-Key قبلاً با پارامترهای درخواست متفاوتی استفاده شده است.
|
|
499
|
+
image: تصویر
|
|
500
|
+
import: درونریزی
|
|
501
|
+
in_stock: موجود در انبار
|
|
502
|
+
inactive: غیرفعال
|
|
503
|
+
incomplete: ناقص
|
|
504
|
+
insufficient_stock_lines_present: برخی از اقلام این سفارش تعداد ناکافی دارند.
|
|
505
|
+
internal_note: یادداشت داخلی
|
|
506
|
+
inventory: انبار
|
|
507
|
+
invitation_mailer:
|
|
508
|
+
greeting: سلام %{user_name}،
|
|
509
|
+
invitation_accepted:
|
|
510
|
+
body: "%{invitee_name} دعوت شما برای پیوستن به %{resource_name} را پذیرفت"
|
|
511
|
+
subject: "%{invitee_name} دعوت شما برای پیوستن به %{resource_name} را پذیرفت"
|
|
512
|
+
invitation_email:
|
|
513
|
+
body: "%{inviter_name} شما را به پیوستن به %{resource_name} دعوت کرده است"
|
|
514
|
+
link_description: 'برای پذیرش این دعوت، لطفاً روی پیوند زیر کلیک کنید:'
|
|
515
|
+
subject: دعوت به پیوستن به %{resource_name}
|
|
516
|
+
iso: ISO Alpha-2
|
|
517
|
+
item: آیتم
|
|
518
|
+
key: کلید
|
|
519
|
+
kind: نوع
|
|
520
|
+
label: برچسب
|
|
521
|
+
last_name: نام خانوادگی
|
|
522
|
+
line_item: قلم سفارش
|
|
523
|
+
line_items: اقلام سفارش
|
|
524
|
+
link: پیوند
|
|
525
|
+
locale: زبان
|
|
526
|
+
locale_not_supported_by_store: توسط این فروشگاه پشتیبانی نمیشود
|
|
527
|
+
manual: دستی
|
|
528
|
+
market: بازار
|
|
529
|
+
me_no_current_user: هیچ کاربر مدیری این درخواست را احراز هویت نکرد
|
|
530
|
+
media: رسانه
|
|
531
|
+
meta_description: Meta Description
|
|
532
|
+
meta_keywords: Meta Keywords
|
|
533
|
+
meta_title: عنوان متا
|
|
534
|
+
metadata: Metadata
|
|
535
|
+
min_quantity: حداقل تعداد
|
|
536
|
+
month: ماه
|
|
537
|
+
name: نام
|
|
538
|
+
new_variant: New Variant
|
|
539
|
+
no_cc_type: موجود نیست
|
|
540
|
+
no_payment_found: هیچ پرداختی یافت نشد
|
|
541
|
+
none: هیچکدام
|
|
542
|
+
number: شماره
|
|
543
|
+
on_hand: On Hand
|
|
544
|
+
only_active_products_can_be_added_to_cart: محصولات پیشنویس و بایگانیشده را نمیتوان به سبد خرید افزود، لطفاً ابتدا محصول را فعال کنید.
|
|
545
|
+
option_name: نام گزینه
|
|
546
|
+
option_type: نوع اختیار
|
|
547
|
+
option_value: مقدار
|
|
548
|
+
options: اختیارات
|
|
549
|
+
or: یا
|
|
550
|
+
order: سفارش
|
|
551
|
+
order_canceled: سفارش لغو شد
|
|
552
|
+
order_routing:
|
|
553
|
+
strategies:
|
|
554
|
+
legacy: قدیمی
|
|
555
|
+
rules: قواعد (مرتبشده)
|
|
556
|
+
order_summary: خلاصه سفارش
|
|
557
|
+
orders: سفارشات
|
|
558
|
+
out_of_stock: موجودی نداریم
|
|
559
|
+
password: رمز عبور
|
|
560
|
+
path: Path
|
|
561
|
+
payment: پرداخت
|
|
562
|
+
payment_method: روش پرداخت
|
|
563
|
+
payment_methods: روش های پرداخت
|
|
564
|
+
payment_processing_failed: پردازش پرداخت با مشکل مواجه شد. لطفا اطلاعات ورودی خود را کنترل کنید
|
|
565
|
+
payment_source: منبع پرداخت
|
|
566
|
+
pending: در انتظار
|
|
567
|
+
percent_per_item: Percent Per Item
|
|
568
|
+
phone: تلفن
|
|
569
|
+
price: قیمت
|
|
570
|
+
price_range: محدوده قیمت
|
|
571
|
+
price_rules:
|
|
572
|
+
channel_rule:
|
|
573
|
+
description: اعمال قیمتگذاری بر اساس کانال فروش
|
|
574
|
+
customer_group_rule:
|
|
575
|
+
description: اعمال قیمتگذاری برای گروههای مشتری مشخص
|
|
576
|
+
price_sack: Price Sack
|
|
577
|
+
prices: قیمتها
|
|
578
|
+
privacy_policy: خطمشی حریم خصوصی
|
|
579
|
+
processing: در حال پردازش
|
|
580
|
+
product: محصول
|
|
581
|
+
product_translations: ترجمههای محصول
|
|
582
|
+
products: محصولات
|
|
583
|
+
products_cannot_be_shipped: در حال حاضر نمیتوانیم %{product_names} را به موقعیت مکانی فعلی شما ارسال کنیم. لطفاً آدرس ارسال خود را تغییر دهید یا %{product_names} را از سبد خرید خود حذف کنید.
|
|
584
|
+
promotion: فروش ویژه
|
|
585
|
+
promotion_already_used: نمیتوانید تخفیفی را که قبلاً اعمال شده است حذف کنید
|
|
586
|
+
promotion_label: تخفیف (%{name})
|
|
587
|
+
promotion_rule_types:
|
|
588
|
+
category:
|
|
589
|
+
description: سفارش شامل محصولاتی در دستهبندیهای مشخص است
|
|
590
|
+
name: دستهبندیها
|
|
591
|
+
channel:
|
|
592
|
+
description: محدود کردن به سفارشهای ثبتشده از طریق کانال(های) مشخصشده
|
|
593
|
+
name: کانال(ها)
|
|
594
|
+
country:
|
|
595
|
+
description: محدود به سفارشهایی با آدرس ارسال در یک کشور خاص
|
|
596
|
+
name: کشور
|
|
597
|
+
currency:
|
|
598
|
+
description: محدود به سفارشهایی با یک ارز خاص
|
|
599
|
+
name: ارز
|
|
600
|
+
customer:
|
|
601
|
+
description: فقط برای مشتریان مشخصشده در دسترس است
|
|
602
|
+
name: مشتریان
|
|
603
|
+
customer_group:
|
|
604
|
+
description: فقط برای مشتریان در گروه(های) مشتری مشخصشده در دسترس است
|
|
605
|
+
name: گروه(های) مشتری
|
|
606
|
+
customer_logged_in:
|
|
607
|
+
description: فقط برای مشتریان واردشده در دسترس است
|
|
608
|
+
name: فقط مشتریان واردشده
|
|
609
|
+
market:
|
|
610
|
+
description: محدود کردن به سفارشهای ثبتشده در بازار(های) مشخصشده
|
|
611
|
+
name: بازار(ها)
|
|
612
|
+
promotions: فروش ویژه
|
|
613
|
+
query: پرسوجو
|
|
614
|
+
reason: Reason
|
|
615
|
+
received: دریافت شد
|
|
616
|
+
reference: ارجاع
|
|
617
|
+
refund: استرداد
|
|
618
|
+
refund_amount: مبلغ بازپرداخت
|
|
619
|
+
refunds: بازپرداختها
|
|
620
|
+
registration: ثبت نام
|
|
621
|
+
rejected: رد شده
|
|
622
|
+
remove: حدف
|
|
623
|
+
remove_gift_card_on_completed_order_error: پس از ثبت سفارش نمیتوانید کارت هدیه را حذف کنید
|
|
624
|
+
resellable: قابل فروش مجدد
|
|
625
|
+
resend: اخیرا
|
|
626
|
+
response_code: Response Code
|
|
627
|
+
return: برگشت
|
|
628
|
+
returned: برگشت داده شد
|
|
629
|
+
returns_policy: خطمشی مرجوعی
|
|
630
|
+
row: ردیف
|
|
631
|
+
rules: قوانین
|
|
632
|
+
say_no: 'No'
|
|
633
|
+
say_yes: 'Yes'
|
|
634
|
+
scope: Scope
|
|
635
|
+
selected_quantity_not_available: تعداد انتخابشده از %{item} در دسترس نیست.
|
|
636
|
+
ship: ارسال
|
|
637
|
+
ship_address: Ship Address
|
|
638
|
+
shipped: ارسال شد
|
|
639
|
+
shipping: ارسال
|
|
640
|
+
shipping_address: آدرس ارسال
|
|
641
|
+
shipping_policy: خطمشی ارسال
|
|
642
|
+
shipping_rates:
|
|
643
|
+
display_price:
|
|
644
|
+
excluding_tax: "%{price} (+ %{tax_amount} %{tax_rate_name})"
|
|
645
|
+
including_tax: "%{price} (شامل %{tax_amount} %{tax_rate_name})"
|
|
646
|
+
sku: کد کالا
|
|
647
|
+
slug: اسلاگ
|
|
648
|
+
status: وضعیت
|
|
649
|
+
stock_location: مکان انبار
|
|
650
|
+
stock_locations: مکان انبارها
|
|
651
|
+
stock_transfer:
|
|
652
|
+
errors:
|
|
653
|
+
must_have_variant: باید حداقل یک واریانت اضافه کنید
|
|
654
|
+
same_location: نمیتواند همان محل مقصد باشد
|
|
655
|
+
variants_unavailable: برخی واریانتها در %{stock} در دسترس نیستند
|
|
656
|
+
store: فروشگاه
|
|
657
|
+
store_credit:
|
|
658
|
+
allocated: افزودهشده
|
|
659
|
+
authorized: مجاز شده
|
|
660
|
+
captured: استفادهشده
|
|
661
|
+
credit: اعتبار
|
|
662
|
+
eligible: واجد شرایط
|
|
663
|
+
store_credit_name: اعتبار فروشگاه
|
|
664
|
+
store_credit_payment_method:
|
|
665
|
+
currency_mismatch: ارز اعتبار فروشگاه با ارز سفارش مطابقت ندارد
|
|
666
|
+
insufficient_authorized_amount: نمیتوان بیشتر از مبلغ مجاز دریافت کرد
|
|
667
|
+
insufficient_funds: مبلغ باقیمانده اعتبار فروشگاه کافی نیست
|
|
668
|
+
successful_action: اعتبار فروشگاه با موفقیت %{action}
|
|
669
|
+
unable_to_credit: 'اعتباردهی کد ممکن نشد: %{auth_code}'
|
|
670
|
+
unable_to_find: اعتبار فروشگاه یافت نشد
|
|
671
|
+
unable_to_find_for_action: 'اعتبار فروشگاه برای کد مجوز: %{auth_code} برای عملیات: %{action} یافت نشد'
|
|
672
|
+
unable_to_void: 'ابطال کد ممکن نشد: %{auth_code}'
|
|
673
|
+
success: موفقیت
|
|
674
|
+
tags: برچسبها
|
|
675
|
+
tax: مالیات
|
|
676
|
+
tax_category: دسته بندی مالیات
|
|
677
|
+
terms_of_service: شرایط خدمات
|
|
678
|
+
tiered_flat_rate: نرخ ثابت پلکانی
|
|
679
|
+
tiered_percent: درصد پلکانی
|
|
680
|
+
total: کل
|
|
681
|
+
track_inventory: ردیابی موجودی
|
|
682
|
+
tracking: ردگیری
|
|
683
|
+
type: نوع
|
|
684
|
+
unable_to_connect_to_gateway: اتصال به درگاه مقدور نیست
|
|
685
|
+
updated_at: بهروزرسانیشده در
|
|
686
|
+
url: URL
|
|
687
|
+
user: کاربر
|
|
688
|
+
validation:
|
|
689
|
+
must_be_int: باید به صورت عدد صحیح وارد شوند
|
|
690
|
+
value: مقدار
|
|
691
|
+
variant: Variant
|
|
692
|
+
variants: Variants
|
|
693
|
+
verified: تأییدشده
|
|
694
|
+
void: Void
|
|
695
|
+
webhook_mailer:
|
|
696
|
+
endpoint_disabled:
|
|
697
|
+
disabled_at_label: غیرفعالشده در
|
|
698
|
+
heading: نقطه پایانی وبهوک غیرفعال شد
|
|
699
|
+
instructions: لطفاً نشانی و سرویس نقطه پایانی را بررسی کرده، سپس آن را در تنظیمات ← توسعهدهندگان ← وبهوکها دوباره فعال کنید.
|
|
700
|
+
message: نقطه پایانی وبهوک «%{endpoint_name}» پس از شکستهای مکرر در تحویل بهطور خودکار غیرفعال شد.
|
|
701
|
+
name_label: نام
|
|
702
|
+
reason_label: دلیل
|
|
703
|
+
subject: 'نقطه پایانی وبهوک غیرفعال شد: %{endpoint_name}'
|
|
704
|
+
url_label: URL
|
|
705
|
+
weight: وزن
|
|
706
|
+
weight_unit: واحد وزن
|
|
707
|
+
width: پهنا
|
|
708
|
+
year: سال
|
|
709
|
+
zip: کد پستی
|