Skip to content

[RFC] My account section

Julien Janvier edited this page May 21, 2013 · 3 revisions

The aim of this RFC is to introduce a my account section for Sylius as presented here.

The my account section is restricted to logged users. A my account link appears in the menu of the site.

Features

Your information

Allows the user to edit his information : firstname, lastname, email and his billing address (see further)...

Your password

Allows the user to change his password.

Address book

Allows the user to store his different addresses. A user has :

  • several addresses
  • one billing address
  • one default shipping address

These addresses will be used during the order process : the user will be able to choose between them.

The default shipping address appears first. The billing address appears second. The others addresses follows in their descendant order of creation.

Actions available :

  • delete the address (the billing address can not be deleted) after having validated a confirmation dialog
  • edit the address (editing the billing address redirect to the Your information section) : opens a popin allowing to edit the address
  • use the address as default shipping address

Wish list

Allows the user to retrieve the products he added to his wish list. Several actions are available :

  • remove a product from the wish list
  • add a product to the cart

Once ordered, the article is automatically removed from the wish list.

Tracking orders / invoices

Allows the user to list all the orders he placed with the following information :

Date Order number Amount Status Invoice
May 5, 2013 30510110607C 173,67 € Sent on May 8, 2013
Tracking number : 8V69692580122
PDF export of the invoice Details
June 22, 2012 01228101495C 29,84 € Canceled by the customer - -

The Details link opens a popin with the details of the order:

  • date, shipment mode, payment mode, order number, status, tracking number
  • the list of products with thumbnail, name, unit price, amount
  • shipping, amount total, a link to a PDF export of the invoice

Your discount vouchers / assets

Allows the user to view the list of his discount vouchers. TODO

Allows the user to view the list of his assets. TODO

Saved carts

Allows the user to retrieve the carts he saved with the following information :

Name of the cart Availability Creation date Amount
Gift for Virginie Available May 18, 2013 102,36 € Details
Beautiful mugs Unavailable February 03, 2013 26 € Details

The Details link opens a popin that lists all the product of this saved cart. Two actions are availables :

  • Delete the saved cart
  • Order the saved cart : products which are not "orderable" anymore (ie : deleted or disabled) are not added to the new order.

Implementation

Founding principles

  • code located in SyliusWebBundle
  • new Frontend controller AccountController ?

Your information

  • import (or customize) FOSUserBundle routes (Profile)
  • override FOSUserBundle templates (Profile)

Your password

  • import (or customize) FOSUserBundle routes (ChangePassword)
  • override FOSUserBundle templates (ChangePassword)

Address book

  • a user has several addresses : add a one-to-one unidirectional relationship from User to Sylius\Bundle\AddressingBundle\Model\AddressInterface
  • a user has one billing address : add a one-to-many relationship with joined table from User to Sylius\Bundle\AddressingBundle\Model\AddressInterface
  • a user has one default shipping address : add a one-to-many unidirectional with joined table relationship from User to Sylius\Bundle\AddressingBundle\Model\AddressInterface
  • adding a small template in SyliusAddressingBundle to display one address (can be easily overridden in the app if needed)

Wish list

TODO

Tracking orders / invoices

TODO

Your discount vouchers / assets

TODO

Saved carts

TODO

Enhancements / Later