@blezgo/api-sdk 0.1.3 → 0.1.4

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 (138) hide show
  1. package/dist/account/generated.d.ts +180 -180
  2. package/dist/account/generated.d.ts.map +1 -1
  3. package/dist/activity/generated.d.ts +60 -60
  4. package/dist/activity/generated.d.ts.map +1 -1
  5. package/dist/addon/generated.d.ts +83 -83
  6. package/dist/addon/generated.d.ts.map +1 -1
  7. package/dist/admin/generated.d.ts +126 -126
  8. package/dist/admin/generated.d.ts.map +1 -1
  9. package/dist/affiliate/generated.d.ts +83 -83
  10. package/dist/affiliate/generated.d.ts.map +1 -1
  11. package/dist/analytics/generated.d.ts +30 -30
  12. package/dist/analytics/generated.d.ts.map +1 -1
  13. package/dist/announcements/generated.d.ts +64 -64
  14. package/dist/announcements/generated.d.ts.map +1 -1
  15. package/dist/apikeys/generated.d.ts +79 -79
  16. package/dist/apikeys/generated.d.ts.map +1 -1
  17. package/dist/assistance/generated.d.ts +30 -30
  18. package/dist/assistance/generated.d.ts.map +1 -1
  19. package/dist/authentication/generated.d.ts +83 -83
  20. package/dist/authentication/generated.d.ts.map +1 -1
  21. package/dist/blog/generated.d.ts +204 -204
  22. package/dist/blog/generated.d.ts.map +1 -1
  23. package/dist/bundle/generated.d.ts +147 -147
  24. package/dist/bundle/generated.d.ts.map +1 -1
  25. package/dist/cache/generated.d.ts +33 -33
  26. package/dist/cache/generated.d.ts.map +1 -1
  27. package/dist/calendar/generated.d.ts +80 -80
  28. package/dist/calendar/generated.d.ts.map +1 -1
  29. package/dist/campaigns/generated.d.ts +198 -198
  30. package/dist/campaigns/generated.d.ts.map +1 -1
  31. package/dist/cart/generated.d.ts +40 -40
  32. package/dist/cart/generated.d.ts.map +1 -1
  33. package/dist/changelog/generated.d.ts +95 -95
  34. package/dist/changelog/generated.d.ts.map +1 -1
  35. package/dist/channel/generated.d.ts +251 -251
  36. package/dist/channel/generated.d.ts.map +1 -1
  37. package/dist/company/generated.d.ts +69 -69
  38. package/dist/company/generated.d.ts.map +1 -1
  39. package/dist/conference/generated.d.ts +166 -166
  40. package/dist/conference/generated.d.ts.map +1 -1
  41. package/dist/config/generated.d.ts +54 -54
  42. package/dist/config/generated.d.ts.map +1 -1
  43. package/dist/content/generated.d.ts +477 -477
  44. package/dist/content/generated.d.ts.map +1 -1
  45. package/dist/cookies/generated.d.ts +77 -77
  46. package/dist/cookies/generated.d.ts.map +1 -1
  47. package/dist/courses/generated.d.ts +397 -397
  48. package/dist/courses/generated.d.ts.map +1 -1
  49. package/dist/custom/generated.d.ts +99 -99
  50. package/dist/custom/generated.d.ts.map +1 -1
  51. package/dist/dashboard/generated.d.ts +177 -177
  52. package/dist/dashboard/generated.d.ts.map +1 -1
  53. package/dist/elasticsearch/generated.d.ts +30 -30
  54. package/dist/elasticsearch/generated.d.ts.map +1 -1
  55. package/dist/enrollments/generated.d.ts +30 -30
  56. package/dist/enrollments/generated.d.ts.map +1 -1
  57. package/dist/errors/generated.d.ts +30 -30
  58. package/dist/errors/generated.d.ts.map +1 -1
  59. package/dist/eventconfig/generated.d.ts +94 -94
  60. package/dist/eventconfig/generated.d.ts.map +1 -1
  61. package/dist/funnels/generated.d.ts +146 -146
  62. package/dist/funnels/generated.d.ts.map +1 -1
  63. package/dist/gamification/generated.d.ts +154 -154
  64. package/dist/gamification/generated.d.ts.map +1 -1
  65. package/dist/impersonation/generated.d.ts +71 -71
  66. package/dist/impersonation/generated.d.ts.map +1 -1
  67. package/dist/inbox/generated.d.ts +140 -140
  68. package/dist/inbox/generated.d.ts.map +1 -1
  69. package/dist/internal/generated.d.ts +30 -30
  70. package/dist/internal/generated.d.ts.map +1 -1
  71. package/dist/internationalization/generated.d.ts +30 -30
  72. package/dist/internationalization/generated.d.ts.map +1 -1
  73. package/dist/invitations/generated.d.ts +123 -123
  74. package/dist/invitations/generated.d.ts.map +1 -1
  75. package/dist/meetings/generated.d.ts +337 -337
  76. package/dist/meetings/generated.d.ts.map +1 -1
  77. package/dist/metas/generated.d.ts +170 -170
  78. package/dist/metas/generated.d.ts.map +1 -1
  79. package/dist/notification/generated.d.ts +382 -382
  80. package/dist/notification/generated.d.ts.map +1 -1
  81. package/dist/notifications/generated.d.ts +30 -30
  82. package/dist/notifications/generated.d.ts.map +1 -1
  83. package/dist/onboarding/generated.d.ts +106 -106
  84. package/dist/onboarding/generated.d.ts.map +1 -1
  85. package/dist/packages/generated.d.ts +83 -83
  86. package/dist/packages/generated.d.ts.map +1 -1
  87. package/dist/payments/generated.d.ts +502 -502
  88. package/dist/payments/generated.d.ts.map +1 -1
  89. package/dist/payouts/generated.d.ts +30 -30
  90. package/dist/payouts/generated.d.ts.map +1 -1
  91. package/dist/plans/generated.d.ts +470 -470
  92. package/dist/plans/generated.d.ts.map +1 -1
  93. package/dist/pricing/generated.d.ts +87 -87
  94. package/dist/pricing/generated.d.ts.map +1 -1
  95. package/dist/products/generated.d.ts +552 -552
  96. package/dist/products/generated.d.ts.map +1 -1
  97. package/dist/profile/generated.d.ts +272 -272
  98. package/dist/profile/generated.d.ts.map +1 -1
  99. package/dist/reasons/generated.d.ts +78 -78
  100. package/dist/reasons/generated.d.ts.map +1 -1
  101. package/dist/registration/generated.d.ts +145 -145
  102. package/dist/registration/generated.d.ts.map +1 -1
  103. package/dist/reviews/generated.d.ts +47 -47
  104. package/dist/reviews/generated.d.ts.map +1 -1
  105. package/dist/role/generated.d.ts +217 -217
  106. package/dist/role/generated.d.ts.map +1 -1
  107. package/dist/scheduling/generated.d.ts +139 -139
  108. package/dist/scheduling/generated.d.ts.map +1 -1
  109. package/dist/services/generated.d.ts +989 -989
  110. package/dist/services/generated.d.ts.map +1 -1
  111. package/dist/sessions/generated.d.ts +334 -334
  112. package/dist/sessions/generated.d.ts.map +1 -1
  113. package/dist/spaces/generated.d.ts +390 -390
  114. package/dist/spaces/generated.d.ts.map +1 -1
  115. package/dist/storefront/generated.d.ts +30 -30
  116. package/dist/storefront/generated.d.ts.map +1 -1
  117. package/dist/support/generated.d.ts +1465 -1465
  118. package/dist/support/generated.d.ts.map +1 -1
  119. package/dist/sync/generated.d.ts +157 -157
  120. package/dist/sync/generated.d.ts.map +1 -1
  121. package/dist/tenant/generated.d.ts +562 -562
  122. package/dist/tenant/generated.d.ts.map +1 -1
  123. package/dist/testimonials/generated.d.ts +67 -67
  124. package/dist/testimonials/generated.d.ts.map +1 -1
  125. package/dist/tests/generated.d.ts +619 -619
  126. package/dist/tests/generated.d.ts.map +1 -1
  127. package/dist/tokens/generated.d.ts +59 -59
  128. package/dist/tokens/generated.d.ts.map +1 -1
  129. package/dist/uploads/generated.d.ts +65 -65
  130. package/dist/uploads/generated.d.ts.map +1 -1
  131. package/dist/upsell/generated.d.ts +130 -130
  132. package/dist/upsell/generated.d.ts.map +1 -1
  133. package/dist/user/generated.d.ts +123 -117
  134. package/dist/user/generated.d.ts.map +1 -1
  135. package/dist/webinars/generated.d.ts +298 -298
  136. package/dist/webinars/generated.d.ts.map +1 -1
  137. package/package.json +1 -1
  138. package/test-commit.txt +1 -0
@@ -1217,79 +1217,67 @@ export type webhooks = Record<string, never>;
1217
1217
  export interface components {
1218
1218
  schemas: {
1219
1219
  /**
1220
- * ProductIdentityCreateRequest
1221
- * @description Create localized product content
1222
- */
1223
- ProductIdentityCreateRequest: {
1224
- /**
1225
- * @description Locale (language-country format)
1226
- * @example en-US
1227
- */
1228
- locale: components["schemas"]["Locale"];
1229
- /**
1230
- * Title
1231
- * @example Python Programming Course
1232
- */
1233
- title: string;
1234
- /**
1235
- * Subtitle
1236
- * @example Master Python in 30 days
1237
- */
1238
- subtitle?: string | null;
1239
- /**
1240
- * Description
1241
- * @example Comprehensive Python course covering basics to advanced topics
1242
- */
1243
- description?: string | null;
1244
- /**
1245
- * Short Description
1246
- * @example Learn Python from scratch with hands-on projects
1247
- */
1248
- short_description?: string | null;
1249
- };
1250
- /**
1251
- * Locale
1252
- * @description Supported locales (language-country format)
1220
+ * ProductType
1221
+ * @description Product types supported (11 active types)
1253
1222
  * @enum {string}
1254
1223
  */
1255
- Locale: "en-US" | "es-PR" | "es-ES" | "fr-FR" | "pt-BR" | "de-DE" | "it-IT" | "ja-JP" | "zh-CN";
1224
+ ProductType: "course" | "package" | "session" | "webinar" | "bundle" | "meeting" | "open_class" | "plan" | "test" | "appointment" | "limit_minutes";
1225
+ InvalidParam: {
1226
+ /** @example items[0].quantity */
1227
+ field?: string;
1228
+ /** @example Input should be greater than or equal to 1 */
1229
+ error?: string;
1230
+ };
1256
1231
  /**
1257
- * AddTagToProductRequest
1258
- * @example {
1259
- * "display_order": 0,
1260
- * "tag_id": 5
1261
- * }
1232
+ * VariantImageInput
1233
+ * @description Image data for variant creation.
1262
1234
  */
1263
- AddTagToProductRequest: {
1235
+ VariantImageInput: {
1264
1236
  /**
1265
- * Tag Id
1266
- * @example 5
1237
+ * Image Url
1238
+ * @description Image URL
1267
1239
  */
1268
- tag_id: number;
1240
+ image_url: string;
1241
+ /**
1242
+ * Image Type
1243
+ * @description primary, gallery, thumbnail
1244
+ * @default primary
1245
+ */
1246
+ image_type: string;
1269
1247
  /**
1270
1248
  * Display Order
1271
- * @default 0
1272
- * @example 0
1249
+ * @description Display order
1250
+ * @default 100
1273
1251
  */
1274
1252
  display_order: number;
1275
1253
  };
1276
1254
  /**
1277
- * ProductCurrency
1278
- * @enum {string}
1279
- */
1280
- ProductCurrency: "USD" | "INR" | "EUR" | "GBP";
1281
- /**
1282
- * VariantStatus
1283
- * @description Variant status enum.
1284
- * @enum {string}
1285
- */
1286
- VariantStatus: "active" | "inactive" | "out_of_stock" | "discontinued";
1287
- /**
1288
- * ProductStatus
1289
- * @description Product status values (Phase 1 - VARCHAR)
1290
- * @enum {string}
1255
+ * @example {
1256
+ * "status": "success",
1257
+ * "message": "Operation successful",
1258
+ * "message_code": "api_suc_20001",
1259
+ * "data": {},
1260
+ * "metadata": {
1261
+ * "timestamp": "2026-03-26T10:00:00.000Z",
1262
+ * "requestId": "07e22004-cb60-4dfc-bc9c-b6f99664dca1",
1263
+ * "traceId": "a9f1204c-bb82-41de-b234-7c3a9e120000",
1264
+ * "version": "v1",
1265
+ * "executionTime": 42,
1266
+ * "language": "en-US"
1267
+ * }
1268
+ * }
1291
1269
  */
1292
- ProductStatus: "draft" | "published" | "archived" | "review_required" | "deleted";
1270
+ StandardResponse: {
1271
+ /** @example success */
1272
+ status?: string;
1273
+ data?: Record<string, never> | null;
1274
+ /** @example Operation successful */
1275
+ message?: string | null;
1276
+ /** @example api_suc_20001 */
1277
+ message_code?: string | null;
1278
+ metadata?: Record<string, never> | null;
1279
+ error?: components["schemas"]["ErrorResponse"];
1280
+ };
1293
1281
  /**
1294
1282
  * AddBundleItemRequest
1295
1283
  * @example {
@@ -1345,17 +1333,25 @@ export interface components {
1345
1333
  display_order: number;
1346
1334
  };
1347
1335
  /**
1348
- * ProductInterval
1349
- * @enum {string}
1336
+ * InventoryAdjustmentRequest
1337
+ * @description Request model for inventory adjustment.
1350
1338
  */
1351
- ProductInterval: "day" | "week" | "month" | "year";
1352
- /** Body_createProductImageUpload */
1353
- Body_createProductImageUpload: {
1339
+ InventoryAdjustmentRequest: {
1354
1340
  /**
1355
- * Image File
1356
- * Format: binary
1341
+ * Adjustment Type
1342
+ * @description add, subtract, or set
1357
1343
  */
1358
- image_file: string;
1344
+ adjustment_type: string;
1345
+ /**
1346
+ * Quantity
1347
+ * @description Quantity to add/subtract/set
1348
+ */
1349
+ quantity: number;
1350
+ /**
1351
+ * Reason
1352
+ * @description Reason for adjustment
1353
+ */
1354
+ reason?: string | null;
1359
1355
  };
1360
1356
  Extensions: {
1361
1357
  /** @example GENERIC_ERROR */
@@ -1366,166 +1362,222 @@ export interface components {
1366
1362
  /** @example Detailed debug information */
1367
1363
  debug?: string | null;
1368
1364
  };
1369
- ErrorResponse: {
1370
- /** @example about:blank */
1371
- type?: string;
1372
- /** @example GENERIC_ERROR */
1373
- code?: string;
1374
- /** @example Client Error */
1375
- title?: string;
1376
- /** @example 400 */
1377
- status?: number;
1378
- /** @example An error occurred */
1379
- detail?: string;
1380
- /** @example /v1/cart/items */
1381
- instance?: string;
1382
- extensions?: components["schemas"]["Extensions"];
1383
- };
1384
1365
  /**
1385
- * ProductUpdateRequest
1386
- * @description Update existing product (base record only)
1366
+ * ProductPriceType
1367
+ * @enum {string}
1387
1368
  */
1388
- ProductUpdateRequest: {
1369
+ ProductPriceType: "free" | "subscription" | "onetime" | "emi";
1370
+ /**
1371
+ * SeoUpsertRequest
1372
+ * @description Unified SEO upsert schema for all entity types (space, product, service, ...).
1373
+ *
1374
+ * Locale is NOT in this body — it comes from the URL path:
1375
+ * PUT /v1/spaces/admin/{space_id}/seo/{locale}
1376
+ * PUT /v1/products/{product_id}/seo/{locale}
1377
+ *
1378
+ * All fields are optional; supply only what you want to set.
1379
+ * Fields absent from the request body are stored as NULL (PUT semantics — full replace).
1380
+ *
1381
+ * extra='forbid' inherited from BaseSeoFields — unknown keys are rejected.
1382
+ * All validators (robots, URL, og_locale, twitter handle, alternate_languages)
1383
+ * are also inherited from BaseSeoFields.
1384
+ * @example {
1385
+ * "alternate_languages": [
1386
+ * {
1387
+ * "lang": "en-US",
1388
+ * "url": "https://www.example.com/courses/python"
1389
+ * },
1390
+ * {
1391
+ * "lang": "es-PR",
1392
+ * "url": "https://www.example.com/es/cursos/python"
1393
+ * },
1394
+ * {
1395
+ * "lang": "fr-FR",
1396
+ * "url": "https://www.example.com/fr/cours/python"
1397
+ * },
1398
+ * {
1399
+ * "lang": "x-default",
1400
+ * "url": "https://www.example.com/courses/python"
1401
+ * }
1402
+ * ],
1403
+ * "canonical_url": "https://www.example.com/courses/python",
1404
+ * "is_indexable": true,
1405
+ * "meta_description": "Explore our full library of Python courses. Beginner to advanced, taught by industry experts.",
1406
+ * "meta_keywords": "python, programming, learn python, python course, coding",
1407
+ * "meta_title": "Browse Python Courses — Learn at Any Level",
1408
+ * "og_description": "From beginner to advanced. Join 50,000+ learners on MyPlatform.",
1409
+ * "og_image": "https://cdn.example.com/og/python-courses.jpg",
1410
+ * "og_image_alt": "A student learning Python on a laptop in a modern workspace",
1411
+ * "og_image_height": 630,
1412
+ * "og_image_width": 1200,
1413
+ * "og_locale": "en_US",
1414
+ * "og_site_name": "MyPlatform",
1415
+ * "og_title": "Python Courses — Learn at Your Own Pace",
1416
+ * "og_type": "website",
1417
+ * "og_url": "https://www.example.com/courses/python",
1418
+ * "robots": "index,follow,max-snippet:-1,max-image-preview:large,max-video-preview:30",
1419
+ * "structured_data": {
1420
+ * "@context": "https://schema.org",
1421
+ * "@type": "ItemList",
1422
+ * "description": "Browse all Python courses on MyPlatform",
1423
+ * "itemListElement": [
1424
+ * {
1425
+ * "@type": "ListItem",
1426
+ * "name": "Python for Beginners",
1427
+ * "position": 1,
1428
+ * "url": "https://www.example.com/courses/python-beginners"
1429
+ * },
1430
+ * {
1431
+ * "@type": "ListItem",
1432
+ * "name": "Advanced Python",
1433
+ * "position": 2,
1434
+ * "url": "https://www.example.com/courses/python-advanced"
1435
+ * }
1436
+ * ],
1437
+ * "name": "Python Courses",
1438
+ * "numberOfItems": 42,
1439
+ * "url": "https://www.example.com/courses/python"
1440
+ * },
1441
+ * "twitter_card": "summary_large_image",
1442
+ * "twitter_creator": "@myplatform",
1443
+ * "twitter_description": "From beginner to advanced. Join 50,000+ learners.",
1444
+ * "twitter_image": "https://cdn.example.com/twitter/python-courses.jpg",
1445
+ * "twitter_image_alt": "A student learning Python on a laptop",
1446
+ * "twitter_site": "@myplatform",
1447
+ * "twitter_title": "Python Courses on MyPlatform"
1448
+ * }
1449
+ */
1450
+ SeoUpsertRequest: {
1389
1451
  /**
1390
- * Company Id
1391
- * @description Company ID
1452
+ * Og Title
1453
+ * @description og:title — headline shown in social link previews. Defaults to the entity title if omitted. Keep ≤95 chars.
1392
1454
  */
1393
- company_id?: number | null;
1394
- /** @description Product type (rarely changed) */
1395
- product_type?: components["schemas"]["ProductType"] | null;
1396
- /** @description Product status */
1397
- status?: components["schemas"]["ProductStatus"] | null;
1455
+ og_title?: string | null;
1398
1456
  /**
1399
- * Featured
1400
- * @description Featured flag
1457
+ * Og Description
1458
+ * @description og:description — subtitle shown in social link previews.
1401
1459
  */
1402
- featured?: boolean | null;
1460
+ og_description?: string | null;
1403
1461
  /**
1404
- * Is Digital
1405
- * @description Digital product flag
1462
+ * Og Image
1463
+ * @description og:image full URL (http/https) of the preview image. Recommended size: 1200×630 px.
1406
1464
  */
1407
- is_digital?: boolean | null;
1465
+ og_image?: string | null;
1408
1466
  /**
1409
- * Is Active
1410
- * @description Active status
1467
+ * Og Type
1468
+ * @description og:type — content type for social platforms. Values: 'website' | 'article' | 'product' | 'video.other' | 'music.song' | 'profile' | 'book'.
1411
1469
  */
1412
- is_active?: boolean | null;
1470
+ og_type?: ("website" | "article" | "product" | "video.other" | "music.song" | "profile" | "book") | null;
1413
1471
  /**
1414
- * Title
1415
- * @description DEPRECATED: Use ProductIdentity instead
1472
+ * Twitter Card
1473
+ * @description twitter:card card layout on Twitter/X. Values: 'summary' | 'summary_large_image' | 'app' | 'player'.
1416
1474
  */
1417
- title?: string | null;
1475
+ twitter_card?: ("summary" | "summary_large_image" | "app" | "player") | null;
1418
1476
  /**
1419
- * Description
1420
- * @description DEPRECATED: Use ProductIdentity instead
1477
+ * Twitter Title
1478
+ * @description twitter:title overrides og_title for Twitter/X. Keep ≤70 chars.
1421
1479
  */
1422
- description?: string | null;
1423
- };
1424
- /**
1425
- * VariantInventoryInput
1426
- * @description Inventory data for variant creation.
1427
- */
1428
- VariantInventoryInput: {
1480
+ twitter_title?: string | null;
1429
1481
  /**
1430
- * Track Inventory
1431
- * @description Track stock for this variant
1432
- * @default true
1482
+ * Twitter Description
1483
+ * @description twitter:description overrides og_description for Twitter/X.
1433
1484
  */
1434
- track_inventory: boolean;
1485
+ twitter_description?: string | null;
1435
1486
  /**
1436
- * Stock Quantity
1437
- * @description Initial stock quantity
1487
+ * Twitter Image
1488
+ * @description twitter:image full URL (http/https). Overrides og_image for Twitter/X. Min 144×144 px, max 4096×4096 px.
1438
1489
  */
1439
- stock_quantity?: number | null;
1490
+ twitter_image?: string | null;
1440
1491
  /**
1441
- * Allow Backorder
1442
- * @description Allow orders when out of stock
1443
- * @default false
1492
+ * Canonical Url
1493
+ * @description <link rel='canonical'>. Full URL (http/https). Set when this page has duplicate content at another URL.
1444
1494
  */
1445
- allow_backorder: boolean;
1446
- };
1447
- /**
1448
- * VariantUpdateRequest
1449
- * @description Request model for updating a variant.
1450
- */
1451
- VariantUpdateRequest: {
1452
- /** Name */
1453
- name?: string | null;
1454
- /** Sku */
1455
- sku?: string | null;
1456
- /** Barcode */
1457
- barcode?: string | null;
1458
- /** Attributes */
1459
- attributes?: {
1460
- [key: string]: unknown;
1461
- } | null;
1462
- /** Is Default */
1463
- is_default?: boolean | null;
1464
- status?: components["schemas"]["VariantStatus"] | null;
1465
- /** Display Order */
1466
- display_order?: number | null;
1467
- /** Metadata */
1468
- metadata?: {
1495
+ canonical_url?: string | null;
1496
+ /**
1497
+ * Robots
1498
+ * @description <meta name='robots'>. Comma-separated directives. Simple: index, noindex, follow, nofollow, noarchive, nosnippet, noimageindex, none, all, notranslate, noodp. Parametric: max-snippet:-1, max-snippet:150, max-image-preview:none|standard|large, max-video-preview:-1, max-video-preview:30, unavailable_after:<date>. Examples: 'index,follow' | 'noindex,nofollow' | 'index,follow,max-snippet:-1,max-image-preview:large'.
1499
+ */
1500
+ robots?: string | null;
1501
+ /**
1502
+ * Meta Title
1503
+ * @description <title> and <meta name='title'>. Keep ≤60 chars for Google display.
1504
+ */
1505
+ meta_title?: string | null;
1506
+ /**
1507
+ * Meta Description
1508
+ * @description <meta name='description'>. Keep ≤160 chars for Google display.
1509
+ */
1510
+ meta_description?: string | null;
1511
+ /**
1512
+ * Meta Keywords
1513
+ * @description Comma-separated keywords. Low weight for Google, used for internal search.
1514
+ */
1515
+ meta_keywords?: string | null;
1516
+ /**
1517
+ * Og Image Width
1518
+ * @description og:image:width in pixels. Recommended: 1200.
1519
+ */
1520
+ og_image_width?: number | null;
1521
+ /**
1522
+ * Og Image Height
1523
+ * @description og:image:height in pixels. Recommended: 630.
1524
+ */
1525
+ og_image_height?: number | null;
1526
+ /**
1527
+ * Og Image Alt
1528
+ * @description og:image:alt — alt text for the OG image.
1529
+ */
1530
+ og_image_alt?: string | null;
1531
+ /**
1532
+ * Og Url
1533
+ * @description og:url — canonical URL used by social platforms.
1534
+ */
1535
+ og_url?: string | null;
1536
+ /**
1537
+ * Og Site Name
1538
+ * @description og:site_name — your platform name shown in the link preview card.
1539
+ */
1540
+ og_site_name?: string | null;
1541
+ /**
1542
+ * Og Locale
1543
+ * @description og:locale — language in underscore format: en_US, es_ES, fr_FR.
1544
+ */
1545
+ og_locale?: string | null;
1546
+ /**
1547
+ * Twitter Image Alt
1548
+ * @description twitter:image:alt — alt text for the Twitter card image.
1549
+ */
1550
+ twitter_image_alt?: string | null;
1551
+ /**
1552
+ * Twitter Site
1553
+ * @description twitter:site — your Twitter/X account handle. Must start with '@'.
1554
+ */
1555
+ twitter_site?: string | null;
1556
+ /**
1557
+ * Twitter Creator
1558
+ * @description twitter:creator — author's Twitter/X handle. Must start with '@'.
1559
+ */
1560
+ twitter_creator?: string | null;
1561
+ /**
1562
+ * Is Indexable
1563
+ * @description System-level indexing override. False → page is treated as noindex regardless of the robots field. True → robots field is authoritative.
1564
+ * @default true
1565
+ */
1566
+ is_indexable: boolean;
1567
+ /**
1568
+ * Structured Data
1569
+ * @description Schema.org JSON-LD object for Google rich results.
1570
+ */
1571
+ structured_data?: {
1469
1572
  [key: string]: unknown;
1470
1573
  } | null;
1471
- /** Track Inventory */
1472
- track_inventory?: boolean | null;
1473
- /** Stock Quantity */
1474
- stock_quantity?: number | null;
1475
- /** Allow Backorder */
1476
- allow_backorder?: boolean | null;
1477
- /** Weight */
1478
- weight?: number | string | null;
1479
- /** Length */
1480
- length?: number | string | null;
1481
- /** Width */
1482
- width?: number | string | null;
1483
- /** Height */
1484
- height?: number | string | null;
1485
- };
1486
- /**
1487
- * @example {
1488
- * "status": "success",
1489
- * "message": "Operation successful",
1490
- * "message_code": "api_suc_20001",
1491
- * "data": {},
1492
- * "metadata": {
1493
- * "timestamp": "2026-03-26T10:00:00.000Z",
1494
- * "requestId": "07e22004-cb60-4dfc-bc9c-b6f99664dca1",
1495
- * "traceId": "a9f1204c-bb82-41de-b234-7c3a9e120000",
1496
- * "version": "v1",
1497
- * "executionTime": 42,
1498
- * "language": "en-US"
1499
- * }
1500
- * }
1501
- */
1502
- StandardResponse: {
1503
- /** @example success */
1504
- status?: string;
1505
- data?: Record<string, never> | null;
1506
- /** @example Operation successful */
1507
- message?: string | null;
1508
- /** @example api_suc_20001 */
1509
- message_code?: string | null;
1510
- metadata?: Record<string, never> | null;
1511
- error?: components["schemas"]["ErrorResponse"];
1512
- };
1513
- /** ProductPriceUpdateRequest */
1514
- ProductPriceUpdateRequest: {
1515
- /** Amount */
1516
- amount?: number | null;
1517
- currency?: components["schemas"]["ProductCurrency"] | null;
1518
- interval?: components["schemas"]["ProductInterval"] | null;
1519
- /** Interval Count */
1520
- interval_count?: number | null;
1521
- /** Trial Period Days */
1522
- trial_period_days?: number | null;
1523
- /** Initial Amount */
1524
- initial_amount?: number | null;
1525
- /** Compare Price */
1526
- compare_price?: number | null;
1527
- /** Is Active */
1528
- is_active?: boolean | null;
1574
+ /**
1575
+ * Alternate Languages
1576
+ * @description hreflang list: [{"lang":"en-US","url":"https://..."},{"lang":"x-default","url":"..."}]. Always include x-default.
1577
+ */
1578
+ alternate_languages?: {
1579
+ [key: string]: string;
1580
+ }[] | null;
1529
1581
  };
1530
1582
  /**
1531
1583
  * VariantCreateRequest
@@ -1608,31 +1660,178 @@ export interface components {
1608
1660
  } | null;
1609
1661
  };
1610
1662
  /**
1611
- * InventoryAdjustmentRequest
1612
- * @description Request model for inventory adjustment.
1663
+ * Locale
1664
+ * @description Supported locales (language-country format)
1665
+ * @enum {string}
1613
1666
  */
1614
- InventoryAdjustmentRequest: {
1615
- /**
1616
- * Adjustment Type
1617
- * @description add, subtract, or set
1618
- */
1619
- adjustment_type: string;
1620
- /**
1621
- * Quantity
1622
- * @description Quantity to add/subtract/set
1623
- */
1624
- quantity: number;
1625
- /**
1626
- * Reason
1627
- * @description Reason for adjustment
1628
- */
1629
- reason?: string | null;
1667
+ Locale: "en-US" | "es-PR" | "es-ES" | "fr-FR" | "pt-BR" | "de-DE" | "it-IT" | "ja-JP" | "zh-CN";
1668
+ /** ProductPriceUpdateRequest */
1669
+ ProductPriceUpdateRequest: {
1670
+ /** Amount */
1671
+ amount?: number | null;
1672
+ currency?: components["schemas"]["ProductCurrency"] | null;
1673
+ interval?: components["schemas"]["ProductInterval"] | null;
1674
+ /** Interval Count */
1675
+ interval_count?: number | null;
1676
+ /** Trial Period Days */
1677
+ trial_period_days?: number | null;
1678
+ /** Initial Amount */
1679
+ initial_amount?: number | null;
1680
+ /** Compare Price */
1681
+ compare_price?: number | null;
1682
+ /** Is Active */
1683
+ is_active?: boolean | null;
1630
1684
  };
1631
- /** ProductPriceRequest */
1632
- ProductPriceRequest: {
1685
+ /**
1686
+ * ProductCreateRequest
1687
+ * @description Create new product (base record only)
1688
+ * Identity (title, description, images) managed separately via ProductIdentity endpoints
1689
+ */
1690
+ ProductCreateRequest: {
1633
1691
  /**
1634
1692
  * Company Id
1635
- * @description Company ID for gateway configuration
1693
+ * @description Company ID for multi-company orgs
1694
+ * @example 1
1695
+ */
1696
+ company_id?: number | null;
1697
+ /**
1698
+ * @description Product type
1699
+ * @example course
1700
+ */
1701
+ product_type: components["schemas"]["ProductType"];
1702
+ /**
1703
+ * Featured
1704
+ * @description Featured product flag
1705
+ * @default false
1706
+ * @example false
1707
+ */
1708
+ featured: boolean;
1709
+ /**
1710
+ * Is Digital
1711
+ * @description Digital product (default: True)
1712
+ * @default true
1713
+ * @example true
1714
+ */
1715
+ is_digital: boolean;
1716
+ /**
1717
+ * Visibility
1718
+ * @description Visibility: public, private, hidden, unlisted
1719
+ * @default public
1720
+ * @example public
1721
+ */
1722
+ visibility: string | null;
1723
+ /**
1724
+ * Is Org Level
1725
+ * @description Organization-level product (True) vs user-created (False)
1726
+ * @default true
1727
+ * @example true
1728
+ */
1729
+ is_org_level: boolean | null;
1730
+ /**
1731
+ * Staff Id
1732
+ * @description Staff/instructor who delivers this product
1733
+ * @example 5
1734
+ */
1735
+ staff_id?: number | null;
1736
+ /**
1737
+ * Owner Id
1738
+ * @description Owner of the product (user who created/owns it)
1739
+ * @example 10
1740
+ */
1741
+ owner_id?: number | null;
1742
+ /**
1743
+ * Title
1744
+ * @description DEPRECATED: Use ProductIdentity instead
1745
+ * @example Python Programming
1746
+ */
1747
+ title?: string | null;
1748
+ /**
1749
+ * Description
1750
+ * @description DEPRECATED: Use ProductIdentity instead
1751
+ * @example Learn Python from scratch
1752
+ */
1753
+ description?: string | null;
1754
+ };
1755
+ /**
1756
+ * ProductUpdateRequest
1757
+ * @description Update existing product (base record only)
1758
+ */
1759
+ ProductUpdateRequest: {
1760
+ /**
1761
+ * Company Id
1762
+ * @description Company ID
1763
+ */
1764
+ company_id?: number | null;
1765
+ /** @description Product type (rarely changed) */
1766
+ product_type?: components["schemas"]["ProductType"] | null;
1767
+ /** @description Product status */
1768
+ status?: components["schemas"]["ProductStatus"] | null;
1769
+ /**
1770
+ * Featured
1771
+ * @description Featured flag
1772
+ */
1773
+ featured?: boolean | null;
1774
+ /**
1775
+ * Is Digital
1776
+ * @description Digital product flag
1777
+ */
1778
+ is_digital?: boolean | null;
1779
+ /**
1780
+ * Is Active
1781
+ * @description Active status
1782
+ */
1783
+ is_active?: boolean | null;
1784
+ /**
1785
+ * Title
1786
+ * @description DEPRECATED: Use ProductIdentity instead
1787
+ */
1788
+ title?: string | null;
1789
+ /**
1790
+ * Description
1791
+ * @description DEPRECATED: Use ProductIdentity instead
1792
+ */
1793
+ description?: string | null;
1794
+ };
1795
+ /**
1796
+ * VariantPricingInput
1797
+ * @description Pricing data for variant creation.
1798
+ */
1799
+ VariantPricingInput: {
1800
+ /**
1801
+ * Amount
1802
+ * @description Price amount
1803
+ */
1804
+ amount: number | string;
1805
+ /**
1806
+ * Currency
1807
+ * @description Currency code
1808
+ * @default USD
1809
+ */
1810
+ currency: string;
1811
+ /**
1812
+ * Interval
1813
+ * @description one_time, daily, weekly, monthly, yearly
1814
+ * @default one_time
1815
+ */
1816
+ interval: string;
1817
+ /**
1818
+ * Interval Count
1819
+ * @description Billing frequency
1820
+ * @default 1
1821
+ */
1822
+ interval_count: number;
1823
+ /**
1824
+ * Is Active
1825
+ * @description Is pricing active
1826
+ * @default true
1827
+ */
1828
+ is_active: boolean;
1829
+ };
1830
+ /** ProductPriceRequest */
1831
+ ProductPriceRequest: {
1832
+ /**
1833
+ * Company Id
1834
+ * @description Company ID for gateway configuration
1636
1835
  * @example 1
1637
1836
  */
1638
1837
  company_id: number;
@@ -1697,6 +1896,64 @@ export interface components {
1697
1896
  */
1698
1897
  requires_payment_method_upfront: boolean;
1699
1898
  };
1899
+ /**
1900
+ * ProductStatus
1901
+ * @description Product status values (Phase 1 - VARCHAR)
1902
+ * @enum {string}
1903
+ */
1904
+ ProductStatus: "draft" | "published" | "archived" | "review_required" | "deleted";
1905
+ /**
1906
+ * VariantUpdateRequest
1907
+ * @description Request model for updating a variant.
1908
+ */
1909
+ VariantUpdateRequest: {
1910
+ /** Name */
1911
+ name?: string | null;
1912
+ /** Sku */
1913
+ sku?: string | null;
1914
+ /** Barcode */
1915
+ barcode?: string | null;
1916
+ /** Attributes */
1917
+ attributes?: {
1918
+ [key: string]: unknown;
1919
+ } | null;
1920
+ /** Is Default */
1921
+ is_default?: boolean | null;
1922
+ status?: components["schemas"]["VariantStatus"] | null;
1923
+ /** Display Order */
1924
+ display_order?: number | null;
1925
+ /** Metadata */
1926
+ metadata?: {
1927
+ [key: string]: unknown;
1928
+ } | null;
1929
+ /** Track Inventory */
1930
+ track_inventory?: boolean | null;
1931
+ /** Stock Quantity */
1932
+ stock_quantity?: number | null;
1933
+ /** Allow Backorder */
1934
+ allow_backorder?: boolean | null;
1935
+ /** Weight */
1936
+ weight?: number | string | null;
1937
+ /** Length */
1938
+ length?: number | string | null;
1939
+ /** Width */
1940
+ width?: number | string | null;
1941
+ /** Height */
1942
+ height?: number | string | null;
1943
+ };
1944
+ /**
1945
+ * ProductInterval
1946
+ * @enum {string}
1947
+ */
1948
+ ProductInterval: "day" | "week" | "month" | "year";
1949
+ /** Body_createProductImageUpload */
1950
+ Body_createProductImageUpload: {
1951
+ /**
1952
+ * Image File
1953
+ * Format: binary
1954
+ */
1955
+ image_file: string;
1956
+ };
1700
1957
  /** Body_createProductImage */
1701
1958
  Body_createProductImage: {
1702
1959
  /**
@@ -1705,17 +1962,6 @@ export interface components {
1705
1962
  */
1706
1963
  file: string;
1707
1964
  };
1708
- /**
1709
- * ProductPriceType
1710
- * @enum {string}
1711
- */
1712
- ProductPriceType: "free" | "subscription" | "onetime" | "emi";
1713
- InvalidParam: {
1714
- /** @example items[0].quantity */
1715
- field?: string;
1716
- /** @example Input should be greater than or equal to 1 */
1717
- error?: string;
1718
- };
1719
1965
  /**
1720
1966
  * CreateTagRequest
1721
1967
  * @example {
@@ -1725,7 +1971,7 @@ export interface components {
1725
1971
  * "tag_type": "skill"
1726
1972
  * }
1727
1973
  */
1728
- app__routes__products__product_phase2_routes__CreateTagRequest: {
1974
+ CreateTagRequest: {
1729
1975
  /**
1730
1976
  * Tag Name
1731
1977
  * @example Python Programming
@@ -1750,350 +1996,104 @@ export interface components {
1750
1996
  color?: string | null;
1751
1997
  };
1752
1998
  /**
1753
- * VariantImageInput
1754
- * @description Image data for variant creation.
1999
+ * ProductIdentityCreateRequest
2000
+ * @description Create localized product content
1755
2001
  */
1756
- VariantImageInput: {
2002
+ ProductIdentityCreateRequest: {
1757
2003
  /**
1758
- * Image Url
1759
- * @description Image URL
2004
+ * @description Locale (language-country format)
2005
+ * @example en-US
1760
2006
  */
1761
- image_url: string;
2007
+ locale: components["schemas"]["Locale"];
1762
2008
  /**
1763
- * Image Type
1764
- * @description primary, gallery, thumbnail
1765
- * @default primary
2009
+ * Title
2010
+ * @example Python Programming Course
1766
2011
  */
1767
- image_type: string;
2012
+ title: string;
1768
2013
  /**
1769
- * Display Order
1770
- * @description Display order
1771
- * @default 100
2014
+ * Subtitle
2015
+ * @example Master Python in 30 days
1772
2016
  */
1773
- display_order: number;
1774
- };
1775
- /**
1776
- * ProductCreateRequest
1777
- * @description Create new product (base record only)
1778
- * Identity (title, description, images) managed separately via ProductIdentity endpoints
1779
- */
1780
- ProductCreateRequest: {
2017
+ subtitle?: string | null;
1781
2018
  /**
1782
- * Company Id
1783
- * @description Company ID for multi-company orgs
1784
- * @example 1
2019
+ * Description
2020
+ * @example Comprehensive Python course covering basics to advanced topics
1785
2021
  */
1786
- company_id?: number | null;
2022
+ description?: string | null;
1787
2023
  /**
1788
- * @description Product type
1789
- * @example course
2024
+ * Short Description
2025
+ * @example Learn Python from scratch with hands-on projects
1790
2026
  */
1791
- product_type: components["schemas"]["ProductType"];
1792
- /**
1793
- * Featured
1794
- * @description Featured product flag
1795
- * @default false
1796
- * @example false
1797
- */
1798
- featured: boolean;
1799
- /**
1800
- * Is Digital
1801
- * @description Digital product (default: True)
1802
- * @default true
1803
- * @example true
1804
- */
1805
- is_digital: boolean;
1806
- /**
1807
- * Visibility
1808
- * @description Visibility: public, private, hidden, unlisted
1809
- * @default public
1810
- * @example public
1811
- */
1812
- visibility: string | null;
1813
- /**
1814
- * Is Org Level
1815
- * @description Organization-level product (True) vs user-created (False)
1816
- * @default true
1817
- * @example true
1818
- */
1819
- is_org_level: boolean | null;
1820
- /**
1821
- * Staff Id
1822
- * @description Staff/instructor who delivers this product
1823
- * @example 5
1824
- */
1825
- staff_id?: number | null;
1826
- /**
1827
- * Owner Id
1828
- * @description Owner of the product (user who created/owns it)
1829
- * @example 10
1830
- */
1831
- owner_id?: number | null;
1832
- /**
1833
- * Title
1834
- * @description DEPRECATED: Use ProductIdentity instead
1835
- * @example Python Programming
1836
- */
1837
- title?: string | null;
1838
- /**
1839
- * Description
1840
- * @description DEPRECATED: Use ProductIdentity instead
1841
- * @example Learn Python from scratch
1842
- */
1843
- description?: string | null;
2027
+ short_description?: string | null;
2028
+ };
2029
+ ErrorResponse: {
2030
+ /** @example about:blank */
2031
+ type?: string;
2032
+ /** @example GENERIC_ERROR */
2033
+ code?: string;
2034
+ /** @example Client Error */
2035
+ title?: string;
2036
+ /** @example 400 */
2037
+ status?: number;
2038
+ /** @example An error occurred */
2039
+ detail?: string;
2040
+ /** @example /v1/cart/items */
2041
+ instance?: string;
2042
+ extensions?: components["schemas"]["Extensions"];
1844
2043
  };
1845
2044
  /**
1846
- * VariantPricingInput
1847
- * @description Pricing data for variant creation.
2045
+ * ProductCurrency
2046
+ * @enum {string}
1848
2047
  */
1849
- VariantPricingInput: {
1850
- /**
1851
- * Amount
1852
- * @description Price amount
1853
- */
1854
- amount: number | string;
1855
- /**
1856
- * Currency
1857
- * @description Currency code
1858
- * @default USD
1859
- */
1860
- currency: string;
1861
- /**
1862
- * Interval
1863
- * @description one_time, daily, weekly, monthly, yearly
1864
- * @default one_time
1865
- */
1866
- interval: string;
1867
- /**
1868
- * Interval Count
1869
- * @description Billing frequency
1870
- * @default 1
1871
- */
1872
- interval_count: number;
1873
- /**
1874
- * Is Active
1875
- * @description Is pricing active
1876
- * @default true
1877
- */
1878
- is_active: boolean;
1879
- };
2048
+ ProductCurrency: "USD" | "INR" | "EUR" | "GBP";
1880
2049
  /**
1881
- * ProductType
1882
- * @description Product types supported (11 active types)
2050
+ * VariantStatus
2051
+ * @description Variant status enum.
1883
2052
  * @enum {string}
1884
2053
  */
1885
- ProductType: "course" | "package" | "session" | "webinar" | "bundle" | "meeting" | "open_class" | "plan" | "test" | "appointment" | "limit_minutes";
2054
+ VariantStatus: "active" | "inactive" | "out_of_stock" | "discontinued";
1886
2055
  /**
1887
- * SeoUpsertRequest
1888
- * @description Unified SEO upsert schema for all entity types (space, product, service, ...).
1889
- *
1890
- * Locale is NOT in this body — it comes from the URL path:
1891
- * PUT /v1/spaces/admin/{space_id}/seo/{locale}
1892
- * PUT /v1/products/{product_id}/seo/{locale}
1893
- *
1894
- * All fields are optional; supply only what you want to set.
1895
- * Fields absent from the request body are stored as NULL (PUT semantics — full replace).
1896
- *
1897
- * extra='forbid' inherited from BaseSeoFields — unknown keys are rejected.
1898
- * All validators (robots, URL, og_locale, twitter handle, alternate_languages)
1899
- * are also inherited from BaseSeoFields.
2056
+ * AddTagToProductRequest
1900
2057
  * @example {
1901
- * "alternate_languages": [
1902
- * {
1903
- * "lang": "en-US",
1904
- * "url": "https://www.example.com/courses/python"
1905
- * },
1906
- * {
1907
- * "lang": "es-PR",
1908
- * "url": "https://www.example.com/es/cursos/python"
1909
- * },
1910
- * {
1911
- * "lang": "fr-FR",
1912
- * "url": "https://www.example.com/fr/cours/python"
1913
- * },
1914
- * {
1915
- * "lang": "x-default",
1916
- * "url": "https://www.example.com/courses/python"
1917
- * }
1918
- * ],
1919
- * "canonical_url": "https://www.example.com/courses/python",
1920
- * "is_indexable": true,
1921
- * "meta_description": "Explore our full library of Python courses. Beginner to advanced, taught by industry experts.",
1922
- * "meta_keywords": "python, programming, learn python, python course, coding",
1923
- * "meta_title": "Browse Python Courses — Learn at Any Level",
1924
- * "og_description": "From beginner to advanced. Join 50,000+ learners on MyPlatform.",
1925
- * "og_image": "https://cdn.example.com/og/python-courses.jpg",
1926
- * "og_image_alt": "A student learning Python on a laptop in a modern workspace",
1927
- * "og_image_height": 630,
1928
- * "og_image_width": 1200,
1929
- * "og_locale": "en_US",
1930
- * "og_site_name": "MyPlatform",
1931
- * "og_title": "Python Courses — Learn at Your Own Pace",
1932
- * "og_type": "website",
1933
- * "og_url": "https://www.example.com/courses/python",
1934
- * "robots": "index,follow,max-snippet:-1,max-image-preview:large,max-video-preview:30",
1935
- * "structured_data": {
1936
- * "@context": "https://schema.org",
1937
- * "@type": "ItemList",
1938
- * "description": "Browse all Python courses on MyPlatform",
1939
- * "itemListElement": [
1940
- * {
1941
- * "@type": "ListItem",
1942
- * "name": "Python for Beginners",
1943
- * "position": 1,
1944
- * "url": "https://www.example.com/courses/python-beginners"
1945
- * },
1946
- * {
1947
- * "@type": "ListItem",
1948
- * "name": "Advanced Python",
1949
- * "position": 2,
1950
- * "url": "https://www.example.com/courses/python-advanced"
1951
- * }
1952
- * ],
1953
- * "name": "Python Courses",
1954
- * "numberOfItems": 42,
1955
- * "url": "https://www.example.com/courses/python"
1956
- * },
1957
- * "twitter_card": "summary_large_image",
1958
- * "twitter_creator": "@myplatform",
1959
- * "twitter_description": "From beginner to advanced. Join 50,000+ learners.",
1960
- * "twitter_image": "https://cdn.example.com/twitter/python-courses.jpg",
1961
- * "twitter_image_alt": "A student learning Python on a laptop",
1962
- * "twitter_site": "@myplatform",
1963
- * "twitter_title": "Python Courses on MyPlatform"
2058
+ * "display_order": 0,
2059
+ * "tag_id": 5
1964
2060
  * }
1965
2061
  */
1966
- SeoUpsertRequest: {
1967
- /**
1968
- * Og Title
1969
- * @description og:title — headline shown in social link previews. Defaults to the entity title if omitted. Keep ≤95 chars.
1970
- */
1971
- og_title?: string | null;
1972
- /**
1973
- * Og Description
1974
- * @description og:description — subtitle shown in social link previews.
1975
- */
1976
- og_description?: string | null;
1977
- /**
1978
- * Og Image
1979
- * @description og:image — full URL (http/https) of the preview image. Recommended size: 1200×630 px.
1980
- */
1981
- og_image?: string | null;
1982
- /**
1983
- * Og Type
1984
- * @description og:type — content type for social platforms. Values: 'website' | 'article' | 'product' | 'video.other' | 'music.song' | 'profile' | 'book'.
1985
- */
1986
- og_type?: ("website" | "article" | "product" | "video.other" | "music.song" | "profile" | "book") | null;
1987
- /**
1988
- * Twitter Card
1989
- * @description twitter:card — card layout on Twitter/X. Values: 'summary' | 'summary_large_image' | 'app' | 'player'.
1990
- */
1991
- twitter_card?: ("summary" | "summary_large_image" | "app" | "player") | null;
1992
- /**
1993
- * Twitter Title
1994
- * @description twitter:title — overrides og_title for Twitter/X. Keep ≤70 chars.
1995
- */
1996
- twitter_title?: string | null;
1997
- /**
1998
- * Twitter Description
1999
- * @description twitter:description — overrides og_description for Twitter/X.
2000
- */
2001
- twitter_description?: string | null;
2002
- /**
2003
- * Twitter Image
2004
- * @description twitter:image — full URL (http/https). Overrides og_image for Twitter/X. Min 144×144 px, max 4096×4096 px.
2005
- */
2006
- twitter_image?: string | null;
2007
- /**
2008
- * Canonical Url
2009
- * @description <link rel='canonical'>. Full URL (http/https). Set when this page has duplicate content at another URL.
2010
- */
2011
- canonical_url?: string | null;
2012
- /**
2013
- * Robots
2014
- * @description <meta name='robots'>. Comma-separated directives. Simple: index, noindex, follow, nofollow, noarchive, nosnippet, noimageindex, none, all, notranslate, noodp. Parametric: max-snippet:-1, max-snippet:150, max-image-preview:none|standard|large, max-video-preview:-1, max-video-preview:30, unavailable_after:<date>. Examples: 'index,follow' | 'noindex,nofollow' | 'index,follow,max-snippet:-1,max-image-preview:large'.
2015
- */
2016
- robots?: string | null;
2017
- /**
2018
- * Meta Title
2019
- * @description <title> and <meta name='title'>. Keep ≤60 chars for Google display.
2020
- */
2021
- meta_title?: string | null;
2022
- /**
2023
- * Meta Description
2024
- * @description <meta name='description'>. Keep ≤160 chars for Google display.
2025
- */
2026
- meta_description?: string | null;
2027
- /**
2028
- * Meta Keywords
2029
- * @description Comma-separated keywords. Low weight for Google, used for internal search.
2030
- */
2031
- meta_keywords?: string | null;
2032
- /**
2033
- * Og Image Width
2034
- * @description og:image:width in pixels. Recommended: 1200.
2035
- */
2036
- og_image_width?: number | null;
2037
- /**
2038
- * Og Image Height
2039
- * @description og:image:height in pixels. Recommended: 630.
2040
- */
2041
- og_image_height?: number | null;
2042
- /**
2043
- * Og Image Alt
2044
- * @description og:image:alt — alt text for the OG image.
2045
- */
2046
- og_image_alt?: string | null;
2047
- /**
2048
- * Og Url
2049
- * @description og:url — canonical URL used by social platforms.
2050
- */
2051
- og_url?: string | null;
2052
- /**
2053
- * Og Site Name
2054
- * @description og:site_name — your platform name shown in the link preview card.
2055
- */
2056
- og_site_name?: string | null;
2057
- /**
2058
- * Og Locale
2059
- * @description og:locale — language in underscore format: en_US, es_ES, fr_FR.
2060
- */
2061
- og_locale?: string | null;
2062
- /**
2063
- * Twitter Image Alt
2064
- * @description twitter:image:alt — alt text for the Twitter card image.
2065
- */
2066
- twitter_image_alt?: string | null;
2062
+ AddTagToProductRequest: {
2067
2063
  /**
2068
- * Twitter Site
2069
- * @description twitter:site — your Twitter/X account handle. Must start with '@'.
2064
+ * Tag Id
2065
+ * @example 5
2070
2066
  */
2071
- twitter_site?: string | null;
2067
+ tag_id: number;
2072
2068
  /**
2073
- * Twitter Creator
2074
- * @description twitter:creator — author's Twitter/X handle. Must start with '@'.
2069
+ * Display Order
2070
+ * @default 0
2071
+ * @example 0
2075
2072
  */
2076
- twitter_creator?: string | null;
2073
+ display_order: number;
2074
+ };
2075
+ /**
2076
+ * VariantInventoryInput
2077
+ * @description Inventory data for variant creation.
2078
+ */
2079
+ VariantInventoryInput: {
2077
2080
  /**
2078
- * Is Indexable
2079
- * @description System-level indexing override. False → page is treated as noindex regardless of the robots field. True → robots field is authoritative.
2081
+ * Track Inventory
2082
+ * @description Track stock for this variant
2080
2083
  * @default true
2081
2084
  */
2082
- is_indexable: boolean;
2085
+ track_inventory: boolean;
2083
2086
  /**
2084
- * Structured Data
2085
- * @description Schema.org JSON-LD object for Google rich results.
2087
+ * Stock Quantity
2088
+ * @description Initial stock quantity
2086
2089
  */
2087
- structured_data?: {
2088
- [key: string]: unknown;
2089
- } | null;
2090
+ stock_quantity?: number | null;
2090
2091
  /**
2091
- * Alternate Languages
2092
- * @description hreflang list: [{"lang":"en-US","url":"https://..."},{"lang":"x-default","url":"..."}]. Always include x-default.
2092
+ * Allow Backorder
2093
+ * @description Allow orders when out of stock
2094
+ * @default false
2093
2095
  */
2094
- alternate_languages?: {
2095
- [key: string]: string;
2096
- }[] | null;
2096
+ allow_backorder: boolean;
2097
2097
  };
2098
2098
  };
2099
2099
  responses: never;
@@ -7865,7 +7865,7 @@ export interface operations {
7865
7865
  };
7866
7866
  requestBody: {
7867
7867
  content: {
7868
- "application/json": components["schemas"]["app__routes__products__product_phase2_routes__CreateTagRequest"];
7868
+ "application/json": components["schemas"]["CreateTagRequest"];
7869
7869
  };
7870
7870
  };
7871
7871
  responses: {