spree_core 6.0.0.beta4 → 6.0.0.rc2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (575) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +5 -5
  3. data/app/helpers/spree/images_helper.rb +0 -57
  4. data/app/jobs/spree/base_job.rb +21 -0
  5. data/app/jobs/spree/carts/reap_expired_job.rb +2 -2
  6. data/app/jobs/spree/collections/regenerate_time_based_job.rb +6 -3
  7. data/app/jobs/spree/orders/finalize_stale_drafts_job.rb +8 -5
  8. data/app/jobs/spree/payments/cancel_unused_sessions_job.rb +61 -0
  9. data/app/jobs/spree/search_provider/index_job.rb +4 -0
  10. data/app/jobs/spree/seller_payouts/sweep_seller_job.rb +2 -0
  11. data/app/jobs/spree/uploads/purge_unattached_job.rb +49 -0
  12. data/app/mailers/spree/admin_user_mailer.rb +4 -19
  13. data/app/mailers/spree/base_mailer.rb +97 -13
  14. data/app/mailers/spree/email_template_mailer.rb +27 -0
  15. data/app/mailers/spree/export_mailer.rb +3 -4
  16. data/app/mailers/spree/import_mailer.rb +3 -4
  17. data/app/mailers/spree/invitation_mailer.rb +24 -7
  18. data/app/mailers/spree/seller_user_mailer.rb +4 -16
  19. data/app/mailers/spree/webhook_mailer.rb +2 -2
  20. data/app/models/concerns/spree/acted_by.rb +1 -1
  21. data/app/models/concerns/spree/admin_user_methods.rb +15 -1
  22. data/app/models/concerns/spree/api_typed.rb +91 -0
  23. data/app/models/concerns/spree/calculated_adjustments.rb +41 -13
  24. data/app/models/concerns/spree/calculator/currency_amounts.rb +1 -1
  25. data/app/models/concerns/spree/calculator/tiers.rb +63 -0
  26. data/app/models/concerns/spree/canonical_decimals.rb +61 -0
  27. data/app/models/concerns/spree/customer_methods.rb +23 -18
  28. data/app/models/concerns/spree/derived_number.rb +11 -13
  29. data/app/models/concerns/spree/email_template_identity.rb +52 -0
  30. data/app/models/concerns/spree/parameterizable_name.rb +2 -0
  31. data/app/models/concerns/spree/payment_session_transitions.rb +8 -2
  32. data/app/models/concerns/spree/post_sale/taxation.rb +54 -0
  33. data/app/models/concerns/spree/post_sale/taxed_line.rb +51 -0
  34. data/app/models/concerns/spree/preference_schema/json_schema.rb +139 -0
  35. data/app/models/concerns/spree/preference_schema.rb +62 -32
  36. data/app/models/concerns/spree/product_scopes.rb +16 -2
  37. data/app/models/concerns/spree/provider_listing.rb +41 -0
  38. data/app/models/concerns/spree/publishable.rb +82 -14
  39. data/app/models/concerns/spree/purchase/addresses.rb +23 -10
  40. data/app/models/concerns/spree/purchase/currency.rb +1 -1
  41. data/app/models/concerns/spree/purchase/deprecated_aliases.rb +87 -0
  42. data/app/models/concerns/spree/purchase/gift_cards.rb +10 -4
  43. data/app/models/concerns/spree/purchase/locale.rb +1 -1
  44. data/app/models/concerns/spree/purchase/payment_processing.rb +8 -4
  45. data/app/models/concerns/spree/purchase/purchase_order.rb +9 -4
  46. data/app/models/concerns/spree/purchase/store_credits.rb +36 -1
  47. data/app/models/concerns/spree/purchase/totals.rb +49 -8
  48. data/app/models/concerns/spree/ransackable_attributes.rb +46 -0
  49. data/app/models/concerns/spree/receivable.rb +1 -1
  50. data/app/models/concerns/spree/searchable.rb +0 -4
  51. data/app/models/concerns/spree/secret_preferences.rb +59 -0
  52. data/app/models/concerns/spree/signed_id_attachments.rb +54 -0
  53. data/app/models/concerns/spree/single_store_resource.rb +1 -1
  54. data/app/models/concerns/spree/stores/email_branding.rb +32 -0
  55. data/app/models/concerns/spree/stores/markets.rb +5 -2
  56. data/app/models/concerns/spree/type_labels.rb +38 -0
  57. data/app/models/concerns/spree/typed_adjustment_line.rb +5 -6
  58. data/app/models/concerns/spree/typed_associations.rb +12 -18
  59. data/app/models/concerns/spree/vat_price_calculation.rb +5 -6
  60. data/app/models/spree/address.rb +12 -2
  61. data/app/models/spree/adjusters/largest_remainder.rb +14 -1
  62. data/app/models/spree/adjusters/promotion.rb +4 -19
  63. data/app/models/spree/allowed_origin.rb +3 -1
  64. data/app/models/spree/api_key.rb +5 -6
  65. data/app/models/spree/authentication/strategies/oidc_strategy.rb +5 -5
  66. data/app/models/spree/base.rb +99 -22
  67. data/app/models/spree/calculator/flat_percent_item_total.rb +2 -4
  68. data/app/models/spree/calculator/flat_rate.rb +3 -5
  69. data/app/models/spree/calculator/flexi_rate.rb +4 -6
  70. data/app/models/spree/calculator/percent_on_line_item.rb +2 -2
  71. data/app/models/spree/calculator/price_sack.rb +5 -7
  72. data/app/models/spree/calculator/shipping/digital_delivery.rb +3 -5
  73. data/app/models/spree/calculator/shipping/flat_percent_item_total.rb +7 -7
  74. data/app/models/spree/calculator/shipping/flat_rate.rb +5 -7
  75. data/app/models/spree/calculator/shipping/flexi_rate.rb +4 -6
  76. data/app/models/spree/calculator/shipping/per_item.rb +3 -5
  77. data/app/models/spree/calculator/shipping/price_sack.rb +5 -7
  78. data/app/models/spree/calculator/tiered_flat_rate.rb +7 -24
  79. data/app/models/spree/calculator/tiered_percent.rb +7 -25
  80. data/app/models/spree/cart.rb +78 -18
  81. data/app/models/spree/catalog.rb +1 -0
  82. data/app/models/spree/catalog_price.rb +0 -7
  83. data/app/models/spree/catalog_price_tier.rb +0 -8
  84. data/app/models/spree/category.rb +3 -1
  85. data/app/models/spree/channel/gating.rb +3 -2
  86. data/app/models/spree/channel.rb +6 -4
  87. data/app/models/spree/claim.rb +22 -1
  88. data/app/models/spree/claim_line_item.rb +41 -6
  89. data/app/models/spree/collection.rb +2 -1
  90. data/app/models/spree/collection_rule.rb +5 -21
  91. data/app/models/spree/commission_line.rb +1 -1
  92. data/app/models/spree/commission_rate.rb +7 -4
  93. data/app/models/spree/commission_rate_value.rb +1 -1
  94. data/app/models/spree/commission_rule.rb +4 -11
  95. data/app/models/spree/commission_rules/category_rule.rb +2 -5
  96. data/app/models/spree/commission_rules/item_total_rule.rb +2 -2
  97. data/app/models/spree/commission_rules/product_rule.rb +1 -1
  98. data/app/models/spree/commission_rules/seller_rule.rb +2 -5
  99. data/app/models/spree/company.rb +1 -0
  100. data/app/models/spree/company_invitation.rb +1 -0
  101. data/app/models/spree/consent_record.rb +0 -1
  102. data/app/models/spree/credit_card.rb +1 -1
  103. data/app/models/spree/current.rb +23 -0
  104. data/app/models/spree/custom_field.rb +2 -2
  105. data/app/models/spree/custom_field_definition.rb +20 -35
  106. data/app/models/spree/custom_fields/boolean.rb +1 -1
  107. data/app/models/spree/custom_fields/json.rb +1 -1
  108. data/app/models/spree/customer_group.rb +1 -0
  109. data/app/models/spree/data_feed/google.rb +0 -2
  110. data/app/models/spree/data_request.rb +2 -1
  111. data/app/models/spree/delivery_method.rb +36 -14
  112. data/app/models/spree/delivery_method_rule.rb +4 -11
  113. data/app/models/spree/delivery_method_rules/channel_rule.rb +2 -5
  114. data/app/models/spree/delivery_method_rules/item_total_rule.rb +2 -2
  115. data/app/models/spree/delivery_profile.rb +1 -0
  116. data/app/models/spree/delivery_rate.rb +7 -8
  117. data/app/models/spree/delivery_rate_provider/base.rb +1 -0
  118. data/app/models/spree/delivery_zone.rb +1 -2
  119. data/app/models/spree/delivery_zone_member.rb +4 -4
  120. data/app/models/spree/digital_asset.rb +7 -0
  121. data/app/models/spree/digital_asset_provider/base.rb +2 -0
  122. data/app/models/spree/digital_link.rb +2 -5
  123. data/app/models/spree/discount.rb +1 -1
  124. data/app/models/spree/email_template.rb +25 -0
  125. data/app/models/spree/email_template_draft.rb +13 -0
  126. data/app/models/spree/email_template_revision.rb +17 -0
  127. data/app/models/spree/email_templates/entry.rb +118 -0
  128. data/app/models/spree/email_templates/sample_record.rb +16 -0
  129. data/app/models/spree/emails/branding.rb +80 -0
  130. data/app/models/spree/exchange.rb +16 -1
  131. data/app/models/spree/exchange_line_item.rb +121 -5
  132. data/app/models/spree/export.rb +0 -1
  133. data/app/models/spree/exports/products.rb +10 -1
  134. data/app/models/spree/exports/report.rb +3 -3
  135. data/app/models/spree/fee.rb +4 -2
  136. data/app/models/spree/file_upload.rb +155 -0
  137. data/app/models/spree/fulfillment.rb +66 -30
  138. data/app/models/spree/fulfillment_changer.rb +2 -2
  139. data/app/models/spree/fulfillment_group.rb +6 -1
  140. data/app/models/spree/fulfillment_item.rb +0 -4
  141. data/app/models/spree/fulfillment_provider/base.rb +1 -0
  142. data/app/models/spree/gateway/bogus.rb +6 -0
  143. data/app/models/spree/gateway/custom_payment_source_method.rb +5 -0
  144. data/app/models/spree/gateway.rb +6 -2
  145. data/app/models/spree/gift_card.rb +18 -8
  146. data/app/models/spree/gift_card_batch.rb +3 -5
  147. data/app/models/spree/import.rb +5 -7
  148. data/app/models/spree/import_mapping.rb +1 -2
  149. data/app/models/spree/import_row.rb +2 -2
  150. data/app/models/spree/import_schemas/products.rb +1 -0
  151. data/app/models/spree/integration.rb +9 -19
  152. data/app/models/spree/invitation.rb +5 -5
  153. data/app/models/spree/line_item.rb +15 -4
  154. data/app/models/spree/locale.rb +11 -8
  155. data/app/models/spree/market.rb +8 -2
  156. data/app/models/spree/media.rb +1 -9
  157. data/app/models/spree/newsletter_subscriber.rb +4 -0
  158. data/app/models/spree/option_type.rb +2 -1
  159. data/app/models/spree/option_value.rb +2 -1
  160. data/app/models/spree/order.rb +60 -142
  161. data/app/models/spree/order_group.rb +18 -4
  162. data/app/models/spree/order_inventory.rb +10 -5
  163. data/app/models/spree/order_promotion.rb +1 -1
  164. data/app/models/spree/order_routing/has_strategy_preference.rb +1 -1
  165. data/app/models/spree/order_routing/strategy/base.rb +4 -2
  166. data/app/models/spree/order_routing/strategy/rules.rb +1 -1
  167. data/app/models/spree/order_routing_rule.rb +6 -22
  168. data/app/models/spree/package_type.rb +2 -2
  169. data/app/models/spree/payment/gateway_options.rb +15 -53
  170. data/app/models/spree/payment/processing.rb +2 -4
  171. data/app/models/spree/payment.rb +21 -13
  172. data/app/models/spree/payment_method/check.rb +2 -0
  173. data/app/models/spree/payment_method/session_instrumentation.rb +1 -0
  174. data/app/models/spree/payment_method/store_credit.rb +15 -13
  175. data/app/models/spree/payment_method.rb +78 -6
  176. data/app/models/spree/payment_session.rb +5 -1
  177. data/app/models/spree/payment_setup_session.rb +1 -0
  178. data/app/models/spree/payout_provider/base.rb +3 -1
  179. data/app/models/spree/pickup_point_provider/base.rb +2 -0
  180. data/app/models/spree/policy.rb +1 -0
  181. data/app/models/spree/price.rb +17 -14
  182. data/app/models/spree/price_adjustment_tier.rb +4 -0
  183. data/app/models/spree/price_list.rb +14 -9
  184. data/app/models/spree/price_rules/channel_rule.rb +3 -6
  185. data/app/models/spree/price_rules/customer_group_rule.rb +3 -6
  186. data/app/models/spree/price_rules/market_rule.rb +2 -5
  187. data/app/models/spree/price_rules/user_rule.rb +1 -3
  188. data/app/models/spree/product/channels.rb +9 -2
  189. data/app/models/spree/product.rb +54 -30
  190. data/app/models/spree/product_submission.rb +0 -12
  191. data/app/models/spree/product_type.rb +1 -1
  192. data/app/models/spree/promotion/actions/create_line_items.rb +28 -18
  193. data/app/models/spree/promotion/rules/category.rb +1 -5
  194. data/app/models/spree/promotion/rules/channel.rb +2 -9
  195. data/app/models/spree/promotion/rules/country.rb +3 -8
  196. data/app/models/spree/promotion/rules/currency.rb +1 -5
  197. data/app/models/spree/promotion/rules/customer_group.rb +2 -9
  198. data/app/models/spree/promotion/rules/first_order.rb +0 -4
  199. data/app/models/spree/promotion/rules/item_total.rb +6 -10
  200. data/app/models/spree/promotion/rules/market.rb +2 -9
  201. data/app/models/spree/promotion/rules/one_use_per_user.rb +0 -4
  202. data/app/models/spree/promotion/rules/option_value.rb +2 -6
  203. data/app/models/spree/promotion/rules/product.rb +1 -5
  204. data/app/models/spree/promotion/rules/user.rb +0 -4
  205. data/app/models/spree/promotion/rules/user_logged_in.rb +0 -4
  206. data/app/models/spree/promotion.rb +36 -6
  207. data/app/models/spree/promotion_action.rb +7 -14
  208. data/app/models/spree/promotion_action_line_item.rb +1 -1
  209. data/app/models/spree/promotion_handler/coupon.rb +59 -27
  210. data/app/models/spree/promotion_rule.rb +7 -14
  211. data/app/models/spree/purchase_order.rb +3 -0
  212. data/app/models/spree/quantity_rule.rb +1 -1
  213. data/app/models/spree/refund.rb +41 -18
  214. data/app/models/spree/return.rb +31 -2
  215. data/app/models/spree/return_line_item.rb +65 -14
  216. data/app/models/spree/role.rb +7 -7
  217. data/app/models/spree/saved_report.rb +2 -1
  218. data/app/models/spree/search_provider/base.rb +4 -0
  219. data/app/models/spree/seller.rb +10 -2
  220. data/app/models/spree/seller_payout.rb +8 -0
  221. data/app/models/spree/seller_requirement.rb +5 -12
  222. data/app/models/spree/seller_requirement_custom_field.rb +1 -2
  223. data/app/models/spree/seller_requirement_submission.rb +3 -2
  224. data/app/models/spree/seller_requirements/accept_terms.rb +2 -3
  225. data/app/models/spree/seller_transfer.rb +6 -0
  226. data/app/models/spree/shipping_label.rb +2 -0
  227. data/app/models/spree/stock/availability_validator.rb +2 -2
  228. data/app/models/spree/stock/estimator.rb +1 -1
  229. data/app/models/spree/stock/inventory_unit_builder.rb +1 -1
  230. data/app/models/spree/stock/packer.rb +2 -2
  231. data/app/models/spree/stock/splitter/weight.rb +1 -1
  232. data/app/models/spree/stock_level/custom_events.rb +6 -0
  233. data/app/models/spree/stock_level.rb +3 -1
  234. data/app/models/spree/stock_location.rb +1 -0
  235. data/app/models/spree/stock_movement.rb +1 -1
  236. data/app/models/spree/stock_receipt_item.rb +1 -1
  237. data/app/models/spree/stock_reservation.rb +2 -2
  238. data/app/models/spree/stock_transfer.rb +6 -2
  239. data/app/models/spree/store.rb +70 -19
  240. data/app/models/spree/store_credit.rb +13 -13
  241. data/app/models/spree/store_credit_event.rb +5 -5
  242. data/app/models/spree/supplier.rb +1 -0
  243. data/app/models/spree/tax_category.rb +1 -0
  244. data/app/models/spree/tax_exemption_certificate.rb +3 -0
  245. data/app/models/spree/tax_identifier.rb +3 -1
  246. data/app/models/spree/tax_line.rb +53 -3
  247. data/app/models/spree/tax_provider/base.rb +71 -14
  248. data/app/models/spree/tax_provider/internal.rb +70 -41
  249. data/app/models/spree/tax_provider/recorded_share.rb +114 -0
  250. data/app/models/spree/tax_rate.rb +30 -8
  251. data/app/models/spree/taxon.rb +1 -1
  252. data/app/models/spree/taxonomy.rb +0 -1
  253. data/app/models/spree/update_status.rb +25 -0
  254. data/app/models/spree/variant.rb +10 -12
  255. data/app/models/spree/variant_media.rb +1 -1
  256. data/app/models/spree/webhook_delivery.rb +1 -0
  257. data/app/models/spree/webhook_endpoint.rb +46 -13
  258. data/app/models/spree/wishlist.rb +1 -6
  259. data/app/models/spree/wishlist_item/custom_events.rb +6 -0
  260. data/app/presenters/spree/csv/customer_presenter.rb +1 -1
  261. data/app/presenters/spree/csv/newsletter_subscriber_presenter.rb +1 -1
  262. data/app/presenters/spree/csv/order_line_item_presenter.rb +10 -6
  263. data/app/presenters/spree/csv/price_list_price_presenter.rb +3 -8
  264. data/app/presenters/spree/csv/product_variant_presenter.rb +59 -20
  265. data/app/presenters/spree/csv/purchase_order_item_presenter.rb +1 -3
  266. data/app/serializers/spree/emails/base_serializer.rb +14 -0
  267. data/app/serializers/spree/emails/export_serializer.rb +13 -0
  268. data/app/serializers/spree/emails/import_serializer.rb +19 -0
  269. data/app/serializers/spree/emails/invitation_serializer.rb +28 -0
  270. data/app/serializers/spree/emails/store_serializer.rb +31 -0
  271. data/app/serializers/spree/emails/user_serializer.rb +12 -0
  272. data/app/serializers/spree/emails/webhook_endpoint_serializer.rb +16 -0
  273. data/app/services/spree/carts/create.rb +8 -2
  274. data/app/services/spree/carts/destroy.rb +2 -2
  275. data/app/services/spree/carts/remove_out_of_stock_items.rb +2 -2
  276. data/app/services/spree/carts/split_by_seller.rb +1 -1
  277. data/app/services/spree/carts/update.rb +22 -8
  278. data/app/services/spree/catalogs/set_product_terms.rb +1 -1
  279. data/app/services/spree/categories/add_products.rb +13 -31
  280. data/app/services/spree/categories/remove_products.rb +12 -51
  281. data/app/services/spree/checkout/advance.rb +1 -4
  282. data/app/services/spree/collections/add_products.rb +10 -23
  283. data/app/services/spree/collections/remove_products.rb +7 -43
  284. data/app/services/spree/coupon_codes/bulk_generate.rb +8 -14
  285. data/app/services/spree/data_requests/create.rb +1 -1
  286. data/app/services/spree/deliveries/destroy.rb +2 -2
  287. data/app/services/spree/email_templates/check.rb +58 -0
  288. data/app/services/spree/email_templates/no_sample_record.rb +7 -0
  289. data/app/services/spree/email_templates/preview.rb +99 -0
  290. data/app/services/spree/emails/file_system.rb +23 -0
  291. data/app/services/spree/emails/filters.rb +84 -0
  292. data/app/services/spree/emails/liquid_context.rb +48 -0
  293. data/app/services/spree/emails/rendered_email.rb +14 -0
  294. data/app/services/spree/emails/renderer.rb +125 -0
  295. data/app/services/spree/emails/template.rb +51 -0
  296. data/app/services/spree/emails/template_data.rb +23 -0
  297. data/app/services/spree/emails/template_resolver.rb +109 -0
  298. data/app/services/spree/emails/text_converter.rb +72 -0
  299. data/app/services/spree/emails/translation_inliner.rb +134 -0
  300. data/app/services/spree/imports/row_processors/price_list_price.rb +10 -10
  301. data/app/services/spree/imports/row_processors/product_variant.rb +77 -34
  302. data/app/services/spree/imports/row_processors/purchase_order.rb +13 -13
  303. data/app/services/spree/locales.rb +43 -10
  304. data/app/services/spree/newsletter/subscribe.rb +8 -12
  305. data/app/services/spree/orders/build_fulfillments.rb +3 -2
  306. data/app/services/spree/orders/create.rb +5 -4
  307. data/app/services/spree/orders/discounts/create.rb +14 -11
  308. data/app/services/spree/orders/discounts/destroy.rb +1 -0
  309. data/app/services/spree/orders/discounts/update.rb +1 -0
  310. data/app/services/spree/orders/fees/create.rb +1 -0
  311. data/app/services/spree/orders/fees/destroy.rb +1 -0
  312. data/app/services/spree/orders/fees/update.rb +1 -0
  313. data/app/services/spree/orders/remove_line_item.rb +13 -3
  314. data/app/services/spree/orders/update.rb +10 -6
  315. data/app/services/spree/orders/update_item.rb +6 -3
  316. data/app/services/spree/orders/update_statuses.rb +3 -1
  317. data/app/services/spree/prices/bulk_upsert.rb +32 -25
  318. data/app/services/spree/product_memberships.rb +61 -0
  319. data/app/services/spree/returns/eligibility_validator.rb +1 -1
  320. data/app/services/spree/search_provider/custom_field_schema.rb +2 -2
  321. data/app/services/spree/seeds/commission_rates.rb +1 -1
  322. data/app/services/spree/seeds/digital_delivery.rb +1 -1
  323. data/app/services/spree/seeds/payment_methods.rb +2 -2
  324. data/app/services/spree/seeds/saved_reports.rb +3 -3
  325. data/app/services/spree/seeds/stores.rb +1 -1
  326. data/app/services/spree/sellers/requirements.rb +1 -2
  327. data/app/services/spree/shipping_labels/confirm_refund.rb +1 -1
  328. data/app/services/spree/shipping_labels/store_file.rb +3 -3
  329. data/app/services/spree/stock_levels/correct.rb +3 -3
  330. data/app/services/spree/stock_reservations/reserve.rb +2 -3
  331. data/app/services/spree/store_credits/apply.rb +15 -13
  332. data/app/services/spree/stores/provision_defaults.rb +23 -25
  333. data/app/services/spree/update_check.rb +160 -0
  334. data/app/services/spree/uploads/assign_stores.rb +92 -0
  335. data/app/subscribers/spree/seller_onboarding_subscriber.rb +1 -1
  336. data/app/validators/spree/attachment_content_type_validator.rb +19 -2
  337. data/app/validators/spree/locale_codes_validator.rb +22 -0
  338. data/app/views/layouts/spree/base_mailer.html.erb +2 -43
  339. data/app/views/layouts/spree/base_mailer.liquid +79 -0
  340. data/app/views/spree/admin_user_mailer/password_reset_email.liquid +14 -0
  341. data/app/views/spree/export_mailer/export_done.liquid +12 -0
  342. data/app/views/spree/import_mailer/import_done.liquid +15 -0
  343. data/app/views/spree/invitation_mailer/invitation_accepted.liquid +9 -0
  344. data/app/views/spree/invitation_mailer/invitation_email.liquid +13 -0
  345. data/app/views/spree/seller_user_mailer/password_reset_email.liquid +14 -0
  346. data/app/views/spree/shared/_mailer_button.html.erb +4 -5
  347. data/app/views/spree/shared/_mailer_hero.html.erb +6 -5
  348. data/app/views/spree/shared/_summary_row.liquid +8 -0
  349. data/app/views/spree/webhook_mailer/endpoint_disabled.liquid +21 -0
  350. data/app/workflows/spree/carts/add_item.rb +4 -4
  351. data/app/workflows/spree/carts/complete.rb +13 -3
  352. data/app/workflows/spree/carts/merge.rb +1 -1
  353. data/app/workflows/spree/carts/recalculate_totals.rb +5 -0
  354. data/app/workflows/spree/carts/upsert_items.rb +18 -9
  355. data/app/workflows/spree/claims/approve.rb +5 -22
  356. data/app/workflows/spree/claims/cancel.rb +5 -21
  357. data/app/workflows/spree/claims/create.rb +15 -0
  358. data/app/workflows/spree/claims/deny.rb +7 -0
  359. data/app/workflows/spree/claims/resolve.rb +34 -31
  360. data/app/workflows/spree/customers/anonymize.rb +3 -4
  361. data/app/workflows/spree/customers/create.rb +1 -1
  362. data/app/workflows/spree/data_requests/fulfill.rb +2 -2
  363. data/app/workflows/spree/deliveries/update_tracking.rb +1 -1
  364. data/app/workflows/spree/email_templates/discard_draft.rb +20 -0
  365. data/app/workflows/spree/email_templates/publish.rb +70 -0
  366. data/app/workflows/spree/email_templates/restore_revision.rb +33 -0
  367. data/app/workflows/spree/email_templates/revert.rb +29 -0
  368. data/app/workflows/spree/email_templates/save_draft.rb +85 -0
  369. data/app/workflows/spree/exchanges/approve.rb +5 -22
  370. data/app/workflows/spree/exchanges/cancel.rb +5 -21
  371. data/app/workflows/spree/exchanges/create.rb +6 -0
  372. data/app/workflows/spree/exchanges/fulfill.rb +75 -51
  373. data/app/workflows/spree/exchanges/receive.rb +6 -65
  374. data/app/workflows/spree/fulfillments/cancel.rb +1 -1
  375. data/app/workflows/spree/fulfillments/create.rb +53 -49
  376. data/app/workflows/spree/fulfillments/fulfill.rb +23 -27
  377. data/app/workflows/spree/fulfillments/mark_delivered.rb +1 -1
  378. data/app/workflows/spree/fulfillments/replacements.rb +59 -0
  379. data/app/workflows/spree/gift_cards/apply.rb +2 -2
  380. data/app/workflows/spree/orders/add_item.rb +5 -1
  381. data/app/workflows/spree/orders/cancel.rb +3 -3
  382. data/app/workflows/spree/orders/complete.rb +16 -8
  383. data/app/workflows/spree/payments/capture.rb +20 -5
  384. data/app/workflows/spree/payments/process.rb +5 -3
  385. data/app/workflows/spree/post_sale/approval.rb +35 -0
  386. data/app/workflows/spree/post_sale/cancellation.rb +44 -0
  387. data/app/workflows/spree/post_sale/receipt.rb +92 -0
  388. data/app/workflows/spree/price_lists/update.rb +4 -4
  389. data/app/workflows/spree/products/nested_attributes.rb +1 -1
  390. data/app/workflows/spree/purchase_orders/cancel.rb +1 -1
  391. data/app/workflows/spree/purchase_orders/close.rb +3 -31
  392. data/app/workflows/spree/purchase_orders/create.rb +3 -1
  393. data/app/workflows/spree/purchase_orders/mark_draft.rb +2 -2
  394. data/app/workflows/spree/purchase_orders/mark_ordered.rb +2 -2
  395. data/app/workflows/spree/purchase_orders/receive.rb +1 -1
  396. data/app/workflows/spree/purchase_orders/update.rb +5 -34
  397. data/app/workflows/spree/receivables/closing_short.rb +46 -0
  398. data/app/workflows/spree/receivables/draft_editing.rb +48 -0
  399. data/app/workflows/spree/refunds/create.rb +5 -2
  400. data/app/workflows/spree/refunds/order_payments.rb +14 -2
  401. data/app/workflows/spree/refunds/tax_credit.rb +67 -0
  402. data/app/workflows/spree/returns/approve.rb +5 -22
  403. data/app/workflows/spree/returns/cancel.rb +5 -22
  404. data/app/workflows/spree/returns/create.rb +8 -0
  405. data/app/workflows/spree/returns/receive.rb +5 -76
  406. data/app/workflows/spree/returns/refund.rb +31 -8
  407. data/app/workflows/spree/seller_requirement_submissions/create.rb +1 -2
  408. data/app/workflows/spree/seller_transfers/reverse.rb +28 -1
  409. data/app/workflows/spree/shipping_labels/purchase.rb +8 -8
  410. data/app/workflows/spree/shipping_labels/record.rb +7 -7
  411. data/app/workflows/spree/shipping_labels/refund.rb +2 -2
  412. data/app/workflows/spree/stock_receipts/recording.rb +4 -4
  413. data/app/workflows/spree/stock_transfers/cancel.rb +2 -2
  414. data/app/workflows/spree/stock_transfers/close.rb +3 -30
  415. data/app/workflows/spree/stock_transfers/create.rb +3 -1
  416. data/app/workflows/spree/stock_transfers/mark_draft.rb +1 -1
  417. data/app/workflows/spree/stock_transfers/mark_in_transit.rb +3 -3
  418. data/app/workflows/spree/stock_transfers/mark_ready.rb +2 -2
  419. data/app/workflows/spree/stock_transfers/receive.rb +1 -1
  420. data/app/workflows/spree/stock_transfers/update.rb +5 -33
  421. data/config/currency_exponents.json +180 -0
  422. data/config/i18n-tasks.yml +32 -18
  423. data/config/initializers/alba.rb +7 -0
  424. data/config/language_names.csv +264 -0
  425. data/config/locales/ar.yml +811 -0
  426. data/config/locales/be.yml +855 -0
  427. data/config/locales/bg.yml +723 -0
  428. data/config/locales/ca.yml +689 -0
  429. data/config/locales/content_locales.rb +9 -0
  430. data/config/locales/cs.yml +855 -0
  431. data/config/locales/da.yml +771 -0
  432. data/config/locales/de-CH.yml +248 -0
  433. data/config/locales/de.yml +835 -0
  434. data/config/locales/el.yml +769 -0
  435. data/config/locales/en.yml +47 -505
  436. data/config/locales/es-CL.yml +301 -0
  437. data/config/locales/es-EC.yml +186 -0
  438. data/config/locales/es-MX.yml +334 -0
  439. data/config/locales/es.yml +831 -0
  440. data/config/locales/et.yml +644 -0
  441. data/config/locales/fa.yml +709 -0
  442. data/config/locales/fi.yml +771 -0
  443. data/config/locales/fr.yml +830 -0
  444. data/config/locales/hu.yml +751 -0
  445. data/config/locales/id.yml +756 -0
  446. data/config/locales/it.yml +833 -0
  447. data/config/locales/ja.yml +726 -0
  448. data/config/locales/km.yml +759 -0
  449. data/config/locales/ko.yml +575 -0
  450. data/config/locales/ku.yml +753 -0
  451. data/config/locales/lt.yml +821 -0
  452. data/config/locales/lv.yml +685 -0
  453. data/config/locales/nb.yml +824 -0
  454. data/config/locales/ne.yml +823 -0
  455. data/config/locales/nl.yml +826 -0
  456. data/config/locales/pl.yml +835 -0
  457. data/config/locales/pt-BR.yml +547 -0
  458. data/config/locales/pt.yml +636 -0
  459. data/config/locales/ro.yml +750 -0
  460. data/config/locales/ru.yml +834 -0
  461. data/config/locales/sk.yml +680 -0
  462. data/config/locales/sl-SI.yml +600 -0
  463. data/config/locales/sv.yml +827 -0
  464. data/config/locales/th.yml +745 -0
  465. data/config/locales/tr.yml +777 -0
  466. data/config/locales/uk.yml +836 -0
  467. data/config/locales/vi.yml +768 -0
  468. data/config/locales/zh-CN.yml +786 -0
  469. data/config/locales/zh-TW.yml +834 -0
  470. data/db/migrate/20260925000001_add_replacement_to_spree_fulfillment_items.rb +5 -0
  471. data/db/migrate/20261001000001_add_post_sale_tax.rb +30 -0
  472. data/db/migrate/20261001000001_convert_preferences_to_json.rb +166 -0
  473. data/db/migrate/20261001000001_create_spree_email_templates.rb +52 -0
  474. data/db/migrate/20261009000001_change_money_columns_to_decimal_19_4.rb +116 -0
  475. data/db/migrate/20261010000001_add_store_id_to_active_storage_blobs.rb +12 -0
  476. data/lib/generators/spree/dummy/dummy_generator.rb +0 -9
  477. data/lib/generators/spree/dummy/templates/rails/test.rb +26 -0
  478. data/lib/spree/checkout/default_requirements.rb +37 -13
  479. data/lib/spree/core/configuration.rb +19 -1
  480. data/lib/spree/core/controller_helpers/store.rb +1 -1
  481. data/lib/spree/core/dependencies.rb +5 -4
  482. data/lib/spree/core/emails/escaped_output.rb +60 -0
  483. data/lib/spree/core/engine.rb +72 -165
  484. data/lib/spree/core/permissions/default_catalog.rb +5 -0
  485. data/lib/spree/core/preferences/invalid_preferences.rb +18 -0
  486. data/lib/spree/core/preferences/json_conversion.rb +186 -0
  487. data/lib/spree/core/preferences/masking.rb +55 -2
  488. data/lib/spree/core/preferences/preferable.rb +343 -103
  489. data/lib/spree/core/preferences/preferable_class_methods.rb +188 -136
  490. data/lib/spree/core/previews/import_preview.rb +10 -0
  491. data/lib/spree/core/ransack_configuration.rb +13 -2
  492. data/lib/spree/core/tax/provider_error.rb +37 -0
  493. data/lib/spree/core/version.rb +1 -1
  494. data/lib/spree/core.rb +91 -373
  495. data/lib/spree/emails/editable_templates.rb +82 -0
  496. data/lib/spree/events/catalog.rb +189 -0
  497. data/lib/spree/events.rb +21 -1
  498. data/lib/spree/hooks.rb +0 -17
  499. data/lib/spree/i18n.rb +32 -15
  500. data/lib/spree/iso_data.rb +7 -0
  501. data/lib/spree/localized_number.rb +6 -0
  502. data/lib/spree/migrations.rb +4 -1
  503. data/lib/spree/money.rb +196 -15
  504. data/lib/spree/reporting/adapters/base.rb +7 -6
  505. data/lib/spree/reporting/adapters/live.rb +6 -6
  506. data/lib/spree/reporting/default_vocabulary.rb +22 -10
  507. data/lib/spree/reporting/hydration.rb +1 -1
  508. data/lib/spree/reporting/query.rb +8 -0
  509. data/lib/spree/reporting/registry.rb +13 -0
  510. data/lib/spree/reporting/schema.rb +10 -10
  511. data/lib/spree/testing_support/editable_email_templates.rb +61 -0
  512. data/lib/spree/testing_support/emails.rb +22 -0
  513. data/lib/spree/testing_support/factories/cart_factory.rb +1 -1
  514. data/lib/spree/testing_support/factories/email_template_factory.rb +28 -0
  515. data/lib/spree/testing_support/factories/order_factory.rb +2 -2
  516. data/lib/spree/testing_support/factories/product_factory.rb +9 -0
  517. data/lib/spree/testing_support/factories/refund_factory.rb +1 -1
  518. data/lib/spree/testing_support/factories/stock_factory.rb +1 -1
  519. data/lib/spree/testing_support/factories/variant_factory.rb +1 -1
  520. data/lib/spree/testing_support/i18n.rb +3 -94
  521. data/lib/spree/testing_support/lifecycle_events.rb +1 -1
  522. data/lib/spree/testing_support/order_walkthrough.rb +1 -1
  523. data/lib/spree/testing_support/preferences.rb +0 -5
  524. data/lib/spree/testing_support/store.rb +9 -1
  525. data/lib/spree/upgrades/5_6_to_6_0/manifest.yml +67 -1
  526. data/lib/spree/uploads.rb +101 -0
  527. data/lib/tasks/categories_and_collections.rake +3 -3
  528. data/lib/tasks/core.rake +6 -4
  529. data/lib/tasks/markets.rake +2 -1
  530. data/lib/tasks/media.rake +3 -3
  531. data/lib/tasks/migrate_users_to_customers.rake +23 -18
  532. data/lib/tasks/money.rake +46 -0
  533. data/lib/tasks/package_types.rake +1 -1
  534. data/lib/tasks/preferences_json.rake +101 -0
  535. data/lib/tasks/seller_sample_data.rake +2 -2
  536. data/lib/tasks/store_settings.rake +13 -6
  537. data/lib/tasks/typed_adjustments_migration.rake +1 -1
  538. data/lib/tasks/uploads.rake +19 -0
  539. data/spec/fixtures/mailer_views/custom_views_probe_mailer/welcome_email.html.erb +4 -0
  540. metadata +219 -46
  541. data/app/jobs/spree/products/touch_categories_job.rb +0 -15
  542. data/app/jobs/spree/products/touch_taxons_job.rb +0 -13
  543. data/app/models/acts_as_taggable_on/tag_decorator.rb +0 -10
  544. data/app/models/concerns/spree/has_image_alt_text.rb +0 -18
  545. data/app/models/spree/base_analytics_event_handler.rb +0 -54
  546. data/app/models/spree/invitations/store.rb +0 -6
  547. data/app/models/spree/preference.rb +0 -14
  548. data/app/models/spree/promotion_handler/page.rb +0 -25
  549. data/app/models/spree/promotion_handler/promotion_duplicator.rb +0 -60
  550. data/app/models/spree/stock/differentiator.rb +0 -45
  551. data/app/presenters/spree/filters/options_presenter.rb +0 -47
  552. data/app/services/spree/carts/empty.rb +0 -42
  553. data/app/services/spree/country_to_timezone.rb +0 -273
  554. data/app/services/spree/payments/create.rb +0 -92
  555. data/app/validators/spree/url_validator.rb +0 -23
  556. data/app/views/active_storage/blobs/_blob.html.erb +0 -14
  557. data/app/views/spree/admin_user_mailer/password_reset_email.html.erb +0 -8
  558. data/app/views/spree/export_mailer/export_done.html.erb +0 -7
  559. data/app/views/spree/import_mailer/import_done.html.erb +0 -12
  560. data/app/views/spree/invitation_mailer/invitation_accepted.html.erb +0 -4
  561. data/app/views/spree/invitation_mailer/invitation_email.html.erb +0 -12
  562. data/app/views/spree/seller_user_mailer/password_reset_email.html.erb +0 -8
  563. data/app/views/spree/shared/_base_mailer_footer.html.erb +0 -19
  564. data/app/views/spree/shared/_base_mailer_header.html.erb +0 -8
  565. data/app/views/spree/shared/_base_mailer_stylesheets.html.erb +0 -399
  566. data/app/views/spree/shared/_mailer_logo.html.erb +0 -41
  567. data/app/views/spree/shared/_purchased_items_styles.html.erb +0 -119
  568. data/app/views/spree/webhook_mailer/endpoint_disabled.html.erb +0 -51
  569. data/app/views/spree/webhook_mailer/endpoint_disabled.text.erb +0 -10
  570. data/app/workflows/spree/fulfillments/purchase_label.rb +0 -40
  571. data/app/workflows/spree/returns/purchase_label.rb +0 -32
  572. data/lib/spree/analytics.rb +0 -11
  573. data/lib/spree/core/preferences/scoped_store.rb +0 -34
  574. data/lib/spree/core/preferences/store.rb +0 -105
  575. data/lib/spree/translation_migrations.rb +0 -52
@@ -0,0 +1,826 @@
1
+ ---
2
+ nl:
3
+ activemodel:
4
+ errors:
5
+ messages:
6
+ blank: mag niet leeg zijn
7
+ activerecord:
8
+ attributes:
9
+ spree/address:
10
+ address1: Adres
11
+ address2: Adres 2
12
+ city: Woonplaats
13
+ company: Bedrijf
14
+ country: Land
15
+ label: Adresnaam
16
+ phone: Telefoon
17
+ state: Provincie
18
+ spree/country:
19
+ iso: ISO
20
+ iso3: ISO3
21
+ iso_name: ISO Naam
22
+ name: Naam
23
+ numcode: ISO Code
24
+ spree/credit_card:
25
+ cc_type: Type
26
+ month: Maand
27
+ name: Naam
28
+ number: Nummer
29
+ verification_value: Veiligheidscode
30
+ year: Jaar
31
+ spree/customer_group:
32
+ description: Omschrijving
33
+ name: Naam
34
+ spree/gift_card:
35
+ amount_used: Gebruikt bedrag
36
+ expires_at: Vervalt op
37
+ spree/import:
38
+ preferred_delimiter: Scheidingsteken
39
+ spree/import_mapping:
40
+ file_column: Bestandskolom
41
+ schema_field: Schemaveld
42
+ spree/import_row:
43
+ row_number: Nummer
44
+ spree/inventory_unit:
45
+ state: Status
46
+ spree/invitation:
47
+ inviter: Uitnodiger
48
+ spree/line_item:
49
+ price: Prijs
50
+ quantity: Aantal
51
+ spree/option_type:
52
+ filterable: Filterbaar
53
+ kind: Soort
54
+ name: Naam
55
+ spree/option_value:
56
+ color_code: Kleurcode
57
+ image: Stalenafbeelding
58
+ spree/order:
59
+ checkout_complete: Bestelling afgerond
60
+ completed_at: Voltooid op
61
+ considered_risky: Risicofactor
62
+ coupon_code: Kortingscode
63
+ created_at: Besteldatum
64
+ email: Klant e-mail
65
+ internal_note: Interne notitie
66
+ ip_address: IP adres
67
+ item_count: Artikelen
68
+ item_total: Product totaal
69
+ number: Nummer
70
+ payment_state: Betaalstatus
71
+ shipment_state: Verzendstatus
72
+ special_instructions: Speciale instructies
73
+ state: Status
74
+ total: Totaal
75
+ spree/order/bill_address:
76
+ address1: Factuuradres
77
+ city: Woonplaats
78
+ phone: Telefoon
79
+ state: Provincie
80
+ spree/order/ship_address:
81
+ address1: Verzendadres
82
+ city: Woonplaats
83
+ phone: Telefoon
84
+ state: Provincie
85
+ spree/payment:
86
+ amount: Bedrag
87
+ number: Nummer
88
+ spree/payment_method:
89
+ name: Naam
90
+ spree/policy:
91
+ body: Inhoud
92
+ owner: Beleid voor
93
+ spree/price_list:
94
+ description: Omschrijving
95
+ ends_at: Eindigt op
96
+ match_policy: Overeenkomstbeleid
97
+ name: Naam
98
+ priority: Prioriteit
99
+ starts_at: Begint op
100
+ status: Status
101
+ spree/price_rule:
102
+ priority: Prioriteit
103
+ type: Type
104
+ spree/product:
105
+ available_on: Beschikbaar op
106
+ cost_currency: Kosten valuta
107
+ cost_price: Kostprijs
108
+ description: Omschrijving
109
+ discontinue_on: Uit assortiment op
110
+ less_than: Minder dan
111
+ make_active_at: Activeren op
112
+ master_price: Prijs
113
+ more_than: Meer dan
114
+ name: Naam
115
+ on_hand: Op voorraad
116
+ tax_category: Belastingscategorie
117
+ spree/promotion:
118
+ advertise: Adverteren
119
+ code: Code
120
+ description: Omschrijving
121
+ event_name: Evenementnaam
122
+ expires_at: Verloopt op
123
+ generate_code: Couponcode genereren
124
+ name: Naam
125
+ path: Pad
126
+ promotion_category: Promotiecategorie
127
+ starts_at: Begint op
128
+ usage_limit: Gebruikslimiet
129
+ spree/promotion_category:
130
+ code: Code
131
+ spree/property:
132
+ name: Naam
133
+ presentation: Presentatie
134
+ spree/role:
135
+ name: Naam
136
+ spree/shipment:
137
+ number: Nummer
138
+ spree/state:
139
+ abbr: Afkorting
140
+ name: Naam
141
+ spree/store:
142
+ address: Adres
143
+ contact_phone: Contacttelefoon
144
+ mail_from_address: Mail From Address
145
+ meta_description: Meta Omschrijving
146
+ meta_keywords: Meta Sleutelwoorden
147
+ name: Site Naam
148
+ preferred_digital_asset_authorized_clicks: Limiet downloadklikken
149
+ preferred_digital_asset_authorized_days: Limiet downloaddagen
150
+ preferred_limit_digital_download_count: Aantal downloads van digitale links beperken
151
+ preferred_limit_digital_download_days: Downloaddagen van digitale links beperken
152
+ seo_robots: SEO Robots
153
+ seo_title: Seo Titel
154
+ storefront_custom_code_body_end: Aangepaste code vóór de sluitende body-tag
155
+ storefront_custom_code_body_start: Aangepaste code na de openende body-tag
156
+ storefront_custom_code_head: Aangepaste code in de pagina-head
157
+ url: Site URL
158
+ spree/store_credit:
159
+ amount_used: Gebruikt bedrag
160
+ spree/tax_category:
161
+ description: Omschrijving
162
+ name: Naam
163
+ spree/tax_rate:
164
+ amount: Bedrag
165
+ included_in_price: Inbegrepen in prijs
166
+ show_rate_in_label: Toon percentage naast naam
167
+ spree/taxon:
168
+ name: Naam
169
+ permalink: Permalink
170
+ position: Positie
171
+ sort_order: Sorteervolgorde
172
+ spree/taxonomy:
173
+ name: Naam
174
+ spree/user:
175
+ avatar: Avatar
176
+ email: E-mail
177
+ password: Wachtwoord
178
+ password_confirmation: Wachtwoord bevestiging
179
+ spree/variant:
180
+ cost_currency: Inkoop valuta
181
+ cost_price: Kostprijs
182
+ depth: Diepte
183
+ height: Hoogte
184
+ price: Prijs
185
+ sku: Sku
186
+ weight: Gewicht
187
+ width: Breedte
188
+ spree/zone:
189
+ description: Omschrijving
190
+ name: Naam
191
+ user:
192
+ current_sign_in: Huidige aanmelding op
193
+ last_sign_in: Laatste aanmelding op
194
+ sign_in_count: Aantal aanmeldingen
195
+ errors:
196
+ messages:
197
+ blank: mag niet leeg zijn
198
+ models:
199
+ spree/allowed_origin:
200
+ attributes:
201
+ origin:
202
+ must_be_origin_only: moet een origin (schema en host) zijn zonder pad, query of fragment
203
+ spree/classification:
204
+ attributes:
205
+ taxon_id:
206
+ already_linked: is reeds gekoppeld aan dit product
207
+ spree/credit_card:
208
+ attributes:
209
+ base:
210
+ card_expired: Kaart is verlopen
211
+ expiry_invalid: Kaart verloopdatum is ongeldig
212
+ spree/gift_card:
213
+ attributes:
214
+ base:
215
+ cannot_destroy_used_gift_card: Een gebruikte cadeaubon kan niet worden verwijderd
216
+ spree/import:
217
+ attributes:
218
+ attachment:
219
+ content_type: heeft een niet-toegestaan inhoudstype
220
+ type:
221
+ inclusion: staat niet in de lijst met toegestane types
222
+ spree/line_item:
223
+ attributes:
224
+ currency:
225
+ must_match_order_currency: moet overeenkomen met de order valuta
226
+ spree/market:
227
+ attributes:
228
+ base:
229
+ cannot_destroy_default_market: De standaardmarkt kan niet worden verwijderd.
230
+ cannot_destroy_last_market: De enige markt kan niet worden verwijderd.
231
+ spree/market_country:
232
+ attributes:
233
+ country:
234
+ already_in_market: is al toegewezen aan een andere markt in deze winkel
235
+ not_in_shipping_zone: valt niet onder een verzendzone. Stel eerst een verzendzone in.
236
+ spree/payment:
237
+ attributes:
238
+ amount:
239
+ greater_than_max_amount: is hoger dan het toegestane maximumbedrag van %{max_amount}
240
+ spree/price_list:
241
+ attributes:
242
+ ends_at:
243
+ must_be_after_starts_at: moet na de begindatum liggen
244
+ spree/product:
245
+ attributes:
246
+ base:
247
+ cannot_destroy_if_attached_to_line_items: Producten die aan geplaatste bestellingen zijn toegevoegd, kunnen niet worden verwijderd. Haal ze in dat geval uit het assortiment.
248
+ discontinue_on:
249
+ invalid_date_range: moet later zijn dan de beschikbaarheidsdatum
250
+ spree/product_publication:
251
+ attributes:
252
+ unpublished_at:
253
+ must_be_after_published_at: moet na de publicatiedatum liggen
254
+ spree/promotion:
255
+ attributes:
256
+ expires_at:
257
+ invalid_date_range: moet later zijn dan de begindatum
258
+ spree/refund:
259
+ attributes:
260
+ amount:
261
+ greater_than_allowed: is groter dan de toegestane hoeveelheid.
262
+ spree/store:
263
+ attributes:
264
+ base:
265
+ cannot_destroy_only_store: De enige winkel kan niet worden verwijderd.
266
+ spree/store_credit:
267
+ attributes:
268
+ amount_authorized:
269
+ exceeds_total_credits: Overschrijdt het totale tegoed.
270
+ amount_used:
271
+ cannot_be_greater_than_amount: Mag niet hoger zijn dan het bedrag.
272
+ greater_than_zero_restrict_delete: is hoger dan nul. Winkeltegoed kan niet worden verwijderd.
273
+ spree/user:
274
+ attributes:
275
+ bill_address_id:
276
+ belongs_to_other_user: behoort tot een andere gebruiker
277
+ deprecated_in_completed_order: verouderd in voltooide bestelling
278
+ ship_address_id:
279
+ belongs_to_other_user: behoort tot een andere gebruiker
280
+ deprecated_in_completed_order: verouderd in voltooide bestelling
281
+ spree/variant:
282
+ attributes:
283
+ base:
284
+ cannot_destroy_if_attached_to_line_items: Varianten die aan geplaatste bestellingen zijn toegevoegd, kunnen niet worden verwijderd. Haal ze in dat geval uit het assortiment.
285
+ spree/webhook_endpoint:
286
+ attributes:
287
+ url:
288
+ internal_address_not_allowed: mag niet verwijzen naar een intern of privénetwerkadres
289
+ models:
290
+ spree/address:
291
+ one: Adres
292
+ other: Adressen
293
+ spree/classification:
294
+ one: Classificatie
295
+ other: Classificaties
296
+ spree/country:
297
+ one: Land
298
+ other: Landen
299
+ spree/credit_card:
300
+ one: Kredietkaart
301
+ other: Kredietkaarten
302
+ spree/customer_group:
303
+ one: Klantgroep
304
+ other: Klantgroepen
305
+ spree/customer_group_user:
306
+ one: Klantgroepgebruiker
307
+ other: Klantgroepgebruikers
308
+ spree/export:
309
+ one: Export
310
+ other: Exports
311
+ spree/integration:
312
+ one: Integratie
313
+ other: Integraties
314
+ spree/inventory_unit:
315
+ one: Voorraadeenheid
316
+ other: Voorraadeenheden
317
+ spree/line_item:
318
+ one: Regel
319
+ other: Regels
320
+ spree/option_type:
321
+ one: Optie Type
322
+ other: Optie Types
323
+ spree/option_value:
324
+ one: Optie Waarde
325
+ other: Optie Waardes
326
+ spree/order:
327
+ one: Bestelling
328
+ other: Bestellingen
329
+ spree/payment:
330
+ one: Betaling
331
+ other: Betalingen
332
+ spree/payment_method:
333
+ one: Betaalmethode
334
+ other: Betaalmethodes
335
+ spree/price:
336
+ one: Prijs
337
+ other: Prijzen
338
+ spree/price_list:
339
+ one: Prijslijst
340
+ other: Prijslijsten
341
+ spree/price_rule:
342
+ one: Prijsregel
343
+ other: Prijsregels
344
+ spree/product:
345
+ one: Product
346
+ other: Producten
347
+ spree/promotion:
348
+ one: Promotie
349
+ other: Promoties
350
+ spree/promotion_category:
351
+ one: Promotion Categorie
352
+ other: Promotion Categorieën
353
+ spree/property:
354
+ one: Eigenschap
355
+ other: Eigenschappen
356
+ spree/refund_reason:
357
+ one: Terugbetaling Reden
358
+ other: Refund Reasons
359
+ spree/role:
360
+ one: Rol
361
+ other: Rollen
362
+ spree/shipment:
363
+ one: Verzending
364
+ other: Verzendingen
365
+ spree/shipping_method:
366
+ one: Verzendmethode
367
+ other: Verzendmethodes
368
+ spree/state:
369
+ one: Provincie
370
+ other: Provincies
371
+ spree/stock_location:
372
+ one: Voorraad locatie
373
+ other: Voorraad Locaties
374
+ spree/stock_movement:
375
+ one: Voorraadverplaatsing
376
+ other: Voorraadverplaatsingen
377
+ spree/stock_transfer:
378
+ one: Voorraadoverdracht
379
+ other: Voorraadoverdrachten
380
+ spree/store:
381
+ one: Winkel
382
+ other: Winkels
383
+ spree/store_credit:
384
+ one: Winkeltegoed
385
+ other: Winkeltegoeden
386
+ spree/tax_category:
387
+ one: Belastingscategorie
388
+ other: Belastingscategorieën
389
+ spree/tax_rate:
390
+ one: Belastingstarief
391
+ other: Belastingstarieven
392
+ spree/taxon:
393
+ one: Taxon
394
+ other: Taxa
395
+ spree/taxonomy:
396
+ one: Taxonomie
397
+ other: Taxonomieën
398
+ spree/user:
399
+ one: Gebruiker
400
+ other: Gebruikers
401
+ spree/variant:
402
+ one: Variant
403
+ other: Varianten
404
+ spree/zone:
405
+ one: Zone
406
+ other: Zones
407
+ errors:
408
+ messages:
409
+ already_confirmed: was reeds bevestigd
410
+ not_found: niet gevonden
411
+ not_locked: was niet vergendeld
412
+ not_saved:
413
+ one: '1 fout voorkwam dat deze %{resource} werd opgeslagen:'
414
+ other: "%{count} fouten voorkwamen dat deze %{resource} werd opgeslagen:"
415
+ number:
416
+ percentage:
417
+ format:
418
+ precision: 1
419
+ spree:
420
+ accept: Accepteer
421
+ accepted: Geaccepteerd
422
+ accepts_email_marketing: Accepteert e-mailmarketing
423
+ account: Account
424
+ active: Actief
425
+ address: Adres
426
+ address1: Adres
427
+ address2: Adres (vervolg)
428
+ adjustment: Aanpassing
429
+ adjustment_labels:
430
+ tax_rates:
431
+ excluding_tax: "%{name}%{amount}"
432
+ including_tax: "%{name}%{amount} (Inbegrepen in prijs)"
433
+ adjustments_deleted: Correcties verwijderd
434
+ admin_user_mailer:
435
+ password_reset_email:
436
+ action: Wachtwoord resetten
437
+ expiry_notice: Deze link om je wachtwoord opnieuw in te stellen verloopt binnenkort. Als je dit niet hebt aangevraagd, hoef je niets te doen.
438
+ greeting: Hallo %{name},
439
+ ignore_notice: Als je geen nieuw wachtwoord hebt aangevraagd, kun je deze e-mail veilig negeren. Je wachtwoord wordt niet gewijzigd.
440
+ instructions: We hebben een verzoek ontvangen om het wachtwoord van je %{store_name}-beheerdersaccount opnieuw in te stellen. Klik op de knop hieronder om een nieuw wachtwoord te kiezen.
441
+ subject: Instructies voor het opnieuw instellen van het wachtwoord
442
+ all: Alle
443
+ amount: Bedrag
444
+ api_key_no_current_key: Geen API-sleutel heeft dit verzoek geauthenticeerd
445
+ api_key_scopes_immutable: kan niet worden gewijzigd nadat de sleutel is aangemaakt; maak een nieuwe sleutel aan met de scopes die je nodig hebt en trek deze in
446
+ approver: Door
447
+ authorized: Geautoriseerd
448
+ availability: beschikbaarheid
449
+ backorderable: Nabestelbaar
450
+ backordered: Nabestelling
451
+ bill_address: Factuuradres
452
+ billing_address: Factuuradres
453
+ calculator: Calculator
454
+ canceled: Geannuleerd
455
+ canceler: Geannueleerd door
456
+ cannot_be_destroyed: Bestelling kan niet worden verwijderd.
457
+ capture: betaling vastleggen
458
+ cart: Winkelwagen
459
+ cart_already_updated: De winkelwagen is al bijgewerkt.
460
+ cart_line_item:
461
+ delivery_unavailable: "%{li_name} kan niet worden bezorgd op het geselecteerde adres"
462
+ discontinued: "%{li_name} is verwijderd omdat het uit het assortiment is gehaald"
463
+ out_of_stock: "%{li_name} is verwijderd omdat het was uitverkocht"
464
+ categories: Categorieën
465
+ category: Categorie
466
+ channel: Verkoopkanaal
467
+ channels: Verkoopkanalen
468
+ checkout: Afrekenen
469
+ checkout_requirements:
470
+ email_required: E-mailadres is verplicht
471
+ line_items_required: Voeg ten minste één artikel toe aan je winkelwagen
472
+ payment_required: Voeg een betaalmethode toe
473
+ ship_address_required: Verzendadres is verplicht
474
+ city: Stad
475
+ color_code: Kleurcode
476
+ company: Bedrijf
477
+ compare_at_amount: Vergelijkbaar bedrag
478
+ compare_at_price: Vergelijkbare prijs
479
+ complete: Voltooid
480
+ confirm: Bevestig
481
+ cost_price: Kostprijs
482
+ count_on_hand: Aantal in voorraad
483
+ country: Land
484
+ coupon_code: Kortingscode
485
+ coupon_code_already_applied: Deze kortingscode is al toegepast op deze bestelling
486
+ coupon_code_applied: De kortingscode is toegepast op je winkelwagen
487
+ coupon_code_better_exists: De voorgaande kortingscode geeft een betere deal
488
+ coupon_code_expired: Kortingscode is vervallen
489
+ coupon_code_max_usage: Kortingscode is te vaak gebruikt
490
+ coupon_code_not_eligible: Kortingscode is niet geldig voor deze bestelling
491
+ coupon_code_not_found: Deze kortingscode bestaat niet. Probeer het nogmaals.
492
+ coupon_code_unknown_error: Deze kortingscode kon niet worden toegepast op deze bestelling.
493
+ coupon_code_used: De couponcode die je hebt ingevoerd is al gebruikt. Probeer het opnieuw.
494
+ created_at: Aangemaakt op
495
+ credit_card: Kredietkaart
496
+ currency: Valuta
497
+ currency_not_supported_by_store: wordt niet ondersteund door deze winkel
498
+ customer: Klant
499
+ customers: Klanten
500
+ default: Standaard
501
+ default_stock_location_name: Winkellocatie
502
+ default_wishlist_name: Verlanglijst
503
+ delivery: Bezorging
504
+ depth: Diepte
505
+ description: Omschrijving
506
+ destination: Bestemming
507
+ destroy: Verwijder
508
+ details: Details
509
+ digital:
510
+ digital_delivery: Digitale levering
511
+ digital_assets: Digitale bestanden
512
+ discontinued: Uit assortiment
513
+ discontinued_variants_present: Sommige artikelen in deze bestelling bevatten producten die niet meer beschikbaar zijn.
514
+ display_delivery_range: Levering binnen %{delivery_range} werkdagen
515
+ draft: Concept
516
+ eligibility_errors:
517
+ messages:
518
+ has_excluded_product: Je winkelwagen bevat procuten waardoor deze kortingscode niet gebruikt kan worden.
519
+ item_total_less_than: Deze kortingscode kan niet gebruikt worden op bestellingen minder dan %{amount}.
520
+ item_total_less_than_or_equal: Deze kortingscode kan niet gebruikt worden op bestellingen minder of gelijk aan %{amount}.
521
+ item_total_more_than: Deze kortingscode kan niet gebruikt worden op bestellingen meer dan %{amount}.
522
+ item_total_more_than_or_equal: Deze kortingscode kan niet gebruikt worden op bestellingen meer dan of gelijk aan %{amount}.
523
+ limit_once_per_user: Deze kortingscode kan per klant slechts eenmalig worden gebruikt.
524
+ missing_product: Deze kortingscode kan niet worden toegepast omdat niet alle benodigde producten in de winkelwagen zitten.
525
+ missing_taxon: Er moet producten worden toegevoegd uit alle opgegeven productcategorieën voordat deze kortingscode gebruikt kan worden.
526
+ no_applicable_products: Er moet een artikel worden toegevoegd voordat deze kortingscode gebruikt kan worden.
527
+ no_matching_channel: Deze couponcode is niet geldig voor dit verkoopkanaal.
528
+ no_matching_market: Deze couponcode is niet geldig in uw markt.
529
+ no_matching_taxons: Er moet een artikel uit een van opgegeven productcategoriën worden toegevoegd voordat deze kortingscode kan worden gebruikt.
530
+ no_user_or_email_specified: Login of e-mail moet worden opgegeven voordat deze kortingscode kan worden gebruikt.
531
+ no_user_specified: Login is noodzakelijk om deze kortingscode te kunenn gebruiken
532
+ not_first_order: Deze kortingscode is alleen toepasbaar op de eerste order
533
+ wrong_country: Deze couponcode is niet geldig in jouw land
534
+ email: E-mail
535
+ error: fout
536
+ error_user_destroy_with_orders: Een gebruiker met bestellingen kan niet worden verwijderd
537
+ error_user_does_not_have_any_store_credits: Gebruiker heeft geen winkeltegoed beschikbaar
538
+ errors:
539
+ messages:
540
+ cannot_delete_default_channel: Het standaardkanaal kan niet worden verwijderd. Maak eerst een ander kanaal het standaardkanaal.
541
+ channel_store_mismatch: moet tot dezelfde winkel behoren
542
+ invalid_order_routing_rule: is geen geregistreerde regel voor bestelroutering
543
+ invalid_order_routing_strategy: is geen geregistreerde strategie voor bestelroutering
544
+ store_association_can_not_be_changed: De winkelkoppeling kan niet worden gewijzigd
545
+ store_is_already_set: Winkel is al ingesteld
546
+ expired: Verlopen
547
+ export_mailer:
548
+ export_done:
549
+ message: Goed gedaan, je export is klaar! Gebruik de onderstaande link om hem te downloaden.
550
+ subject: Je export %{export_number} is succesvol verwerkt!
551
+ greeting: Hoi %{user_name},
552
+ field: Veld
553
+ first_name: Voornaam
554
+ flat_percent: Vast percentage
555
+ flat_rate_per_order: Vast bedrag (per bestelling)
556
+ flexible_rate: Flexibel bedrag
557
+ free: Gratis
558
+ gateway: Gateway
559
+ gateway_error: Gateway fout
560
+ gift_card: Cadeaubon
561
+ gift_card_already_redeemed: De cadeaubon is al ingewisseld.
562
+ gift_card_applied: De cadeaubon is succesvol op je bestelling toegepast!
563
+ gift_card_customer_not_logged_in: Een cadeaubon kan niet als gast worden toegepast.
564
+ gift_card_expired: De cadeaubon is verlopen.
565
+ gift_card_mismatched_currency: De cadeaubon kan niet worden toegepast met de huidige valuta.
566
+ gift_card_mismatched_customer: Deze cadeaubon is gekoppeld aan een andere gebruiker.
567
+ gift_card_not_found: De cadeaubon is niet gevonden.
568
+ gift_card_removed: De cadeaubon is succesvol van je bestelling verwijderd
569
+ gift_card_using_store_credit_error: Je kunt de cadeaubon niet toepassen nadat je het winkeltegoed hebt toegepast.
570
+ height: Hoogte
571
+ i18n:
572
+ this_file_language: Nederlands (NL)
573
+ idempotency_key_reused: Deze Idempotency-Key is al gebruikt met andere verzoekparameters.
574
+ image: Afbeelding
575
+ import: Importeren
576
+ in_stock: Op voorraad
577
+ inactive: Inactief
578
+ incomplete: onvolledig
579
+ internal_note: Interne notitie
580
+ inventory: Voorraad
581
+ invitation_mailer:
582
+ greeting: Hoi %{user_name},
583
+ invitation_accepted:
584
+ body: "%{invitee_name} heeft je uitnodiging om lid te worden van %{resource_name} geaccepteerd"
585
+ subject: "%{invitee_name} heeft je uitnodiging om lid te worden van %{resource_name} geaccepteerd"
586
+ invitation_email:
587
+ body: "%{inviter_name} heeft je uitgenodigd om lid te worden van %{resource_name}"
588
+ link_description: 'Klik op de onderstaande link om deze uitnodiging te accepteren:'
589
+ subject: Uitnodiging om lid te worden van %{resource_name}
590
+ iso: ISO Alpha-2
591
+ item: Product
592
+ items_cannot_be_shipped: Items kunnen niet worden verstuurd
593
+ key: Sleutel
594
+ kind: Soort
595
+ label: Label
596
+ last_name: Achternaam
597
+ line_item: Bestelregel
598
+ line_items: Bestelregels
599
+ link: Link
600
+ locale: Lokalisatie
601
+ locale_not_supported_by_store: wordt niet ondersteund door deze winkel
602
+ manual: Handmatig
603
+ market: Markt
604
+ me_no_current_user: Geen beheerder heeft dit verzoek geauthenticeerd
605
+ media: Media
606
+ meta_description: Meta beschrijving
607
+ meta_keywords: Meta sleutelwoorden
608
+ meta_title: Meta Titel
609
+ metadata: Metadata
610
+ min_quantity: Min. hoeveelheid
611
+ month: Maand
612
+ name: Naam
613
+ new_variant: Nieuwe variant
614
+ no_cc_type: N.v.t.
615
+ no_payment_found: Geen betaling gevonden
616
+ none: Geen
617
+ number: Nummer
618
+ on_hand: Op voorraad
619
+ only_active_products_can_be_added_to_cart: Concept- en gearchiveerde producten kunnen niet aan de winkelwagen worden toegevoegd. Markeer het product eerst als actief.
620
+ open: Open
621
+ option_name: Optienaam
622
+ option_type: Option type
623
+ option_value: Optiewaarde
624
+ options: Opties
625
+ or: of
626
+ order: Bestelling
627
+ order_canceled: Order geannuleerd
628
+ order_routing:
629
+ strategies:
630
+ legacy: Verouderd
631
+ rules: Regels (geordend)
632
+ order_summary: Samenvatting van je bestelling
633
+ orders: Bestellingen
634
+ out_of_stock: Niet op voorraad
635
+ password: Wachtwoord
636
+ path: Pad
637
+ payment: Betaling
638
+ payment_method: Betaalmethode
639
+ payment_method_not_supported: Betaalmethode wordt niet ondersteund
640
+ payment_methods: Betaalmethoden
641
+ payment_processing_failed: De betaling kan niet worden verwerkt, controleer de informatie die je hebt ingevuld
642
+ payment_source: Betaalbron
643
+ pending: Openstaand
644
+ percent: Procent
645
+ percent_per_item: Procent per item
646
+ phone: Telefoon
647
+ price: Prijs
648
+ price_range: Prijsklasse
649
+ price_rules:
650
+ channel_rule:
651
+ description: Pas prijzen toe op basis van het verkoopkanaal
652
+ customer_group_rule:
653
+ description: Prijzen toepassen op specifieke klantgroepen
654
+ price_sack: Prijsvork
655
+ prices: Prijzen
656
+ privacy_policy: Privacybeleid
657
+ processing: Verwerken
658
+ product: Product
659
+ product_translations: Productvertalingen
660
+ products: Producten
661
+ products_cannot_be_shipped: We kunnen %{product_names} op dit moment niet naar je huidige locatie verzenden. Wijzig je verzendadres of verwijder %{product_names} uit je winkelwagen.
662
+ promotion: Actie
663
+ promotion_action_types:
664
+ create_adjustment:
665
+ description: Past de prijs van een order aan gebaseerd op een promotie.
666
+ name: Maak order-aanpassing
667
+ create_item_adjustments:
668
+ description: Korting toepassen op een artikelregel
669
+ name: Maak artikelregel-aanpassing
670
+ create_line_items:
671
+ description: Vult de winkelwagen met de aangegeven hoeveelheid van een artikel
672
+ name: Maak een artikelregel
673
+ free_shipping:
674
+ description: Maakt de verzending gratis
675
+ name: Geen verzendkosten
676
+ promotion_actions: Acties
677
+ promotion_already_used: Je kunt een promotie die al is toegepast niet verwijderen
678
+ promotion_label: Promotie (%{name})
679
+ promotion_rule_types:
680
+ category:
681
+ description: Bestelling bevat producten in opgegeven categorieën
682
+ name: Categorieën
683
+ channel:
684
+ description: Beperken tot bestellingen die via opgegeven kanaal/kanalen zijn geplaatst
685
+ name: Kanaal/kanalen
686
+ country:
687
+ description: Beperk tot bestellingen met een verzendadres in een specifiek land
688
+ name: Land
689
+ currency:
690
+ description: Beperk tot bestellingen in een specifieke valuta
691
+ name: Valuta
692
+ customer:
693
+ description: Alleen beschikbaar voor de opgegeven klanten
694
+ name: Klanten
695
+ customer_group:
696
+ description: Alleen beschikbaar voor klanten in opgegeven klantgroep(en)
697
+ name: Klantgroep(en)
698
+ customer_logged_in:
699
+ description: Alleen beschikbaar voor ingelogde klanten
700
+ name: Alleen ingelogde klanten
701
+ first_order:
702
+ description: Moet de klant zijn eerste bestelling zijn
703
+ name: Eerste bestelling
704
+ item_total:
705
+ description: Bestelbedrag (totaal) komt overeen met de volgende criteria
706
+ name: Bedrag totaal
707
+ market:
708
+ description: Beperken tot bestellingen die in opgegeven markt(en) zijn geplaatst
709
+ name: Markt(en)
710
+ one_use_per_user:
711
+ description: Een per gebruiker
712
+ name: Een per gebruiker
713
+ option_value:
714
+ description: Order bevat product(en) met opgegeven optie waarde(s)
715
+ name: Optie waarde(s)
716
+ product:
717
+ description: Bestelling bevat de volgende producten
718
+ name: Product(en)
719
+ promotions: Acties
720
+ quantity: Hoeveelheid
721
+ query: Query
722
+ reason: Reden
723
+ received: Ontvangen
724
+ reference: Verwijzing
725
+ refund: Terugbetaling
726
+ refund_amount: Terugbetalingsbedrag
727
+ refunds: Terugbetalingen
728
+ registration: Registratie
729
+ rejected: Afgewezen
730
+ remove: Verwijderen
731
+ remove_gift_card_on_completed_order_error: Je kunt de cadeaubon niet verwijderen nadat de bestelling is geplaatst
732
+ resellable: Doorverkoopbaar
733
+ resend: Opnieuw verzenden
734
+ response_code: Antwoordcode
735
+ return: Terugzenden
736
+ returned: Teruggezonden
737
+ returns_policy: Retourbeleid
738
+ row: Rij
739
+ rules: Regels
740
+ say_no: Nee
741
+ say_yes: Ja
742
+ scope: Scope
743
+ selected_quantity_not_available: geselecteerd van %{item} is niet beschikbaar.
744
+ ship: Verzenden
745
+ ship_address: Afleveradres
746
+ shipment: Verzending
747
+ shipped: verzonden
748
+ shipping: Verzenden
749
+ shipping_address: Afleveradres
750
+ shipping_flat_rate_per_item: Vast tarief per verpakt item
751
+ shipping_flat_rate_per_order: Vast tarief
752
+ shipping_flexible_rate: Flexibel tarief per verpakt item
753
+ shipping_policy: Verzendbeleid
754
+ shipping_price_sack: Prijsvork
755
+ shipping_rates:
756
+ display_price:
757
+ excluding_tax: "%{price} (+ %{tax_amount} %{tax_rate_name})"
758
+ including_tax: "%{price} (incl. %{tax_amount} %{tax_rate_name})"
759
+ sku: Sku
760
+ slug: Verkorte URL
761
+ source: Bron
762
+ status: Status
763
+ stock_location: Voorraadlocatie
764
+ stock_locations: Voorraadlocaties
765
+ stock_transfer:
766
+ errors:
767
+ must_have_variant: Je moet ten minste één variant toevoegen
768
+ same_location: kan niet hetzelfde zijn als de bestemmingslocatie
769
+ variants_unavailable: Sommige varianten zijn niet beschikbaar op %{stock}
770
+ store: Winkel
771
+ store_credit:
772
+ allocated: Toegevoegd
773
+ authorized: Geautoriseerd
774
+ captured: Gebruikt
775
+ credit: Krediet
776
+ eligible: In aanmerking komend
777
+ store_credit_name: Winkeltegoed
778
+ store_credit_payment_method:
779
+ currency_mismatch: Valuta van winkeltegoed komt niet overeen met de valuta van de bestelling
780
+ insufficient_authorized_amount: Kan niet meer dan het geautoriseerde bedrag innen
781
+ insufficient_funds: Het resterende winkeltegoed is niet toereikend
782
+ successful_action: Succesvolle winkeltegoedactie %{action}
783
+ unable_to_credit: 'Kan code niet bijschrijven: %{auth_code}'
784
+ unable_to_find: Kon winkeltegoed niet vinden
785
+ unable_to_find_for_action: 'Kon winkeltegoed niet vinden voor autorisatiecode: %{auth_code} voor actie: %{action}'
786
+ unable_to_void: 'Kan code niet annuleren: %{auth_code}'
787
+ success: Succes
788
+ tags: Labels
789
+ tax: Belasting
790
+ tax_category: Belastingcategorie
791
+ terms_of_service: Servicevoorwaarden
792
+ there_are_no_items_for_this_order: Er zijn geen items voor deze bestelling
793
+ tiered_flat_rate: Staffelprijzen
794
+ tiered_percent: Staffelpercentages
795
+ total: Totaal
796
+ track_inventory: Voorraadbeheer
797
+ tracking: Tracking
798
+ tracking_number: Tracking nummer
799
+ tracking_url: Tracking URL
800
+ type: Type
801
+ unable_to_connect_to_gateway: Kon geen verbinding maken met de betaalserver.
802
+ updated_at: Bijgewerkt op
803
+ url: URL
804
+ user: Gebruiker
805
+ validation:
806
+ must_be_int: moet een getal zijn
807
+ value: Waarde
808
+ variant: Variant
809
+ variants: Varianten
810
+ verified: Geverifieerd
811
+ void: Ongeldig
812
+ webhook_mailer:
813
+ endpoint_disabled:
814
+ disabled_at_label: Uitgeschakeld op
815
+ heading: Webhook-endpoint uitgeschakeld
816
+ instructions: Controleer de endpoint-URL en de service en schakel deze opnieuw in via Instellingen → Ontwikkelaars → Webhooks.
817
+ message: Het webhook-endpoint "%{endpoint_name}" is automatisch uitgeschakeld na herhaalde afleveringsfouten.
818
+ name_label: Naam
819
+ reason_label: Reden
820
+ subject: 'Webhook-endpoint uitgeschakeld: %{endpoint_name}'
821
+ url_label: URL
822
+ weight: Gewicht
823
+ weight_unit: Gewichtseenheid
824
+ width: Breedte
825
+ year: Jaar
826
+ zip: Postcode