Skip to content
  1. Extras
  2. MiniShop3
  3. Snippets
  4. msCustomer

msCustomer

Snippet for the customer account (profile, addresses, orders).

Caching

The snippet uses the user session and must be called uncached (!msCustomer).

How it works

The snippet is driven by the service parameter. Different values show different account pages with different data and behavior.

profile — Customer profile

Edit profile: name, email, phone. Shows email and phone verification status.

fenom
{'!msCustomer' | snippet: [
    'service' => 'profile'
]}
ParameterDefaultDescription
tpltpl.msCustomer.profileProfile chunk

See: Customer profile


addresses — Address management

List of saved delivery addresses: create, edit, delete, set default.

fenom
{'!msCustomer' | snippet: [
    'service' => 'addresses'
]}
ParameterDefaultDescription
tpltpl.msCustomer.addressesAddress list chunk
addressTpltpl.msCustomer.address.rowAddress row chunk
formTpltpl.msCustomer.address.formAddress form chunk

See: Customer addresses


orders — Order history

List of customer orders with status filter and pagination. Click an order for details.

fenom
{'!msCustomer' | snippet: [
    'service' => 'orders',
    'limit' => 10
]}
ParameterDefaultDescription
tpltpl.msCustomer.ordersOrder list chunk
orderTpltpl.msCustomer.order.rowOrder row chunk
detailTpltpl.msCustomer.order.detailsOrder details chunk
limit20Orders per page

See: Customer orders


Common parameters

ParameterDefaultDescription
serviceprofileService: profile, addresses, orders
returntplFormat: tpl (HTML), data (array)
unauthorizedTpltpl.msCustomer.unauthorizedChunk for unauthorized users

Get data without rendering

fenom
{set $profile = '!msCustomer' | snippet: [
    'service' => 'profile',
    'return' => 'data'
]}

{if $profile.authorized}
    Hello, {$profile.customer.first_name}!
{else}
    <a href="{$profile.login_url}">Log in</a>
{/if}

GET parameters

For service=orders

ParameterDescription
order_idOrder ID for details
statusFilter by status ID
offsetPagination offset

For service=addresses

ParameterDescription
modeMode: list, edit, create
idAddress ID to edit

Logout

/cabinet/?action=logout

Data structure

With return=data the snippet returns arrays for customer, orders, order, products, delivery, payment, address, total, pagination, statuses, etc., depending on service and context. See the Russian docs or component source for full structure.

Chunk architecture

Customer chunks use inheritance via a base layout:

  • tpl.msCustomer.base — base layout (sidebar + content)
  • tpl.msCustomer.profile — extends base, profile block
  • tpl.msCustomer.orders — extends base, order list block
  • tpl.msCustomer.addresses — extends base, addresses block