@open-mercato/checkout 0.6.7 → 0.6.8-develop.6874.1.982d6097d8

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 (75) hide show
  1. package/.turbo/turbo-build.log +1 -1
  2. package/dist/modules/checkout/__integration__/TC-CHKT-042.spec.js +39 -0
  3. package/dist/modules/checkout/__integration__/TC-CHKT-042.spec.js.map +7 -0
  4. package/dist/modules/checkout/__integration__/TC-CHKT-043-concurrent-status-update.spec.js +62 -0
  5. package/dist/modules/checkout/__integration__/TC-CHKT-043-concurrent-status-update.spec.js.map +7 -0
  6. package/dist/modules/checkout/api/pay/[slug]/submit/route.js +43 -28
  7. package/dist/modules/checkout/api/pay/[slug]/submit/route.js.map +2 -2
  8. package/dist/modules/checkout/api/transactions/route.js +23 -6
  9. package/dist/modules/checkout/api/transactions/route.js.map +2 -2
  10. package/dist/modules/checkout/backend/checkout/pay-links/page.js +2 -1
  11. package/dist/modules/checkout/backend/checkout/pay-links/page.js.map +2 -2
  12. package/dist/modules/checkout/backend/checkout/templates/page.js +2 -1
  13. package/dist/modules/checkout/backend/checkout/templates/page.js.map +2 -2
  14. package/dist/modules/checkout/backend/checkout/transactions/page.js +2 -1
  15. package/dist/modules/checkout/backend/checkout/transactions/page.js.map +2 -2
  16. package/dist/modules/checkout/commands/links.js +1 -1
  17. package/dist/modules/checkout/commands/links.js.map +2 -2
  18. package/dist/modules/checkout/commands/transactions.js +45 -13
  19. package/dist/modules/checkout/commands/transactions.js.map +2 -2
  20. package/dist/modules/checkout/components/CustomerFieldsEditor.js +2 -2
  21. package/dist/modules/checkout/components/CustomerFieldsEditor.js.map +2 -2
  22. package/dist/modules/checkout/components/GatewaySettingsFields.js +2 -2
  23. package/dist/modules/checkout/components/GatewaySettingsFields.js.map +2 -2
  24. package/dist/modules/checkout/components/LinkTemplateForm.js +8 -8
  25. package/dist/modules/checkout/components/LinkTemplateForm.js.map +2 -2
  26. package/dist/modules/checkout/components/LogoUploadField.js +1 -1
  27. package/dist/modules/checkout/components/LogoUploadField.js.map +2 -2
  28. package/dist/modules/checkout/components/PayPage.js +39 -38
  29. package/dist/modules/checkout/components/PayPage.js.map +2 -2
  30. package/dist/modules/checkout/extension-points.js +68 -0
  31. package/dist/modules/checkout/extension-points.js.map +7 -0
  32. package/dist/modules/checkout/lib/transaction-status-machine.js +31 -0
  33. package/dist/modules/checkout/lib/transaction-status-machine.js.map +7 -0
  34. package/dist/modules/checkout/search.js +44 -6
  35. package/dist/modules/checkout/search.js.map +2 -2
  36. package/dist/modules/checkout/setup.js +28 -0
  37. package/dist/modules/checkout/setup.js.map +2 -2
  38. package/dist/modules/checkout/subscribers/search-reindex-transaction-created.js +32 -0
  39. package/dist/modules/checkout/subscribers/search-reindex-transaction-created.js.map +7 -0
  40. package/dist/modules/checkout/workers/transaction-expiry.worker.js +9 -2
  41. package/dist/modules/checkout/workers/transaction-expiry.worker.js.map +2 -2
  42. package/package.json +10 -9
  43. package/src/modules/checkout/__integration__/TC-CHKT-042.spec.ts +41 -0
  44. package/src/modules/checkout/__integration__/TC-CHKT-043-concurrent-status-update.spec.ts +112 -0
  45. package/src/modules/checkout/__tests__/search.test.ts +21 -0
  46. package/src/modules/checkout/__tests__/setup-schedules.test.ts +99 -0
  47. package/src/modules/checkout/api/pay/[slug]/submit/__tests__/route.test.ts +77 -0
  48. package/src/modules/checkout/api/pay/[slug]/submit/route.ts +58 -28
  49. package/src/modules/checkout/api/transactions/__tests__/route.test.ts +113 -0
  50. package/src/modules/checkout/api/transactions/route.ts +30 -6
  51. package/src/modules/checkout/backend/checkout/pay-links/page.tsx +2 -1
  52. package/src/modules/checkout/backend/checkout/templates/page.tsx +2 -1
  53. package/src/modules/checkout/backend/checkout/transactions/page.tsx +2 -1
  54. package/src/modules/checkout/commands/__tests__/update-transaction-status.test.ts +363 -0
  55. package/src/modules/checkout/commands/links.ts +5 -1
  56. package/src/modules/checkout/commands/transactions.ts +68 -13
  57. package/src/modules/checkout/components/CustomerFieldsEditor.tsx +2 -2
  58. package/src/modules/checkout/components/GatewaySettingsFields.tsx +2 -2
  59. package/src/modules/checkout/components/LinkTemplateForm.tsx +8 -8
  60. package/src/modules/checkout/components/LogoUploadField.tsx +1 -1
  61. package/src/modules/checkout/components/PayPage.tsx +38 -37
  62. package/src/modules/checkout/extension-points.ts +67 -0
  63. package/src/modules/checkout/i18n/de.json +1 -0
  64. package/src/modules/checkout/i18n/en.json +1 -0
  65. package/src/modules/checkout/i18n/es.json +1 -0
  66. package/src/modules/checkout/i18n/ko.json +463 -0
  67. package/src/modules/checkout/i18n/pl.json +1 -0
  68. package/src/modules/checkout/lib/__tests__/transaction-status-machine.test.ts +152 -0
  69. package/src/modules/checkout/lib/transaction-status-machine.ts +71 -0
  70. package/src/modules/checkout/search.ts +44 -6
  71. package/src/modules/checkout/setup.ts +51 -0
  72. package/src/modules/checkout/subscribers/__tests__/search-reindex-transaction-created.test.ts +29 -0
  73. package/src/modules/checkout/subscribers/search-reindex-transaction-created.ts +39 -0
  74. package/src/modules/checkout/workers/__tests__/transaction-expiry.worker.test.ts +124 -0
  75. package/src/modules/checkout/workers/transaction-expiry.worker.ts +11 -0
@@ -1,9 +1,9 @@
1
1
  "use client"
2
2
 
3
3
  import * as React from 'react'
4
+ import { extensionPoints } from '@open-mercato/checkout/modules/checkout/extension-points'
4
5
  import Link from 'next/link'
5
6
  import { useParams, useRouter, useSearchParams } from 'next/navigation'
6
- import { ComponentReplacementHandles } from '@open-mercato/shared/modules/widgets/component-registry'
7
7
  import { useLocale, useT } from '@open-mercato/shared/lib/i18n/context'
8
8
  import { locales, type Locale } from '@open-mercato/shared/lib/i18n/config'
9
9
  import type { CustomFieldDisplayEntry } from '@open-mercato/shared/lib/crud/custom-fields'
@@ -270,17 +270,17 @@ export type PayPageFooterProps = {
270
270
  themeTokens: PayPageThemeTokens
271
271
  }
272
272
 
273
- const PAGE_HANDLE = ComponentReplacementHandles.page('checkout.pay-page')
274
- const HEADER_HANDLE = ComponentReplacementHandles.section('checkout.pay-page', 'header')
275
- const DESCRIPTION_HANDLE = ComponentReplacementHandles.section('checkout.pay-page', 'description')
276
- const SUMMARY_HANDLE = ComponentReplacementHandles.section('checkout.pay-page', 'summary')
277
- const PRICING_HANDLE = ComponentReplacementHandles.section('checkout.pay-page', 'pricing')
278
- const PAYMENT_HANDLE = ComponentReplacementHandles.section('checkout.pay-page', 'payment')
279
- const CUSTOMER_FORM_HANDLE = ComponentReplacementHandles.section('checkout.pay-page', 'customer-form')
280
- const LEGAL_CONSENT_HANDLE = ComponentReplacementHandles.section('checkout.pay-page', 'legal-consent')
281
- const GATEWAY_FORM_HANDLE = ComponentReplacementHandles.section('checkout.pay-page', 'gateway-form')
282
- const HELP_HANDLE = ComponentReplacementHandles.section('checkout.pay-page', 'help')
283
- const FOOTER_HANDLE = ComponentReplacementHandles.section('checkout.pay-page', 'footer')
273
+ const PAGE_HANDLE = extensionPoints.hosts.payPage.componentId
274
+ const HEADER_HANDLE = extensionPoints.hosts.header.componentId
275
+ const DESCRIPTION_HANDLE = extensionPoints.hosts.description.componentId
276
+ const SUMMARY_HANDLE = extensionPoints.hosts.summary.componentId
277
+ const PRICING_HANDLE = extensionPoints.hosts.pricing.componentId
278
+ const PAYMENT_HANDLE = extensionPoints.hosts.payment.componentId
279
+ const CUSTOMER_FORM_HANDLE = extensionPoints.hosts.customerForm.componentId
280
+ const LEGAL_CONSENT_HANDLE = extensionPoints.hosts.legalConsent.componentId
281
+ const GATEWAY_FORM_HANDLE = extensionPoints.hosts.gatewayForm.componentId
282
+ const HELP_HANDLE = extensionPoints.hosts.help.componentId
283
+ const FOOTER_HANDLE = extensionPoints.hosts.footer.componentId
284
284
 
285
285
  // Checkout supports merchant branding defaults; keep those theme fallbacks isolated from general UI state colors.
286
286
  const CHECKOUT_THEME_FALLBACKS = {
@@ -1222,10 +1222,10 @@ export function PayPagePaymentForm({
1222
1222
  </Alert>
1223
1223
  ) : null}
1224
1224
 
1225
- <InjectionSpot spotId="checkout.pay-page:gateway-widget:before" context={injectionContext} />
1225
+ <InjectionSpot spotId={extensionPoints.hosts.gatewayWidgetBefore.spotId} context={injectionContext} />
1226
1226
  {embeddedPaymentSession && embeddedRenderer ? (
1227
1227
  <>
1228
- <InjectionSpot spotId="checkout.pay-page:gateway-widget:renderer:before" context={injectionContext} />
1228
+ <InjectionSpot spotId={extensionPoints.hosts.gatewayRendererBefore.spotId} context={injectionContext} />
1229
1229
  {React.createElement(embeddedRenderer, {
1230
1230
  providerKey: embeddedPaymentSession.providerKey ?? '',
1231
1231
  transactionId: activeTransactionId ?? '',
@@ -1235,11 +1235,11 @@ export function PayPagePaymentForm({
1235
1235
  onComplete,
1236
1236
  onError,
1237
1237
  })}
1238
- <InjectionSpot spotId="checkout.pay-page:gateway-widget:renderer:after" context={injectionContext} />
1238
+ <InjectionSpot spotId={extensionPoints.hosts.gatewayRendererAfter.spotId} context={injectionContext} />
1239
1239
  </>
1240
1240
  ) : (
1241
1241
  <>
1242
- <InjectionSpot spotId="checkout.pay-page:gateway-widget:actions:before" context={injectionContext} />
1242
+ <InjectionSpot spotId={extensionPoints.hosts.gatewayActionsBefore.spotId} context={injectionContext} />
1243
1243
  <Button
1244
1244
  type="button"
1245
1245
  className="h-12 w-full rounded-xl text-base"
@@ -1256,10 +1256,10 @@ export function PayPagePaymentForm({
1256
1256
  : t('checkout.payPage.actions.payNow', 'Pay now')}
1257
1257
  </span>
1258
1258
  </Button>
1259
- <InjectionSpot spotId="checkout.pay-page:gateway-widget:actions:after" context={injectionContext} />
1259
+ <InjectionSpot spotId={extensionPoints.hosts.gatewayActionsAfter.spotId} context={injectionContext} />
1260
1260
  </>
1261
1261
  )}
1262
- <InjectionSpot spotId="checkout.pay-page:gateway-widget:after" context={injectionContext} />
1262
+ <InjectionSpot spotId={extensionPoints.hosts.gatewayWidgetAfter.spotId} context={injectionContext} />
1263
1263
 
1264
1264
  {paymentSession ? (
1265
1265
  <Button
@@ -1369,6 +1369,7 @@ export function PayPageFooter({ payload, themeTokens }: PayPageFooterProps) {
1369
1369
  pl: t('common.languages.polish', 'Polski'),
1370
1370
  es: t('common.languages.spanish', 'Español'),
1371
1371
  de: t('common.languages.german', 'Deutsch'),
1372
+ ko: t('common.languages.korean', '한국어'),
1372
1373
  }), [t])
1373
1374
 
1374
1375
  const setLocale = React.useCallback(async (nextLocale: Locale) => {
@@ -2144,11 +2145,11 @@ export function PayPage({
2144
2145
 
2145
2146
  const leftColumn = (
2146
2147
  <div className="space-y-6">
2147
- <InjectionSpot spotId="checkout.pay-page:header:before" context={injectionContext} />
2148
+ <InjectionSpot spotId={extensionPoints.hosts.headerBefore.spotId} context={injectionContext} />
2148
2149
  <div data-component-handle={HEADER_HANDLE}>
2149
2150
  <HeaderComponent payload={payload} preview={isPreview} themeTokens={themeTokens} />
2150
2151
  </div>
2151
- <InjectionSpot spotId="checkout.pay-page:header:after" context={injectionContext} />
2152
+ <InjectionSpot spotId={extensionPoints.hosts.headerAfter.spotId} context={injectionContext} />
2152
2153
 
2153
2154
  {(payload.description || publicCustomFields.length > 0) ? (
2154
2155
  <>
@@ -2159,11 +2160,11 @@ export function PayPage({
2159
2160
  themeTokens={themeTokens}
2160
2161
  />
2161
2162
  </div>
2162
- <InjectionSpot spotId="checkout.pay-page:description:after" context={injectionContext} />
2163
+ <InjectionSpot spotId={extensionPoints.hosts.descriptionAfter.spotId} context={injectionContext} />
2163
2164
  </>
2164
2165
  ) : null}
2165
2166
 
2166
- <InjectionSpot spotId="checkout.pay-page:customer-fields:before" context={injectionContext} />
2167
+ <InjectionSpot spotId={extensionPoints.hosts.customerFieldsBefore.spotId} context={injectionContext} />
2167
2168
  {shouldCollectCustomerDetails ? (
2168
2169
  <div data-component-handle={CUSTOMER_FORM_HANDLE}>
2169
2170
  <CustomerFormComponent
@@ -2177,13 +2178,13 @@ export function PayPage({
2177
2178
  />
2178
2179
  </div>
2179
2180
  ) : null}
2180
- <InjectionSpot spotId="checkout.pay-page:customer-fields:after" context={injectionContext} />
2181
+ <InjectionSpot spotId={extensionPoints.hosts.customerFieldsAfter.spotId} context={injectionContext} />
2181
2182
  </div>
2182
2183
  )
2183
2184
 
2184
2185
  const paymentFlow = (
2185
2186
  <>
2186
- <InjectionSpot spotId="checkout.pay-page:pricing:before" context={injectionContext} />
2187
+ <InjectionSpot spotId={extensionPoints.hosts.pricingBefore.spotId} context={injectionContext} />
2187
2188
  <div data-component-handle={PRICING_HANDLE}>
2188
2189
  <PricingComponent
2189
2190
  payload={payload}
@@ -2215,9 +2216,9 @@ export function PayPage({
2215
2216
  themeTokens={themeTokens}
2216
2217
  />
2217
2218
  </div>
2218
- <InjectionSpot spotId="checkout.pay-page:pricing:after" context={injectionContext} />
2219
+ <InjectionSpot spotId={extensionPoints.hosts.pricingAfter.spotId} context={injectionContext} />
2219
2220
 
2220
- <InjectionSpot spotId="checkout.pay-page:summary:before" context={injectionContext} />
2221
+ <InjectionSpot spotId={extensionPoints.hosts.summaryBefore.spotId} context={injectionContext} />
2221
2222
  <div data-component-handle={SUMMARY_HANDLE}>
2222
2223
  <SummaryComponent
2223
2224
  payload={payload}
@@ -2228,9 +2229,9 @@ export function PayPage({
2228
2229
  themeTokens={themeTokens}
2229
2230
  />
2230
2231
  </div>
2231
- <InjectionSpot spotId="checkout.pay-page:summary:after" context={injectionContext} />
2232
+ <InjectionSpot spotId={extensionPoints.hosts.summaryAfter.spotId} context={injectionContext} />
2232
2233
 
2233
- <InjectionSpot spotId="checkout.pay-page:legal-consent:before" context={injectionContext} />
2234
+ <InjectionSpot spotId={extensionPoints.hosts.legalConsentBefore.spotId} context={injectionContext} />
2234
2235
  <div data-component-handle={LEGAL_CONSENT_HANDLE}>
2235
2236
  <LegalConsentComponent
2236
2237
  payload={payload}
@@ -2242,9 +2243,9 @@ export function PayPage({
2242
2243
  themeTokens={themeTokens}
2243
2244
  />
2244
2245
  </div>
2245
- <InjectionSpot spotId="checkout.pay-page:legal-consent:after" context={injectionContext} />
2246
+ <InjectionSpot spotId={extensionPoints.hosts.legalConsentAfter.spotId} context={injectionContext} />
2246
2247
 
2247
- <InjectionSpot spotId="checkout.pay-page:submit:before" context={injectionContext} />
2248
+ <InjectionSpot spotId={extensionPoints.hosts.submitBefore.spotId} context={injectionContext} />
2248
2249
  <div data-component-handle={GATEWAY_FORM_HANDLE}>
2249
2250
  <PaymentFormComponent
2250
2251
  payload={payload}
@@ -2272,35 +2273,35 @@ export function PayPage({
2272
2273
  themeTokens={themeTokens}
2273
2274
  />
2274
2275
  </div>
2275
- <InjectionSpot spotId="checkout.pay-page:submit:after" context={injectionContext} />
2276
+ <InjectionSpot spotId={extensionPoints.hosts.submitAfter.spotId} context={injectionContext} />
2276
2277
 
2277
- <InjectionSpot spotId="checkout.pay-page:help:before" context={injectionContext} />
2278
+ <InjectionSpot spotId={extensionPoints.hosts.helpBefore.spotId} context={injectionContext} />
2278
2279
  <div data-component-handle={HELP_HANDLE}>
2279
2280
  <HelpComponent payload={payload} preview={isPreview} themeTokens={themeTokens} />
2280
2281
  </div>
2281
- <InjectionSpot spotId="checkout.pay-page:help:after" context={injectionContext} />
2282
+ <InjectionSpot spotId={extensionPoints.hosts.helpAfter.spotId} context={injectionContext} />
2282
2283
  </>
2283
2284
  )
2284
2285
 
2285
2286
  const rightColumn = (
2286
2287
  <>
2287
- <InjectionSpot spotId="checkout.pay-page:payment:before" context={injectionContext} />
2288
+ <InjectionSpot spotId={extensionPoints.hosts.paymentBefore.spotId} context={injectionContext} />
2288
2289
  <div data-component-handle={PAYMENT_HANDLE}>
2289
2290
  <PaymentSectionComponent payload={payload} preview={isPreview} themeTokens={themeTokens}>
2290
2291
  {paymentFlow}
2291
2292
  </PaymentSectionComponent>
2292
2293
  </div>
2293
- <InjectionSpot spotId="checkout.pay-page:payment:after" context={injectionContext} />
2294
+ <InjectionSpot spotId={extensionPoints.hosts.paymentAfter.spotId} context={injectionContext} />
2294
2295
  </>
2295
2296
  )
2296
2297
 
2297
2298
  const footer = (
2298
2299
  <>
2299
- <InjectionSpot spotId="checkout.pay-page:footer:before" context={injectionContext} />
2300
+ <InjectionSpot spotId={extensionPoints.hosts.footerBefore.spotId} context={injectionContext} />
2300
2301
  <div data-component-handle={FOOTER_HANDLE}>
2301
2302
  <FooterComponent payload={payload} themeTokens={themeTokens} />
2302
2303
  </div>
2303
- <InjectionSpot spotId="checkout.pay-page:footer:after" context={injectionContext} />
2304
+ <InjectionSpot spotId={extensionPoints.hosts.footerAfter.spotId} context={injectionContext} />
2304
2305
  </>
2305
2306
  )
2306
2307
 
@@ -0,0 +1,67 @@
1
+ import {
2
+ componentExtensionHost,
3
+ dataTableExtensionHost,
4
+ defineModuleExtensionPoints,
5
+ injectionExtensionHost,
6
+ } from '@open-mercato/shared/modules/widgets/extension-points'
7
+
8
+ const payPageSpot = (spotId: string) => injectionExtensionHost({
9
+ family: 'detail',
10
+ spotId,
11
+ supported: ['render-widget'],
12
+ contextContract: 'checkout.pay-page.v1',
13
+ source: 'components/PayPage.tsx',
14
+ })
15
+
16
+ const payPageComponent = (componentId: string) => componentExtensionHost({
17
+ componentId,
18
+ propsContract: 'checkout.pay-page.v1',
19
+ source: 'components/PayPage.tsx',
20
+ })
21
+
22
+ export const extensionPoints = defineModuleExtensionPoints({
23
+ moduleId: 'checkout',
24
+ hosts: {
25
+ linksTable: dataTableExtensionHost({ tableId: 'checkout-links', source: 'backend/checkout/pay-links/page.tsx' }),
26
+ templatesTable: dataTableExtensionHost({ tableId: 'checkout-templates', source: 'backend/checkout/templates/page.tsx' }),
27
+ transactionsTable: dataTableExtensionHost({ tableId: 'checkout-transactions', source: 'backend/checkout/transactions/page.tsx' }),
28
+ gatewayWidgetBefore: payPageSpot('checkout.pay-page:gateway-widget:before'),
29
+ gatewayRendererBefore: payPageSpot('checkout.pay-page:gateway-widget:renderer:before'),
30
+ gatewayRendererAfter: payPageSpot('checkout.pay-page:gateway-widget:renderer:after'),
31
+ gatewayActionsBefore: payPageSpot('checkout.pay-page:gateway-widget:actions:before'),
32
+ gatewayActionsAfter: payPageSpot('checkout.pay-page:gateway-widget:actions:after'),
33
+ gatewayWidgetAfter: payPageSpot('checkout.pay-page:gateway-widget:after'),
34
+ headerBefore: payPageSpot('checkout.pay-page:header:before'),
35
+ headerAfter: payPageSpot('checkout.pay-page:header:after'),
36
+ descriptionAfter: payPageSpot('checkout.pay-page:description:after'),
37
+ customerFieldsBefore: payPageSpot('checkout.pay-page:customer-fields:before'),
38
+ customerFieldsAfter: payPageSpot('checkout.pay-page:customer-fields:after'),
39
+ pricingBefore: payPageSpot('checkout.pay-page:pricing:before'),
40
+ pricingAfter: payPageSpot('checkout.pay-page:pricing:after'),
41
+ summaryBefore: payPageSpot('checkout.pay-page:summary:before'),
42
+ summaryAfter: payPageSpot('checkout.pay-page:summary:after'),
43
+ legalConsentBefore: payPageSpot('checkout.pay-page:legal-consent:before'),
44
+ legalConsentAfter: payPageSpot('checkout.pay-page:legal-consent:after'),
45
+ submitBefore: payPageSpot('checkout.pay-page:submit:before'),
46
+ submitAfter: payPageSpot('checkout.pay-page:submit:after'),
47
+ helpBefore: payPageSpot('checkout.pay-page:help:before'),
48
+ helpAfter: payPageSpot('checkout.pay-page:help:after'),
49
+ paymentBefore: payPageSpot('checkout.pay-page:payment:before'),
50
+ paymentAfter: payPageSpot('checkout.pay-page:payment:after'),
51
+ footerBefore: payPageSpot('checkout.pay-page:footer:before'),
52
+ footerAfter: payPageSpot('checkout.pay-page:footer:after'),
53
+ payPage: payPageComponent('page:checkout.pay-page'),
54
+ header: payPageComponent('section:checkout.pay-page.header'),
55
+ description: payPageComponent('section:checkout.pay-page.description'),
56
+ summary: payPageComponent('section:checkout.pay-page.summary'),
57
+ pricing: payPageComponent('section:checkout.pay-page.pricing'),
58
+ payment: payPageComponent('section:checkout.pay-page.payment'),
59
+ customerForm: payPageComponent('section:checkout.pay-page.customer-form'),
60
+ legalConsent: payPageComponent('section:checkout.pay-page.legal-consent'),
61
+ gatewayForm: payPageComponent('section:checkout.pay-page.gateway-form'),
62
+ help: payPageComponent('section:checkout.pay-page.help'),
63
+ footer: payPageComponent('section:checkout.pay-page.footer'),
64
+ },
65
+ })
66
+
67
+ export default extensionPoints
@@ -380,6 +380,7 @@
380
380
  "checkout.payPage.validation.priceSelectionRequired": "Bitte eine Zahlungsoption auswaehlen, um fortzufahren.",
381
381
  "checkout.payPage.validation.requiredField": "Bitte {field} ausfuellen.",
382
382
  "checkout.payPage.validation.thisField": "dieses Feld",
383
+ "checkout.search.subtitle.linkTemplate": "Link-Vorlage",
383
384
  "checkout.statusPage.backToPayment": "Zuruck zur Zahlungsseite",
384
385
  "checkout.statusPage.cancel.cancelled": "Zahlung abgebrochen",
385
386
  "checkout.statusPage.cancel.failed": "Zahlung fehlgeschlagen",
@@ -380,6 +380,7 @@
380
380
  "checkout.payPage.validation.priceSelectionRequired": "Choose a payment option to continue.",
381
381
  "checkout.payPage.validation.requiredField": "Enter {field}.",
382
382
  "checkout.payPage.validation.thisField": "this field",
383
+ "checkout.search.subtitle.linkTemplate": "Link Template",
383
384
  "checkout.statusPage.backToPayment": "Back to payment page",
384
385
  "checkout.statusPage.cancel.cancelled": "Payment cancelled",
385
386
  "checkout.statusPage.cancel.failed": "Payment failed",
@@ -380,6 +380,7 @@
380
380
  "checkout.payPage.validation.priceSelectionRequired": "Elige una opcion de pago para continuar.",
381
381
  "checkout.payPage.validation.requiredField": "Completa {field}.",
382
382
  "checkout.payPage.validation.thisField": "este campo",
383
+ "checkout.search.subtitle.linkTemplate": "Plantilla de enlace",
383
384
  "checkout.statusPage.backToPayment": "Volver a la pagina de pago",
384
385
  "checkout.statusPage.cancel.cancelled": "Pago cancelado",
385
386
  "checkout.statusPage.cancel.failed": "Pago fallido",