All Projects → uicrooks → shopify-mail-notifications

uicrooks / shopify-mail-notifications

Licence: MIT license
Blazing-fast Shopify mail notifications templating environment with Liquid, MJML and Twig

Programming Languages

Twig
543 projects
javascript
184084 projects - #8 most used programming language

Projects that are alternatives of or similar to shopify-mail-notifications

laravel-mjml
Laravel MJML offers support for rendering MJML syntax into in-line HTML that can be sent within mails.
Stars: ✭ 26 (+4%)
Mutual labels:  mail, mjml
laravel-mail-export
A simple mailable trait and interface to export mails to a storage disk once being sent.
Stars: ✭ 82 (+228%)
Mutual labels:  mail
branch
Branch Starter Theme - A WordPress starter theme based on Timber library and Bootstrap
Stars: ✭ 87 (+248%)
Mutual labels:  twig
mjml-ruby
✉️ MJML parser and template engine for Ruby
Stars: ✭ 49 (+96%)
Mutual labels:  mjml
easy-email
React.js Drag-and-Drop Email Editor based on MJML. Transform structured JSON data into major email clients compatible HTML. Written in Typescript and supported both in browser and Node.js.
Stars: ✭ 449 (+1696%)
Mutual labels:  mjml
mjml-server
MJML wrapped in Express for use over HTTP
Stars: ✭ 31 (+24%)
Mutual labels:  mjml
SplitShare
Shamir's Secret Sharing Algorithm implementation in golang combined with PGP and a mail delivery system
Stars: ✭ 31 (+24%)
Mutual labels:  mail
imail
small mail server
Stars: ✭ 88 (+252%)
Mutual labels:  mail
SimpleKotlinMail
A simple, coroutine based Kotlin Email API for both client- and server-side projects
Stars: ✭ 56 (+124%)
Mutual labels:  mail
react-autofill
Automate the filling of checkout forms, increasing your chance of purchasing limited release items.
Stars: ✭ 57 (+128%)
Mutual labels:  shopify
vox
⚡️ instant interactivity for the web 💫
Stars: ✭ 85 (+240%)
Mutual labels:  shopify
yii2-symfonymailer
Yii 2 Symfony mailer extension.
Stars: ✭ 29 (+16%)
Mutual labels:  mail
robot-email-template
Email template for Robot Framework test results
Stars: ✭ 19 (-24%)
Mutual labels:  mail
pine
pine - A CLI installer for timber
Stars: ✭ 29 (+16%)
Mutual labels:  twig
mechanic-tasks
Public task repository for Mechanic (https://mechanic.dev)
Stars: ✭ 42 (+68%)
Mutual labels:  shopify
koa-shopify-auth
DEPRECATED Middleware to authenticate a Koa application with Shopify
Stars: ✭ 82 (+228%)
Mutual labels:  shopify
digster
Twig templates for WordPress
Stars: ✭ 12 (-52%)
Mutual labels:  twig
go-dkim
A Go library to create and verify DKIM signatures (migrated)
Stars: ✭ 38 (+52%)
Mutual labels:  mail
f3-mailer
Fat-Free Sugar Mailer Plugin
Stars: ✭ 18 (-28%)
Mutual labels:  mail
craft-twig
Craft CMS Package for Atom
Stars: ✭ 17 (-32%)
Mutual labels:  twig

Shopify Mail Notifications

Blazing-fast templating environment for Shopify mail notifications with Liquid, MJML + 🌿 Twig. Create responsive emails quickly with less code.

Table of contents

Features

  • MJML
  • Twig
  • Liquid
  • Yaml
  • Webpack
  • Webpack-dev-server
  • Ready to use shopify mail notification templates

System requirements

  • Node.js
  • npm or yarn

Getting started

Install dependencies and run webpack-dev-server:

npm

$ npm install
$ npm run dev

yarn

$ yarn import # migrate package-lock.json to yarn.lock
$ rm package-lock.json # or delete manually
$ yarn install --force
$ yarn dev

Optional

If the server port is already in use, adjust devServerPort in package.json

Production

Generate minified .liquid files in dist/ directory:

npm

$ npm run build

yarn

$ yarn build

Directories

Directory Description
.config Contains webpack configs.
src Contains webpack's main entry point main.js which auto-loads all .twig files inside src/templates/ and all subdirectories.
src/assets Contains images (used only during development).
src/components Contains reusable components.
src/data Contains .yml files. The contents are accessible in all .twig files.
src/data/shopify Contains data.yml file with Shopify dummy data (used during development to populate liquid templates).
src/layouts Contains layouts.
src/templates Contains mail templates. The index.twig template is reserved for navigation.

Documentation

It's important to understand in which order webpack transforms the code. First, webpack compiles the .twig templates, then MJML tags are compiled to html. If the build task is running liquid isn't compiled and is written directly to the dist/ directory as .liquid files. If the dev task is running: data from src/data/shopify/ is passed to the liquid code, it's compiled to regular html and served via webpack-dev-server.

Development flow: TwigMJMLShopify dataLiquid.html filesWebpack-dev-server

Production flow: TwigMJML.liquid files

Additional notes

  • Data from src/data/ is available in all .twig templates.
  • Data from src/data/shopify/ is available during liquid compilation in development.
  • If you want to write liquid tags instead of twig tags, you have to escape them with {% verbatim %}{% endverbatim %} about verbatim.
  • You might get a Parsing error, especially when using the < character in liquid tags, use <!-- htmlmin:ignore -->{% if foo < 5 %}<!-- htmlmin:ignore --> for a fix.
  • Some Shopify specific filters might not exist in the liquid compiler. To fix this for development, you can add additional filters to the filters section inside .config/webpack.common.js.

Additional docs

Limitations

  • If you change data in files inside src/data/shopify/, you have to restart webpack.
  • It's not possible to set shop.email_accent_color to change it later in Shopify.
  • POS Exchange Receipt template doesn't work.
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].