diff --git a/packages/core/js-sdk/src/store/index.ts b/packages/core/js-sdk/src/store/index.ts index 0d3d09f2a8..7b408824be 100644 --- a/packages/core/js-sdk/src/store/index.ts +++ b/packages/core/js-sdk/src/store/index.ts @@ -380,5 +380,67 @@ export class Store { } ) }, + createAddress: async ( + body: HttpTypes.StoreCreateCustomerAddress, + query?: SelectParams, + headers?: ClientHeaders + ) => { + return this.client.fetch<{ + customer: HttpTypes.StoreCustomer + }>(`/store/customers/me/addresses`, { + method: "POST", + headers, + body, + query, + }) + }, + updateAddress: async ( + addressId: string, + body: HttpTypes.StoreUpdateCustomerAddress, + query?: SelectParams, + headers?: ClientHeaders + ) => { + return this.client.fetch<{ customer: HttpTypes.StoreCustomer }>( + `/store/customers/me/addresses/${addressId}`, + { + method: "POST", + headers, + body, + query, + } + ) + }, + listAddress: async ( + query?: FindParams & HttpTypes.StoreCustomerAddressFilters, + headers?: ClientHeaders + ) => { + return this.client.fetch< + PaginatedResponse<{ addresses: HttpTypes.StoreCustomerAddress[] }> + >(`/store/customers/me/addresses`, { + query, + headers, + }) + }, + retrieveAddress: async ( + addressId: string, + query?: SelectParams, + headers?: ClientHeaders + ) => { + return this.client.fetch<{ address: HttpTypes.StoreCustomerAddress }>( + `/store/customers/me/addresses/${addressId}`, + { + query, + headers, + } + ) + }, + deleteAddress: async (addressId: string, headers?: ClientHeaders) => { + return this.client.fetch< + DeleteResponse<"address", HttpTypes.StoreCustomer> + >(`/store/customers/me/addresses/${addressId}`, { + method: "DELETE", + headers, + }) + }, } } diff --git a/packages/core/types/src/http/customer/admin.ts b/packages/core/types/src/http/customer/admin.ts index 5aecded3f1..68c83bbd2e 100644 --- a/packages/core/types/src/http/customer/admin.ts +++ b/packages/core/types/src/http/customer/admin.ts @@ -1,11 +1,13 @@ import { BaseCreateCustomer, + BaseCreateCustomerAddress, BaseCustomer, BaseCustomerAddress, BaseCustomerAddressFilters, BaseCustomerFilters, BaseCustomerGroup, BaseUpdateCustomer, + BaseUpdateCustomerAddress, CustomerGroupInCustomerFilters, } from "./common" @@ -23,3 +25,6 @@ export interface AdminCustomerAddressFilters export interface AdminCreateCustomer extends BaseCreateCustomer {} export interface AdminUpdateCustomer extends BaseUpdateCustomer {} + +export interface AdminCreateCustomerAddress extends BaseCreateCustomerAddress {} +export interface AdminUpdateCustomerAddress extends BaseUpdateCustomerAddress {} diff --git a/packages/core/types/src/http/customer/common.ts b/packages/core/types/src/http/customer/common.ts index 3c46adac15..e3061f26d4 100644 --- a/packages/core/types/src/http/customer/common.ts +++ b/packages/core/types/src/http/customer/common.ts @@ -95,3 +95,37 @@ export interface BaseUpdateCustomer { phone?: string metadata?: Record } + +export interface BaseCreateCustomerAddress { + first_name?: string + last_name?: string + phone?: string + company?: string + address_1?: string + address_2?: string + city?: string + country_code?: string + province?: string + postal_code?: string + metadata?: Record + address_name?: string + is_default_shipping?: boolean + is_default_billing?: boolean +} + +export interface BaseUpdateCustomerAddress { + first_name?: string + last_name?: string + phone?: string + company?: string + address_1?: string + address_2?: string + city?: string + country_code?: string + province?: string + postal_code?: string + metadata?: Record | null + address_name?: string + is_default_shipping?: boolean + is_default_billing?: boolean +} diff --git a/packages/core/types/src/http/customer/store.ts b/packages/core/types/src/http/customer/store.ts index 5c6e6e465b..27e4f25cf2 100644 --- a/packages/core/types/src/http/customer/store.ts +++ b/packages/core/types/src/http/customer/store.ts @@ -1,10 +1,12 @@ import { BaseCreateCustomer, + BaseCreateCustomerAddress, BaseCustomer, BaseCustomerAddress, BaseCustomerAddressFilters, BaseCustomerFilters, BaseUpdateCustomer, + BaseUpdateCustomerAddress, } from "./common" export interface StoreCustomer extends BaseCustomer {} @@ -15,3 +17,6 @@ export interface StoreCustomerAddressFilters export interface StoreCreateCustomer extends BaseCreateCustomer {} export interface StoreUpdateCustomer extends BaseUpdateCustomer {} + +export interface StoreCreateCustomerAddress extends BaseCreateCustomerAddress {} +export interface StoreUpdateCustomerAddress extends BaseUpdateCustomerAddress {}