@phasesdk/api-client-for-economic
Version:
e-conomic REST API Library for Node.js is a powerful tool designed to simplify integration with the e-conomic platform for developers building Node.js applications. With this library, developers can effortlessly leverage the full functionality of the e-co
103 lines (102 loc) • 3.2 kB
TypeScript
import { DepartmentalDistribution } from "./DepartmentalDistribution";
import { InvoiceEndpoints } from "./Invoices";
import { ProductGroup } from "./ProductGroups";
import { AuthToken, InvoiceResponse, Pagination } from "../../types/Economic.type";
import { HttpResponse } from "../../types/Http.type";
import RestApi from "../../modules/RestApi";
export type Product = {
barCode: string;
barred: boolean;
costPrice: number;
departmentalDistribution: DepartmentalDistribution;
description: string;
inventory: Inventory;
invoices: Pick<InvoiceEndpoints, "booked" | "drafts">;
lastUpdated: string;
name: string;
productGroup: ProductGroup;
productNumber: string;
recommendedPrice: number;
salesPrice: number;
unit: Unit;
self: string;
};
type Unit = {
name: string;
self: string;
unitNumber: number;
};
type Inventory = {
available: number;
grossWeight: number;
inStock: number;
inventoryLastUpdated: string;
netWeight: number;
orderedByCustomers: number;
orderedFromSuppliers: number;
packageVolume: number;
recommendedCostPrice: number;
};
export type ProductInfo = Pick<Product, "productNumber" | "self">;
export type CreateProduct = {
barCode: string;
barred: boolean;
costPrice: number;
description: string;
name: string;
productGroup: {
productGroupNumber: number;
};
productNumber: string;
recommendedPrice: number;
salesPrice: number;
unit: {
unitNumber: number;
};
};
export type UpdateProduct = Partial<CreateProduct>;
export default class Products extends RestApi {
/**
* @constructor
*/
constructor(props: AuthToken);
/**
* Get collection of products.
* @see https://restdocs.e-conomic.com/#get-products
*
* @param {number} offset
* @param {number} limit
* @returns {Promise<HttpResponse>}
*/
get(skipPages?: number, limit?: number): Promise<HttpResponse<InvoiceResponse<Product[], Pagination>>>;
/**
* Get a specific product.
* @see https://restdocs.e-conomic.com/#get-products-productnumber
* @param {string} productNumber
* @returns {Promise<HttpResponse>}
*/
getFor(productNumber: string): Promise<HttpResponse<Product>>;
/**
* Create a new product.
* @see https://restdocs.e-conomic.com/#post-products
* @param {CreateProduct} product
* @returns {Promise<HttpResponse<Product>>}
*/
createProduct(product: CreateProduct): Promise<HttpResponse<Product>>;
/**
* Update an existing product.
* @see https://restdocs.e-conomic.com/#put-products-productnumber
* @param {number} productNumber
* @param {UpdateProduct} product
* @returns {Promise<HttpResponse<Product>>}
*/
updateProduct(productNumber: number, product: UpdateProduct): Promise<HttpResponse<Product>>;
/**
* Delete an existing product.
* @see https://restdocs.e-conomic.com/#delete-products-productnumber
* @param {number} productNumber
* @returns {Promise<HttpResponse<void>>}
*/
deleteProduct(productNumber: number): Promise<HttpResponse<void>>;
}
export {};