Page tree

Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
Section
Column
width70%
Shop module provides product management capabilities with an external database, inventory management and the shopping cart process with REST integration for a headless shopping experience. There is no payment integrated yet.

Table of Contents
maxLevel4

Column
width30%
JIRASHOP
GitGit

...

Section
Column
width70%

Maven is the easiest way to install the module. Add the following dependencies to your bundle:

Code Block
languagexml
<dependency>
  <groupId>info.magnolia.shop</groupId>
  <artifactId>magnolia-shop-core</artifactId>
  <version>${version}</version>
</dependency>
<dependency>
  <groupId>info.magnolia.shop</groupId>
  <artifactId>magnolia-shop-app</artifactId>
  <version>${version}</version>
</dependency>
<dependency>
  <groupId>info.magnolia.shop</groupId>
  <artifactId>magnolia-shop-rest</artifactId>
  <version>${version}</version>
</dependency>
<dependency>
  <groupId>info.magnolia.shop</groupId>
  <artifactId>magnolia-shop-workflow</artifactId>
  <version>${version}</version>
</dependency>
Column
width30%

Versions

6.2Magnolia 6.2
Page properties
hiddentrue
Magnolia Compatibility


6.2(tick)

Usage

After installation there will be a new item bar in the main admin central screen as shown in below screenshot.

Image Removed

Shop Core

Configuration

The Shop Core module allows ecommerce (shop) related entities in external SQL Database.

To install this module add maven dependency to this module:

  
Code Block
<dependency>
      <groupId>info.magnolia.shop</groupId>
      <artifactId>magnolia-shop-core</artifactId>
      <version>${project.version}</version>
  </dependency>

...



To function properly this module requires configurations in module configuration location.
Configurations can be located in JCR config node or config.yaml file.
We need to pass database connection info to the module.
This is minimum configuration that needs to be passed to the module so it can connect to a database instance:

datasource
Code Block
datasource:
  

...

username: [

...

db_user]
  

...

password: [

...

db_assword]
  

...

url: [

...

db_url]
  

...

driver: [

...

db_driver]
  

...

migration:
    

...

path: 

...

shop-core/dbmigration/[db_type]
    

...

run: [

...

true/false]


example configuration for MySql database server:

...

Code Block
datasource:
  

...

username: 

...

user
  

...

password: password
  

...

url: 

...

jdbc:mysql://

...

127.0.0.1:

...

3306/shop
  

...

driver: 

...

com.mysql.cj.jdbc.Driver
  migration:
    

...

path: 

...

shop-core/dbmigration/mysql
    

...

run: 

...

true



All properties that are prefixed with "shop." will be passed to ebean server.
This way we can easily tune ebean ORM framework.
More info on Ebean ORM is available on this ebean documentation link.

This module does not create a database.
Database MUST EXISTS and database user has to have also CREATE/DROP/ALTER RIGHTS on that database.

For database connection to work we need appropriate database driver to be available on the classpath.
For example: if we are using mysql database with tomcat server we need to place "mysql-connector-java-8.0.18.jar" in tomcat lib folder.

Shop App

The Shop App module allows browsing and managing shop related entities (catalogs, products, categories, shippings, prices, etc ... ) from Magnolia's Custom Content Application.
This module is dependent on Shop Core module.

To install this module add maven dependency to this module:


 
Code Block
<dependency>
      <groupId>info.magnolia.shop</groupId>
      <artifactId>magnolia-shop-app</artifactId>
      <version>${project.version}</version>
  </dependency>

...


Shop Rest

The Shop Rest module provide rest api which can be used to manage shop related entities (CRUD operations).
This module is dependent on Shop Core module.

To install this module add maven dependency to this module:

  
Code Block
<dependency>
      <groupId>info.magnolia.shop</groupId>
      <artifactId>magnolia-shop-rest</artifactId>
      <version>${project.version}</version>
  </dependency>

...


Shop Workflow

The Shop Workflow module provide functionality for managing orders and transiting order from one state to another.
For example:

...


To install this module add maven dependency to this module:
``` info.magnolia.shop magnolia-shop-workflow ${project.version} ```

Usage

After installation there will be a new item bar in the main admin central screen as shown in below screenshot.

Image Added

Settings app

First thing to do is to open the Settings app to define all the shop basics like catalogs, currencies, taxes...

Image Added

  • Catalogs - Products will be assigned to catalogs.
  • Categories - Categories of products, tree structure.
  • Shipping - Shipping methods, different rates can be assigned depending on the purchase price.
  • Currencies - Define currencies and exchange rates.
  • Tax rates - Define different tax rates.
  • Units - Define units for weight, volumen and dimension.
  • Custom fields - Products fields can be extended by adding custom fields.
  • Field templates - Custom fields need to be assigned to templates to be able to use them.

Manufacturers app

This app allows to define different manufacturers to later assign to products.

Image Added

Products app

After all the above is ready products can be created, assigned to categories, with images, price, dimensions and all custom fields that the user had defined. Products can then be published and be available for the customers.

Image Added

Once all of this is in place, the front end app can be created to query for products, add to shopping cart, checkout, create wish lists... by using the REST api.

Warnings

  • This module is at INCUBATOR level.

...