@clawpify/skills 1.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (53) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +73 -0
  3. package/clawpify/SKILL.md +134 -0
  4. package/clawpify/references/blogs.md +385 -0
  5. package/clawpify/references/bulk-operations.md +386 -0
  6. package/clawpify/references/collections.md +71 -0
  7. package/clawpify/references/customers.md +141 -0
  8. package/clawpify/references/discounts.md +431 -0
  9. package/clawpify/references/draft-orders.md +495 -0
  10. package/clawpify/references/files.md +355 -0
  11. package/clawpify/references/fulfillments.md +437 -0
  12. package/clawpify/references/gift-cards.md +453 -0
  13. package/clawpify/references/inventory.md +107 -0
  14. package/clawpify/references/locations.md +349 -0
  15. package/clawpify/references/marketing.md +352 -0
  16. package/clawpify/references/markets.md +346 -0
  17. package/clawpify/references/menus.md +313 -0
  18. package/clawpify/references/metafields.md +461 -0
  19. package/clawpify/references/orders.md +164 -0
  20. package/clawpify/references/pages.md +308 -0
  21. package/clawpify/references/products.md +277 -0
  22. package/clawpify/references/refunds.md +401 -0
  23. package/clawpify/references/segments.md +319 -0
  24. package/clawpify/references/shipping.md +406 -0
  25. package/clawpify/references/shop.md +307 -0
  26. package/clawpify/references/subscriptions.md +429 -0
  27. package/clawpify/references/translations.md +270 -0
  28. package/clawpify/references/webhooks.md +400 -0
  29. package/dist/agent.d.ts +18 -0
  30. package/dist/agent.d.ts.map +1 -0
  31. package/dist/agent.js +100 -0
  32. package/dist/auth.d.ts +34 -0
  33. package/dist/auth.d.ts.map +1 -0
  34. package/dist/auth.js +58 -0
  35. package/dist/index.d.ts +41 -0
  36. package/dist/index.d.ts.map +1 -0
  37. package/dist/index.js +22 -0
  38. package/dist/mcp-server.d.ts +3 -0
  39. package/dist/mcp-server.d.ts.map +1 -0
  40. package/dist/mcp-server.js +236 -0
  41. package/dist/shopify.d.ts +29 -0
  42. package/dist/shopify.d.ts.map +1 -0
  43. package/dist/shopify.js +41 -0
  44. package/dist/skills.d.ts +8 -0
  45. package/dist/skills.d.ts.map +1 -0
  46. package/dist/skills.js +36 -0
  47. package/package.json +100 -0
  48. package/src/agent.ts +133 -0
  49. package/src/auth.ts +109 -0
  50. package/src/index.ts +55 -0
  51. package/src/mcp-server.ts +190 -0
  52. package/src/shopify.ts +63 -0
  53. package/src/skills.ts +42 -0
@@ -0,0 +1,406 @@
1
+ # Shopify Shipping & Delivery
2
+
3
+ Manage delivery profiles, shipping zones, and rates via the GraphQL Admin API.
4
+
5
+ ## Overview
6
+
7
+ Delivery profiles define shipping settings for products, including zones, rates, and fulfillment locations.
8
+
9
+ ## List Delivery Profiles
10
+
11
+ ```graphql
12
+ query ListDeliveryProfiles($first: Int!) {
13
+ deliveryProfiles(first: $first) {
14
+ nodes {
15
+ id
16
+ name
17
+ default
18
+ profileLocationGroups {
19
+ locationGroup {
20
+ id
21
+ locations(first: 5) {
22
+ nodes {
23
+ name
24
+ }
25
+ }
26
+ }
27
+ locationGroupZones(first: 10) {
28
+ nodes {
29
+ zone {
30
+ id
31
+ name
32
+ countries {
33
+ code {
34
+ countryCode
35
+ }
36
+ provinces {
37
+ code
38
+ name
39
+ }
40
+ }
41
+ }
42
+ methodDefinitions(first: 5) {
43
+ nodes {
44
+ id
45
+ name
46
+ active
47
+ rateProvider {
48
+ ... on DeliveryRateDefinition {
49
+ price {
50
+ amount
51
+ currencyCode
52
+ }
53
+ }
54
+ }
55
+ }
56
+ }
57
+ }
58
+ }
59
+ }
60
+ }
61
+ }
62
+ }
63
+ ```
64
+
65
+ ## Get Delivery Profile
66
+
67
+ ```graphql
68
+ query GetDeliveryProfile($id: ID!) {
69
+ deliveryProfile(id: $id) {
70
+ id
71
+ name
72
+ default
73
+ profileItems(first: 20) {
74
+ nodes {
75
+ product {
76
+ id
77
+ title
78
+ }
79
+ variants(first: 5) {
80
+ nodes {
81
+ id
82
+ title
83
+ }
84
+ }
85
+ }
86
+ }
87
+ profileLocationGroups {
88
+ locationGroup {
89
+ locations(first: 10) {
90
+ nodes {
91
+ id
92
+ name
93
+ }
94
+ }
95
+ }
96
+ locationGroupZones(first: 10) {
97
+ nodes {
98
+ zone {
99
+ name
100
+ }
101
+ methodDefinitions(first: 5) {
102
+ nodes {
103
+ name
104
+ active
105
+ }
106
+ }
107
+ }
108
+ }
109
+ }
110
+ }
111
+ }
112
+ ```
113
+ Variables: `{ "id": "gid://shopify/DeliveryProfile/123" }`
114
+
115
+ ## Create Delivery Profile
116
+
117
+ ```graphql
118
+ mutation CreateDeliveryProfile($profile: DeliveryProfileInput!) {
119
+ deliveryProfileCreate(profile: $profile) {
120
+ profile {
121
+ id
122
+ name
123
+ }
124
+ userErrors {
125
+ field
126
+ message
127
+ }
128
+ }
129
+ }
130
+ ```
131
+ Variables:
132
+ ```json
133
+ {
134
+ "profile": {
135
+ "name": "Heavy Items",
136
+ "locationGroupsToCreate": [
137
+ {
138
+ "locations": ["gid://shopify/Location/123"],
139
+ "zonesToCreate": [
140
+ {
141
+ "name": "Domestic",
142
+ "countries": [
143
+ {
144
+ "code": "US",
145
+ "includeAllProvinces": true
146
+ }
147
+ ],
148
+ "methodDefinitionsToCreate": [
149
+ {
150
+ "name": "Standard Shipping",
151
+ "active": true,
152
+ "rateDefinition": {
153
+ "price": {
154
+ "amount": "9.99",
155
+ "currencyCode": "USD"
156
+ }
157
+ }
158
+ },
159
+ {
160
+ "name": "Express Shipping",
161
+ "active": true,
162
+ "rateDefinition": {
163
+ "price": {
164
+ "amount": "19.99",
165
+ "currencyCode": "USD"
166
+ }
167
+ }
168
+ }
169
+ ]
170
+ }
171
+ ]
172
+ }
173
+ ],
174
+ "variantsToAssociate": [
175
+ "gid://shopify/ProductVariant/456",
176
+ "gid://shopify/ProductVariant/789"
177
+ ]
178
+ }
179
+ }
180
+ ```
181
+
182
+ ## Update Delivery Profile
183
+
184
+ ```graphql
185
+ mutation UpdateDeliveryProfile($id: ID!, $profile: DeliveryProfileInput!) {
186
+ deliveryProfileUpdate(id: $id, profile: $profile) {
187
+ profile {
188
+ id
189
+ name
190
+ }
191
+ userErrors {
192
+ field
193
+ message
194
+ }
195
+ }
196
+ }
197
+ ```
198
+ Variables:
199
+ ```json
200
+ {
201
+ "id": "gid://shopify/DeliveryProfile/123",
202
+ "profile": {
203
+ "name": "Heavy Items - Updated",
204
+ "locationGroupsToUpdate": [
205
+ {
206
+ "id": "gid://shopify/DeliveryLocationGroup/456",
207
+ "zonesToCreate": [
208
+ {
209
+ "name": "Canada",
210
+ "countries": [
211
+ {
212
+ "code": "CA",
213
+ "includeAllProvinces": true
214
+ }
215
+ ],
216
+ "methodDefinitionsToCreate": [
217
+ {
218
+ "name": "Canada Standard",
219
+ "active": true,
220
+ "rateDefinition": {
221
+ "price": {
222
+ "amount": "14.99",
223
+ "currencyCode": "USD"
224
+ }
225
+ }
226
+ }
227
+ ]
228
+ }
229
+ ]
230
+ }
231
+ ]
232
+ }
233
+ }
234
+ ```
235
+
236
+ ## Delete Delivery Profile
237
+
238
+ ```graphql
239
+ mutation DeleteDeliveryProfile($id: ID!) {
240
+ deliveryProfileRemove(id: $id) {
241
+ job {
242
+ id
243
+ done
244
+ }
245
+ userErrors {
246
+ field
247
+ message
248
+ }
249
+ }
250
+ }
251
+ ```
252
+
253
+ ## Add Products to Profile
254
+
255
+ ```graphql
256
+ mutation AddProductsToProfile($id: ID!, $profile: DeliveryProfileInput!) {
257
+ deliveryProfileUpdate(id: $id, profile: $profile) {
258
+ profile {
259
+ id
260
+ }
261
+ userErrors {
262
+ field
263
+ message
264
+ }
265
+ }
266
+ }
267
+ ```
268
+ Variables:
269
+ ```json
270
+ {
271
+ "id": "gid://shopify/DeliveryProfile/123",
272
+ "profile": {
273
+ "variantsToAssociate": [
274
+ "gid://shopify/ProductVariant/111",
275
+ "gid://shopify/ProductVariant/222"
276
+ ]
277
+ }
278
+ }
279
+ ```
280
+
281
+ ## Remove Products from Profile
282
+
283
+ ```graphql
284
+ mutation RemoveProductsFromProfile($id: ID!, $profile: DeliveryProfileInput!) {
285
+ deliveryProfileUpdate(id: $id, profile: $profile) {
286
+ profile {
287
+ id
288
+ }
289
+ userErrors {
290
+ field
291
+ message
292
+ }
293
+ }
294
+ }
295
+ ```
296
+ Variables:
297
+ ```json
298
+ {
299
+ "id": "gid://shopify/DeliveryProfile/123",
300
+ "profile": {
301
+ "variantsToDissociate": [
302
+ "gid://shopify/ProductVariant/111"
303
+ ]
304
+ }
305
+ }
306
+ ```
307
+
308
+ ## Rate Types
309
+
310
+ ### Flat Rate
311
+ ```json
312
+ {
313
+ "rateDefinition": {
314
+ "price": {
315
+ "amount": "9.99",
316
+ "currencyCode": "USD"
317
+ }
318
+ }
319
+ }
320
+ ```
321
+
322
+ ### Weight-Based Rate
323
+ ```json
324
+ {
325
+ "weightConditionsToCreate": [
326
+ {
327
+ "criteria": {
328
+ "unit": "KILOGRAMS",
329
+ "value": 5.0
330
+ },
331
+ "operator": "LESS_THAN_OR_EQUAL_TO"
332
+ }
333
+ ],
334
+ "rateDefinition": {
335
+ "price": {
336
+ "amount": "9.99",
337
+ "currencyCode": "USD"
338
+ }
339
+ }
340
+ }
341
+ ```
342
+
343
+ ### Price-Based Rate
344
+ ```json
345
+ {
346
+ "priceConditionsToCreate": [
347
+ {
348
+ "criteria": {
349
+ "amount": "50.00",
350
+ "currencyCode": "USD"
351
+ },
352
+ "operator": "GREATER_THAN_OR_EQUAL_TO"
353
+ }
354
+ ],
355
+ "rateDefinition": {
356
+ "price": {
357
+ "amount": "0.00",
358
+ "currencyCode": "USD"
359
+ }
360
+ }
361
+ }
362
+ ```
363
+
364
+ ## Delivery Zone Structure
365
+
366
+ | Component | Description |
367
+ |-----------|-------------|
368
+ | **Profile** | Top-level shipping configuration |
369
+ | **Location Group** | Group of fulfillment locations |
370
+ | **Zone** | Geographic region (countries/provinces) |
371
+ | **Method Definition** | Shipping option with rate |
372
+
373
+ ## Country Code Examples
374
+
375
+ | Code | Country |
376
+ |------|---------|
377
+ | `US` | United States |
378
+ | `CA` | Canada |
379
+ | `GB` | United Kingdom |
380
+ | `AU` | Australia |
381
+ | `DE` | Germany |
382
+ | `FR` | France |
383
+
384
+ ## Condition Operators
385
+
386
+ | Operator | Description |
387
+ |----------|-------------|
388
+ | `GREATER_THAN` | > value |
389
+ | `GREATER_THAN_OR_EQUAL_TO` | >= value |
390
+ | `LESS_THAN` | < value |
391
+ | `LESS_THAN_OR_EQUAL_TO` | <= value |
392
+ | `BETWEEN` | Between two values |
393
+
394
+ ## API Scopes Required
395
+
396
+ - `read_shipping` - Read delivery profiles
397
+ - `write_shipping` - Create, update, delete delivery profiles
398
+
399
+ ## Notes
400
+
401
+ - Default profile applies to products not in other profiles
402
+ - Products can only belong to one delivery profile
403
+ - Zones define geographic areas for shipping
404
+ - Rates can be flat, weight-based, or price-based
405
+ - Multiple locations can share the same zone configuration
406
+ - Carrier-calculated rates require additional setup
@@ -0,0 +1,307 @@
1
+ # Shopify Shop
2
+
3
+ Query shop information and settings via the GraphQL Admin API.
4
+
5
+ ## Overview
6
+
7
+ The Shop object contains core store settings, features, billing information, and configuration details.
8
+
9
+ ## Get Shop Information
10
+
11
+ ```graphql
12
+ query GetShop {
13
+ shop {
14
+ id
15
+ name
16
+ email
17
+ myshopifyDomain
18
+ primaryDomain {
19
+ host
20
+ sslEnabled
21
+ }
22
+ contactEmail
23
+ description
24
+ currencyCode
25
+ currencyFormats {
26
+ moneyFormat
27
+ moneyWithCurrencyFormat
28
+ }
29
+ weightUnit
30
+ unitSystem
31
+ timezoneAbbreviation
32
+ ianaTimezone
33
+ createdAt
34
+ plan {
35
+ displayName
36
+ partnerDevelopment
37
+ shopifyPlus
38
+ }
39
+ }
40
+ }
41
+ ```
42
+
43
+ ## Get Shop Address
44
+
45
+ ```graphql
46
+ query GetShopAddress {
47
+ shop {
48
+ billingAddress {
49
+ address1
50
+ address2
51
+ city
52
+ province
53
+ provinceCode
54
+ country
55
+ countryCodeV2
56
+ zip
57
+ phone
58
+ company
59
+ }
60
+ }
61
+ }
62
+ ```
63
+
64
+ ## Get Shop Features
65
+
66
+ ```graphql
67
+ query GetShopFeatures {
68
+ shop {
69
+ features {
70
+ branding {
71
+ shopifyBranding
72
+ }
73
+ storefront {
74
+ internationalPriceOverrides
75
+ internationalPriceRules
76
+ }
77
+ internationalDomains {
78
+ enabled
79
+ }
80
+ }
81
+ }
82
+ }
83
+ ```
84
+
85
+ ## Get Shop Locales
86
+
87
+ ```graphql
88
+ query GetShopLocales {
89
+ shopLocales(published: true) {
90
+ locale
91
+ name
92
+ primary
93
+ published
94
+ }
95
+ }
96
+ ```
97
+
98
+ ## Get All Locales (Including Unpublished)
99
+
100
+ ```graphql
101
+ query GetAllShopLocales {
102
+ shopLocales(published: false) {
103
+ locale
104
+ name
105
+ primary
106
+ published
107
+ }
108
+ }
109
+ ```
110
+
111
+ ## Get Shop Billing Preferences
112
+
113
+ ```graphql
114
+ query GetBillingPreferences {
115
+ shopBillingPreferences {
116
+ currency {
117
+ currencyCode
118
+ currencyName
119
+ }
120
+ }
121
+ }
122
+ ```
123
+
124
+ ## Get Shopify Payments Account
125
+
126
+ ```graphql
127
+ query GetPaymentsAccount {
128
+ shopifyPaymentsAccount {
129
+ activated
130
+ balance {
131
+ amount
132
+ currencyCode
133
+ }
134
+ country
135
+ defaultCurrency
136
+ payoutSchedule {
137
+ interval
138
+ }
139
+ }
140
+ }
141
+ ```
142
+
143
+ ## Get Available API Versions
144
+
145
+ ```graphql
146
+ query GetApiVersions {
147
+ publicApiVersions {
148
+ handle
149
+ displayName
150
+ supported
151
+ }
152
+ }
153
+ ```
154
+
155
+ ## Execute ShopifyQL Query
156
+
157
+ ```graphql
158
+ query RunShopifyQL($query: String!) {
159
+ shopifyqlQuery(query: $query) {
160
+ ... on TableResponse {
161
+ tableData {
162
+ columns {
163
+ name
164
+ dataType
165
+ displayName
166
+ }
167
+ rowData
168
+ }
169
+ }
170
+ ... on PolarisVizResponse {
171
+ data
172
+ }
173
+ parseErrors {
174
+ message
175
+ }
176
+ }
177
+ }
178
+ ```
179
+ Variables:
180
+ ```json
181
+ {
182
+ "query": "FROM orders SHOW sum(total_sales) AS total_revenue SINCE -30d UNTIL today"
183
+ }
184
+ ```
185
+
186
+ ## Common ShopifyQL Queries
187
+
188
+ ### Sales Summary
189
+ ```
190
+ FROM orders
191
+ SHOW sum(total_sales) AS revenue, count() AS order_count
192
+ SINCE -30d UNTIL today
193
+ ```
194
+
195
+ ### Top Products
196
+ ```
197
+ FROM products
198
+ SHOW sum(quantity) AS units_sold
199
+ GROUP BY product_title
200
+ ORDER BY units_sold DESC
201
+ LIMIT 10
202
+ SINCE -30d
203
+ ```
204
+
205
+ ### Sales by Region
206
+ ```
207
+ FROM orders
208
+ SHOW sum(total_sales) AS revenue
209
+ GROUP BY billing_country
210
+ ORDER BY revenue DESC
211
+ SINCE -30d
212
+ ```
213
+
214
+ ### Daily Sales Trend
215
+ ```
216
+ FROM orders
217
+ SHOW sum(total_sales) AS daily_revenue
218
+ GROUP BY day
219
+ SINCE -30d UNTIL today
220
+ ```
221
+
222
+ ## Get Shop Functions
223
+
224
+ ```graphql
225
+ query GetShopFunctions($first: Int!) {
226
+ shopifyFunctions(first: $first) {
227
+ nodes {
228
+ id
229
+ title
230
+ apiType
231
+ apiVersion
232
+ app {
233
+ title
234
+ }
235
+ }
236
+ }
237
+ }
238
+ ```
239
+ Variables: `{ "first": 20 }`
240
+
241
+ ## Get Specific Function
242
+
243
+ ```graphql
244
+ query GetFunction($id: String!) {
245
+ shopifyFunction(id: $id) {
246
+ id
247
+ title
248
+ apiType
249
+ apiVersion
250
+ description
251
+ app {
252
+ title
253
+ }
254
+ }
255
+ }
256
+ ```
257
+
258
+ ## Shop Settings Fields
259
+
260
+ | Field | Description |
261
+ |-------|-------------|
262
+ | `name` | Store name |
263
+ | `email` | Store email |
264
+ | `myshopifyDomain` | *.myshopify.com domain |
265
+ | `primaryDomain` | Custom domain if set |
266
+ | `currencyCode` | Store currency |
267
+ | `weightUnit` | Weight unit (KILOGRAMS, POUNDS, etc.) |
268
+ | `unitSystem` | METRIC or IMPERIAL |
269
+ | `ianaTimezone` | Timezone (e.g., America/New_York) |
270
+
271
+ ## Plan Information
272
+
273
+ | Field | Description |
274
+ |-------|-------------|
275
+ | `displayName` | Plan name (Basic, Shopify, Advanced, Plus) |
276
+ | `partnerDevelopment` | Is development store |
277
+ | `shopifyPlus` | Is Shopify Plus |
278
+
279
+ ## Weight Units
280
+
281
+ | Unit | Description |
282
+ |------|-------------|
283
+ | `KILOGRAMS` | Kilograms |
284
+ | `GRAMS` | Grams |
285
+ | `POUNDS` | Pounds |
286
+ | `OUNCES` | Ounces |
287
+
288
+ ## Currency Formats
289
+
290
+ | Field | Example |
291
+ |-------|---------|
292
+ | `moneyFormat` | `${{amount}}` |
293
+ | `moneyWithCurrencyFormat` | `${{amount}} USD` |
294
+
295
+ ## API Scopes Required
296
+
297
+ - No specific scope needed for basic shop info
298
+ - `read_shopify_payments_accounts` - For payments account info
299
+ - `read_locales` - For locale information
300
+
301
+ ## Notes
302
+
303
+ - Shop info is read-only through GraphQL
304
+ - Use REST API for some shop settings updates
305
+ - ShopifyQL is for analytics queries
306
+ - Functions require apps with function capabilities
307
+ - Domain and billing changes are done through admin UI