{"id":21826408,"url":"https://github.com/nerdsofalltrades/shopify-plugins","last_synced_at":"2026-03-12T18:55:50.082Z","repository":{"id":89008699,"uuid":"143414457","full_name":"nerdsofalltrades/shopify-plugins","owner":"nerdsofalltrades","description":"Add features to your Shopify storefront and checkout with lightweight and easily integrateable plugins.","archived":false,"fork":false,"pushed_at":"2020-05-08T15:35:10.000Z","size":4316,"stargazers_count":11,"open_issues_count":17,"forks_count":2,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-04-14T05:32:41.201Z","etag":null,"topics":["plugin","plugin-loader","shopify","shopify-app","shopify-apps"],"latest_commit_sha":null,"homepage":null,"language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/nerdsofalltrades.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2018-08-03T10:35:57.000Z","updated_at":"2022-06-05T22:57:05.000Z","dependencies_parsed_at":"2023-03-06T10:00:23.490Z","dependency_job_id":null,"html_url":"https://github.com/nerdsofalltrades/shopify-plugins","commit_stats":null,"previous_names":[],"tags_count":8,"template":false,"template_full_name":null,"purl":"pkg:github/nerdsofalltrades/shopify-plugins","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nerdsofalltrades%2Fshopify-plugins","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nerdsofalltrades%2Fshopify-plugins/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nerdsofalltrades%2Fshopify-plugins/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nerdsofalltrades%2Fshopify-plugins/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/nerdsofalltrades","download_url":"https://codeload.github.com/nerdsofalltrades/shopify-plugins/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nerdsofalltrades%2Fshopify-plugins/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":30438378,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-03-12T14:34:45.044Z","status":"ssl_error","status_checked_at":"2026-03-12T14:09:33.793Z","response_time":114,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["plugin","plugin-loader","shopify","shopify-app","shopify-apps"],"created_at":"2024-11-27T18:03:55.430Z","updated_at":"2026-03-12T18:55:50.077Z","avatar_url":"https://github.com/nerdsofalltrades.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Shopify Plugins\n\n[![CircleCI](https://circleci.com/gh/nerdsofalltrades/shopify-plugins.svg?style=svg)](https://circleci.com/gh/nerdsofalltrades/shopify-plugins)\n[![Greenkeeper badge](https://badges.greenkeeper.io/nerdsofalltrades/shopify-plugins.svg)](https://greenkeeper.io/)\n\nAdd features to your Shopify storefront and checkout with lightweight and easily integrateable plugins.\n\n## Shop integration\n\nPlugins are loaded dynamically and only in context. That means, that i.e. the _progress-bar_ plugin is only loaded in when visitor is in the checkout process.\nThe _accept-terms_ plugin is only loaded for the checkout contact information step.\n\nTo enable a plugin add this code to your _Google Analytics Additional Scripts_ section in Shopify's Admin / Online Store / Preferences.\n\n```javascript\nfetch('//cdn.jsdelivr.net/gh/nerdsofalltrades/shopify-plugins@0.1.6/dist/shopify-plugin-loader.min.js').then(function(\n  result\n) {\n  result.text().then(function(script) {\n    var plugin = document.createElement('script');\n    plugin.innerHTML = script;\n    document.body.appendChild(plugin);\n\n    // Load plugins here\n    var ctx = window.ShopifyPlugins;\n\n    // Load the accept-terms plugin only in checkout\n    // contact information step\n    ctx.checkout.contactInformation.load('accept-terms');\n\n    // Load the validate-contact-information plugin only in checkout\n    // contact information step\n    ctx.checkout.contactInformation.load('validate-contact-information');\n\n    // Load the progress-bar plugin for all steps\n    // in checkout\n    ctx.checkout.all.load('progress-bar');\n\n    // Load other plugins...\n  });\n});\n```\n\n## Plugins\n\n### Accept terms plugin\n\nThis plugin adds a mandatory Accept Terms checkbox below the Accept Marketing\nCheckbox in Shopify's contact information checkout step.\n\n![Accept terms plugin in action](examples/accept-terms/accept-terms.png)\n\nAdd this code to enable it.\n\n```javascript\nctx.checkout.contactInformation.load('accept-terms');\n```\n\nWithout options standard english texts are displayed and the url of your terms\nis expected to be found at `/pages/terms`. To change that just pass options\nand set it up as you like.\n\n```javascript\nctx.checkout.contactInformation.load('accept-terms', {\n  // The checkbox label\n  label: 'I have read and I agree to the',\n  // The label of the terms link\n  termsName: 'terms',\n  // The url to your terms\n  termsURL: '/pages/terms',\n  // Message displayed when customer tries to go on without agreeing\n  errorMessage: 'Please agree to our terms before your purchase'\n});\n```\n\n### Validate contact information plugin\n\nThis plugin adds custom RegEx validators to Shopify's contact information checkout step.\n\nAdd this code to enable it.\n\n```javascript\nctx.checkout.contactInformation.load('validate-contact-information', [\n  {\n    selector: '#checkout_shipping_address_address1',\n    pattern: /.*[a-z]+.*[0-9]+.*/i,\n    errorMessage: 'Please enter streetname AND number'\n  }\n]);\n```\n\n### Progress bar plugin\n\nThis plugin replaces the upper breadcrumb navigation of Shopify's checkout with\na bubble progress bar.\nAs the existing breadcrumb labels are used for displaying the single steps no additional\nconfiguration is needed.\n\n![Progress bar plugin in action](examples/progress-bar/progress-bar.png)\n\nAdd this code to enable it.\n\n```javascript\nctx.checkout.all.load('progress-bar');\n```\n\n## Development\n\n```shell\n$ npm install\n$ npm run dev\n```\n\nOpen http://localhost:3000 to test the plugins.\n\n## Note\n\nThis software is not correlated to Shopify.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnerdsofalltrades%2Fshopify-plugins","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fnerdsofalltrades%2Fshopify-plugins","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnerdsofalltrades%2Fshopify-plugins/lists"}