shopperman
Version:
shopping cart ui for shopify stores
47 lines (46 loc) • 1.72 kB
TypeScript
import { OmniStorage } from "omnistorage";
import { Product } from "../stores/product";
import { ShopifySettings } from "../shopify";
import { CartText } from "../components/cart/cart-interfaces";
import { CurrencyControlOptions, ElementAttributes } from "../stores";
/**
* Product details that are not related to shopify
*/
export interface ProductEvaluation {
quantityMin: number;
quantityMax: number;
precision?: number;
attributes?: ElementAttributes;
}
/** Function to evaluate non-shopify product details */
export declare type ProductEvaluator = (product: Product) => ProductEvaluation;
/**
* Ecommerce shopify store options
* - display multiple collections on a single page
*/
export interface EcommerceShopifyStoreOptions {
/** Storage facility for cart items */
omniStorage: OmniStorage;
/** Currency conversion control options */
currency: CurrencyControlOptions;
/** Shopify store authentication settings */
shopify: ShopifySettings;
/** Dom element in which to render the cart area */
cartArea: HTMLElement;
/** Collections to load and display */
collections: {
/** Collection identifier */
collectionId: string;
/** Dom element in which to render this collection's product displays */
productsArea?: HTMLElement;
}[];
/** Detailed options for the shopperman cart system */
cartSystem: {
/** Whether or not to open the checkout url in a new window */
checkoutInNewWindow: boolean;
/** Text labels throughout the cart system display */
cartText?: CartText;
};
/** Function to evaluate non-shopify properties for each product */
evaluator: ProductEvaluator;
}