Hey, folks. We're going to continue our series of hard times and survival food. Now, we've done the Pan de Campo , and Hard Tack and Hot Water Cornbread, and today we're going to cook something that has pulled people through some hard times and the Great Depression. One of the ol' traditional recipes, SOS. It calls for the basics - just a little flour, milk, grease, and a little meat topped on a piece of bread.
Even though it's simple, this will stick to your ribs and is good eating!
S.O.S. - Let's Begin I'll demonstrate how to do this old-style just right on the coals. We have us a skillet on a tall trivet with some coal directly under it. We're mounting them coals up pretty good. (By the way, you can get our trivets here !) We're going to let that skillet get good and hot before we throw that meat on it.
We appreciate you sharing our recipes with your friends and family!
Today, I have 1 pound of Certified Angus Beef , 80/20 blend.
Step 1: Crumble the beef up on the warmed skillet. We're going to let that meat brown a little and add half of a Vidalia onion (or yellow onion) in there. At this point go ahead and season it a little with salt and pepper or our go-to seasoning here: Original Seasoning.
As Seen in This Recipe
Step 2: Remove the contents from the skillet, leaving any grease and add 5 tablespoons of butter and let it melt.
Step 3: When the butter has melted, I'm going to add 4 tablespoons of flour. We don't want it to burn, so I'm going to take it off of fire and make the roux of this. Just try to mash the lumps out of it and keep stirring until it's smooth over a low heat.
Step 4: When the roux is done, add 2 cups of milk. At this point crank it to a medium heat and keep stirring until you get any lumps out. I also like to give it another seasoning with our Red River Ranch or salt and pepper.
Step 5: Add the meat to the gravy mixture and keep cooking until the gravy thickens. You want the consistency to be thick enough it will stay on a piece of bread or biscuit. If you get to the point where you think it is getting too thick, you can add some more milk.
Step 6: This is probably the easiest step. While it's cooking, toast or grill you some bread. This can be any type of bread you like: biscuit, white bread, wheat bread, sourdough, etc. However I will tell you, our favorite is to use a Texas Toast garlic bread- it really enhances the flavor and we just buy the frozen kind for an easy meal.
Now all you have to do is spoon that mixture on top of the bread and you've got a hearty meal that got folks through tough times. It's still good today as it was then.
Visit us in camp as we put together this classic dish in the video below!
As always, Shannon and I thank you for visiting our website and subscribing to our videos . Please follow us on Facebook and Instagram ! We’ll see you down the SOS trail!
S.O.S. - Cowboy Kent Rollins
Author
Cowboy Kent Rollins
Ingredients
1
lb.
ground beef
Certified Angus Beef preferred
½
yellow onion
chopped
5
tablespoons
butter
4
tablespoons
flour
2
cups
milk
Red River Ranch Original Seasoning or salt and pepper
4
slices
thick-cut bread or garlic bread
toasted
Instructions
In a large cast iron skillet, begin browning the beef over medium-high heat. As it begins to cook, stir in the onion until the beef has completely browned and the onions are tender. Season to taste with Red River Ranch Original or salt and pepper. Drain any grease if needed.
Meanwhile, in a medium skillet, melt the butter over medium heat. Stir in the flour with a spatula until smooth. Slowly pour in the milk. Continue cooking until the mixture thickens to a gravy. Season with salt and pepper.
Pour the gravy mixture into the hamburger skillet and stir to combine. Continue cooking 2 to 3 minutes, stirring occasionally. Add more milk, if needed, if the mixture becomes too thick.
Evenly spoon the mixture over the slices of bread and serve immediately.
window._ABConfig.getProductDiscountedPricing = ({ variantId, amount, quantity, sellingPlanId }) => {
const disableAppFunctionality = window?._ABConfig?.['disableAppFunctionality'] || false;
if (!variantId || disableAppFunctionality) {
console.error('Please provide a current variant id');
return [];
}
//helper functions
const isDiscountUsageLimitExceed = (customerDiscountUsage, bundle) => {
if (customerDiscountUsage && customerDiscountUsage.length) {
const targetDiscountUsage = customerDiscountUsage.find(
(discountUsage) => discountUsage?.uniqueRef === bundle?.uniqueRef
);
return targetDiscountUsage && targetDiscountUsage?.usageCount >= bundle?.limitToUsePerCustomer;
}
return false;
};
const isBundleRestrictedCustomerByTagsByDiscount = (item, customerTags) => {
if (!item?.restrictTags) return false;
const restrictTags = item?.restrictTags?.split(',');
return customerTags && customerTags.length > 0 && customerTags.some((tag) => restrictTags?.includes(tag));
};
const isBundleAllowedByCustomersTagByDiscount = (item, customerTags) => {
if (!item?.allowedTags) return true;
const allowedCustomersOnly = item?.allowedTags?.split(',');
return (
customerTags &&
customerTags.length > 0 &&
customerTags.some((tag) => allowedCustomersOnly?.includes(tag))
);
};
const isBundleRestrictedByDiscount = (item, customerTags) => {
return isBundleRestrictedCustomerByTagsByDiscount(item, customerTags) || !isBundleAllowedByCustomersTagByDiscount(item, customerTags);
};
const processBundleRules = (bundles, type, fields) =>
bundles
.filter((bundle) => bundle?.bundleType === type)
.map((rule) => {
const parsedRule = { ...rule };
fields.forEach((field) => {
try {
parsedRule[field] = JSON.parse(rule[field] || '[]');
} catch (e) {
console.error('Failed to parse field:', field, e);
parsedRule[field] = [];
}
});
return parsedRule;
});
const getBestDiscount = (applicableDiscounts, lineItem, discountKey = 'discount') => {
return applicableDiscounts.reduce((greater, current) => {
const greaterDiscount = greater?.[discountKey];
const currentDiscount = current?.[discountKey];
if ((greater?.discountType === "PERCENTAGE" && current?.discountType === "PERCENTAGE") ||
(greater?.discountType === "FIXED_AMOUNT" && current?.discountType === "FIXED_AMOUNT")) {
return currentDiscount > greaterDiscount ? current : greater;
} else if (current?.discountType === "FIXED_AMOUNT" && greater?.discountType === "PERCENTAGE") {
return currentDiscount > ((greaterDiscount / 100) * lineItem?.totalAmount) ? current : greater;
} else if (current?.discountType === "PERCENTAGE" && greater?.discountType === "FIXED_AMOUNT") {
return ((currentDiscount / 100) * lineItem?.totalAmount) > greaterDiscount ? current : greater;
}
return currentDiscount > greaterDiscount ? current : greater;
});
};
const getApplicableTieredDiscount = (volumeDiscountBundles, lineItem) => {
let applicableDiscount = null;
const updatedVolumeDiscountBundles = volumeDiscountBundles.map(bundle => {
const updatedTieredDiscount = bundle?.tieredDiscount.map(discount => {
return {
...discount,
appliesOn: bundle?.appliesOn
};
})
return {
...bundle,
tieredDiscount: updatedTieredDiscount
}
});
const volumeDiscountBundlesTieredDiscount = updatedVolumeDiscountBundles.reduce((acc, item) => {
return acc.concat(item?.tieredDiscount);
}, []);
let applicableQuantityBasedDiscount = volumeDiscountBundlesTieredDiscount
.filter(tieredDiscount => tieredDiscount?.discountBasedOn === "QUANTITY")
.filter(tieredDiscount => lineItem?.quantity >= tieredDiscount?.value);
applicableQuantityBasedDiscount = applicableQuantityBasedDiscount.length > 0 ? getBestDiscount(applicableQuantityBasedDiscount, lineItem) : null;
let applicableSpendAmountBasedDiscount = volumeDiscountBundlesTieredDiscount
.filter(tieredDiscount => tieredDiscount?.discountBasedOn === "AMOUNT")
.filter(tieredDiscount => lineItem?.totalAmount >= tieredDiscount?.value);
applicableSpendAmountBasedDiscount = applicableSpendAmountBasedDiscount.length > 0 ? getBestDiscount(applicableSpendAmountBasedDiscount, lineItem, ) : null;
if (applicableQuantityBasedDiscount && applicableSpendAmountBasedDiscount) {
if ((applicableQuantityBasedDiscount?.discountType === "PERCENTAGE" && applicableSpendAmountBasedDiscount?.discountType === "PERCENTAGE") || (applicableQuantityBasedDiscount?.discountType === "FIXED_AMOUNT" && applicableSpendAmountBasedDiscount?.discountType === "FIXED_AMOUNT")) {
if (applicableQuantityBasedDiscount?.discount > applicableSpendAmountBasedDiscount?.discount) {
applicableDiscount = applicableQuantityBasedDiscount;
} else {
applicableDiscount = applicableSpendAmountBasedDiscount;
}
}else if(applicableQuantityBasedDiscount?.discountType === "PERCENTAGE" && applicableSpendAmountBasedDiscount?.discountType === "FIXED_AMOUNT"){
if (((applicableQuantityBasedDiscount?.discount / 100) * lineItem?.totalAmount) > applicableSpendAmountBasedDiscount?.discount) {
applicableDiscount = applicableQuantityBasedDiscount;
} else {
applicableDiscount = applicableSpendAmountBasedDiscount;
}
}else if(applicableQuantityBasedDiscount?.discountType === "FIXED_AMOUNT" && applicableSpendAmountBasedDiscount?.discountType === "PERCENTAGE"){
if (applicableQuantityBasedDiscount?.discount > ((applicableSpendAmountBasedDiscount?.discount / 100) * lineItem?.totalAmount)) {
applicableDiscount = applicableQuantityBasedDiscount;
} else {
applicableDiscount = applicableSpendAmountBasedDiscount;
}
}
} else if (applicableQuantityBasedDiscount) {
applicableDiscount = applicableQuantityBasedDiscount;
} else if (applicableSpendAmountBasedDiscount) {
applicableDiscount = applicableSpendAmountBasedDiscount;
}
return applicableDiscount;
}
const getApplicablePercentOrFixedDiscount = (discountedPricingBundles, lineItem) => {
let applicableDiscount = null;
let applicableQuantityBasedDiscount = discountedPricingBundles
.map(bundle => {
return {
...bundle,
minProductCount: bundle?.minProductCount || 0,
maxProductCount: bundle?.maxProductCount || 0,
minOrderAmount: bundle?.minOrderAmount || 0
};
})
.filter(bundle => {
const minCount = bundle.minProductCount;
const maxCount = bundle.maxProductCount;
const minAmount = bundle.minOrderAmount;
if (minCount > 0 && lineItem.quantity < minCount) return false;
if (maxCount > 0 && lineItem.quantity > maxCount) return false;
if (minAmount > 0 && lineItem.amount < minAmount) return false;
return true;
});
applicableDiscount = applicableQuantityBasedDiscount.length > 0 ? getBestDiscount(applicableQuantityBasedDiscount, lineItem, 'discountValue') : null;
if(applicableDiscount){
applicableDiscount = {
discountBasedOn: applicableDiscount?.minOrderAmount > 0 && applicableDiscount?.minProductCount === 0 ? "AMOUNT" : "QUANTITY",
value: applicableDiscount?.minOrderAmount > 0 && applicableDiscount?.minProductCount === 0 ? lineItem?.totalAmount : lineItem?.quantity,
discount: applicableDiscount?.discountValue,
discountType: applicableDiscount?.discountType,
appliesOn: applicableDiscount?.appliesOn
}
}
return applicableDiscount;
}
const collections = _ABConfig?.product?.collections || [];
const discountBundles = [{"id":39019,"shop":"kent-rollins-store.myshopify.com","name":"Buy Any 3, Save 12%! Buy 5+, Save 15%!","description":"Buy any combination of 3 eligible spices & seasonings, save 12%. Buy 5 or more, and save 15%","status":"ACTIVE","customerIncludeTags":null,"discountType":"TIERED_DISCOUNT","discountValue":null,"products":null,"variants":"null","sequenceNo":null,"bundleType":"CLASSIC_BUILD_A_BOX","settings":"{\"cardGap\":16,\"sequentialProductsPerBatch\":50,\"showUnitPrice\":false,\"showPricesWithoutDecimal\":false,\"disableProductDescription\":false,\"bundleProductNameSortOrder\":\"DEFAULT\",\"includedSubscriptionPlans\":\"\",\"excludeSubscriptionPlans\":\"\",\"perRowItem\":\"THREE\",\"enableAnnouncementBar\":true,\"borderRadius\":8,\"showClassicBundleWidgetInChildProduct\":false,\"enableSequentialProductLoading\":false,\"disableScrollingToBundle\":false,\"showPriceWithSubscriptionPrice\":true,\"showComboBundleWidgetInComboProduct\":false,\"showPriceOfChosenProductsOnly\":false,\"hideQuantitySelector\":false}","bundleProductId":null,"bundleVariantId":null,"productHandle":null,"discountId":null,"price":null,"numberOfProducts":0,"subscriptionBundlingEnabled":false,"subscriptionId":null,"minProductCount":3,"maxProductCount":10,"uniqueRef":"hqblara0d3","bundleRedirect":"CART","customRedirectURL":null,"minOrderAmount":null,"tieredDiscount":"[{\"discountBasedOn\":\"QUANTITY\",\"value\":5,\"discount\":15,\"discountType\":\"PERCENTAGE\",\"discountAllowedTags\":null}]","productViewStyle":"QUICK_ADD","singleProductSettings":null,"trackInventory":false,"sellingPlanType":"BUNDLE_LEVEL","clearCart":"DISABLED","minPrice":null,"maxPrice":null,"externalBuildABoxId":null,"variantVisibilityType":"SHOW_VARIANTS_AS_OPTIONS","subTitle":"Mix and Match any combination of spices and seasonings to save!","freeShipping":false,"themeType":"THEME_ONE","showBundleInProductPage":true,"combinedWithProductDiscount":false,"combinedWithShippingDiscount":true,"combinedWithOrderDiscount":false,"allowedTags":null,"restrictTags":null,"selectionType":"FLEXIBLE","bundleHtml":null,"discountedVariants":null,"allowedCountries":null,"appliesOn":"BOTH","purchaseRequirement":"NO_REQUIREMENT","productDiscountType":"EACH_PRODUCT","countrySelectionType":"ALL_COUNTRY","discountApplyApproach":"SHOPIFY_DISCOUNT_FUNCTION","discountedProductChooseType":"CHOOSE_ALL","internalName":"Buy More, Save More (Sauces & Seasonings)","sections":"[]","limitToUsePerCustomer":null,"discountedVariantSelectionLimit":null,"hideOneTimePurchase":false,"hideSubscriptionPurchase":false,"maxOrderAmount":null,"collectionData":"[{\"id\":497906909503,\"title\":\"Seasonings\",\"handle\":\"seasonings\",\"image\":null},{\"id\":497906876735,\"title\":\"Sauces\",\"handle\":\"sauces\",\"image\":null}]","productSelectionType":"COLLECTION","tag":"appstle_bundles","productChooseType":"CHOOSE_ALL","variantSelectionLimit":null,"discountTargetType":"VARIANT","enableSubscription":false,"subscriptionWidgetPosition":"BELOW","subscribeTitle":"Subscribe and Save","subscribeSubtitle":"Delivered Monthly","subscriptionPreselected":false,"getYAppliesOn":"BOTH","announcementBarMessage":null,"automaticDiscountNodeId":"gid://shopify/DiscountAutomaticNode/1548956926271","recurringCycleLimit":0,"automaticShippingDiscountNodeId":"gid://shopify/DiscountAutomaticNode/1548956959039","scheduledBundleRule":false,"bundleActiveFrom":"2026-01-21T18:00:00Z","bundleActiveTo":null,"bundleSubType":null,"discountAppliesOn":"PER_ORDER","layoutType":"LAYOUT_ONE","style":"{\"tierFullPriceColor\":\"#1e293b\",\"tierFreeGiftTitleFontSize\":13,\"tierUpsellTitleFontSize\":13,\"primaryColor\":\"#000000\",\"tierSubTitleFontSize\":13,\"otherProductsModalFullPriceColor\":\"#555555\",\"primaryDisabledColor\":\"#333333\",\"cardHoverColor\":\"#f8fafc\",\"otherProductsModalPriceColor\":\"#000000\",\"otherProductsModalButtonTextColor\":\"#ffffff\",\"otherProductsButtonBackgroundColor\":\"#374151\",\"tierPriceFontSize\":20,\"tierUpsellSubTitleFontSize\":12,\"comboProductFullPriceFontSize\":12,\"headingTextColor\":\"#000000\",\"badgesTextColor\":\"#ffffff\",\"blockTitleFontStyle\":\"BOLD\",\"tierTitleFontSize\":20,\"otherProductsProductTitleColor\":\"#374151\",\"subscriptionTitleTextColor\":\"#1e293b\",\"subscriptionSubTitleFontSize\":13,\"otherProductsImageSize\":40,\"saveBadgeBackgroundColor\":\"#d1fae5\",\"tierFreeGiftBackgroundColor\":\"#f1f5f9\",\"cardGap\":16,\"tierPriceFontStyle\":\"BOLD\",\"otherProductsModalOverlayColor\":\"#6b7280\",\"tierPriceColor\":\"#1e293b\",\"tierFreeGiftPriceFontSize\":14,\"otherProductsButtonTextColor\":\"#ffffff\",\"tierTitleFontStyle\":\"BOLD\",\"ruleUpsellSubTitleFontSize\":13,\"comboProductPriceFontSize\":13,\"tierUnitLabelFontSize\":14,\"blockTitleFontSize\":14,\"otherProductsProductTitleSize\":16,\"productCardBackgroundColor\":\"#ffffff\",\"cardBackgroundColor\":\"#ffffff\",\"buttonBackgroundColor\":\"#8E0B0B\",\"bundlePageBackgroundColor\":\"#FAFAF9\",\"borderRadius\":8,\"tierUpsellBackgroundColor\":\"#e2e8f0\",\"ruleUpsellTitleTextColor\":\"#1e293b\",\"ruleUpsellSubTitleTextColor\":\"#1e293b\",\"tierUpsellSubTitleTextColor\":\"#1e293b\",\"primaryDisabledTextColor\":\"#ffffff\",\"otherProductsModalProductTitleTextSize\":14,\"otherProductsModalProductTitleColor\":\"#000000\",\"fieldDisabledBackgroundColor\":\"#D1D5DB\",\"otherProductsModalImageSize\":80,\"disabledTextColor\":\"#6B7280\",\"comboProductTitleFontStyle\":\"BOLD\",\"primaryHoverColor\":\"#000000\",\"saveBadgeTextColor\":\"#065f46\",\"tierUnitLabelFontStyle\":\"REGULAR\",\"cardBorderColor\":\"#cbd5e1\",\"ruleUpsellTitleFontSize\":15,\"selectedCardBackgroundColor\":\"#eff6ff\",\"tierFullPriceFontSize\":14,\"comboProductTitleFontSize\":13,\"subscriptionSubTitleTextColor\":\"#1e293b\",\"selectedCardBorderColor\":\"#3b82f6\",\"comboProductFullPriceFontStyle\":\"REGULAR\",\"tierTitleColor\":\"#1e293b\",\"tierFullPriceFontStyle\":\"REGULAR\",\"tierSubTitleFontStyle\":\"REGULAR\",\"secondaryTextColor\":\"#ffffff\",\"blockTitleColor\":\"#1e293b\",\"tierSubTitleColor\":\"#475569\",\"saveBadgeFontSize\":12,\"primaryTextColor\":\"#000000\",\"tierFreeGiftTextColor\":\"#1e293b\",\"tierFreeGiftTitleFontStyle\":\"BOLD\",\"tierUpsellTitleTextColor\":\"#1e293b\",\"tierFreeGiftPriceFontStyle\":\"REGULAR\",\"perRowItem\":\"THREE\",\"badgesBackgroundColor\":\"#ea580c\",\"otherProductsModalHeadingLabelColor\":\"#000000\",\"otherProductsModalButtonBackgroundColor\":\"#374151\",\"dedicatedSubscriptionLayout\":\"LAYOUT_ONE\",\"saveBadgeFontStyle\":\"REGULAR\",\"subscriptionTitleFontSize\":15,\"otherProductsModalProductPriceTextSize\":14,\"comboProductPriceFontStyle\":\"BOLD\"}","labels":"{\"volumeDiscountSaveRewardsLabel\":\"Save {{discount}}{{discount_type}}!\",\"volumeDiscountQuantityRewardsLabel\":\"Buy {{quantity}} quantity and get {{discount}}{{discount_type}} discount!\",\"oneTimeTitle\":\"One Time Purchase\",\"otherProductsModalSubtitleLabel\":\"\",\"volumeDiscountSpentAmountRewardsLabel\":\"Spend {{currency}}{{spent_amount}} and get {{discount}}{{discount_type}} discount!\",\"volumeAmountDiscountSpentAmountRewardsLabel\":\"Spend {{currency}}{{spent_amount}} and get {{currency}}{{discount}} discount!\",\"volumeAmountDiscountQuantityRewardsLabel\":\"Buy {{quantity}} quantity and get {{currency}}{{discount}} discount!\",\"volumeAmountDiscountSaveRewardsLabel\":\"Save {{currency}}{{discount}}!\",\"oneTimeSubtitle\":\"No Subscription\"}","upsells":null,"enableVolumeDiscountUpsell":false,"combos":"null","progressiveGift":null,"enableProgressiveGifts":false,"discountName":"Buy any 3, save 12%"}];
const customerTags = null;
let customerDiscountUsage = [];
let isLoggedIn = false;
const filteredDiscountBundles = Array.isArray(discountBundles) && discountBundles.length > 0 && discountBundles?.filter((bundle) => {
if (bundle?.status !== 'ACTIVE' || bundle?.bundleSubType === 'BUY_X_GET_Y') {
return false;
}
if ((bundle?.allowedTags || bundle?.restrictTags || bundle?.limitToUsePerCustomer > 0) && !isLoggedIn) {
return false;
}
if ((bundle?.allowedTags || bundle?.restrictTags) && isLoggedIn && isBundleRestrictedByDiscount(bundle, customerTags)) {
return false;
}
if (bundle?.limitToUsePerCustomer > 0 && isDiscountUsageLimitExceed(customerDiscountUsage, bundle)) {
return false;
}
if (bundle?.appliesOn === "ONE_TIME" && sellingPlanId != null) {
return false;
}
if (bundle?.appliesOn === "SUBSCRIPTION" && sellingPlanId === null) {
return false;
}
try {
const variantsString = bundle?.variants || '[]';
const variants = typeof variantsString === 'string' ? JSON.parse(variantsString) : variantsString;
const bundleCollections = JSON.parse(bundle?.collectionData || '[]');
return (Array.isArray(variants) && variants.some((variant) => variant && parseInt(variant?.variantId) === parseInt(variantId))) ||
(Array.isArray(bundleCollections) &&
bundleCollections?.length > 0 &&
bundleCollections.some(bundleCollection => collections.some(collection => collection?.id === bundleCollection?.id)))
} catch (e) {
console.error('Failed to parse JSON:', e);
return false;
}
}) || [];
const totalAmount = amount * quantity;
const lineItem = {variantId, quantity, amount, totalAmount };
const volumeDiscountBundles = processBundleRules(filteredDiscountBundles, 'VOLUME_DISCOUNT', ["variants", "tieredDiscount"]);
const discountedPricingBundles = processBundleRules(filteredDiscountBundles, 'DISCOUNTED_PRICING', ["variants"]);
let applicableDiscount = null;
const volumeDiscount = getApplicableTieredDiscount(volumeDiscountBundles, lineItem);
const pricingDiscount = getApplicablePercentOrFixedDiscount(discountedPricingBundles, lineItem);
if (volumeDiscount && pricingDiscount) {
applicableDiscount = getBestDiscount([volumeDiscount, pricingDiscount], lineItem);
} else {
applicableDiscount = volumeDiscount || pricingDiscount;
}
const discountAmount = applicableDiscount?.discountType === "PERCENTAGE" ? (totalAmount * applicableDiscount?.discount) / 100 : applicableDiscount?.discount;
const discountedPrice = applicableDiscount?.discountType === "PERCENTAGE" ? (totalAmount - discountAmount) : ( totalAmount - applicableDiscount?.discount);
return {
variantId,
quantity,
amount,
totalAmount,
discountType: applicableDiscount?.discountType,
discountValue: applicableDiscount?.discount,
discountAmount,
discountedPrice: !isNaN(discountedPrice) ? discountedPrice : undefined,
discountConfigure: applicableDiscount?.appliesOn
};
};
(() => {
const isDateInRange = (startDateString = null, endDateString = null) => {
const currentDate = new Date();
const startDate = startDateString ? new Date(startDateString) : null;
const endDate = endDateString ? new Date(endDateString) : null;
if (!startDate && !endDate) return true;
if (startDate && currentDate < startDate) return false;
if (endDate && currentDate > endDate) return false;
return true;
};
const initializedElements = new WeakSet();
const executeDynamicBundleBlock = ({ blockElement, productId = null, isCustomPage = false }) => {
if (initializedElements.has(blockElement)) return;
initializedElements.add(blockElement);
const babBundles = [{"id":39019,"shop":"kent-rollins-store.myshopify.com","name":"Buy Any 3, Save 12%! Buy 5+, Save 15%!","description":"Buy any combination of 3 eligible spices & seasonings, save 12%. Buy 5 or more, and save 15%","status":"ACTIVE","customerIncludeTags":null,"discountType":"TIERED_DISCOUNT","discountValue":null,"products":null,"variants":"null","sequenceNo":null,"bundleType":"CLASSIC_BUILD_A_BOX","settings":"{\"cardGap\":16,\"sequentialProductsPerBatch\":50,\"showUnitPrice\":false,\"showPricesWithoutDecimal\":false,\"disableProductDescription\":false,\"bundleProductNameSortOrder\":\"DEFAULT\",\"includedSubscriptionPlans\":\"\",\"excludeSubscriptionPlans\":\"\",\"perRowItem\":\"THREE\",\"enableAnnouncementBar\":true,\"borderRadius\":8,\"showClassicBundleWidgetInChildProduct\":false,\"enableSequentialProductLoading\":false,\"disableScrollingToBundle\":false,\"showPriceWithSubscriptionPrice\":true,\"showComboBundleWidgetInComboProduct\":false,\"showPriceOfChosenProductsOnly\":false,\"hideQuantitySelector\":false}","bundleProductId":null,"bundleVariantId":null,"productHandle":null,"discountId":null,"price":null,"numberOfProducts":0,"subscriptionBundlingEnabled":false,"subscriptionId":null,"minProductCount":3,"maxProductCount":10,"uniqueRef":"hqblara0d3","bundleRedirect":"CART","customRedirectURL":null,"minOrderAmount":null,"tieredDiscount":"[{\"discountBasedOn\":\"QUANTITY\",\"value\":5,\"discount\":15,\"discountType\":\"PERCENTAGE\",\"discountAllowedTags\":null}]","productViewStyle":"QUICK_ADD","singleProductSettings":null,"trackInventory":false,"sellingPlanType":"BUNDLE_LEVEL","clearCart":"DISABLED","minPrice":null,"maxPrice":null,"externalBuildABoxId":null,"variantVisibilityType":"SHOW_VARIANTS_AS_OPTIONS","subTitle":"Mix and Match any combination of spices and seasonings to save!","freeShipping":false,"themeType":"THEME_ONE","showBundleInProductPage":true,"combinedWithProductDiscount":false,"combinedWithShippingDiscount":true,"combinedWithOrderDiscount":false,"allowedTags":null,"restrictTags":null,"selectionType":"FLEXIBLE","bundleHtml":null,"discountedVariants":null,"allowedCountries":null,"appliesOn":"BOTH","purchaseRequirement":"NO_REQUIREMENT","productDiscountType":"EACH_PRODUCT","countrySelectionType":"ALL_COUNTRY","discountApplyApproach":"SHOPIFY_DISCOUNT_FUNCTION","discountedProductChooseType":"CHOOSE_ALL","internalName":"Buy More, Save More (Sauces & Seasonings)","sections":"[]","limitToUsePerCustomer":null,"discountedVariantSelectionLimit":null,"hideOneTimePurchase":false,"hideSubscriptionPurchase":false,"maxOrderAmount":null,"collectionData":"[{\"id\":497906909503,\"title\":\"Seasonings\",\"handle\":\"seasonings\",\"image\":null},{\"id\":497906876735,\"title\":\"Sauces\",\"handle\":\"sauces\",\"image\":null}]","productSelectionType":"COLLECTION","tag":"appstle_bundles","productChooseType":"CHOOSE_ALL","variantSelectionLimit":null,"discountTargetType":"VARIANT","enableSubscription":false,"subscriptionWidgetPosition":"BELOW","subscribeTitle":"Subscribe and Save","subscribeSubtitle":"Delivered Monthly","subscriptionPreselected":false,"getYAppliesOn":"BOTH","announcementBarMessage":null,"automaticDiscountNodeId":"gid://shopify/DiscountAutomaticNode/1548956926271","recurringCycleLimit":0,"automaticShippingDiscountNodeId":"gid://shopify/DiscountAutomaticNode/1548956959039","scheduledBundleRule":false,"bundleActiveFrom":"2026-01-21T18:00:00Z","bundleActiveTo":null,"bundleSubType":null,"discountAppliesOn":"PER_ORDER","layoutType":"LAYOUT_ONE","style":"{\"tierFullPriceColor\":\"#1e293b\",\"tierFreeGiftTitleFontSize\":13,\"tierUpsellTitleFontSize\":13,\"primaryColor\":\"#000000\",\"tierSubTitleFontSize\":13,\"otherProductsModalFullPriceColor\":\"#555555\",\"primaryDisabledColor\":\"#333333\",\"cardHoverColor\":\"#f8fafc\",\"otherProductsModalPriceColor\":\"#000000\",\"otherProductsModalButtonTextColor\":\"#ffffff\",\"otherProductsButtonBackgroundColor\":\"#374151\",\"tierPriceFontSize\":20,\"tierUpsellSubTitleFontSize\":12,\"comboProductFullPriceFontSize\":12,\"headingTextColor\":\"#000000\",\"badgesTextColor\":\"#ffffff\",\"blockTitleFontStyle\":\"BOLD\",\"tierTitleFontSize\":20,\"otherProductsProductTitleColor\":\"#374151\",\"subscriptionTitleTextColor\":\"#1e293b\",\"subscriptionSubTitleFontSize\":13,\"otherProductsImageSize\":40,\"saveBadgeBackgroundColor\":\"#d1fae5\",\"tierFreeGiftBackgroundColor\":\"#f1f5f9\",\"cardGap\":16,\"tierPriceFontStyle\":\"BOLD\",\"otherProductsModalOverlayColor\":\"#6b7280\",\"tierPriceColor\":\"#1e293b\",\"tierFreeGiftPriceFontSize\":14,\"otherProductsButtonTextColor\":\"#ffffff\",\"tierTitleFontStyle\":\"BOLD\",\"ruleUpsellSubTitleFontSize\":13,\"comboProductPriceFontSize\":13,\"tierUnitLabelFontSize\":14,\"blockTitleFontSize\":14,\"otherProductsProductTitleSize\":16,\"productCardBackgroundColor\":\"#ffffff\",\"cardBackgroundColor\":\"#ffffff\",\"buttonBackgroundColor\":\"#8E0B0B\",\"bundlePageBackgroundColor\":\"#FAFAF9\",\"borderRadius\":8,\"tierUpsellBackgroundColor\":\"#e2e8f0\",\"ruleUpsellTitleTextColor\":\"#1e293b\",\"ruleUpsellSubTitleTextColor\":\"#1e293b\",\"tierUpsellSubTitleTextColor\":\"#1e293b\",\"primaryDisabledTextColor\":\"#ffffff\",\"otherProductsModalProductTitleTextSize\":14,\"otherProductsModalProductTitleColor\":\"#000000\",\"fieldDisabledBackgroundColor\":\"#D1D5DB\",\"otherProductsModalImageSize\":80,\"disabledTextColor\":\"#6B7280\",\"comboProductTitleFontStyle\":\"BOLD\",\"primaryHoverColor\":\"#000000\",\"saveBadgeTextColor\":\"#065f46\",\"tierUnitLabelFontStyle\":\"REGULAR\",\"cardBorderColor\":\"#cbd5e1\",\"ruleUpsellTitleFontSize\":15,\"selectedCardBackgroundColor\":\"#eff6ff\",\"tierFullPriceFontSize\":14,\"comboProductTitleFontSize\":13,\"subscriptionSubTitleTextColor\":\"#1e293b\",\"selectedCardBorderColor\":\"#3b82f6\",\"comboProductFullPriceFontStyle\":\"REGULAR\",\"tierTitleColor\":\"#1e293b\",\"tierFullPriceFontStyle\":\"REGULAR\",\"tierSubTitleFontStyle\":\"REGULAR\",\"secondaryTextColor\":\"#ffffff\",\"blockTitleColor\":\"#1e293b\",\"tierSubTitleColor\":\"#475569\",\"saveBadgeFontSize\":12,\"primaryTextColor\":\"#000000\",\"tierFreeGiftTextColor\":\"#1e293b\",\"tierFreeGiftTitleFontStyle\":\"BOLD\",\"tierUpsellTitleTextColor\":\"#1e293b\",\"tierFreeGiftPriceFontStyle\":\"REGULAR\",\"perRowItem\":\"THREE\",\"badgesBackgroundColor\":\"#ea580c\",\"otherProductsModalHeadingLabelColor\":\"#000000\",\"otherProductsModalButtonBackgroundColor\":\"#374151\",\"dedicatedSubscriptionLayout\":\"LAYOUT_ONE\",\"saveBadgeFontStyle\":\"REGULAR\",\"subscriptionTitleFontSize\":15,\"otherProductsModalProductPriceTextSize\":14,\"comboProductPriceFontStyle\":\"BOLD\"}","labels":"{\"volumeDiscountSaveRewardsLabel\":\"Save {{discount}}{{discount_type}}!\",\"volumeDiscountQuantityRewardsLabel\":\"Buy {{quantity}} quantity and get {{discount}}{{discount_type}} discount!\",\"oneTimeTitle\":\"One Time Purchase\",\"otherProductsModalSubtitleLabel\":\"\",\"volumeDiscountSpentAmountRewardsLabel\":\"Spend {{currency}}{{spent_amount}} and get {{discount}}{{discount_type}} discount!\",\"volumeAmountDiscountSpentAmountRewardsLabel\":\"Spend {{currency}}{{spent_amount}} and get {{currency}}{{discount}} discount!\",\"volumeAmountDiscountQuantityRewardsLabel\":\"Buy {{quantity}} quantity and get {{currency}}{{discount}} discount!\",\"volumeAmountDiscountSaveRewardsLabel\":\"Save {{currency}}{{discount}}!\",\"oneTimeSubtitle\":\"No Subscription\"}","upsells":null,"enableVolumeDiscountUpsell":false,"combos":"null","progressiveGift":null,"enableProgressiveGifts":false,"discountName":"Buy any 3, save 12%"}];
window['isAppstleBuildABox'] = true;
window.sessionStorage.setItem('external-bundle-token', window.appstle_bundle_external_token);
const referenceBundle = blockElement.getAttribute('ref') || null;
const collections = null;
const baseFilteredBundles = Array.isArray(babBundles) && babBundles?.length > 0 && babBundles.filter((rule) => {
/*if(!isCustomPage && rule?.shop !== 'bundle-demo-101.myshopify.com') {
rule.themeType = 'THEME_TWO';
}*/
if (!isDateInRange(rule?.bundleActiveFrom, rule?.bundleActiveTo)) {
return false;
}
if (rule?.bundleType === 'CLASSIC_BUILD_A_BOX' && rule?.status === 'ACTIVE' && (rule?.showBundleInProductPage === true || isCustomPage)) {
try {
let matchesVariant = false;
let matchesCollection = false;
if (rule?.productSelectionType === "PRODUCT") {
const variants = JSON.parse(rule?.variants || '[]');
matchesVariant = variants.some(v => +v?.productId === +productId);
} else if (rule?.productSelectionType === "COLLECTION" && Array.isArray(collections)) {
const ruleCollections = JSON.parse(rule?.collectionData || '[]');
matchesCollection = ruleCollections?.some(rc => collections?.some(c => +c?.id === +rc?.id));
}
return (matchesVariant || matchesCollection || !productId);
} catch (e) {
console.error('Failed to parse JSON:', e);
return false;
}
}
return false;
}) || [];
const filteredBundles = isCustomPage && referenceBundle ? baseFilteredBundles?.filter(rule => rule?.uniqueRef === referenceBundle) : baseFilteredBundles;
if (filteredBundles?.length > 0 && blockElement) {
const link = document.createElement('link');
link.rel = 'stylesheet';
link.href = "https://bundles-admin.appstle.com/content/build-a-box.css?v=1769007775682";
document.head.appendChild(link);
const script = document.createElement('script');
script.async = true;
script.src = "https://bundles-admin.appstle.com/app/build-a-box.bundle.js?v=1769007775682";
document.head.appendChild(script);
filteredBundles.forEach((rule) => {
const bundleDiv = document.createElement('div');
const uniqueRef = rule?.uniqueRef;
bundleDiv.setAttribute('appstle-dynamic-bundle-unique-reference', uniqueRef);
bundleDiv.className = isCustomPage ? `appstleBundlesCustomPage appstleCustomPageDynamicBundle-${uniqueRef}` : `appstleBundlesProductPage appstleDynamicBundle-${uniqueRef}`;
blockElement.appendChild(bundleDiv);
const appBlockDiv = document.querySelector(isCustomPage ? 'div[data-block-handle="appstle-bundle-dynamic-pricing-custom-page"]' : 'div[data-block-handle="appstle-bundle-product-page-build-a-box"]');
if (appBlockDiv) {
appBlockDiv.appendChild(blockElement);
}
});
}
};
const executeDynamicBundleLogic = () => {
const productId = "";
const blockElement = document.getElementById('dynamic-pricing-bundle-product-page');
const blockElements = document.querySelectorAll('.ab-dynamic-bundle-custom-placement-selector');
const disableAppFunctionality = window?._ABConfig?.['disableAppFunctionality'] || false;
if (blockElement && productId && !disableAppFunctionality) {
blockElement.classList.add(`product-id-${productId}`);
executeDynamicBundleBlock({ blockElement, productId, isCustomPage: false });
}
if (blockElements && blockElements.length > 0 && !disableAppFunctionality) {
blockElements.forEach((element) => {
const productId = element?.getAttribute('data-product-id');
element.classList.add(`product-id-${productId}`);
executeDynamicBundleBlock({ blockElement: element, productId, isCustomPage: false });
});
}
const customPageBlockElement = document.getElementById('dynamic-pricing-bundle-custom-page');
if (customPageBlockElement && !disableAppFunctionality) executeDynamicBundleBlock({ blockElement: customPageBlockElement, productId: null, isCustomPage: true });
}
const observeForQuickAddModal = () => {
const seen = new WeakSet();
new MutationObserver(() => {
document.querySelectorAll(".quick-add-modal__content-info")?.forEach((m) => {
if (m?.offsetParent === null) return seen.delete(m);
if (seen.has(m) || !m?.children?.length) return;
seen.add(m);
setTimeout(() => executeDynamicBundleLogic(), 100);
});
}).observe(document.body, { childList: true, subtree: true });
};
document.addEventListener('DOMContentLoaded', () => {
executeDynamicBundleLogic();
observeForQuickAddModal();
});
})();