Shipping
Shipping address and method APIs used during checkout address selection and delivery assignment.
Module role in sales flow
shipping manages buyer destination data and available delivery channels.
- Use
createAddressfor checkout. Each submitted address must be a new, immutable order snapshot. - Use
listAddressesto prefill the latest address for an authenticated user. - Use
getAddressto prefill a guest address from locally stored credentials. - Use
getMethodsfor a global shipping-method list. - For checkout-ready, invoice-specific rates, use
invoices.getApplicableShippingMethods().
Contract notes
address.mobilePhoneis required for create/update flows.regionIdandcityIdare optional in request contract.getAddress()uses stored address credentials.- Use
createAddress()in checkout. Updating an existing address can change the address shown on previous orders.
Shipping rates expose their own color field, while product variant
attributes shown beside shipping items come from the invoice line item. Those
items use the shared ProductAttribute shape, including value.extra for a
color hex payload and fieldType: 'color' for color fields.
Methods
Create Address
Use: shipping.createAddress(address, options?).
| Field | Type | Required | Description |
|---|---|---|---|
address.firstName | string | Required | Recipient first name. |
address.lastName | string | Required | Recipient last name. |
address.mobilePhone | string | Required | Recipient mobile phone. |
address.regionId | number | Optional | Region ID. |
address.cityId | number | Optional | City ID. |
address.address | string | Required | Street address. |
address.phoneNumber | string | Optional | Secondary phone number. |
address.email | string | Optional | Contact email. |
address.postalCode | string | Optional | Postal code. |
address.latitude | number | Optional | Geo latitude. |
address.longitude | number | Optional | Geo longitude. |
address.showMap | boolean | Optional | Storefront map-visibility flag. |
address.userSetCoordinatesBefore | boolean | Optional | Manual coordinate flag. |
const addressRes = await client.shipping.createAddress({
firstName: 'John',
lastName: 'Doe',
mobilePhone: '09123456789',
regionId: 1,
cityId: 10,
address: 'No. 10, Example St',
postalCode: '1234567890',
});Update Address
Use: shipping.updateAddress(address, options?).
Deprecated for checkout. This changes an existing address. Use
createAddress()to preserve historical order snapshots.
Same input schema as createAddress.
await client.shipping.updateAddress({
firstName: 'John',
lastName: 'Doe',
mobilePhone: '09121234567',
regionId: 1,
cityId: 10,
address: 'Unit 8, Updated Address',
postalCode: '1234567890',
});List Authenticated User Addresses
Use: shipping.listAddresses(options?).
Returns the authenticated user's normalized addresses newest first. This request is not cached, so the first item is safe to use as checkout prefill.
const addressesRes = await client.shipping.listAddresses();
const latestAddress = addressesRes.data?.[0];Get Guest Address
Use: shipping.getAddress(options?).
Returns: SazitoResponse<ShippingAddress>.
const addressRes = await client.shipping.getAddress();Get Methods
Use: shipping.getMethods(options?).
Returns: SazitoResponse<ShippingMethod[]>.
const shippingMethodsRes = await client.shipping.getMethods();Clear Address
Use: shipping.clearAddress().
Clears persisted shipping credentials.
client.shipping.clearAddress();ShippingMethod fields
| Field | Type | Required | Description |
|---|---|---|---|
id | number | Required | Method ID. |
name | string | Required | Method name. |
type | string | Required | Shipping method type code. |
Known errors
| Type | When it happens |
|---|---|
validation | Missing shipping credentials for getAddress. |
Examples
// app/lib/sazito-client.ts
import { createSazitoClient } from '@sazito/client-sdk';
export const sazito = createSazitoClient({
domain: process.env.NEXT_PUBLIC_SAZITO_DOMAIN!,
});// app/[lang]/(home)/page.tsx
'use client';
import { useEffect, useState } from 'react';
import { sazito } from '@/app/lib/sazito-client';
export default function Example() {
const [data, setData] = useState<any>(null);
useEffect(() => {
sazito.shipping.createAddress({
firstName: 'John',
lastName: 'Doe',
mobilePhone: '09123456789',
regionId: 1,
cityId: 10,
address: 'No. 10, Example St',
postalCode: '1234567890',
}).then((res) => setData(res.data ?? null));
}, []);
return <pre>{JSON.stringify(data, null, 2)}</pre>;
}Type Details
The following tables are generated from SDK TypeScript types and include nested object fields.
ShippingAddressInput
Source: src/types/shipping.ts
| Field | Type | Required |
|---|---|---|
firstName | string | Required |
lastName | string | Required |
mobilePhone | string | Optional |
phoneNumber | string | Optional |
email | string | Optional |
regionId | number | Required |
cityId | number | Required |
address | string | Required |
postalCode | string | Optional |
latitude | number | Optional |
longitude | number | Optional |
userSetCoordinatesBefore | boolean | Optional |
ShippingAddress
Source: src/types/invoice.ts
| Field | Type | Required |
|---|---|---|
id | number | Required |
identifier | string | Required |
firstName | string | Required |
lastName | string | Required |
mobilePhone | string | Optional |
phoneNumber | string | Optional |
email | string | Optional |
region | Region | Optional |
city | City | Required |
address | string | Required |
postalCode | string | Optional |
latitude | number | Optional |
longitude | number | Optional |
userSetCoordinatesBefore | boolean | Optional |
ShippingMethod
Source: src/types/shipping.ts
| Field | Type | Required |
|---|---|---|
id | number | Required |
name | string | Required |
type | string | Required |
ShippingRate
Source: src/types/shipping.ts
| Field | Type | Required |
|---|---|---|
id | number | Required |
name | string | Required |
price | number | Required |
description | string | Optional |
icon | string | Optional |
color | string | Optional |
type | string | Optional |