@pintahub/shopify-api 1.8.8 → 1.9.0

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.
@@ -5,6 +5,7 @@ import { AdminOrderAPIInterface } from "./admin/orders";
5
5
  import { APIOptions } from "../interfaces/APIOptions";
6
6
  import { AdminFileAPIInterface } from "./admin/files";
7
7
  import { AdminMenuAPIInterface } from "./admin/menus";
8
+ import { AdminProductsAPIInterface } from "./admin/products-v2";
8
9
  export declare class AdminAPI {
9
10
  private readonly options;
10
11
  private readonly client;
@@ -14,6 +15,7 @@ export declare class AdminAPI {
14
15
  readonly order: AdminOrderAPIInterface;
15
16
  readonly files: AdminFileAPIInterface;
16
17
  readonly menus: AdminMenuAPIInterface;
18
+ readonly products: AdminProductsAPIInterface;
17
19
  constructor(options: APIOptions);
18
20
  private _createClient;
19
21
  }
@@ -8,6 +8,7 @@ const metaobjects_1 = require("./admin/metaobjects");
8
8
  const orders_1 = require("./admin/orders");
9
9
  const files_1 = require("./admin/files");
10
10
  const menus_1 = require("./admin/menus");
11
+ const products_v2_1 = require("./admin/products-v2");
11
12
  class AdminAPI {
12
13
  constructor(options) {
13
14
  this.options = options;
@@ -18,6 +19,7 @@ class AdminAPI {
18
19
  this.order = new orders_1.AdminOrderAPI(this.client);
19
20
  this.files = new files_1.AdminFileAPI(this.client); //Start migration with plurality
20
21
  this.menus = new menus_1.AdminMenuAPI(this._createClient('2024-07'));
22
+ this.products = new products_v2_1.AdminProductsAPI(this._createClient('2024-10'));
21
23
  }
22
24
  _createClient(apiVersion = '2023-10') {
23
25
  const { shop, accessToken } = this.options;
@@ -3,6 +3,7 @@ import { ActionBuilder } from "../../ActionBuilder";
3
3
  export interface SearchProductsInput extends Record<string, any> {
4
4
  limit?: number;
5
5
  after?: string;
6
+ query?: string;
6
7
  }
7
8
  export interface SearchProductsOutput extends Record<string, any> {
8
9
  items: any[];
@@ -15,7 +15,7 @@ const handleErrors_1 = require("../../../utils/handleErrors");
15
15
  class SearchProducts extends ActionBuilder_1.ActionBuilder {
16
16
  run(args) {
17
17
  return __awaiter(this, void 0, void 0, function* () {
18
- const { after, limit } = Object.assign({}, args);
18
+ const { after, limit, query: queryStr } = Object.assign({}, args);
19
19
  const vLimit = limit || 10;
20
20
  const query = `
21
21
  {
@@ -24,6 +24,7 @@ class SearchProducts extends ActionBuilder_1.ActionBuilder {
24
24
  sortKey: UPDATED_AT
25
25
  reverse: true
26
26
  ${after ? `after: "${after}"` : ''}
27
+ ${queryStr ? `query: "${queryStr}"` : ''}
27
28
  ) {
28
29
  nodes {
29
30
  id
@@ -0,0 +1,15 @@
1
+ import { AdminApiClient } from "@shopify/admin-api-client/dist/ts/graphql/types";
2
+ import { ActionBuilder } from "../../ActionBuilder";
3
+ import { InventoryItemInput } from "../../../input/InventoryItemInput";
4
+ export interface UpdateVariantInput extends Record<string, any> {
5
+ id: string;
6
+ compareAtPrice?: string;
7
+ price?: string;
8
+ inventoryItem?: InventoryItemInput;
9
+ }
10
+ export interface UpdateVariantOutput extends Record<string, any> {
11
+ id: string;
12
+ }
13
+ export declare class UpdateVariant extends ActionBuilder<AdminApiClient, UpdateVariantInput, UpdateVariantOutput> {
14
+ run(args: UpdateVariantInput): Promise<UpdateVariantOutput>;
15
+ }
@@ -0,0 +1,54 @@
1
+ "use strict";
2
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
+ return new (P || (P = Promise))(function (resolve, reject) {
5
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
9
+ });
10
+ };
11
+ Object.defineProperty(exports, "__esModule", { value: true });
12
+ exports.UpdateVariant = void 0;
13
+ const ActionBuilder_1 = require("../../ActionBuilder");
14
+ const getGlobalID_1 = require("../../../utils/getGlobalID");
15
+ const handleErrors_1 = require("../../../utils/handleErrors");
16
+ class UpdateVariant extends ActionBuilder_1.ActionBuilder {
17
+ run(args) {
18
+ return __awaiter(this, void 0, void 0, function* () {
19
+ const { id } = args;
20
+ const globalId = (0, getGlobalID_1.getGlobalID)(id, 'ProductVariant');
21
+ const vArgs = Object.assign({}, args, { id: globalId });
22
+ const query = `
23
+ mutation productVariantUpdate($input: ProductVariantInput!) {
24
+ productVariantUpdate(input: $input) {
25
+ productVariant {
26
+ id
27
+ productId
28
+ compareAtPrice
29
+ price
30
+ mediaId
31
+ options
32
+ position
33
+ taxable
34
+ }
35
+ userErrors {
36
+ message
37
+ field
38
+ }
39
+ }
40
+ }
41
+ `;
42
+ const { data, errors } = yield this.client.request(query, {
43
+ variables: {
44
+ input: vArgs
45
+ }
46
+ });
47
+ yield (0, handleErrors_1.handleErrors)(errors);
48
+ const { productVariantUpdate } = Object.assign({}, data);
49
+ const { productVariant } = Object.assign({}, productVariantUpdate);
50
+ return Object.assign({}, productVariant);
51
+ });
52
+ }
53
+ }
54
+ exports.UpdateVariant = UpdateVariant;
@@ -0,0 +1,14 @@
1
+ import { AdminApiClient } from "@shopify/admin-api-client/dist/ts/graphql/types";
2
+ import { ActionBuilder } from "../../ActionBuilder";
3
+ import { ProductVariantsBulkInput } from "../../../input/ProductVariantsBulkInput";
4
+ export interface UpdateVariantsInput extends Record<string, any> {
5
+ productId: string;
6
+ variants: Array<ProductVariantsBulkInput>;
7
+ }
8
+ export interface UpdateVariantsOutput extends Record<string, any> {
9
+ id: string;
10
+ variants: Array<Record<string, any>>;
11
+ }
12
+ export declare class UpdateVariants extends ActionBuilder<AdminApiClient, UpdateVariantsInput, UpdateVariantsOutput> {
13
+ run(args: UpdateVariantsInput): Promise<UpdateVariantsOutput>;
14
+ }
@@ -0,0 +1,73 @@
1
+ "use strict";
2
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
+ return new (P || (P = Promise))(function (resolve, reject) {
5
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
9
+ });
10
+ };
11
+ Object.defineProperty(exports, "__esModule", { value: true });
12
+ exports.UpdateVariants = void 0;
13
+ const ActionBuilder_1 = require("../../ActionBuilder");
14
+ const getGlobalID_1 = require("../../../utils/getGlobalID");
15
+ const handleErrors_1 = require("../../../utils/handleErrors");
16
+ class UpdateVariants extends ActionBuilder_1.ActionBuilder {
17
+ run(args) {
18
+ return __awaiter(this, void 0, void 0, function* () {
19
+ const { productId, variants } = args;
20
+ const vVariants = variants.map(variant => {
21
+ const { id } = variant;
22
+ return Object.assign(Object.assign({}, variant), { id: (0, getGlobalID_1.getGlobalID)(id, 'ProductVariant') });
23
+ });
24
+ const vArgs = Object.assign({}, args, {
25
+ productId: (0, getGlobalID_1.getGlobalID)(productId, 'Product'),
26
+ variants: vVariants
27
+ });
28
+ const query = `
29
+ mutation productVariantsBulkUpdate($productId: ID!, $variants: [ProductVariantsBulkInput!]!) {
30
+ productVariantsBulkUpdate(productId: $productId, variants: $variants) {
31
+ product {
32
+ id
33
+ }
34
+ productVariants {
35
+ id
36
+ title
37
+ availableForSale
38
+ price
39
+ compareAtPrice
40
+ inventoryItem {
41
+ id
42
+ measurement {
43
+ weight {
44
+ value
45
+ unit
46
+ }
47
+ }
48
+ }
49
+ taxable
50
+ position
51
+ createdAt
52
+ updatedAt
53
+ }
54
+ userErrors {
55
+ message
56
+ field
57
+ }
58
+ }
59
+ }
60
+ `;
61
+ const { data, errors } = yield this.client.request(query, {
62
+ variables: vArgs
63
+ });
64
+ yield (0, handleErrors_1.handleErrors)(errors);
65
+ const { productVariantsBulkUpdate } = Object.assign({}, data);
66
+ const { product, productVariants } = Object.assign({}, productVariantsBulkUpdate);
67
+ return Object.assign({}, product, {
68
+ variants: productVariants
69
+ });
70
+ });
71
+ }
72
+ }
73
+ exports.UpdateVariants = UpdateVariants;
@@ -0,0 +1,10 @@
1
+ import { AdminApiClient } from "@shopify/admin-api-client/dist/ts/graphql/types";
2
+ import { APIBase } from "../../APIBase";
3
+ import { UpdateVariantsInput, UpdateVariantsOutput } from "./UpdateVariants";
4
+ export interface AdminProductsAPIInterface {
5
+ updateVariants(args: UpdateVariantsInput): Promise<UpdateVariantsOutput>;
6
+ }
7
+ export declare class AdminProductsAPI extends APIBase<AdminApiClient> implements AdminProductsAPIInterface {
8
+ private _runAction;
9
+ updateVariants(args: UpdateVariantsInput): Promise<UpdateVariantsOutput>;
10
+ }
@@ -0,0 +1,28 @@
1
+ "use strict";
2
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
+ return new (P || (P = Promise))(function (resolve, reject) {
5
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
9
+ });
10
+ };
11
+ Object.defineProperty(exports, "__esModule", { value: true });
12
+ exports.AdminProductsAPI = void 0;
13
+ const APIBase_1 = require("../../APIBase");
14
+ const UpdateVariants_1 = require("./UpdateVariants");
15
+ class AdminProductsAPI extends APIBase_1.APIBase {
16
+ _runAction(Action, args) {
17
+ return __awaiter(this, void 0, void 0, function* () {
18
+ const action = new Action(this.client);
19
+ return action.run(args);
20
+ });
21
+ }
22
+ updateVariants(args) {
23
+ return __awaiter(this, void 0, void 0, function* () {
24
+ return this._runAction(UpdateVariants_1.UpdateVariants, args);
25
+ });
26
+ }
27
+ }
28
+ exports.AdminProductsAPI = AdminProductsAPI;
@@ -0,0 +1,5 @@
1
+ import { InventoryItemMeasurementInput } from "./InventoryItemMeasurementInput";
2
+ export interface InventoryItemInput extends Record<string, any> {
3
+ cost?: string;
4
+ measurement?: InventoryItemMeasurementInput;
5
+ }
@@ -0,0 +1,2 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
@@ -0,0 +1,4 @@
1
+ import { WeightInput } from "./WeightInput";
2
+ export interface InventoryItemMeasurementInput extends Record<string, any> {
3
+ weight: WeightInput;
4
+ }
@@ -0,0 +1,2 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
@@ -0,0 +1,9 @@
1
+ import { InventoryItemInput } from "./InventoryItemInput";
2
+ export interface ProductVariantsBulkInput extends Record<string, any> {
3
+ id: string;
4
+ compareAtPrice?: string;
5
+ price?: string;
6
+ taxable?: boolean;
7
+ mediaId?: string;
8
+ inventoryItem: InventoryItemInput;
9
+ }
@@ -0,0 +1,2 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
@@ -0,0 +1,5 @@
1
+ import { WeightUnit } from "./WeightUnit";
2
+ export interface WeightInput extends Record<string, any> {
3
+ unit: WeightUnit;
4
+ value: number;
5
+ }
@@ -0,0 +1,2 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
@@ -0,0 +1,6 @@
1
+ export declare enum WeightUnit {
2
+ GRAMS = "GRAMS",
3
+ KILOGRAMS = "KILOGRAMS",
4
+ OUNCES = "OUNCES",
5
+ POUNDS = "POUNDS"
6
+ }
@@ -0,0 +1,10 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.WeightUnit = void 0;
4
+ var WeightUnit;
5
+ (function (WeightUnit) {
6
+ WeightUnit["GRAMS"] = "GRAMS";
7
+ WeightUnit["KILOGRAMS"] = "KILOGRAMS";
8
+ WeightUnit["OUNCES"] = "OUNCES";
9
+ WeightUnit["POUNDS"] = "POUNDS";
10
+ })(WeightUnit = exports.WeightUnit || (exports.WeightUnit = {}));
@@ -26,7 +26,10 @@ const handleErrors = (errors) => __awaiter(void 0, void 0, void 0, function* ()
26
26
  }
27
27
  // console.log('errors', errors)
28
28
  if (message) {
29
- throw new Error(message);
29
+ const error = new Error(message);
30
+ // @ts-ignore
31
+ error.graphQLErrors = graphQLErrors;
32
+ throw error;
30
33
  }
31
34
  });
32
35
  exports.handleErrors = handleErrors;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@pintahub/shopify-api",
3
- "version": "1.8.8",
3
+ "version": "1.9.0",
4
4
  "description": "",
5
5
  "types": "dist/index.d.ts",
6
6
  "main": "dist/index.js",