> For the complete documentation index, see [llms.txt](https://docs.akinon.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.akinon.com/technical-guides/instore/customer-registration-and-schema.md).

# Customer Registration & Schema

This document covers all services related to the customer schema — retrieving it, and updating it to support staff/store information captured during in-store customer registration.

## <mark style="color:red;">Overview</mark>

When a customer is registered by an in-store user, store and staff information (**id, email**) is sent in the payload by default. These fields should appear under **Omnitron → Sales Channels → Users → User Features**, in the **collapse** section.

If these fields are not visible, the schema currently in use must be updated with the `PUT` request described below.

## <mark style="color:red;">`GET`</mark> <mark style="color:red;">Customer Schema</mark>

Returns a detailed view of the current customer schema.

**Path:** `/{{omnitron_url}}/api/v1/remote/<channel_id>/schema_types/user/`

### <mark style="color:red;">Query Parameters</mark>

This service does not require any query parameters. The request returns the full schema structure for the customer model.

### <mark style="color:red;">Example Request</mark>

To get the current customer schema, send a `GET` request to the `/{{omnitron_url}}/api/v1/remote/<channel_id>/schema_types/user/` endpoint.

**Headers:**

```
Authorization: Token <key>
```

**Body Parameters:** None\
**Request Body:** None

### <mark style="color:red;">Example Response (200 OK)</mark>

In a successful response with status code 200 OK, the API returns the complete customer schema as a JSON object.

```json
{
  "pk": 5,
  "created_date": "2021-10-18T09:35:58.327000Z",
  "modified_date": "2025-09-11T11:42:55.893935Z",
  "schema": {
    "confirm": {
      "key": "confirm",
      "label": "Confirm",
      "data_type": "bool",
      "ui_visibility": []
    },
    "logged_ip": {
      "key": "logged_ip",
      "label": "Logged IP",
      "data_type": "text",
      "ui_visibility": []
    },
    "test_input": {
      "key": "add_loyalty",
      "label": "Add Loyalty",
      "data_type": "bool",
      "ui_visibility": ["instore"]
    },
    "member_type": {
      "key": "member_type",
      "label": "Member Type",
      "required": false,
      "data_type": "text",
      "ui_visibility": []
    },
    "verified_phone": {
      "key": "verified_phone",
      "label": "Verified Phone",
      "data_type": "bool",
      "ui_visibility": []
    },
    "register_client_type": {
      "key": "register_client_type",
      "label": "Register Client Type",
      "data_type": "text",
      "ui_visibility": []
    },
    "kvkk_flat_page_version": {
      "key": "kvkk_flat_page_version",
      "label": "KVKK Flat Page Version",
      "data_type": "text",
      "ui_visibility": []
    },
    "instore_staff_registered_by": {
      "key": "instore_staff_registered_by",
      "label": "Instore Staff Registered By",
      "data_type": "text",
      "ui_visibility": []
    },
    "instore_store_registered_by": {
      "key": "instore_store_registered_by",
      "label": "Instore Store Registered By",
      "data_type": "text",
      "ui_visibility": []
    },
    "instore_staff_registered_email": {
      "key": "instore_staff_registered_email",
      "label": "Instore Staff Registered Email",
      "data_type": "text",
      "ui_visibility": []
    }
  },
  "model": "user"
}
```

## <mark style="color:red;">`PUT`</mark> <mark style="color:red;">Customer Schema Update</mark>

Adds the staff/store registration fields to the schema and returns the updated user schema.

**Path:** `/{{omnitron_url}}/api/v1/remote/<channel_id>/schema_types/user/`

### Request Body

The following fields are required to capture store and staff information during customer creation.

| Parameter                                       | Data Type | Required | Description                                                                                        |
| ----------------------------------------------- | --------- | -------- | -------------------------------------------------------------------------------------------------- |
| `instore_store_registered_by__key`              | string    | true     | Unique identifier of the field                                                                     |
| `instore_store_registered_by__label`            | string    | true     | Display name of the field; indicates the store where the staff performed the customer registration |
| `instore_store_registered_by__data_type`        | string    | true     | Field data type                                                                                    |
| `instore_store_registered_by__ui_visibility`    | array     | true     | UI section visibility (e.g., `["instore"]`)                                                        |
| `instore_staff_registered_by__key`              | string    | true     | Unique identifier of the field                                                                     |
| `instore_staff_registered_by__label`            | string    | true     | Display name of the field; staff identifier that created the customer                              |
| `instore_staff_registered_by__data_type`        | string    | true     | Field data type                                                                                    |
| `instore_staff_registered_by__ui_visibility`    | array     | true     | UI section visibility (e.g., `["instore"]`)                                                        |
| `instore_staff_registered_email__key`           | string    | true     | Unique identifier of the field                                                                     |
| `instore_staff_registered_email__label`         | string    | true     | Display name of the field; staff e-mail that created the customer                                  |
| `instore_staff_registered_email__data_type`     | string    | true     | Field data type                                                                                    |
| `instore_staff_registered_email__ui_visibility` | array     | true     | UI section visibility (e.g., `["instore"]`)                                                        |

### <mark style="color:red;">Example Request</mark>

To update the schema and include staff registration information, send a `PUT` request to the `/{{omnitron_url}}/api/v1/remote/<channel_id>/schema_types/user/` endpoint.

**Headers:**

```
Authorization: Token <key>
Content-Type: application/json
```

**Request Body:**

```json
{
  "pk": 5,
  "created_date": "2021-10-18T09:35:58.327000Z",
  "modified_date": "2025-09-11T11:41:21.991482Z",
  "schema": {
    "confirm": {
      "key": "confirm",
      "label": "Confirm",
      "data_type": "bool"
    },
    "instore_store_registered_by": {
      "key": "instore_store_registered_by",
      "label": "Instore Store Registered By",
      "data_type": "text"
    },
    "instore_staff_registered_by": {
      "key": "instore_staff_registered_by",
      "label": "Instore Staff Registered By",
      "data_type": "text"
    },
    "instore_staff_registered_email": {
      "key": "instore_staff_registered_email",
      "label": "Instore Staff Registered Email",
      "data_type": "text"
    },
    "logged_ip": {
      "key": "logged_ip",
      "label": "Logged IP",
      "data_type": "text"
    },
    "member_type": {
      "key": "member_type",
      "label": "Member Type",
      "required": false,
      "data_type": "text"
    },
    "verified_phone": {
      "key": "verified_phone",
      "label": "Verified Phone",
      "data_type": "bool"
    },
    "register_client_type": {
      "key": "register_client_type",
      "label": "Register Client Type",
      "data_type": "text"
    },
    "kvkk_flat_page_version": {
      "key": "kvkk_flat_page_version",
      "label": "KVKK Flat Page Version",
      "data_type": "text"
    }
  },
  "model": "user"
}
```

### <mark style="color:red;">Example Response (200 OK)</mark>

A successful response returns the schema with the added staff/store registration fields visible under **Omnitron → Sales Channels → Users → User Features → Collapse**.


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://docs.akinon.com/technical-guides/instore/customer-registration-and-schema.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
