Skip to content

Instantly share code, notes, and snippets.

View michelarteta's full-sized avatar
:octocat:

Michel Arteta michelarteta

:octocat:
View GitHub Profile
@michelarteta
michelarteta / gtm.liquid
Last active May 2, 2022 17:20
GTM Universal Tag
<script>
var g_account = 'AW-0000000';
var send_to = 'AW-00000000/egZ000000000000000';
var enhanced_conversion_data = {
"first_name": "{{ checkout.billing_address.first_name }}",
"last_name": "{{ checkout.billing_address.last_name }}",
"home_address": {
"street": "{{ checkout.billing_address.street }}",
"city": "{{ checkout.billing_address.city }}",
@michelarteta
michelarteta / checkout.js
Last active August 16, 2023 15:47
Shopify Adds Custom Attributes to Checkout
const citTag = '123456789';
const store = {
order_attributes: [
'citNumberId'
]
}
const storeOrderData = {
attributes: {
@michelarteta
michelarteta / shopify-mutation-observer.js
Last active April 29, 2021 21:20
Shopify Mutation Observer
function checkoutUpdates() {
const prices = document.querySelectorAll('.product__price');
prices.forEach((item) => {
const productPrice = item;
const productName = item.closest('tr').querySelector('.product__description__name');
productName.appendChild(productPrice);
});
}
/**********************
** Colors UI
**********************/
.color--primary {
color: #001D34;
}
.color--secondary {
color: #F2EFDE;
@michelarteta
michelarteta / search.json.liquid
Last active April 10, 2021 14:08
Shopify SKU Search Endpoint
{%- layout none -%}
{%- comment -%}
/*
* Shopify SKU Search Endpoint
* `/search?type=product&q=${searchValue}&view=json`
*
*/
{%- endcomment -%}
{% capture results %}
@michelarteta
michelarteta / search.json.liquid
Last active April 10, 2021 14:03
Shopify SKU Search Endpoint
{%- layout none -%}
{%- comment -%}
/*
* Shopify SKU Search Endpoint
* Add this file to your /templates directory
* Endpoint: http://www.myshopify.com/search?view=json&q=&q=variants.sku:001159284
*
*/
{%- endcomment -%}
{%- paginate search.results by 10 -%}
$(document).ready(function() {
var poboxRegex = new RegExp('(?:P(?:ost(?:al)?)?[\\.\\-\\s]*(?:(?:O(?:ffice)?[\\.\\-\\s]*)?B(?:ox|in|\\b|\\d)|o(?:ffice|\\b)(?:[-\\s]*\\d)|code)|box[-\\s\\b]*\\d)', 'i');
var phoneRegex = /^\(?([0-9]{3})\)?[-. ]?([0-9]{3})[-. ]?([0-9]{4})$/;
var lettersAndNumbersRegex = /^(?=.*[0-9]{2,})(?=.*[a-z]{3,})([\sa-zA-Z0-9\\'\\-]+)$/;
var repeatCharactersRegex = /([a-zA-Z]{2,}|[0-9]{3,})\1$/;
// ^(?!.*?(.+)\1)([\w@+$!.-]+){8,20}$
function showError(errorContainer, element, msg){
$(errorContainer).remove();
$(element).closest('.field').find(".error-message").remove();
<script type="text/javascript">
!function(e){if(!window.pintrk){window.pintrk=function()
{window.pintrk.queue.push(Array.prototype.slice.call(arguments))};var
n=window.pintrk;n.queue=[],n.version="3.0";var
t=document.createElement("script");t.async=!0,t.src=e;var
r=document.getElementsByTagName("script")[0];r.parentNode.insertBefore(t,r)}}
("https://s.pinimg.com/ct/core.js");
pintrk('load','{{tag_id}}', { em: '{{ customer.email }}', });
pintrk('page');
/*
* Try to login, check the login credentials, and then redirect if required.
*/
login(email, password).done(function (html) {
if (html.indexOf('Invalid login credentials') !== -1) {
// invalid password - show a message to the user
} else {
// All good! Let's redirect if required
var checkoutUrl = getCheckoutUrl();
<script>
WebFontConfig = {
google: {
families: ['Encode+Sans+Condensed:400,700', 'Encode+Sans:400,500,700']
}
};
(function(d) {
var wf = d.createElement('script'), s = d.scripts[0];
wf.src = 'https://ajax.googleapis.com/ajax/libs/webfont/1.6.26/webfont.js';