export type Channel = string; export type RefundId = string; export type SellerId = string; export type ChannelOrderId = string; export type OrderItemId = unknown; export type RefundReason = 'NO_REASON' | 'DEFECT' | 'WRONG_ITEM' | 'WRONG_SIZE' | 'TOO_LATE' | 'BAD_QUALITY' | 'OTHER'; export type RefundOrderItem = {orderItemId: OrderItemId, quantity: string, reason: RefundReason, refund: string, refundCurrency: string}; export type SendRefund = {channel: Channel, refundId: RefundId, sellerId: SellerId, orderId: ChannelOrderId, orderItem: Array}; export type CreateApiV1SellerOrderRefundArgs = {body: SendRefund}; export type CreateApiV1SellerOrderRefundOptions = {baseUrl?: string | undefined, SellerAuth?: string | undefined, fetch?: typeof fetch | undefined}; /** * Send Refund * * POST /v1/seller/order/refund */ export const createApiV1SellerOrderRefund = async (args: CreateApiV1SellerOrderRefundArgs, options?: CreateApiV1SellerOrderRefundOptions) => { const {baseUrl = "https://scx-sbx.api.jtl-software.com", fetch: fetchFn = fetch, SellerAuth} = options ?? {} const query = new URLSearchParams() const headers = new Headers() headers.set('content-type', "application/json") if (SellerAuth !== undefined) headers.set('authorization', `Bearer ${SellerAuth}`) const url = `${baseUrl.replace(/\/+$/, '')}/v1/seller/order/refund${query.size > 0 ? `?${query}` : ''}` const res = await fetchFn(url, {method: "POST", headers, body: JSON.stringify(args.body)}) if (!res.ok) throw new Error(`Request failed with status ${res.status}`, {cause: {status: res.status, body: await res.text()}}) return undefined };