useShipping composable

useShipping composable allows loading the shipping information for the current cart and saving (selecting) other shipping information for the same cart.

API

useShipping composable returns the following properties:

  • load - function that loads the shipping information for current cart.
  • save - function that saves new shipping information for current cart.
  • error - ref that contains an errors from the composable methods.
  • loading - ref that contains information whether any of the composable methods is loading.

Interfaces

/**
 * Almost every method is extending this type
 */
type ComposableFunctionArgs<T> = T & {
  customQuery?: CustomQuery;
  customHeaders?: CustomHeaders;
};

interface UseShippingErrors {
  load: Error | null;
  save: Error | null;
}

type UseShippingLoadParams = ComposableFunctionArgs<{}>;

type UseShippingSaveParams = ComposableFunctionArgs<{
  shippingDetails: any;
}>;

interface UseShippingInterface {
  error: Readonly<Ref<UseShippingErrors>>;
  loading: Readonly<Ref<boolean>>;
  load(params?: UseShippingLoadParams): Promise<ShippingCartAddress | null>
  save(params: UseShippingSaveParams): Promise<ShippingCartAddress | null>;
}

shippingGetters

shippingGetters is a set of helper functions that can be used to get data from the user object. They receive user object as a parameter and return the data from it.

  • getAddresses - returns shipping addresses.
  • getDefault - returns default shipping address.
  • getTotal - returns total shipping addresses count.
  • getPostCode - returns shipping address post code.
  • getStreetName - returns shipping address street name.
  • getApartmentNumber - returns shipping address apartment number.
  • getCity - returns shipping address city.
  • getFirstName - returns shipping address first name.
  • getLastName - returns shipping address last name.
  • getCountry - returns shipping address country.
  • getPhone - returns shipping address phone number.
  • getEmail - returns shipping address email address.
  • getProvince - returns shipping address province.
  • getCompanyName - returns shipping address company name.
  • getId - returns shipping address id.
  • isDefault - returns shipping address default status.

shippingGetters usage

import shippingGetters from '~/modules/catalog/product/getters/shippingGetters';

const postCode = shippingGetters.getPostCode(address);
const shippingEmail = shippingGetters.getEmail(address);
const companyName = shippingGetters.getCompanyName(address);

Example

Fetch shipping details on mount and create a new shipping address handler:

import useShipping from '~/composables';

setup() {
  const { load, save } = useShipping();

  const handleAddressSubmit = async (shippingDetails) => {
    await save({ shippingDetails });
  };

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

  return {
    handleAddressSubmit
  };
}