@foxy.io/sdk
Version:
Universal SDK for a full server-side and a limited in-browser access to Foxy hAPI.
106 lines (101 loc) • 5.77 kB
TypeScript
import type { Attributes } from './attributes';
import type { Cart } from './cart';
import type { CouponDetails } from './coupon_details';
import type { DiscountDetails } from './discount_details';
import type { DownloadablePurchase } from './downloadable_purchase';
import type { Graph } from '../../core';
import type { ItemCategory } from './item_category';
import type { ItemOptions } from './item_options';
import type { Shipment } from './shipment';
import type { Store } from './store';
import type { Subscription } from './subscription';
import type { Transaction } from './transaction';
export interface Item extends Graph {
curie: 'fx:item';
links: {
/** This resource. */
'self': Item;
/** Store this item belongs to. */
'fx:store': Store;
/** Related shipment info. This link is available in purchased items only. */
'fx:shipment': Shipment;
/** Custom attributes linked to this item. */
'fx:attributes': Attributes;
/** Related transaction info. This link is available in transaction items only. */
'fx:transaction': Transaction;
/** Related subscription info. This link is available only when this item is part of a subscription. */
'fx:subscription': Subscription;
/** Related cart info. This link is available in cart items only. */
'fx:cart': Cart;
/** Various custom options for this item. */
'fx:item_options': ItemOptions;
/** Category this item belongs in. */
'fx:item_category': ItemCategory;
/** Details about coupons linked to this item. */
'fx:coupon_details': CouponDetails;
/** Details about discounts linked to this item. */
'fx:discount_details': DiscountDetails;
/** Related downloadable purchase info. This link is available only when this item has a downloadable purchase associated with it. */
'fx:downloadable_purchase': DownloadablePurchase;
};
props: {
/** The full API URI of the item category associated with this item. */
item_category_uri: string;
/** The name of this item. */
name: string;
/** The price of this item. This represents the base price of the item before any item option modifiers. */
price: number;
/** The number of items in the cart or transaction. When adding products to the cart, if all properties are identical, the quantity will be incremented accordingly. */
quantity: number;
/** Minimum quantity that should be allowed per product, per cart. If the quantity is less than this, the quantity will be updated automatically to this number. */
quantity_min: number;
/** Maximum quantity that should be allowed per product, per cart. If the quantity is more than this, the quantity will be updated automatically to this amount. */
quantity_max: number;
/** This item's per-item weight, used for shipping rate requests. */
weight: number;
/** Item code. Can be used however you would like (internal use, product SKU, etc.). */
code: string;
/** Parent item code. Used if this should be a child product in a bundle. */
parent_code: string;
/** The name of the line item discount if it is included on this item. */
discount_name: string;
/** The type of the line item discount if this item has a discount. */
discount_type: '' | 'quantity_amount' | 'quantity_percentage' | 'price_amount' | 'price_percentage';
/** The details of the line item discount if this item has a discount. See the cart documentation for details on how this value should be formatted. */
discount_details: string;
/** This determines how often this subscription will be processed. The format is a number followed by a date type such as d (day), w (week), m (month), or y (year). You can also use .5m for twice a month. To modify this value for an existing subscription, you must modify the subscription directly. */
subscription_frequency: string;
/** The original date this subscription began or will begin if set in the future. To modify this value for an existing subscription, you must modify the subscription directly. */
subscription_start_date: string;
/** The date for when this subscription will run again. To modify this value for an existing subscription, you must modify the subscription directly. */
subscription_next_transaction_date: string;
/** If set, the date this subscription will end. The subscription will not run on this day. */
subscription_end_date: string;
/** If this item is part of a future subscription (or a subscription originally set up to start in the future), this will be set to true. */
is_future_line_item: boolean;
/** Used for multiship to assign this item to a specific shipment. This value will be the address name of the shipment. */
shipto: string;
/** The full item url for the customer to view this item online. */
url: string;
/** The full image url for the customer to view an image of this item online. */
image: string;
/** The length of this item. This is currently a place holder for future use. */
length: number;
/** The width of this item. This is currently a place holder for future use. */
width: number;
/** The width of this item. This is currently a place holder for future use. */
height: number;
/** As a unix timestamp, this is the point in the future when this item will no longer be valid and will be removed from the cart. */
expires: number;
/** The date this resource was created. */
date_created: string | null;
/** The date this resource was last modified. */
date_modified: string | null;
};
zooms: {
discount_details?: DiscountDetails;
coupon_details?: CouponDetails;
item_category?: ItemCategory;
item_options?: ItemOptions;
};
}