Skip to content

Built for people who want to own their automations. Join the waitlist for an invite.

Package listing

@kody/shopify

src/index.ts

80 lines · 2.6 KB · TypeScript
import * as collections from './collections.ts'
import * as config from './config.ts'
import * as customers from './customers.ts'
import * as draftOrders from './draft-orders.ts'
import * as fulfillments from './fulfillments.ts'
import * as graphql from './graphql.ts'
import * as inventory from './inventory.ts'
import * as metafields from './metafields.ts'
import * as orders from './orders.ts'
import * as products from './products.ts'
import * as request from './request.ts'
import * as shop from './shop.ts'
import * as smokeTest from './smoke-test.ts'
import * as webhooks from './webhooks.ts'

export {
	collections,
	config,
	customers,
	draftOrders,
	fulfillments,
	graphql,
	inventory,
	metafields,
	orders,
	products,
	request,
	shop,
	smokeTest,
	webhooks,
}

/** Describe the @kody/shopify helpers, auth lanes, and export surface. */
export default async function describeShopifyPackage() {
	return {
		packageId: 'shopify',
		name: '@kody/shopify',
		version: '1.0.0',
		docs: [
			'https://shopify.dev/docs/api/admin-graphql',
			'https://shopify.dev/docs/api/admin-rest',
			'https://shopify.dev/docs/apps/build/dev-dashboard/get-api-access-tokens',
		],
		intent:
			'Secret-backed Shopify Admin API helpers. No Kody OAuth integration — fork, add shop credentials, and call GraphQL-first domain modules.',
		auth: {
			requiredOneOf: [
				['shopifyAdminAccessToken'],
				['shopifyClientId', 'shopifyClientSecret'],
			],
			shop: 'Pass shop: "your-store" on each call, or set a fork-local default via ./config.',
			hosts: '{shop}.myshopify.com',
			note: 'This package does not use a saved Kody Shopify integration.',
		},
		defaults: {
			apiVersion: '2026-07',
			mutations: 'dry-run unless dryRun: false',
		},
		domains: {
			'.': 'Package overview (this export)',
			'./graphql': 'Admin GraphQL escape hatch',
			'./request': 'Admin REST escape hatch',
			'./shop': 'getShop',
			'./products': 'listProducts, getProduct, createProduct, updateProduct',
			'./orders': 'listOrders, getOrder',
			'./customers': 'listCustomers, getCustomer, createCustomer',
			'./inventory':
				'listLocations, listInventoryLevels, adjustInventory',
			'./collections': 'listCollections, getCollection',
			'./fulfillments': 'listFulfillmentOrders, createFulfillment',
			'./draft-orders':
				'listDraftOrders, getDraftOrder, createDraftOrder',
			'./webhooks': 'listWebhooks, createWebhook, deleteWebhook',
			'./metafields': 'listMetafields, setMetafield',
			'./config': 'getConfig, setDefaultShop, setDefaultApiVersion, clearConfig',
			'./smoke-test': 'Local self-check plus optional live shop read',
			'./types': 'Shared TypeScript types',
		},
	}
}