Skip to main content
Glama
abandoned-cart.ts1.54 kB
import { createTrigger, TriggerStrategy } from '@activepieces/pieces-framework'; import { bigcommerceAuth } from '../common/auth'; import { bigCommerceApiService } from '../common/requests'; const TRIGGER_NAME = 'abandoned cart'; const CACHE_KEY = `${TRIGGER_NAME}-trigger-store-key`; const TRIGGER_SCOPE = 'store/cart/abandoned'; export const abandonedCart = createTrigger({ auth: bigcommerceAuth, name: 'abandonedCart', displayName: 'Abandoned Cart', description: 'Triggers when a cart is abandoned', props: {}, sampleData:{ producer: 'stores/dxqdddcaklwsso', hash: '3610addd127e330084ddddd7ddd09b78abfd1a85', created_at: 1761809622, store_id: '1003425529', scope: 'store/cart/abandoned', data: { type: 'cart', id: 'ss-598f-4c95-813b-0ess950562770d', }, }, type: TriggerStrategy.WEBHOOK, async onEnable(context) { const webhook = await bigCommerceApiService.createWebhook({ auth: context.auth, payload: { scope: TRIGGER_SCOPE, destination: context.webhookUrl, is_active: true, }, }); await context.store.put(CACHE_KEY, webhook.data.id); }, async onDisable(context) { const webhookId = await context.store.get(CACHE_KEY) as string; if (webhookId) { await bigCommerceApiService.deleteWebhook({ auth: context.auth, webhookId, }).then(async () => { await context.store.delete(CACHE_KEY) }) } }, async run(context) { return [context.payload.body]; }, });

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/activepieces/activepieces'

If you have feedback or need assistance with the MCP directory API, please join our Discord server