The Store fieldtype is installed automatically as part of the Expresso Store install. The fieldtype is used to store all of the core product information needed for pricing individual products, calculating inventory, and managing product variations. The field can be assigned to multiple ExpressionEngine Channels, giving you endless flexibility in how you setup and manage your store.
Technical Note:
The Store fieldtype does not store product data directly in the custom field. Instead, it saves a list of SKUs for search purposes. All product data is managed by the Store module’s own database tables. This means that while the fieldtype appears as a custom field in your channel, the actual product information (price, stock, modifiers, etc.) is handled and retrieved by the Store addon itself.
The Store fieldtype provides several settings that can be configured when adding the field to a channel:
Enable custom prices: Allows customers to specify a custom price for a product when purchasing. This is useful for products where the price may be determined by the customer (e.g., donations, pay-what-you-want items).
Enable custom weights: Allows customers to specify custom weight and dimensions for a product. This is useful for products where shipping calculations depend on user-supplied measurements.
These options can be enabled or disabled in the fieldtype settings when configuring the field in the ExpressionEngine control panel. They affect how the fieldtype behaves on the front end and what input is accepted from customers.
The base price of the product. The final cost may be adjusted based on discounts, sales, and product modifiers.
Length of a physical item. Used in shipping calculations and product descriptions. The unit of measure is set in the Expresso Store settings.
Width of a physical item. Used in shipping calculations and product descriptions. The unit of measure is set in the Expresso Store settings.
Height of a physical item. Used in shipping calculations and product descriptions. The unit of measure is set in the Expresso Store settings.
Weight of a physical item. Used in shipping calculations and product descriptions. The unit of measure is set in the Expresso Store settings.
An additional amount to be added to the shipping charge calculation for this item. This might be used in the case of extra large or fragile items.
If checked, shipping costs will be free for this item.
Product modifiers allow you to have different variations of a product, such as size, color, etc. Those variations can have price modifications associated and the stock can be counted separately for different variations.
Note: Modifiers can also be created using the input parameter in the product tag. This is particularly useful when you need to apply the same modifier across all of your products.
input:size="Size"
Modifiers can be classified into 3 types: Variation, Variation (Single SKU), or Text.
The Variation modifier type will use a separate SKU for each variation. This allows for more detailed tracking of sales and inventory, as each variation has a unique Stock Keeping Unit.
The Variation (Single SKU) modifier type uses a single SKU for all of the product modifiers. This simplified approach may be preferable in cases where inventory tracking per variation is not necessary.
The Text modifier option allows the buyer to add additional details to their purchase in a textarea field, which is then submitted along with all of the other purchase data.
The name of the modifier. For example: Color or Size.
Any instructions to include on the purchase page, such as ‘Pick one’.
The different variations available, and any price adjustments that should be made for that variation.
How Modifiers Affect SKUs and Inventory
Modifiers of type Variation create a separate SKU for each possible combination of modifier options. This means each variation (e.g., a “Red, Large” shirt) is tracked individually for inventory and sales. Stock levels and sales data are managed per SKU.
Modifiers of type Variation (Single SKU) use a single SKU for all variations, so inventory is tracked at the product level, not per variation.
The Stock fields are used for inventory tracking.
In order to track inventory, at least one SKU must be specified. This is the unique identifier for the product. If there are product modifiers using the Variation modifier type, each variation will require its own SKU.
If the Limit Stock checkbox is checked, Expresso Store will track the number of items available based on the value in the accompanying text field. When no more stock is available, it will limit the ability to purchase that item. As more inventor is added, the amount of stock will need to be manually adjusted in the text field to reflect the new amount of stock available.
The minimum order quantity specifies the minimum count of the item to make a purchase.
The Store fieldtype must be wrapped inside a Product Tag when displaying details as part of the ExpressionEngine Channel Entries tag.
To display product details from the Store fieldtype in your templates, you must use the Product Tag. This tag provides access to all product data managed by the Store addon.
For a full list of available variables and advanced usage, see the Product Tag documentation.