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
};
}