Shopify 的主题开发-目录结构起步

本文介绍了Shopify主题开发中的关键目录结构,包括assets、config、layout等文件夹的作用,以及如何利用Liquid、CSS、JS进行代码编写。同时,详细讲解了themeeditor中的自定义部分,如sections、blocks的使用和配置设置_schema.json。
摘要由CSDN通过智能技术生成

Shopify 的主题开发-目录结构起步

为什么我建议你先看目录

  • 节约时间,快速帮助你找到需要的内容,用问题去解决
  • 快速匹配已学的框架,比如我们在学习 Vue或者其他框架的时候都有一些约定俗成的目录结构,这些概念是通用的

目录结构

Shopify 的主题也就是指在线商店的样式,风格,组织性这些方面的内容。在开发的时候需要遵循一定的目录结构。这些内容包括了基本的代码还有额外的一些静态资源。

.
├── assets 
├── config
├── layout
├── locales
├── sections
├── snippets
└── templates
    └── customers

在这里插入图片描述

  1. 对应到 layout file
  2. 对应到 template所设置的内容
  3. 对应到 section groups 所添加的section 分组
  4. 对引导 sections 单个 setction
  5. 对应到 blocks 每一个 section 所能包含的
  6. snippets,可以用来放置一些可复用的代码文件。
  7. locales,也就是我们常说的i18n,支持国际化。

除了基本目录之外,代码主题部分和前端开发类似,包含有基本的

  • 代码部分:Liquid(一种HTML预处理器),cssjs
  • 静态文件资源:图片,视频,文字等
  • 配置文件:一些json数据,当用户适用 theme editor 的时候的一种交流方式

theme editor 上的自定义部分

也就是当用户拖拽的时候,你需要告诉用户哪些可以拖拽,哪些可以设置,这个需要创建多个sectionsblocks来预先定义。除了拖拽部分,还有关于设置的这部分内容,也可以有下面两个地方配置。

每一个主题都应该包含有许多用于自定义的,和一些默认展示的模板内容,就比如 home,page 和 products等页面,当然他们也能对应有许多不同的变体(有种类似不同主题的意思)。

要在基于@shopify/shopify-app-express的应用程序中注册Shopify Webhook,可以使用该框架提供的webhook路由。下面是一个示例代码来注册一个Webhook: ```javascript const { default: createShopifyAuth } = require('@shopify/koa-shopify-auth'); const { default: Shopify, ApiVersion } = require('@shopify/shopify-api'); const { verifyRequest } = require('@shopify/koa-shopify-auth'); const Koa = require('koa'); const Router = require('koa-router'); const bodyParser = require('koa-bodyparser'); const app = new Koa(); const router = new Router(); const webhook = { topic: 'products/create', address: 'https://your-app.com/webhooks/products/create', format: 'json', }; app.use(bodyParser()); const shopifyAuth = createShopifyAuth({ // Your Shopify app API key and secret apiKey: process.env.SHOPIFY_API_KEY, secret: process.env.SHOPIFY_API_SECRET, // Your app URL appUrl: process.env.APP_URL, // Scopes to request on the merchant's behalf scopes: ['read_products', 'write_products', 'read_script_tags', 'write_script_tags'], // After authentication, redirect to the shop's home page afterAuth(ctx) { const { shop } = ctx.state.shopify; ctx.redirect(`https://${shop}/admin/apps/${process.env.SHOPIFY_API_KEY}`); }, }); // Register webhook router.post('/webhooks/products/create', verifyRequest({ returnHeader: true }), (ctx) => { console.log('New product created:', ctx.request.body); ctx.status = 200; }); (async function() { // Create an instance of Shopify const shopify = new Shopify({ apiKey: process.env.SHOPIFY_API_KEY, apiSecretKey: process.env.SHOPIFY_API_SECRET, shopName: ctx.session.shop, accessToken: accessToken, apiVersion: ApiVersion.October20, autoLimit: { calls: 2, interval: 1000, bucketSize: 35 }, }); // Register webhook await shopify.webhook.create(webhook); // Use the shopifyAuth middleware app.use(shopifyAuth); app.use(router.allowedMethods()); app.use(router.routes()); app.listen(process.env.PORT, () => { console.log(`Server listening on port ${process.env.PORT}`); }); })(); ``` 在上面的代码中,我们首先创建一个Shopify实例,并使用它来注册Webhook。然后,我们使用@shopify/shopify-app-express框架创建一个HTTP服务器,并为Webhook的URL路径创建一个POST路由。在路由处理程序中,我们可以处理接收到的Webhook数据。最后,我们使用Shopify API将Webhook注册到商店中。 注意,我们在Webhook地址中使用了公共URL,这意味着您需要在您的应用程序中设置公共URL,并将其用作Webhook地址。此外,您需要在Shopify后台中配置相应的Webhook主题,以便将Webhook发送到正确的URL地址。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值