About This Article
Shopify customer data includes standard fields (name, email, address, etc.), but Japanese EC sites often require additional information. This article explains how to manage this using Shopify's metafield functionality.
Additional Information Needed for Japanese EC
Why Standard Fields Are Insufficient
Shopify is a foreign product and doesn't support Japan-specific customer information.
| Item | Shopify Standard | Need in Japan |
|---|---|---|
| Furigana (last name) | None | Essential for shipping labels, phone support |
| Furigana (first name) | None | Same as above |
| Birth date | None | Points, coupons, age verification |
| Gender | None | Marketing, product recommendations |
| Member rank | None | POS integration, benefit management |
| External system ID | None | Linking with POS, CRM, etc. |
What Are Metafields
Concept Explanation
Metafields allow you to add custom information to Shopify's standard data. You can store custom information for various objects like customers, products, and orders.
Name (first_name, last_name), Email (email), Phone (phone), Address (addresses)
Furigana (custom definition), Birth date (custom definition), Gender (custom definition), Other (freely addable)
Metafield Structure
Metafields are organized by "namespace" and "key".
| namespace | key | Purpose |
|---|---|---|
| customer_info | furigana_first_name | First name furigana |
| customer_info | furigana_last_name | Last name furigana |
| customer_info | birth_date | Birth date |
| customer_info | gender | Gender |
| loyalty | coupons | Issued coupon information |
| loyalty | preferences | Customer settings |
| loyalty | external_id | External system ID |
Design Points
Namespace Design
Namespaces are used to group related information.
| Namespace | Purpose | Included Keys |
|---|---|---|
| customer_info | Basic info extension | Furigana, birth date, gender |
| loyalty | Point/membership related | Coupons, member rank, point history |
| preferences | Customer settings | Email delivery settings, language settings |
| integration | External integration | POS ID, CRM ID, sync status |
Choosing Data Types
Set appropriate data types for metafields.
| Key | Data Type | Reason |
|---|---|---|
| furigana_first_name | single_line_text_field | Short text |
| birth_date | date | Want to handle as date |
| gender | single_line_text_field | Managed as choices |
| coupons | json | Structure multiple coupon info |
| external_id | single_line_text_field | POS member number, etc. |
Operational Benefits
Viewing in Shopify Admin
Metafields can be viewed and edited from the Shopify admin panel.
| Category | Item | Value |
|---|---|---|
| Basic info | yamada@example.com | |
| Basic info | Phone | 090-1234-5678 |
| Metafield | Furigana (last name) | Yamada |
| Metafield | Furigana (first name) | Taro |
| Metafield | Birth date | 1990-01-15 |
| Metafield | Gender | Male |
Customer support can view all information from the admin panel.
API Retrieval and Updates
Metafield retrieval and updates are easy with the GraphQL API.
"Please provide info for customer ID: 12345"
Returns standard fields (first_name, last_name) + metafields (furigana, birth_date, etc.)
"Update birth date for customer ID: 12345"
Saved to Shopify
Implementation Considerations
Validation
Data validation is required before saving to metafields.
| Item | Validation Content |
|---|---|
| Furigana | Katakana only, 50 characters max |
| Birth date | Past date, 13 years or older |
| Gender | Specified choices only (Male/Female/Other) |
| Email address | Format check, duplicate check |
Data Migration from Existing Customers
When migrating data from an existing system, the following steps are needed.
Export customer data from existing system
Convert to Shopify metafield format
Verify converted data
Verify operation with small data set
Register all data to Shopify
Benefits of This Feature
For Operations
- No need to build additional database
- Centralized management in Shopify admin
- Automatic integration possible via API
Development Benefits
- Standard feature, no additional cost
- Easy retrieval and update with GraphQL API
- Easy future expansion