Tags

Shortlist has the following main tags. You'll need these for pretty much every implementation.

{exp:shortlist:item}
The main tag pair for adding for removing an item. Also allows you to see if an item is already in a user's list.
{exp:shortlist:view}
Main tag pair for looping over a user's list. Also available within the :lists tag as {lists}..{/lists}

{exp:shortlist:lists} New in 2.0
Tag pair for listing a user's lists. Each listed sub-list has all the item data available too
{exp:shortlist:add_list} New in 2.0
Direct link to create a new list for a user. This will create a new empty list, use it just like the :add tag.

Also, there's a handful of helper tags. These mostly replicate functionality that exists within the main tags, but as a standalone option. Useful in a pinch.

{exp:shortlist:add}
Single tag for creating an add to list link. Also available within the :item tag pair as {add_url}
{exp:shortlist:remove}
Single tag for creating a remove from list link. Also available within the :item tag pair as {remove_url}.
{exp:shortlist:auto_add} New in 3.1
Automatically adds an item to the list for the user if it's not already in the list. Follows the same logic as the :add tag.
{exp:shortlist:auto_remove} New in 3.1
Automatically removes an item from a list. Follows the same logic as the :remove tag.
{exp:shortlist:auto_add_list} New in 2.3
Automatically creates the corresponding list for the user if it doesn't already exist. Follows the same logic as the :add_list tag.
{exp:shortlist:clear}
Single tag for creating a clear list link. Also available within the :item tag pair as {clear_url}
{exp:shortlist:clone_url}
Single tag for creating a clone list link. Also available within the :item tag pair as {clone_url}.
{exp:shortlist:item_count}
Single tag simple tag for returning the current count of items in a user's list
{exp:shortlist:clear_all} New in 2.0
Single tag for creating a 'Clear All Lists' link. This completely empty all of the current user's lists.
{exp:shortlist:remove_list} New in 2.0
Single tag for creating a 'Remove List' link. This will remove a list, and all the contained items. Also available within a list as {remove_list_url}.
{exp:shortlist:remove_all} New in 2.0
Single tag for creating a 'Remove Everything' link. This will clear absolutely everything for a user. All lists and items will be cleared.
{exp:shortlist:edit_list_form} New in 2.0
Creates a wrapper for displaying an Edit List form. Can be used to let the user change the title and pretty url of one of their lists.
{exp:shortlist:auto_clear} Added in 2.2
A tag to automatically clear a list as soon as loaded. Great for automatically clearing a list when a user visits a certain page. Can optionally redirect also
{exp:shortlist:auto_clear_all} Added in 2.2
As :auto_clear, but clears all lists, not just a single list.
{exp:shortlist:item_in_list} Added in 2.3
A useful helper tag to let you test to see if an item is in a specific list for the current user.
{exp:shortlist:list_count} Added in 2.4
A standalone tag to return the total list count for the current user
{exp:shortlist:add_form} Added in 2.5
A form version of the :add tag, to let you assign params dynamically.
{exp:shortlist:remove_form} Added in 2.5
A form version of the :remove tag, to let you assign params dynamically.
{exp:shortlist:add_list_form} Added in 2.5
A form version of the :add_list tag, to let you assign params dynamically, really handy if you want let your users assign a list name directly on list creation
{exp:shortlist:item_form} Added in 3.0
A form tag to allow your users to add any extra content to items. Can be used for things like notes, quantities, ratings etc.. Can be used to update just one list item, or many at once, depending on how you name the form inputs
{exp:shortlist:store_track_item} Added in 3.4.0
A tag to allow items to be tracked when used in conjunction with Expresso Store
{exp:shortlist:stats} Added in 3.5.0
A tag to let you get aggregated stats about shortlist usage on the site.

{exp:shortlist:item}

This is the main tag pair for adding for removing items from a user's list. There are two usage options for it - Internal (native EE entries) and External Content.

Tag Parameters

Internal items require the following parameters :

entry_id
The entry id of the entry. *Required for internal content

To use with external content the following parameters are available :

is_external
You must pass a value of 'yes' to indicate this is an external item
title or attr:title
The title for the item *Required for external content
unique_attr
The name of the 'attr:..' parameter to use as a unique identifier. *Required for external content
attr:..
Attribute parameters can be used to pass any content you'd like for an item. You can pass as many 'attr:..' style parameters and they will be recorded against this item.
extra:.. New in 3.0
Extra default item 'extra:..' values that can be set when the item is added to the a user's list using the {add_url} or {list_add_url} tag.

Examples for the usage of the :item tag is also available here.

Tag Variables

Within the :item tag to following variables are available :

{in_list}
Indicator if the current item is already in a user's list.
{add_url}
The url to add the current item to a user's list.
{remove_url}
The url to remove the current item from a user's list.
{clear_url}
The url to remove to clear out all items from this user's list.
{not_in_any_list} Added in 2.3
Indicator if this item isn't in any of the user's lists
{entry_real_date} Added in 3.1
The entry's real entry_date value, instead of the date it was added to the list (if it was added)
{lists} New in 2.0
Tag pair to loop over currently available user lists. Within this pair are extra variable for interacting with specific lists :
{list_title}
The list title for this list
{list_name}
The list name for this list
{list_add_url}
The same as {add_url} but directly adding to this list instead. (Useful if this list isn't default)
{list_remove_url}
The same as {remove_url} but directly removing from this list instead. (Useful if this list isn't default)
{list_clear_url}
The same as {clear_url} but directly clearing this list instead. (Useful if this list isn't default)
{default_list}
Marker for testing if this list is the default list
{in_this_list}
Marker for testing if this item is in this list
{extra:..} New in 3.0
Any extra data stored against the item. This is open-ended, so you can have variables like {extra:notes}, {extra:qty} or {extra:XXX} where XXX can be any value. Users can update these values using the {exp:shortlist:item_form} tag.

Note: Shortlist will automatically parse out any variables that look like {extra:..} to protect the tag output. The upshot of this is that any variable like '{extra:test}' or '{extra:not_a_real_value}' will return a blank string, if the user hasn't explicitly set a value

{exp:shortlist:view}

The main tag pair for viewing the contents of a user's list. You can use this tag pair without any parameters to simply list a user's default list contents. All of the parameters are optional.

Tag Parameters

list_id
Optionally used to view lists other than the current user's list. Use in conjunction with the {list_id} variable to allow users to share lists
list_name Added in 2.4
Optionally used to view lists other than the current user's list. Filtering by {list_name}
list_url_title
Optionally used to view lists other than the current user's list, this time filtering by the user set list_url_title value.
list_url_title_start
Filter the returned lists to only those with matching 'list_url_title_start' values. Especially useful if you want to create a viewable page of a group of lists. Can be neatly paired with 'list_url_title_end' to view only a single list via neat url
list_url_title_end
Filter the returned lists to only those with matching 'list_url_title_end' values. Especially useful if you want to create a viewable page of a group of lists. Pair up with 'list_url_title_start' too.
return
Optionally set the return link for any act link variables such as {add_url} and {remove_url}
list_orderby
Optionally set the order of the returned lists in the {lists}..{/lists} pair
list_sort
Optionally set the sort direction of the returned lists in the {lists}..{/lists} pair
list_owner_id New in 3.3.0
Optionally specify a different list owner. If this is added shortlist will try to display the details of lists for the other member. Be aware of potential privacy issues when using this option.

Note: The :view tag is really a channel:entries loop in disguise. Most of the parameters available on the channel:entries tag are also available here.

Tag Variables

You can use the :view loop as you would a channel:entries loop. If the content you're listing is internal all the normal field and field tags will work here too.

Also available are the following variables :

{list_id}
The shareable id for this list. Use this id to create links for sharing a list. Use in conjunction with the list_id parameter also available on this tag
{list_name}
The list_name for this list
{list_description} Added in 2.4
The list_description for this list
{item_id}
The id of this item in a user's shortlist
{is_external}
Indicator if the current item is an externally sourced item
{is_internal}
The reverse of the is_external indicator. Just in-case.
{is_owner}
A marker for use when a user is viewing a shared list
{in_list}
A marker to see if this item is in the current user's list. Used when viewing a shared list
{add_url}
Url to allow a user to add an item to their list.

Note: This is only of use if the list currently being viewed is not owned by this user (ie. {is_owner} is false)

{remove_url}
Url to allow a user to remove an item from their list.

Note: If the list is owned by the current user this will let them remove it from their list. If the list is owned by a different user (ie. {is_owner} is false) this will allow them to remove it from their own list (assuming they have it in their own list. That can be checked with the {in_list} variable)

{clone_url}
Url to allow a user to clone an entire list. This will copy every item in the current list to the user's list. Any duplicates (ie. entries already in a user's list will be skipped).

Note: This will return an empty string if the current list is owned by the this user (ie. {is_owner} is true).

{remove_list_url} New in 2.0
The url to remove this list (and with it all contained items). This is also available as {exp:shortlist:remove_list}.
{make_default_url} New in 2.0
The url to set this list as the default list.
{clear_list_url} New in 2.0
The url to clear the entire contents of this list.
{is_default} New in 2.0
Marker for testing if this list is the default list.
{attr:..}
Any 'attr:..' format parameters that were added on the :view or :add tag when the item was added to the user's list. Only available on external items
{shortlist_unique_val}
The value indicated as a unique marker when the item was added to the list. This is the field shortlist uses to check if an item is already in a user's list. Only available on external items

These are all in addition to the standard entry variables like {title}, {entry_id}, {entry_date} etc..

{exp:shortlist:lists} New in 2.0

The :lists tag is a real workhorse. You can use it to loop over a user's lists and display the contents of those lists.

Tag Params

All the tag params on the tag are optional, but you can some really neat things with them.

list_id
Specify a specific list to view by the list_id
list_name
Specify a specific list to view by the list_name
list_url_title
Specify a specific list to view by the list_url_title
list_url_title_start
Specify a group of lists to view by list_url_title_start
list_url_title_end
Specify a group of lists to view by list_url_title_end
orderby
Order the returned lists by this variable. All the main variables on lists can be ordered by. This defaults to list_id_int, ie. chronological.
sort
Change the sort order. Pass 'desc' or 'asc'. Defaults to 'asc'
return
Optionally set the return link for any act link variables such as {make_default_list} and also all act link variables in the sub {items}..{items} loop

Tag Variables

{list_title}
The user supplied title for the list. This will default to a standard value for new lists, but can be changed by the user using the {exp:shortlist:edit_list_form} tag form.
{list_description} Added in 2.4
The user supplied description for this list. Editable using the {exp:shortlist:edit_list_form} tag form.
{list_count}
The number of lists a user currently has. If a user has never interacted with Shortlist, this will be zero, otherwise any value 1+. If the user has any items, this will be 1+.
{list_id}
The list_id for the current list. Great for building up a link to view a single list.
{list_name} Added in 2.4
The developer supplied list_name for the list (if specified)
{list_url_title}
The list_url_title for the current list. Only set if the user has gone through and edited the title of the list via the :edit_list_form. Great for creating simple sharing urls. Pair this with the parameter of the same name to filter down the lists to display later.
{list_url_title_start}
An advanced option for creating shareable urls. Paired with the list_url_title_end variable, you can create neater sharing urls that don't require such stringent uniqueness. Checkout the examples on sharing to see their usage.
{list_url_title_end}
The list_url_title_end for the current list. Works with list_url_title_start as explained above.
{is_default}
An indicator for testing if the current list is the default. There will always be a default list. If a list is the default, as a user adds new items (ie. using the {exp:shortlist:add} tag) and a specific list_id is not specified, items will be added to this list. A user can change the default list using the {make_default_url} variable.
{make_default_url}
Returns a url to allow the user to set this list as their default. If the list is already default, will return an empty string.
{remove_list_url}
The url to remove this list (and with it all contained items). This is also available as {exp:shortlist:remove_list}.
{clear_list_url}
Url to empty out a list of it's items. This is also available as {exp:shortlist:clear_list}.
{items}
The items tag pair lists the actual items from within the list. This has all the same variables available as the direct {exp:shortlist:view} tag for this list.

If you never plan on allowing users to have multiple lists, you can skip this tag entirely, and Shortlist will behave perfectly well. To find out more about using the :lists tag and working with multiple lists, checkout the examples of working with lists.

{exp:shortlist:add_list} New in 2.0

The :add_list tag returns a link that will create a new list for the current user. Unless supplied as part of the tag, the list will be created with a default title and set to be the new default list. You can change that using the supplied tag parameters, also all these values are editable by the user after the list is created.

Tag Parameters

list_title
A default title for the new list. If none is passed this will default to 'New List'. Also if there is already a list of the same name, a number will in brackets will be appended. ie. 'New List (2)', 'New List(3)'. The list title can be updated later by the user.
list_name Added 2.4
An optional name for the list. List names are different than list_titles in that they're specified by the developer, and can be used to filter and act on lists. It's especially good if you're setting up lists automatically using the :auto_add tag. List names can't be changed by the user, and always match exactly what was passed during list creation
make_default 'yes' or 'no'
Param to decide whether to set this new list as default. Defaults to 'yes'. Pass 'no' to flip.
list_url_title
Optional param to set a default {list_url_title} value directly on list creation. This value will be cleaned using the standard url clean up methods for uniqueness
list_url_title_start
Optional param to set a default {list_url_title_start} value directly on list creation. This value will be cleaned using the standard url clean up methods, duplicates are allowed
list_url_title_end
Optional method to set a default {list_url_title_end} value directly on list creation. This value will be cleaned using the standard url clean up methods, duplicates are allowed
return
An optional url to return to after the action is complete. If none is supplied, will return to the current page.

Note: Unless otherwise set, new lists will automatically become the default list for the user. A user can change their default list with the {make_default_url} variable in the :lists tag, and can directly add items to a non-default list at any point too.

{exp:shortlist:add}

The :add tag is a quick helper single tag that can be used to create a url to add an item to a user's list, without going into the tag pair as with the :item tag.

Note: The same tags and parameters on the :item tag apply to the :add tag.

In addition, there are four 'remove_from_' parameters that might come in handy. If specified, this item will be automatically removed from the matching list, in the same action as being added to a different list. You can specify the list to remove from using the 'list_id', 'list_url_title', 'list_url_title_start' and 'list_url_title_end'. The parameters follow a regular naming pattern to match :

Parameters

remove_from_list_name Added in 2.4
Specify the list to remove from by list_name
remove_from_list_id Added in 2.3
Specify the list to remove from by list_id
remove_from_list_url_title Added in 2.3
Specify the list to remove from by list_url_title
remove_from_list_url_title_start Added in 2.3
Specify the list to remove from by list_url_title_start
remove_from_list_url_title_end Added in 2.3
Specify the list to remove from by list_url_title_end

You can specify a specific list to add an item to directly with a parameter. Any of the 'list_name', 'list_id', 'list_url_title', 'list_url_title_start' and 'list_url_title_end' values can be used to specify that list.

list_name Added in 2.4
Specify the list to add to by list_name
list_id Added in 2.3
Specify the list to add to by list_id
list_url_title Added in 2.3
Specify the list to add to by list_url_title
list_url_title_start Added in 2.3
Specify the list to add to by list_url_title_start
list_url_title_end Added in 2.3
Specify the list to add to by list_url_title_end

{exp:shortlist:remove}

The :remove tag is a quick helper single tag that can be used to create a url to remove an item from a user's list, without going into the tag pair as with the :item tag.

Note: The exact same tags (and requirements) on the :item tag apply to the :remove tag.

{exp:shortlist:auto_add} Added in 3.1

Works like the :add tag, but adds the item automatically in the background. This will only add the item if it doesn't already exist in the user's list.

Tag Parameters (additional)

As well as all the standard params available on the :add tag, you can also optionally pass the following :

allow_guests
Pass a value of 'no' to ignore guest users. Useful if you only want items added automatically for logged in members

Note: The exact same tags (and requirements) on the :add tag apply to the :auto_add tag.

{exp:shortlist:auto_remove} Added in 3.1

Works like the :remove tag, but removes an item automatically adds the item automatically in the background. If the item doesn't exist in the list, nothing will happen.

Tag Parameters (additional)

As well as all the standard params available on the :remove tag, you can also optionally pass the following :

allow_guests
Pass a value of 'no' to ignore guest users. Useful if you only want items removed for logged in members

Note: The exact same tags (and requirements) on the :remove tag apply to the :auto_remove tag.

{exp:shortlist:auto_add_list} Added in 2.3

Works like the :add_list tag, but adds the list automatically in the background. Only creates the list if a corresponding list for the user doesn't already exist.

Tag Parameters (additional)

As well as all the standard params available on the :add_list tag, you can also optionally pass the following :

allow_guests
Pass a value of 'no' to ignore guest users. Useful if you only want logged in members to have lists automatically created

Note: The exact same tags (and requirements) on the :add_list tag apply to the :auto_add_list tag.

{exp:shortlist:clear}

The :clear tag is a quick helper that can be used to create a url to totally clear all items from a user's list.

Note: With the addition of multiple lists in 2.0 the clear tag will only clear items from the current default list, or the list for the supplied list_id. If you want to create a 'Clear All' link, use the new :clear_all tag.

Tag Parameters

list_id New in 2.0
The list_id to clear. If none is supplied will act on the default list.
return
Optionally used to specify a different return url for the action link.

Note: The :clear tag works just like the :add or :remove tags and can be called via ajax. In that case it'll return a type value of 'cleared'

{exp:shortlist:clear_all} New in 2.0

The :clear_all tag is a quick helper that can be used to create a url to totally clear all items from all lists a user's lists. If you need to clear items from just a single list, use the :clear tag instead.

Tag Parameters

return
Optionally used to specify a different return url for the action link.

{exp:shortlist:remove_list} New in 2.0

The :remove_list is a standalone helper to create a url to delete a user's list. This will also remove all the contained items in the list. This is also available within the :lists and :view tags as {remove_list_url}.

Tag Parameters

list_id *required
The List Id of the list to be removed. If the user isn't the owner of this list, Shortlist will prevent them from removing the list.
return
Optionally used to specify a different return url for the action link.

{exp:shortlist:clear_list} New in 2.0

The :clear_list is a standalone helper to create a url to clear a user's list. This is also available within the :lists and :view tags as {clear_list_url}.

Tag Parameters

list_id *required
The List Id of the list to be removed. If the user isn't the owner of this list, Shortlist will prevent them from removing the list.
return
Optionally used to specify a different return url for the action link.

{exp:shortlist:clone_url}

The :clone_list tag is a quick helper single tag that can be used to create a url to clone a shared list. This is also available within the :view tag as {clone_url}.

Tag Parameters

list_id *Required
Used to specify the list to clone from.

{exp:shortlist:item_count}

The :item_count tag is a single tag that simply returns the current count of items within a user's list. If no list_id is passed, will return the count for the default list. For example :

Tag Parameters

list_id New in 2.0
The list id to count items from. If none supplied, will default to the default list.
all_lists New in 2.1
Pass a value of yes to return the item count across all a user's lists.
You have {exp:shortlist:item_count} items

Will return something similar to :

You have 4 items

There are no parameters for this tag.

{exp:shortlist:edit_list_form} New in 2.0

Used to create a form to allow user's to edit the basic attributes of their lists. Specifically, they can update the {list_title}, {list_url_title}, {list_url_title_start} and {list_url_title_end}.

Tag Parameters

list_id *required
The List to edit.
form_class
Optional class to apply to the form
form_id
Optional id to apply to the form
data:.. eg. data:key="val" Added in 3.5.2
An extensible way to add arbitrary data attribute to the generated form tag. Will be converted and added to the form tag like : 'data-key="val"'

Variables

{list_title}
The current title of the list
{list_description} Added in 2.4
The current list_description of the list
{list_url_title}
The current list_url_title of the list
{list_url_title_start}
The current list_url_title_start of the list
{list_url_title_end}
The current list_url_title_end of the list
{make_default_url} Added in 2.3
The url to set this list as the default list.
{clear_list_url} Added in 2.3
The url to clear the entire contents of this list.
{remove_list_url} Added in 2.3
The url to remove the entire list.

Plus, all the other list variables as available in the main :lists tag. Note, that only the list_title, list_description and list_url_title are editable via this form.

{exp:shortlist:auto_clear} Added in 2.2

Automatically clears a user's list as soon as parsed. Basically the same as if a user had visited the link generated using the {exp:shortlist:clear} tag.

Useful if you need to automatically clear a list contents when a user visits a certain page. Can also optionally redirect the user after clearing. By default this tag will clear the current user's default list unless a 'list_id' param is passed. If you want to clear all lists for a user, use the {exp:shortlist:auto_clear_all} tag instead.

Tag Parameters

list_id
Optionally specify a specific list to clear. If none passed, the user's current default list will be cleared. Only lists actually owned by the current user will be cleared.
return
Optionally redirect a user after clearing the list

This tag returns nothing, and can be placed anywhere in your template.

{exp:shortlist:auto_clear_all} Added in 2.2

Automatically clears all lists for a user as soon as parsed. Basically the same as if a user had visited the link generated using the {exp:shortlist:clear_all} tag.

If you want to clear just a specific list for a user, use the {exp:shortlist:auto_clear} tag instead.

Tag Parameters

return
Optionally redirect a user after clearing the list

This tag returns nothing, and can be placed anywhere in your template.

{exp:shortlist:item_in_list} Added in 2.3

A useful helper tag to let you test to see if a specific item is in a specific list for the current user. Great if you're using Shortlist with a few automatic lists and want to change the behavior of your templates if an item is in certain lists.

Tag Parameters

item_id
The item_id to test
entry_id
The entry_id to test
list_id
The list_id to test
list_name
The list_name to test
list_url_title
The list_url_title to test
list_url_title_start
The list_url_title_start to test
list_id
The list_url_title_end to test

Note: Either the item_id or entry_id parameters are required to specify which entry to check. Also, at least one of the list_.. params is required to specify the list to check

This tag return 'yes' if the item is the corresponding list, or 'no' in all other cases (including if the list or item is invalid)

{exp:shortlist:list_count} Added in 2.4

A useful helper tag to quick return the count of lists for the current user. Takes no parameters

{exp:shortlist:add_form} Added in 2.5

A form version of the {exp:shortlist:add} tag. Great if you need to be able to set some values dynamically based on user input. Accepts 'form_class' and 'form_id' parameters to control class/ids on the form. Also you can pass arbitrary data attributes as params liks 'data:key="val"'

Where you'd set the values for the {exp:shortlist:add} tag as parameters, simply add them here as form inputs.

{exp:shortlist:remove_form} Added in 2.5

A form version of the {exp:shortlist:remove} tag. Great if you need to be able to set some values dynamically based on user input. Accepts 'form_class' and 'form_id' parameters to control class/ids on the form. Also you can pass arbitrary data attributes as params liks 'data:key="val"'

Where you'd set the values for the {exp:shortlist:remove} tag as parameters, simply add them here as form inputs.

{exp:shortlist:add_list_form} Added in 2.5

A form version of the {exp:shortlist:add_list} tag. Great if you need to be able to set some values dynamically based on user input. Accepts 'form_class' and 'form_id' parameters to control class/ids on the form. Also you can pass arbitrary data attributes as params liks 'data:key="val"'

Where you'd set the values for the {exp:shortlist:add_list} tag as parameters, simply add them here as form inputs.

{exp:shortlist:item_form} Added in 3.0

A form to let you set any additional content per list item. Simply named your extra details prefixed with 'extra:..'. For example, if you wanted to let your users keep per-item notes, you could have a field called 'extra:notes', or quantities with a field called 'extra:qty'.

The values saved here will be available in the other shortlist tags with the same name, ie. {extra:notes} or {extra:qty} etc..

Note: Only the owner of a list item can change these values. Shortlist will reject any attempts to change the values by any one other than the list/item owner.

Parameters

item_id optional
The item_id for the item to update. Pass this if you're using the form to update a single item's extra fields on it's own. Otherwise if using for bulk extra fields across a few items it can pick up the item id from the input naming
form_class
Optionally set the form class
form_id
Optionally set the form id
data:.. eg. data:key="val" Added in 3.5.2
An extensible way to add arbitrary data attribute to the generated form tag. Will be converted and added to the form tag like : 'data-key="val"'
return
Optionally set the return url. If not set, will default to the current url

Variables

The :item_form doesn't have any direct variables. It's designed to be used within the :item, :view etc.. tags for variable population.

Inputs

All that's required is to prefix for your inputs with 'extra:' and Shortlist will do the rest. For example to update a single item with extra data points for 'notes' and 'qty', you'd have a form similar to this :

{exp:shortlist:item entry_id="XX"}
        {title}
        {exp:shortlist:item_form item_id="{item_id}"}
        <input type="text" name="extra:notes" value="{extra:notes}"/>
        <input type="text" name="extra:qty" value="{extra:qty}"/>
        <input type="submit" value="Save"/>
        {/exp:shortlist:item_form}
        {/exp:shortlist:item}

Which will return similar to :

Example Item
        <form name="shortlist_form" method="POST" action="..">
        <input type="hidden" name="list_id" value="XX"/>
        <input type="text" name="extra:notes" value="{extra:notes}"/>
        <input type="text" name="extra:qty" value="{extra:qty}"/>
        <input type="submit" value="Save"/>
        </form>

Alternatively you can edit a whole set of items in a single action. Just name the inputs like 'extra:notes[XX]' where XX is the item_id. For example :

{exp:shortlist:item_form}
        {exp:shortlist:view}
        {title}
        <input type="text" name="extra:notes[{item_id}]" value="Example Notes"/>
        <input type="text" name="extra:qty[{item_id}]" value="2"/>
        {/exp:shortlist:view}
        <input type="submit" value="Save"/>
        {/exp:shortlist:item_form}

Which will return similar to :

<form name="shortlist_form" method="POST" action="..">

        Item One
        <input type="text" name="extra:notes[1]" value="Example Notes"/>
        <input type="text" name="extra:qty[1]" value="2"/>

        Item Two
        <input type="text" name="extra:notes[2]" value="More notes"/>
        <input type="text" name="extra:qty[2]" value="1"/>

        Item Three
        <input type="text" name="extra:notes[3]" value=""/>
        <input type="text" name="extra:qty[3]" value="10"/>

        <input type="submit" value="Save"/>
        {/exp:shortlist:item_form}

Note: On update any fields that weren't passed will be cleared, so if you only want the user to update partial fields, be use sure to include the other data as hidden inputs.

{exp:shortlist:store_track_item} Added in 3.4.0

A special tag to help integrate Shortlist with Expresso Store for using Shortlist as a product wishlist. Add this tag within a your {exp:store:product} tag pair to enable item tracking in baskets. When the item is added as a product to the user's cart we keep a marker and update the original item to show when it's been purchased.

See full details on using Shortlist with Expresso Store

Params

item_id required
The item_id for the item, from the shortlist loop.

Note: Also requires adding 'input:shortlist_track_item="WishlistID"' to the wrapping store:product tag

Example

{exp:shortlist:view}
<h3>Wishlist</h3>
{exp:store:product entry\_id="{entry\_id}" input:shortlist\_track\_item="WishlistID"}
<h2>{title} - {price}</h2>
{exp:shortlist:store\_track\_item item\_id="{item\_id}"}
<input type="submit" name="submit" value="Add to Cart"/>
{/exp:store:product}
{/exp:shortlist:view}

With this in place you'll have two new extra attributes on shortlist items you can test against. {extra:store_purchased} - a bool value to show if this has been purchased, and {extra:store_order_id} - the order id if it has been purchased.

See full details on using Shortlist with Expresso Store →

{exp:shortlist:stats} Added in 3.5.0

A helper tag to let you pull in aggregated statistics about overall usage of Shortlist on the site. There are no parameters, the following variables are available :

Variables

{total_items}
The total number items that have been added to lists
{total_unqiue_items}
The total number unique items that have been added to lists
{total_lists}
The total number lists that have been created and are not empty
{total_users}
The total number of users that have lists, both members and guests
{total_members}
The total number of members that have lists
{total_guests}
The total number of guests that have lists

Example

Usage is very simple, and might look like this :

{exp:shortlist:stats}

There are a total of {total_items} items in across {total_lists} lists.
{total_users} total people using lists, of which {total_members} are members, and {total_guests} are guests.
{total_unique_items} different items have been added to lists.

{/exp:shortlist:stats}