HomeWiki
HomeWiki
  1. Reusables
  • Back to home
  • 1. Themes
  • Layout
    • New Layout
    • Legacy Layout
  • Components
    • Announcement
    • Banner Carousel
    • Banner With Products Carousel
    • Blog Category List
    • Blog List
    • Brand List
    • Brands Carousel
    • Breadcrumb
    • Call To Action
    • Cart
    • Categories List
    • Change Password
    • Checkout
    • Cookie Manager
    • Filter list
    • Footer
    • Forgot Password
    • Form
    • Hero Carousel
    • Icon Block
    • Invitation
    • Last Visited Products
    • Layout
    • Login
    • Map
    • Nav Bar
    • Offer
    • Product Attachments
    • Product Attributes
    • Product Documentation
    • Product Expected
    • Product Modal
    • Products Block
    • Products Carousel
    • Product Single
    • Profile
    • Quote
    • Register
    • Related Products
    • Search
    • Stores
    • Subscribe Newsletter
    • Text with Image
    • Top Bar
    • Video
  • Reusables
    • Getting Started
  • Assets
    • Getting Started
  • SDK
    • Products
      • _findProductsByCategory
      • _findProductsByIds
      • _findProductsByTitle
      • _findProductsByFilter
      • _findProductsByCriteria
      • _findProductsAndCalculate
      • _findProductsThenCalculate
      • _getProductAttributeSet
      • _setLastVisited
    • Categories
      • _findCategoryTreeById
      • _findCategoriesByIds
      • _findCategoryByAlias
      • _findCategoryTreeByAlias
      • _getCategoryContent
    • Collections
      • _getCollectionContent
      • _findCollectionsByIds
      • _findCollectionsByIdsThenCalculate
    • Brands
      • _getBrandContent
      • _findBrandsByIds
    • Cart
      • _addToCartMulti
      • _addToCart
      • _setCart
      • _clearCart
      • _setCartListener
      • _removeFromCart
      • _calculateCart
    • Checkout
      • _startCheckout
      • _updateCheckout
      • _completeCheckout
    • Shopping Lists
      • _getShoppingLists
      • _updateShoppingList
      • _createShoppingList
      • _deleteShoppingList
      • _getShoppingListByAlias
    • Navigation
      • _getFooterMenu
      • _getHeaderMenu
    • Users
      • _getUserById
    • Utils
      • _calculateCurrency
      • _getCurrencySymbol
      • _getCulture
      • _subscribeToNewsletter
      • _findUnitsByIds
  • Vs Code
    • Getting Started
  1. Reusables

Getting Started

Reusable Components Documentation#

Overview#

Reusable components are modular and self-contained parts of the application that can be used across different views and data components. These components encapsulate specific functionality, allowing them to be reused in various contexts without duplication of code. In this documentation, we'll explore the concept of reusable components with a focus on the Payment reusable component.

Purpose#

Reusable components streamline development by providing a consistent implementation of common features. They help maintain code quality, reduce redundancy, and simplify updates by centralizing functionality. By following best practices, these components can be integrated seamlessly into different parts of the application.

Payment Reusable Component#

The Payment component is a reusable module designed to handle the selection and processing of payment methods during the checkout process. It is built to be flexible and can be integrated into any checkout flow with minimal configuration.

Usage#

The Payment component can be used in any part of the application where payment processing is required. It is instantiated by passing a model (such as the checkout object) and binding it to the component.

Props#

model (Object): The model prop is used to pass data into the component. In the context of the checkout process, this would be the checkout object containing payment methods and related information.

Data#

checkout (Object): This holds the payment information and is initialized with the model prop. It includes the list of available payment methods and the currently selected method.
selectedPaymentMethod (Object): Stores the payment method selected by the user. This includes details like the provider, service amount, and any associated messages.

Template Structure#

Methods#

setPayment(): This method is triggered when the user selects a payment method. It updates the checkout.payment object with the selected payment provider, provider ID, and service amount. This method ensures that the correct payment information is stored and can be passed to subsequent steps.
checkValid(): This method returns a boolean value indicating whether a valid payment method has been selected. It checks if the selectedPaymentMethod.provider exists, which is essential before proceeding to the next step in the checkout process.
calculateCurrency(price, digits = 2): This method converts the price into the appropriate currency format. It defaults to two decimal places but can be adjusted by passing a different value for digits. This method ensures consistent currency formatting throughout the component.

Computed Properties#

Checkout (computed property): This computed property is a getter and setter for the checkout object. It allows for two-way data binding between the parent component and the Payment reusable component. When the checkout object is updated in the Payment component, the parent component is also updated through the @update:checkout event.

Extending the Component#

The Payment component can be extended by creating custom implementations or overriding specific parts of the component. To extend the component, simply use the extends option in Vue.js.
This allows you to build upon the existing functionality while customizing the template or methods as needed.

Example Integration#

Benefits of Reusability#

1.
Consistency: Ensures that the payment processing experience is uniform across different parts of the application.
2.
Maintainability: Centralized logic for payment processing allows for easier updates and maintenance.
3.
Efficiency: Reusable components reduce development time and effort by avoiding code duplication.
4.
Scalability: Easily integrate the component into different workflows and projects.

Conclusion#

Reusable components like the Payment component are powerful tools for building scalable and maintainable applications. By isolating specific functionality into reusable modules, you can ensure consistency and efficiency across your application. The Payment component is a prime example of how you can encapsulate payment logic and UI elements into a reusable unit that can be easily integrated into different checkout flows.
Previous
Video
Next
Getting Started
Built with