Customizing return URL

Here (opens new window) you can learn more about localePath.

The integration gives you a possibility to build custom value for the return_url (opens new window) property by providing builder function to the PaymentStripeProvider component.





 


 












































<template>
  <!-- Payment.vue -->
  <div>
    <PaymentStripeProvider
      v-if="cart && cart.id"
      :cartId="cart.id"
      :amount="cart.totalPrice.centAmount"
      :currency="cart.totalPrice.currencyCode"
      :buildReturnUrl="buildReturnUrl"
    />
  </div>
</template>

<script>
import PaymentStripeProvider from '@vsf-enterprise/stripe-commercetools/src/components/PaymentStripeProvider';
import { useContext } from '@nuxtjs/composition-api';
import { Order } from '@vsf-enterprise/commercetools-types';

export default {
  components: {
    PaymentStripeProvider
  },
  setup() {
    const {
      cart,
      load,
    } = useCart();
    const {
      app: {
        localePath
      }
    } = useContext();

    const buildReturnUrl = ({ order }: { order: Order }) => {
      return window.location.origin + localePath(`/checkout/custom-thank-you?order=${order.id}`);
      // Or like that:
      // return (window.location.origin + localePath({ name: 'custom-thank-you', query: { order: order.id } }));
    };

    onMounted(async () => {
      await load();
    });

    return {
      // ...
      cart: computed(() => cart.value),
      buildReturnUrl
    }
  }
};
</script>