Interface IInventoryService

  • All Superinterfaces:
    IInterface
    All Known Implementing Classes:
    IInventoryService.Default, IInventoryService.Stub

    public interface IInventoryService
    extends IInterface
    An interface for interacting with the Clover inventory service. The inventory service is a bound AIDL service. Bind to this service as follows:
     
     Intent serviceIntent = new Intent(InventoryIntent.ACTION_INVENTORY_SERVICE_V3);
     serviceIntent.putExtra(Intents.EXTRA_ACCOUNT, CloverAccount.getAccount(context));
     serviceIntent.putExtra(Intents.EXTRA_VERSION, 3);
     context.bindService(serviceIntent);
     
     
    For more information about bound services, refer to the Android documentation: Bound Services .

    You may also interact with this service through the InventoryConnector class, which handles binding and asynchronous invocation of service methods.

    Prefer the InventoryContract over the getter methods in this class, the contract offers better performance and is not subject to large inventory limitations that can cause the getter methods here to fail.

    This service is backed by a local database which is synced to cloud. Thus changes made by calling methods here will be reflected on all of a merchant's devices and on the web.

    Typically a merchant customizes their inventory either by importing data from a spreadsheet or manually entering their inventory data on the web or through the Clover Inventory app.

    Invoking methods through this service generally requires INVENTORY_R and/or INVENTORY_W permission. See Clover app permissions

    Items

    The basic unit of a merchant's inventory is the Item. Items could be goods such as shoes and socks, or services such as a haircut. Merchants that simply take payments on their devices may have no inventory items at all.

    Discounts

    A Discount may be associated with an entire Order subtotal or an individual Item. Discounts are named and given either a percentage value or fixed amount. Discounts appear as choices in Clover Register and are printed on bills.

    Tax Rates

    A TaxRate is used to add taxes to an Order when computing the total. Default tax rates are applied to all items that do not override the defaults. An Item may override the default tax rates and be associated with specific (or no) tax rates.

    Categories

    Categories alter the user interface of the Clover Register app. Items appear in the Clover Register app within categories they are members of. Items may be associated with no, one or many categories. Items are displayed in Clover Register in the order in which they are added to a category. Categories are displayed in Register using the sort order value for each category. Categories are designed only to be use for anything other modifying the user experience of Register, for a more generic organization mechanism see the section on Tags.

    Modifier Groups and Modifiers

    Modifiers are used by Clover Register to make adjustments to associated items. A modifier may or may not increase the price of an item. For example a Burger item may be associated with the Condiment modifier group which contains mayo (no charge) and avocado (additional $2.00). A modifier group may specify that an exact number of modifiers be selected when an item is selected in Clover Register. Modifiers are printed on bills and order receipts.

    Item Groups (aka Item with variants), Attributes and Options

    Item Groups help merchants create and manage large groups of related items. This is described to merchants as an 'Item with variants'. For example a merchants may sell a t-shirt that is available in numerous various sizes and colors. Each of the t-shirt variations is an item and belongs to the t-shirt item group. Once an item group is created it appears in Register as a single button and tapping it brings up a choice of which variation is to be sold. Before adding items to an item group you first need to create the item group, then create attributes ('size', 'color') and then options for each attribute ('small', 'blue'), then associate options with an item and then associate items with an item group. The name of an item which is a member of an item group is automatically generated by the Clover server as a combination of the item group name and the name of all the options associated with that item. It cannot be changed. If the item group name is changed, or if an option name is changed, then the item names will be automatically regenerated. An item can only be a member of a single item group and once it is part of an item group it can never be removed or moved to another item group, it can only be deleted.

    Tags (aka Labels)

    Similarly to how they are described by wikipedia, tags are an informal way of establishing a relationship. Tags currently may be associated with items and printers. When an tag is associated with both an item and a printer that establishes a special relationship that results in those items being printed out on the associated printer when printing an order. Other than that special case there is no effect when an item is associated with a tag. Developers may use tags to establish a relationship meaningful for their needs.

    OrderFees

    An OrderFee is any type of additional fee, which could be associated with an entire Order subtotal. OrderFees are named and given either a percentage value or fixed amount. Order fees could be set default to be applied automatically to an Order. OrderFees appear as choices in Clover Register/Clover Dining and are printed on bills.

    See Also:
    InventoryConnector