From fdf166ff76c6b51e14dca514779353bdaad8a820 Mon Sep 17 00:00:00 2001 From: jmcollin Date: Mon, 13 Jan 2025 15:44:15 +0100 Subject: [PATCH 1/3] feat: add payment method standalone --- .../ps_billing_payment_method-pane.png | Bin 0 -> 4112 bytes .../3-payment-method-pane/README.md | 165 ++++++++++++++++++ 2 files changed, 165 insertions(+) create mode 100644 docs/src/.vuepress/public/assets/images/billing/ps_billing_payment_method-pane.png create mode 100644 docs/src/5-prestashop-billing/100-hidden/3-payment-method-pane/README.md diff --git a/docs/src/.vuepress/public/assets/images/billing/ps_billing_payment_method-pane.png b/docs/src/.vuepress/public/assets/images/billing/ps_billing_payment_method-pane.png new file mode 100644 index 0000000000000000000000000000000000000000..d420a78755b80762971a7354b5fbb718bd14bdc4 GIT binary patch literal 4112 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 + +# OR add it to your project dependencies +npm add @prestashopcorp/billing-cdc +``` + +`@prestashopcorp/billing-cdc` provides the component `UserPaymentMethodManagementComponent` and `ModalContainerComponent`. Depending on your project setup, the way you will use this component will change. + +### Build the context + +We provide a PHP lib which create the billingContext for you, but if you want to display the checkout outside of a PrestaShop shop, you need to build it manually. Here is an example of the context. Please find more information about the context [in PrestaShop Billing CDC page](http://localhost:8080/5-prestashop-billing/6-references/3-billing-cdc/#context). + +:::tip Note +The `contextType` set to shop means that you want to attach the subscription to a shop. +::: + + +```javascript +const billingContext = { + contextType: 'user', + contextVersion: 2, + billingEnv: 'production', // could be 'preprod' depending on your authentication configuration + isSandbox: true, + accessToken: 't0K3N', // the authentication token of your user, it should contain the scope "subscription.write" + i18n: { + isoCode: 'en', // two-letter format + }, + organization: { + uuid: '', + email: 'john.doe@prestashop.com' + }, +} +``` + +#### Vue 3 + +You need to instantiate the component in the JS part, then use it in your Vue template. + +::: warning +[Vite](https://vitejs.dev/) user can get this error `Uncaught TypeError: Expected string or element selector to be passed`. + +In this case an alias should be added in vite.config.js: `defineViteConfig({ resolve: { alias: { vue: "vue/dist/vue.esm-bundler.js" } } })`. +::: + +```html + + + +``` + +#### Vanilla JS + +You need to instantiate the component in the JS part, then attach the component to a div with the method `render(selectorCss: string)`. + +```html + +
+
+ + +``` From 01a5cd0eb588cb12d2bd18306953cdfe4716449f Mon Sep 17 00:00:00 2001 From: jmcollin Date: Tue, 14 Jan 2025 11:08:29 +0100 Subject: [PATCH 2/3] fix: rename page --- .../{3-payment-method-pane => 3-payment-method}/README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) rename docs/src/5-prestashop-billing/100-hidden/{3-payment-method-pane => 3-payment-method}/README.md (99%) diff --git a/docs/src/5-prestashop-billing/100-hidden/3-payment-method-pane/README.md b/docs/src/5-prestashop-billing/100-hidden/3-payment-method/README.md similarity index 99% rename from docs/src/5-prestashop-billing/100-hidden/3-payment-method-pane/README.md rename to docs/src/5-prestashop-billing/100-hidden/3-payment-method/README.md index ebb7a16..c124232 100644 --- a/docs/src/5-prestashop-billing/100-hidden/3-payment-method-pane/README.md +++ b/docs/src/5-prestashop-billing/100-hidden/3-payment-method/README.md @@ -4,7 +4,7 @@ title: Payment Method [[toc]] -# Address +# Payment Method ## Use case From 4c342c2508b01976c0ed172a7e5eb0119a768322 Mon Sep 17 00:00:00 2001 From: jmcollin Date: Fri, 17 Jan 2025 15:23:58 +0100 Subject: [PATCH 3/3] fix: doc --- .../100-hidden/3-payment-method/README.md | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/docs/src/5-prestashop-billing/100-hidden/3-payment-method/README.md b/docs/src/5-prestashop-billing/100-hidden/3-payment-method/README.md index c124232..997d238 100644 --- a/docs/src/5-prestashop-billing/100-hidden/3-payment-method/README.md +++ b/docs/src/5-prestashop-billing/100-hidden/3-payment-method/README.md @@ -45,7 +45,7 @@ const billingContext = { contextVersion: 2, billingEnv: 'production', // could be 'preprod' depending on your authentication configuration isSandbox: true, - accessToken: 't0K3N', // the authentication token of your user, it should contain the scope "subscription.write" + accessToken: 't0K3N', i18n: { isoCode: 'en', // two-letter format }, @@ -68,12 +68,13 @@ In this case an alias should be added in vite.config.js: `defineViteConfig({ res ```html