@misoapps/shop-sdk
v1.3.2
Published
SDK for Shop Service
Readme
Shop SDK
A simple SDK to interact with the Shop Service API.
Installation
npm install @misoapps/shop-sdkUsage
import { createShopServices, Platform, AppID } from '@misoapps/shop-sdk';
const shopService = createShopServices('http://localhost:5000', 'shopify');
// 1. Install App
// Input:
// {
// shop: string; // e.g., 'example.myshopify.com'
// shopName: string; // e.g., 'Example Shop'
// contactEmail: string; // e.g., '[email protected]'
// themeId?: string; // Optional theme ID
// app: {
// appId: AppID; // e.g., 'llmstxt'
// plan: string; // e.g., 'basic'
// accessToken?: string;// Optional access token
// }
// }
//
// Output:
// {
// message: string; // 'App installed successfully'
// status: string; // 'NEW', 'INSTALLED', or 'REINSTALLED'
// shop: IShop; // The updated shop document
// }
await shopService.installApp({
shop: 'example.myshopify.com',
shopName: 'Example Shop',
contactEmail: '[email protected]',
app: {
appId: 'llmstxt',
plan: 'basic',
accessToken: 'token'
}
});
// 2. Get App
// Input:
// shop: string; // e.g., 'example.myshopify.com'
// appId: AppID; // e.g., 'llmstxt'
//
// Output:
// {
// shop: Omit<IShop, 'apps'>; // Shop details without the apps array
// app: IAppInfo; // The specific app details
// }
const appInfo = await shopService.getApp('example.myshopify.com', 'llmstxt');
// 3. Find Uninstalled Shops
// Input:
// appId: AppID; // e.g., 'llmstxt'
//
// Output:
// {
// shops: IShop[]; // List of shops where the app was uninstalled in the last 10 days
// }
const uninstalled = await shopService.findUninstalledShops('llmstxt');
// 4. Uninstall App
// Input:
// {
// shop: string; // e.g., 'example.myshopify.com'
// appId: AppID; // e.g., 'llmstxt'
// }
//
// Output:
// {
// message: string; // 'App uninstalled successfully'
// shop: IShop; // The updated shop document
// }
await shopService.uninstallApp({
shop: 'example.myshopify.com',
appId: 'llmstxt'
});
// 5. List Shops
// Input:
// params?: {
// page?: number; // Default: 1
// limit?: number; // Default: 10
// platform?: Platform; // Optional filter
// }
//
// Output:
// {
// shops: IShop[]; // List of shops
// total: number; // Total count
// page: number; // Current page
// pages: number; // Total pages
// }
const shops = await shopService.listShops({ page: 1, limit: 10 });
// 6. Get Shop
// Input:
// shop: string; // e.g., 'example.myshopify.com'
//
// Output:
// {
// shop: IShop; // Shop details
// }
const shopDetails = await shopService.getShop('example.myshopify.com');
// 7. Get Shop Apps
// Input:
// shop: string; // e.g., 'example.myshopify.com'
//
// Output:
// {
// apps: IAppInfo[]; // List of apps installed on the shop
// }
const shopApps = await shopService.getShopApps('example.myshopify.com');
// 8. Update App
// Input:
// shop: string; // e.g., 'example.myshopify.com'
// appId: AppID; // e.g., 'llmstxt'
// payload: {
// plan?: string; // Optional plan update
// isReviewed?: boolean;// Optional review status update
// accessToken?: string;// Optional access token update
// }
//
// Output:
// {
// shop: IShop; // Updated shop details
// app: IAppInfo; // Updated app details
// }
const updatedApp = await shopService.updateApp('example.myshopify.com', 'llmstxt', {
plan: 'premium',
isReviewed: true
});
// 9. Get Stats
// Input: None
//
// Output:
// {
// totalShops: number; // Total number of shops
// totalInstalls: number; // Total number of app installations
// activeInstalls: number;// Total number of active app installations
// }
const stats = await shopService.getStats();