This project is not covered by Drupal’s security advisory policy.


The UC wish list module, adds wish list/gift registry support to the Ubercart store, an open source e-commerce solution fully integrated with the leading open source CMS, Drupal. This module, for instance, would specifically allow customers to create and administer personalized wish list of products in their Ubercart store. Other potential customers could then refer to those wish lists to get a better understanding about what items they should be purchasing and thereby purchase items on behalf of the wish list creators.

The UC wish list, would involve the use of the Form API (FAPI), which provides a definitive, easy to use, easy to extend and secure way of adding forms to your Drupal website. It functions alongside the normal shopping cart, presenting the customer with an "Add to wish list" button beside the normal "Add to cart" button on product pages.

Installing/Configuring the module

For a LINUX-based system:

The Uc Wishlist module installation involves the following procedure:

  • Dependencies involved: The following essentials are required for a successful installation/configuration of the Uc Wishlist module:

Installing/Configuring the module:

  1. Enter the drupal root installation directory and cd into modules/ directory.

  1. Execute the drush command drush dl ubercartfor downloading the latest compatible version of Ubercart for Drupal 8.

  1. Run drush en ubercart for installing/enabling the Ubercart module.

  1. Clear caches for the impending changes to take place by executing drush cr.This command would also display the probable errors (if there are any) faced during installation of the module thereby temporarily terminating the installation.

  2. Assuming no errors faced during the installation of Ubercart, the next step would be to download the Uc Wishlist module. Clone the 8.x-1.x release branch of the repository in that folder git clone --branch 8.x-1.x uc_wishlist.

  1. Enable the module by executing drush en uc_wishlist. Upon execution of the command, the following dependencies would be prompted to install/enable for successfully enabling the Uc Wishlist module: uc_wishlist, uc_country, uc_store, uc_product, uc_order and uc_cart. Enter y/yes in terminal to install the above dependencies along with uc_wishlist.

  1. Drush would return a confirmation for the successful installation of the module. The next step would be to clear the caches for the module using drush cr to get registered to the system and function successfully.    

Once installed the module can be configured to perform the following actions:

  • Add Administrator wishlist settings: Provides a set of salient features to the site administrator to enable certain functionalities for a wishlist in general. Accessed through the address /admin/store/config/wishlist.

  • Enable ‘Add to Cart’ and ‘Add to wishlist’ features: These functions enable products to be added to the cart or a wish list, with the help of the mentioned buttons.

  • Enable user to view/update a wish list: This functionality would entitle the user to access/view a specific wish list and modify it as per the options listed. Accessed through /wishlist.

  • Enable ‘Search Wishlist’ functionality: Allows the user to search an individual wishlist amongst the list of wish lists and access/modify it later. Accessed through /wishlist/search.

  • Option to email wishlist to other users: This functionality enables the  user with the possibility of e-mailing any specific wishlist to other users or potential customers. Directed through the address /wishlist-email.

  • Add user wishlist settings: Extend the user with the option to modify/update a wish list and include specific features for individual wishlists. Directed through the link /admin/store/config/user-settings.

APIs and Modules involved:

The porting process would involve the application of the following API/Modules:

  • Form API: The Drupal 8 Form API is largely similar to the Drupal 7 Form API. The forms are still represented with nested render array structures and there is a separate validation and submission step. Form classes implement the \Drupal\Core\Form\FormInterface and the basic workflow of a form is defined by the buildForm, validateForm, and submitForm methods of the interface.
  • Theme system: The main purpose of Drupal's Theme system is to give themes complete control over the appearance of the site, which includes the markup returned from HTTP requests and the CSS files used to style that markup.
  • Configuration API: The Configuration API is a centralised place for modules to store configuration data, that a user would want to sync from development to production. This data can be simple configuration like a site name, or complex information managed with configuration entities, such as views and content types.
  • Database API: Drupal’s Database Abstraction Layer provides a unified database query API and provides a structured interface for the dynamic purpose of querying different underlying databases. It is built upon PHP’s PDO (PHP Data Objects) database API, and inherits much of its syntax.
  • Field API: The Field API allows custom data fields to be attached to Drupal entities and takes care of storing, loading, editing, and rendering field data. Any entity type (node, user, etc.) can use the Field API to make itself "fieldable" and thus allow fields to be attached to it. Other modules can provide a user interface for managing custom fields via a web browser as well as a wide and flexible variety of data type, form element, and display format capabilities.
  • Views: The Views module can be used to fetch content from the database of a site and present it to the usr as lists, tables, menu items, blocks, etc. Different content types including nodes, users, and other bundles can be displayed. Views can also be used to present related content or implement contextual filters.
  • Data Common API: The Data Common API provides a simple and consistent means to interact programmatically with entity data, form submissions and other Drupal data across projects and major versions. This functionality is also specifically used for verification of email addresses of an user.
Supporting organizations: 
Mentoring and Funding

Project information