User Account - CrystalCommerce Liquid Documentation for Designers

User Account

The user account page allows the user to manage details about their account such as addresses, email, etc.

NOTE: many existing templates reference customer credit cards. We no longer store credit cards. Any new templates should not include credit card code.

Additional Variables Available

error
String containing any error message from the previous step.
notice
Informational message from the previous step.

Used in Routes

  • /user/home

File: user_account.liquid

Default Liquid Template

<h1 class="pagetitle">{{ "user.account.my_account" | trans }}</h1>

{% if error %}
  <p><strong>{{ error }}</strong></p>
{% endif %}

{% if notice %}
  <p><strong>{{ notice }}</strong></p>
{% endif %}


<ul>
  <li>{{ "user.account.store_credit" | trans }}: {{ current_user.credit }}</li>
  <li>{{ "user.account.orders_placed" | trans}}: {{ current_user.orders.size }}
  <li>{{ "user.account.member_since" | trans}}: {{ current_user.registration_date }}
</ul>

<h1>{{ "user.account.edit_account" | trans }}</h1>

<form action="/user/edit" method="post">
  {{ token_tag }}
  <p>
    <label for="user_firstname">{{ "user.first_name" | trans }}</label>
    <input type="text" name="user[firstname]" value="{{ current_user.firstname }}" />
  </p>
  <p>
    <label for="user_lastname">{{ "user.last_name" | trans }}</label>
    <input type="text" name="user[lastname]" value="{{ current_user.lastname }}" />
  </p>
  <p>
    <label for="user_email">{{ "user.email" | trans }}</label>
    <input type="text" name="user[email]" value="{{ current_user.email }}" />
  </p>
  <p>
    <label for="user_phone">{{ "user.phone" | trans }}</label>
    <input type="text" name="user[phone]" value="{{ current_user.phone }}" />
  </p>
  {% if site.supported_locales_size > 1 %}
    <p>
      <label for="user_locale">{{ "user.locale" | trans }}</label>
      <select name="user[locale]">
        {% for locale in site.supported_locales %}
          {% if current_user.locale == locale.code %}
            <option value="{{ locale.code }}" selected=SELECTED>
              {{ locale.label }}
            </option>
          {% else %}
            <option value="{{ locale.code }}">
              {{ locale.label }}
            </option>
          {% endif %}
        {% endfor %}
      </select>
    </p>
  {% endif %}
  <p>
    <input type="submit" name="submit" value="{{ "buttons.save_changes" | trans }}" />
  </p>
</form>

<h1>{{ "user.account.addresses" | trans }}</h1>
<div id="account_addresses">
  {% for address in current_user.addresses %}
  <div class="address">
    <span class="address_label">{{ address.label | escape }}</span><br />
    {{ address.address_with_name | escape | nl2br }}<br />
    {{ "Edit" | link_to_edit_address: address }} | {{ "Delete" | link_to_delete_address: address }}
  </div>
  {% endfor %}
  <div class="clear"></div>

  <p><a href="#" onclick="new Effect.BlindDown('new_address'); return false;"><img src="{{ "img/add.png" | asset_url }}" border="0" /> {{ "address.add_new_address" | trans }}</a></p>

  <div id="new_address" style="display: none;">
    <h1>{{ "user.account.add_new_address" | trans }}</h1>
    <form action="/address" method="post">
      {{ token_tag }}
    {% include "address_form" %}
    <p><input type="submit" name="submit" value="{{ "buttons.add_address_to_account" | trans }}" /></p>
    </form>
  </div>
</div>

Default Mobile Liquid Template

<header>
<h1 class="pagetitle"><a href="/user/home">{{ "user.account.your_account" | trans }}</a></h1>
{% include 'header_icons' %}
</header>

{% if error %}
  <p class="error">{{ error }}</p>
{% endif %}

{% if notice %}
  <p class="notice">{{ notice }}</p>
{% endif %}


<div class="box">
  <ul class="account_summary">
    <li>{{ "user.account.store_credit" | trans }}: {{ current_user.credit }}</li>
    <li>{{ "user.account.orders_placed" | trans}}: {{ current_user.orders.size }}
    <li>{{ "user.account.member_since" | trans}}: {{ current_user.registration_date }}
  </ul>
</div>

<h2>{{ "user.account.edit_account" | trans }}</h2>
<div class="box">
  <form action="/user/edit" method="post" class="edit_account_form">
    {{ token_tag }}
    <fieldset>
    <dl>
      <dt><label for="user_firstname">{{ "user.first_name" | trans }}</label></dt>
      <dd><input type="text" name="user[firstname]" value="{{ current_user.firstname }}" /></dd>
    </dl>
    <dl>
      <dt><label for="user_lastname">{{ "user.last_name" | trans }}</label></dt>
      <dd><input type="text" name="user[lastname]" value="{{ current_user.lastname }}" /></dd>
    </dl>
    <dl>
      <dt><label for="user_email">{{ "user.email" | trans }}</label></dt>
      <dd><input type="email" name="user[email]" value="{{ current_user.email }}" /></dd>
    </dl>
    <dl>
      <dt><label for="user_phone">{{ "user.phone" | trans }}</label></dt>
      <dd><input type="phone" name="user[phone]" value="{{ current_user.phone }}" /></dd>
    </dl>
    <p>
      <input type="submit" name="submit" value="{{ "buttons.save_changes" | trans }}" />
    </p>
    </fieldset>
  </form>
</div>

<h1>{{ "user.account.addresses" | trans }}</h1>
<div class="box">
  <div id="account_addresses">
    {% for address in current_user.addresses %}
    <div class="address">
      <span class="address_label">{{ address.label }}</span><br />
      {{ address.address_with_name | nl2br }}<br />
      {{ "Edit" | link_to_edit_address: address }} | {{ "Delete" | link_to_delete_address: address }}
    </div>
    {% endfor %}
    <div class="clear"></div>

    <div id="new_address">
      <h1>{{ "user.account.add_new_address" | trans }}</h1>
      <form action="/address" method="post">
      {{ token_tag }}
      {% include "address_form" %}
      <p><input type="submit" name="submit" value="Add Address to Account" /></p>
      </form>
    </div>
  </div>
</div>

<ul class="ui-buttons">
  <li><a href="/user/orders">{{ "user.account.your_orders" | trans }}</a></li>
  <li><a href="/user/credit_logs">{{ "user.account.your_credits" | trans }}</a></li>
  <li><a href="/user/wishlist">{{ "user.account.your_wishlist" | trans }}</a></li>
</ul>

Drops Supported