@simo777/ecom-bridge-api-v2
v1.0.3
Published
Fastify plugin for e-commerce bridge supporting Shopify, WooCommerce, Lightfunnels, and YouCan
Maintainers
Readme
@simo/ecom-bridge-api-v2
A Fastify plugin for integrating multiple e-commerce platforms (Shopify, WooCommerce, Lightfunnels, and YouCan) into your application.
Prerequisites
This plugin requires Prisma ORM. You must have Prisma set up in your project and add the following models to your schema.prisma file.
Installation
npm install @simo777/ecom-bridge-api-v2Prisma Setup
Add the following models to your schema.prisma:
model EcomStore {
id String @id @default(cuid())
tenantId String // The ID of the merchant/user in your main application
platform String // e.g., 'woocommerce', 'shopify', 'youcan', 'lightfunnels'
platformStoreId String?
metadata Json? // metadata contains The domain identifying the store etc
authType String // 'oauth2' | 'apikey'
// Flexible storage for platform-specific auth data
// OAuth2: { accessToken, refreshToken, expiresAt, scopes }
// API Key: { consumerKey, consumerSecret }
credentials Json
isActive Boolean @default(true)
createdAt DateTime @default(now())
updatedAt DateTime @updatedAt
ecomWebhooks EcomWebhook[]
@@unique([tenantId, platform, platformStoreId])
}
model EcomWebhook {
id String @id @default(cuid())
storeId String
topic String
platformWebhookId String
createdAt DateTime @default(now())
store EcomStore @relation(fields: [storeId], references: [id])
@@unique([storeId, topic])
}After adding these models, run:
npx prisma migrate dev
npx prisma generateUsage
import Fastify from 'fastify';
import ecomBridge from '@simo/ecom-bridge-api-v2';
import { ShopifyStrategy } from '@simo/ecom-bridge-api-v2/strategies/shopify';
const fastify = Fastify();
// The plugin expects fastify.prisma to be decorated with a PrismaClient instance
// fastify.decorate('prisma', new PrismaClient());
fastify.register(ecomBridge, {
appBaseUrl: 'https://your-api.com',
strategies: [
new ShopifyStrategy(
process.env.SHOPIFY_CLIENT_ID!,
process.env.SHOPIFY_CLIENT_SECRET!,
['orders/create'], // default webhooks to register
['read_products', 'read_orders'] // optional: custom scopes
),
// ... other strategies
],
});Default Scopes
Each strategy comes with a set of default scopes required for basic bridge operations (reading products, orders, etc.). You can override these by passing an array of scopes as the fourth argument to the strategy constructor.
- Shopify:
read_products,read_orders,read_customers,read_inventory,read_locations - WooCommerce:
read_write - Lightfunnels:
funnels,orders,products,customers - YouCan:
read-orders,read-products,read-customers,read-categories,view-store-info,edit-rest-hooks
Features
- Unified OAuth flow for Shopify, Lightfunnels, and YouCan.
- One-click Auth support for WooCommerce.
- Webhook management: Automatic registration and signature verification.
- Unified Data API: Fetch products, orders, customers, and more across all platforms.
License
ISC
