UNPKG

shopifymo

Version:

- Module get product information, customer, order history. - Get customer information by token and authenticate through email login, password

65 lines (56 loc) 2.09 kB
import { DataType, Session, Shopify } from "@shopify/shopify-api"; import { ConfigShopifyMo, OrderStatus } from "./types"; export default class AdminRestApi { shopifyApi: Shopify session: Session constructor(shopifyApi: Shopify, config: ConfigShopifyMo) { this.shopifyApi = shopifyApi const sessionId = this.shopifyApi.session.getOfflineId(config.domain) this.session = new Session({ id: sessionId, shop: config.domain, state: 'state', isOnline: false, accessToken: config.adminApiAccessToken }); } findCustomer = async (customer_id: number | string, fields?: unknown) => { try { let customer = await this.shopifyApi.rest.Customer.find({ session: this.session, id: customer_id }) return customer } catch (error: any) { console.log('findCustomer ' + error.toString()); } return null } findOrderOnCustomer = async (customer_id: number | string, status: OrderStatus = 'any') => { try { let ordersHistory: any = await this.shopifyApi.rest.Customer.orders({ session: this.session, id: customer_id, status }); return ordersHistory } catch (error: any) { console.log('findCustomerOrder ' + error.toString()); } return null } getStorefrontAccessToken = async () => { const client = new this.shopifyApi.clients.Rest({ session: this.session }) const storefrontTokenResponse: any = await client.post({ path: 'storefront_access_tokens', type: DataType.JSON, data: { storefront_access_token: { title: 'This is my test access token', }, }, }); const storefrontAccessToken = storefrontTokenResponse.body['storefront_access_token']['access_token']; return storefrontAccessToken } }