Skip to content

Instantly share code, notes, and snippets.

View ikraamg's full-sized avatar
🌍
Collaborating

Ikraam Ghoor ikraamg

🌍
Collaborating
View GitHub Profile
@ikraamg
ikraamg / script.rb
Last active July 1, 2021 11:05 — forked from cesartalves/script.rb
Import option value to products for `Cans` option_type
cans = Spree::OptionType.find_by!(name: "quantity")
one = Spree::OptionValue.find_by!(name: "quantity-1")
three = Spree::OptionValue.find_by!(name: "quantity-3")
six = Spree::OptionValue.find_by!(name: "quantity-6")
twelve = Spree::OptionValue.find_by!(name: "quantity-12")
twenty_four = Spree::OptionValue.find_by!(name: "quantity-24")
option_value_hash = {
"1" => one,
@ikraamg
ikraamg / console.md
Last active July 6, 2021 16:21
Erd rails generator

https://voormedia.github.io/rails-erd/install.html

gem 'rails-erd'

bundle exec rake erd polymorphism=true filetype='png' notation=bachman filename='erd' exclude='ApplicationRecord,Record,Searchable,PgSearch::Document,ActiveStorage::Attachment,ActiveStorage::Blob,ActionMailbox::Record,ActionText::Record,ActiveStorage::Record', inheritance=true, attributes=content,inheritance,primary_keys,foreign_keys

diff --git a/graphql-cms/queries/catalog.js b/graphql-cms/queries/catalog.js
index 75d1f9d..db89a42 100644
--- a/graphql-cms/queries/catalog.js
+++ b/graphql-cms/queries/catalog.js
@@ -1,6 +1,7 @@
import { fetchGraphQL } from '../api'
import { COLLECTION_FRAGMENT } from 'graphql-cms/fragments'
import placeholder from 'graphql-cms/utils/placeholder'
+import { bootstrapReduxStore } from './redux'
@ikraamg
ikraamg / post-checkout-email.mustache
Created May 6, 2022 10:42
Post checkout cross sell email
<wrapper class="header">
<container>
<row>
<columns>
<h3 class="text-center"> Hey {{ship_address.firstname}}, </h3>
<p class="text-center"> We've updated your order to include your recently purchased items. </p>
</columns>
</row>
</container>
</wrapper>
@ikraamg
ikraamg / cross-sell-body.json
Last active May 6, 2022 13:57
Post checkout cross sell example POST body
{
"order": {
"line_items_attributes": [
{
"sku": "product-1",
"quantity": 2,
"subscription_line_items_attributes": [
{
"interval_length": 3,
"interval_units": "month"
diff --git a/package.json b/package.json
index 4b6438c..55622ef 100644
--- a/package.json
+++ b/package.json
@@ -22,6 +22,7 @@
"@stripe/terminal-js": "^0.9.0",
"babel-plugin-styled-components": "^1.10.7",
"copy-to-clipboard": "^3.3.1",
+ "date-fns": "^2.28.0",
"dotenv": "^10.0.0",
@ikraamg
ikraamg / dynamic-promotion.diff
Last active May 18, 2022 15:14
Send dynamic promotions and metadata via addToCart method.
diff --git a/packages/nextjs-starter-autonomy/src/redux/actions/cart/add-to-cart.js b/packages/nextjs-starter-autonomy/src/redux/actions/cart/add-to-cart.js
index e1733c3..eab6c7d 100644
--- a/packages/nextjs-starter-autonomy/src/redux/actions/cart/add-to-cart.js
+++ b/packages/nextjs-starter-autonomy/src/redux/actions/cart/add-to-cart.js
@@ -12,12 +12,18 @@ export const addToCartRequest = sku => {
}
}
-export const addToCartSuccess = (cart, variant, quantity) => {
+export const addToCartSuccess = (
@ikraamg
ikraamg / line_items_endpoint.sh
Created May 18, 2022 15:25
Dynamic Promotion API example
curl --location --request PUT 'http://localhost:3000/api/orders/CHORD-579656375/line_items/41' \
--header 'X-Spree-Order-Token: QDpqfwxE2eaUr7oo41B6Zw' \
--header 'Content-Type: application/json' \
--data-raw '{
"sku": "product-6",
"quantity": 3,
"dynamic_promotions_attributes": [
{
"code": "existing_code_to_destroy",
"_destroy": 1
{
"sku": "bundle-variant-1",
"quantity": 1,
"options": {
"parts": [
{
"sku": "normal-variant-1",
"quantity": 4
},
{
diff --git a/packages/gatsby-starter-autonomy/package.json b/packages/gatsby-starter-autonomy/package.json
index de49216..1e29395 100644
--- a/packages/gatsby-starter-autonomy/package.json
+++ b/packages/gatsby-starter-autonomy/package.json
@@ -16,6 +16,8 @@
"dependencies": {
"@chordcommerce/chord-magic": "^1.0.0",
"@chordcommerce/gatsby-theme-autonomy": "^1.0.0",
+ "@stripe/react-stripe-js": "^1.4.1",
+ "@stripe/stripe-js": "^1.16.0",