Shopify二次开发之五:元字段(Metafields)

2023-12-07 07:36

本文主要是介绍Shopify二次开发之五:元字段(Metafields),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

目录

解释

操作

1、添加Custom data

2、选择特定类型的数据

3、为Page配置元子段和值

4、模板访问


解释

Shopify Metafields 是一种用于存储和管理自定义数据的功能。它们允许商户在商城中的产品、订单、客户、Page等对象上添加自定义字段,以满足特定业务需求。

操作

1、添加Custom data

可以为Products、Pages添加自定义数据,比如选择了Pages,那么在任何Page模板下配置了metafield的值,可以用page.metafields.custom.metafield_name.value访问添加的特定类型的元字段内容,又比如选择了Products,那么在product模板下,可以用product.metafields.custom.metafield_name.value访问为产品添加的特定数据的元字段内容,Collections同上,其它的比如Orders也有特定的用法。

就拿pages做举例

2、选择特定类型的数据

为Pages添加自定义内容的数据type,可以有普通数据type:文本、日期、布尔、json、整数等,也可以有引用数据type:product、file、collection、page等。

3、为Page配置元子段和值

选择一个页面

show all

配置元字段值

4、模板访问

在page.xxx.json,通过.value访问元字段内容

<style>.page_title {font-size: 36px;padding: 24px 20px;background: #900C3F;color: #EFECCA;}.metafiled-section {background: #900C3F;padding: 20px;border-bottom: 1px solid #CFD8DC;display: flex;flex-direction: column;gap: 16px;}.metafiled-section .metafiled-section-title {font-size: 24px;font-weight: bold;line-height: 24px;color: #fff;}.metafiled-section .metafiled-section-content {display: flex;gap: 24px;}.metafiled-section .obj-content {border-radius: 12px;background: #FFFF8D;padding: 16px;}.metafiled-section .obj-content .code {display: flex;gap: 12px;font-weight: bold;padding: 12px 0;}.metafiled-section .obj-content ul {padding-bottom: 12px;border-bottom: 1px solid #900C3F;}.metafiled-section .obj-content ul:last-child {border: none;}.metafiled-section .obj-content ul li {font-weight: bold;padding: 6px 0;display: flex;align-items: center;}.metafiled-section .obj-content ul li span:nth-child(1) {width: 132px;}.metafiled-section .obj-content ul li span:nth-child(2) {flex: 1;}.metafiled-section .obj-content ul li span:nth-child(3) {flex: 1;}.metafiled-section .metafiled-section-content > div {border-radius: 12px;padding: 16px;font-weight: bold;background: #FFFF8D;flex: 1;}
</style><h1 class="page_title">{{ page.title }}</h1><div class="metafiled-section"><div class="metafiled-section-title">Metafield Type: single line text</div><div class="metafiled-section-content"><div class="metafiled-name">Liquid Metafield Code: <span>{% raw %}{{ page.metafields.custom.single_line_text.value }}{% endraw %}</span></div><div class="metafiled-value">Metafield Value: <span>{{ page.metafields.custom.single_line_text.value }}</span></div></div>
</div>
<div class="metafiled-section"><div class="metafiled-section-title">Metafield Type: list single line text</div><div class="metafiled-section-content"><div class="metafiled-name">Liquid Metafield Code: <span>{% raw %}{{ page.metafields.custom.list_single_line_text.value }}{% endraw %}</span></div><div class="metafiled-value">Metafield Value: <span>{{ page.metafields.custom.list_single_line_text.value }}</span></div></div><div class="obj-content">{% assign list_line_text = page.metafields.custom.list_single_line_text %}<div class="code"><span>Accessing list_single_line_text :</span><span>{% raw %}{% assign list_line_text = page.metafields.custom.list_single_line_text.value %}{% endraw %}</span></div><div class="code"><span>for loop :</span><span>{% raw %}{% for line_text in list_line_text.value %}{{ line_text }}{% endfor %}{% endraw %}</span></div><ul>{% for line_text in list_line_text.value %}<li><span>{% increment idx %} :</span><span>{% raw %}{{ line_text }}{% endraw %}</span><span>{{ line_text }}</span></li>{% endfor %}</ul></div>
</div>
<div class="metafiled-section"><div class="metafiled-section-title">Metafield Type: multi line text</div><div class="metafiled-section-content"><div class="metafiled-name">Liquid Metafield Code: <span>{% raw %}{{ page.metafields.custom.multi_line_text.value }}{% endraw %}</span></div><div class="metafiled-value">Metafield Value: <span>{{ page.metafields.custom.multi_line_text.value }}</span></div></div>
</div>
<div class="metafiled-section"><div class="metafiled-section-title">Metafield Type: integer</div><div class="metafiled-section-content"><div class="metafiled-name">Liquid Metafield Code: <span>{% raw %}{{ page.metafields.custom.integer.value }}{% endraw %}</span></div><div class="metafiled-value">Metafield Value: <span>{{ page.metafields.custom.integer.value }}</span></div></div>
</div>
<div class="metafiled-section"><div class="metafiled-section-title">Metafield Type: true of false</div><div class="metafiled-section-content"><div class="metafiled-name">Liquid Metafield Code: <span>{% raw %}{{ page.metafields.custom.boolean.value }}{% endraw %}</span></div><div class="metafiled-value">Metafield Value: <span>{{ page.metafields.custom.boolean.value }}</span></div></div>
</div>
<div class="metafiled-section"><div class="metafiled-section-title">Metafield Type: json</div><div class="metafiled-section-content"><div class="metafiled-name">Liquid Metafield Code: <span>{% raw %}{{ page.metafields.custom.json.value }}{% endraw %}</span></div><div class="metafiled-value">Metafield Value: <span>{{ page.metafields.custom.json.value }}</span></div></div>
</div>
<div class="metafiled-section"><div class="metafiled-section-title">Metafield Type: date</div><div class="metafiled-section-content"><div class="metafiled-name">Liquid Metafield Code: <span>{% raw %}{{ page.metafields.custom.date.value }}{% endraw %}</span></div><div class="metafiled-value">Metafield Value: <span>{{ page.metafields.custom.date.value }}</span></div></div>
</div>
<div class="metafiled-section"><div class="metafiled-section-title">Metafield Type: money</div><div class="metafiled-section-content"><div class="metafiled-name">Liquid Metafield Code: <span>{% raw %}{{ page.metafields.custom.money.value }}{% endraw %}</span></div><div class="metafiled-value">Metafield Value: <span>{{ page.metafields.custom.money.value }}</span></div>    </div>
</div>
<div class="metafiled-section"><div class="metafiled-section-title">Metafield Type: product</div><div class="metafiled-section-content"><div class="metafiled-name">Liquid Metafield Code: <span>{% raw %}{{ page.metafields.custom.product.value }}{% endraw %}</span></div><div class="metafiled-value">Metafield Value: <span>{{ page.metafields.custom.product.value }}</span></div></div><div class="obj-content">{% assign product_value = page.metafields.custom.product.value %}<div class="code"><span>Accessing Reference Object :</span><span>{% raw %}{% assign product_value = page.metafields.custom.product.value %}{% endraw %}</span></div><ul><li><span>title :</span><span>{% raw %}{{ product_value.title }}{% endraw %}</span><span>{{ product_value.title }}</span></li><li><span>featured_image :</span><span>{% raw %}{{ product_value.featured_image }}{% endraw %}</span><span>{{ product_value.featured_image }}</span></li><li><span>price :</span><span>{% raw %}{{ product_value.price | money }}{% endraw %}</span><span>{{ product_value.price | money }}</span></li><li><span>url :</span><span>{% raw %}{{ product_value.url | link_to: product_value.url }}{% endraw %}</span><span>{{ product_value.url | link_to: product_value.url }}</span></li></ul></div>
</div>
<div class="metafiled-section"><div class="metafiled-section-title">Metafield Type: list product</div><div class="metafiled-section-content"><div class="metafiled-name">Liquid Metafield Code: <span>{% raw %}{{ page.metafields.custom.list_product.value }}{% endraw %}</span></div><div class="metafiled-value">Metafield Value: <span>{{ page.metafields.custom.list_product.value }}</span></div></div><div class="obj-content"><div class="code"><span>Accessing Reference Object :</span><span>{% raw %}{% assign list_product = page.metafields.custom.list_product.value %}{% endraw %}</span></div><div class="code"><span>for loop :</span><span>{% raw %}{% for product_item in list_product %} {{ product_item.attr }}{% endfor %}{% endraw %}</span></div>{% assign list_product = page.metafields.custom.list_product.value %}{% for product_item in list_product %}<ul><li><span>title :</span><span>{% raw %}{{ product_item.title }}{% endraw %}</span><span>{{ product_item.title }}</span></li><li><span>featured_image :</span><span>{% raw %}{{ product_item.featured_image }}{% endraw %}</span><span>{{ product_item.featured_image }}</span></li><li><span>price :</span><span>{% raw %}{{ product_item.price | money }}{% endraw %}</span><span>{{ product_item.price | money }}</span></li><li><span>url :</span><span>{% raw %}{{ product_item.url | link_to: product_item.url }}{% endraw %}</span><span>{{ product_item.url | link_to: product_item.url }}</span></li></ul>{% endfor %}</div>
</div>
<div class="metafiled-section"><div class="metafiled-section-title">Metafield Type: collection</div><div class="metafiled-section-content"><div class="metafiled-name">Liquid Metafield Code: <span>{% raw %}{{ page.metafields.custom.collection.value }}{% endraw %}</span></div><div class="metafiled-value">Metafield Value: <span>{{ page.metafields.custom.collection.value }}</span></div></div><div class="obj-content">{% assign collection = page.metafields.custom.collection.value %}<div class="code"><span>Accessing Reference Object :</span><span>{% raw %}{% assign collection = page.metafields.custom.collection.value %}{% endraw %}</span></div><ul><li><span>title :</span><span>{% raw %}{{ collection.title }}{% endraw %}</span><span>{{ collection.title }}</span></li><li><span>url :</span><span>{% raw %}{{ collection.url | link_to: collection.url }}{% endraw %}</span><span>{{ collection.url | link_to: collection.url }}</span></li></ul></div>
</div>
<div class="metafiled-section"><div class="metafiled-section-title">Metafield Type: metaobjects</div><div class="metafiled-section-content"><div class="metafiled-name">Liquid Metafield Code: <span>{% raw %}{{ page.metafields.custom.metaobjects.value }}{% endraw %}</span></div><div class="metafiled-value">Metafield Value: <span>{{ page.metafields.custom.metaobjects.value }}</span></div></div><div class="obj-content">{% assign metaObject = page.metafields.custom.metaobjects.value %}<div class="code"><span>Accessing MetaObject :</span><span>{% raw %}{% assign metaObject = page.metafields.custom.metaobjects.value %}{% endraw %}</span></div><ul><li><span>name :</span><span>{% raw %}{{ metaObject.name }}{% endraw %}</span><span>{{ metaObject.name }}</span></li><li><span>gender :</span><span>{% raw %}{{ metaObject.gender }}{% endraw %}</span><span>{{ metaObject.gender }}</span></li></ul></div>
</div>
<div class="metafiled-section"><div class="metafiled-section-title">Metafield Type: file</div><div class="metafiled-section-content"><div class="metafiled-name">Liquid Metafield Code: <span>{% raw %}{{ page.metafields.custom.file.value }}{% endraw %}</span></div><div class="metafiled-value">Metafield Value: <span>{{ page.metafields.custom.file.value }}</span></div></div><div class="obj-content">{% assign file = page.metafields.custom.file.value %}<div class="code"><span>Accessing Reference Object :</span><span>{% raw %}{% assign file = page.metafields.custom.file.value %}{% endraw %}</span></div><ul><li><span>file :</span><span>{% raw %}{{ file | image_url: width: 100 | image_tag }}{% endraw %}</span><span>{{ file | image_url: width: 100 | image_tag }}</span></li></ul></div>
</div>

模板渲染

这篇关于Shopify二次开发之五:元字段(Metafields)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/465032

相关文章

Superset二次开发之Select 筛选器源码分析

路径:superset-frontend/src/filters/components/Select  源码文件: 功能点: 作用 交互 功能 index.ts作为模块的入口点,导出其他文件中定义的主要组件和函数。它使其他文件中的导出可以被外部模块使用。 SelectFilterPlugin.tsx 定义主要的插件类 SelectFilterPlugin 和组件 Sele

了解elementUI的底层源码, 进行二次开发

Element UI 是一个基于 Vue.js 的桌面端组件库,广泛用于构建美观、交互友好的用户界面。要深入理解 Element UI 的底层源码并进行二次开发,你需要掌握以下几个关键点: Vue.js 原理 Element UI 是基于 Vue.js 构建的,因此首先需要熟悉 Vue.js 的核心概念和机制,包括: ● 组件系统:Vue.js 的组件化思想,如何定义组件、使用组件、传递属性和事

关于武汉高芯coin417G2红外机芯的二次开发

文章目录 前言一、外观和机芯参数二、SDK的使用1、打开相机2、回调函数中获取全局温度和图像3、关闭相机 前言 最近工作中接触了一款基于武汉高芯科技有限公司开发的红外模组,即coin417g2(测温型)+9.1mm镜头.使用此模组,开发了一套红外热成像检测桌面应用程序.下面简单记录下该模组的使用. 一、外观和机芯参数 如下是该机芯的外观和机芯参数: 二、SDK

NX二次开发—进阶(二)

一、创建圆弧 在NX上通过代码画出圆弧,定义起始和终止位置,还有圆心位置和半径 创建圆弧,需要获取CSYS的矩阵ID,通过UF_CURVE_create_arc函数进行创建 //定义参数UF_CURVE_arc_t arc;arc.start_angle = 0.0;arc.end_angle = 225 * DEGRA;//DEGRA=PI/180//中心坐标arc.arc_center

NIFI汉化_替换logo_二次开发_Idea编译NIFI最新源码_详细过程记录_全解析_Maven编译NIFI避坑指南001

由于需要对NFI进行汉化,以及二次开发,首先要下载源码以后编辑通过,NIFI的源码,项目非常多,编译过程中需要编译超过570个jar包,同时编译过程很慢需要30多分钟. 1.首先下载NIFI源码,根据需要下载对应版本: https://github.com/kemixkoo/orchsym-runtime/   首先介绍一下,这个是一个公司根据nifi进行定制开发的,已经汉化,但是不能商

NX二次开发——进阶(一)

一、链表及相关函数的用法 函数说明UF_MODL_create_list创建一个链表,并返回链表的头指针UF_MODL_put_list_item插入元素到链表中,不检验对象是否重复,或者已经存在UF_MODL_ask_list_count获取链表对象数量,从头开始遇到null_tag结束UF_MODL_ask_list_item查询链表对象标识,给个位置返回标识UF_MODL_delete_l

​​NIFI汉化_替换logo_二次开发_Idea编译NIFI最新源码_详细过程记录_全解析_Maven编译NIFI避坑指南002

继续,执行pom.xml引入依赖以后,发现以下几种报错: 可以看到在下载aws-java-sdk-bundle 1.12.710版本的时候报错了 可以看到日志信息,就是在阿里云上下载的,因为阿里云上缺少这个jar包 aws-java-sdk-bundle-1.12.710.jar 这个jar包,我还特意去阿里云上查询了一下 https://developer.aliyun.com/

恋爱相亲交友系统源码原生源码可二次开发APP 小程序 H5,web全适配

直播互动:平台设有专门的直播间,允许房间主人与其他异性用户通过视频连线的方式进行一对一互动。语音视频交流:异性用户可以发起语音或视频通话,以增进了解和交流。群组聊天:用户能够创建群聊,邀请自己关注的异性朋友加入,以便进行多人在线交流。虚拟礼品赠送:平台提供多样化的虚拟礼物,不同礼物有不同的价值,用户可以用来表达好感或支持。私人消息:异性用户之间可以互相发送私人信息,不过平台为了维护用户体验,对

Spring回顾之五 —— 测试,JUnit与SpringTest的完美结合

没有测试的程序,是不完整的,每一个从事写程序的人员,都应该坚持做单元测试,通过单元测试可以验证程序基本功能的有效性,从而保证整个系统的质量,功在一时,利在千秋。这里我们将尝试使用Junit和SpringTest,在之前的系统里添加测试功能。 第一步:JUnit与SpringTest的引入     JUnit故名知意,是一个专门为Java语言提供单元测试的框架。平时的开发过程中,单元

UG二次开发CreateDialog函数在UI.hxx文件和WinUser.h中的冲突

文章出自https://blog.csdn.net/qq_41843732/article/details/91422764 在UG二次开发中,若使用MFC库,一旦加上#include<Afx.h>头文件,下面这句话就报错 theDialog = GetPoints::theUI->CreateDialog(theDlxFileName); 解决CreateDialog函数在UI.hx