Edits history of script submission #8909 for ' Create Multiple Purchases (convertkit)'

  • nativets
    One script reply has been approved by the moderators
    Ap­pro­ved
    type Convertkit = {
    	apiSecret: string
    }
    
    export async function main(
    	resource: Convertkit,
    	payload: {
    		transactionId: string
    		emailAddress: string
    		firstName?: string
    		currency: string
    		transactionTime: string
    		subtotal: number
    		tax: number
    		shipping: number
    		discount: number
    		total: number
    		status: string
    		products: {
    			pid: number
    			lid: number
    			name: string
    			sku: string
    			unitPrice: number
    			quantity: number
    		}[]
    	}
    ) {
    	const endpoint = `https://api.convertkit.com/v3/purchases`
    
    	const body = {
    		api_secret: resource.apiSecret,
    		purchase: {
    			transaction_id: payload.transactionId,
    			email_address: payload.emailAddress,
    			first_name: payload.firstName,
    			currency: payload.currency,
    			transaction_time: payload.transactionTime,
    			subtotal: payload.subtotal,
    			tax: payload.tax,
    			shipping: payload.shipping,
    			discount: payload.discount,
    			total: payload.total,
    			status: payload.status,
    			products: payload.products.map((product) => ({
    				pid: product.pid,
    				lid: product.lid,
    				name: product.name,
    				sku: product.sku,
    				unit_price: product.unitPrice,
    				quantity: product.quantity
    			}))
    		}
    	}
    
    	const response = await fetch(endpoint, {
    		method: 'POST',
    		headers: {
    			'Content-Type': 'application/json'
    		},
    		body: JSON.stringify(body)
    	})
    
    	if (!response.ok) {
    		const errorData = await response.json()
    		console.error('Error response:', errorData)
    		throw new Error(`HTTP error! status: ${response.status}`)
    	}
    
    	const data = await response.json()
    	return data
    }
    

    Submitted by hugo697 637 days ago