Skip to content
icon-search
Close (esc)
icon-search
Close (esc)
icon-search
Close (esc)
icon-search
Close (esc)
F
UNGAL DRAGON
Rated 5 Stars by 600+ fellow Hobbyists
Printed to Order within 2-4 Weeks
Worldwide shipping via USPS
Once a sky-reigning leviathan, this dragon has been felled, not by blade or arrow, but by the inexorable creep of fungi. Its massive form, now a sprawling canvas of mycelial caps and tendrils stands as a stark reminder - even the mightiest can be overtaken by the smallest of life.
Let customers speak for us
from 534 reviews
Fungal Dragon | Mycena Mortifera
LORE & BACKGROUND Rare beasts in these tarnished days, the remaining dragons of Doaden have sequestered themselves far from the prying curiosities of the lesser races. They dwell upon mountain peaks, isolated islands, or, in this case, deep below the earth.
Its true name has been lost to the ages, but this dragon is as much a slave to the Mycena Mortifera as any pitiful human thrall. Whether the spores infiltrated its nostrils and tender tissues while it slept or whether its binding was the product of some titanic subterranean struggle remains unclear. What is certain, however, is that this beast serves as a formidable manifestation of the fungus’s alien will, spine chilling evidence of the immense threat posed by the infection.
icon-search
Close (esc)
(() => {
const executeDynamicBundleBlock = ({ blockElement, productId = null, isCustomPage = false }) => {
const babBundles = [{"id":16525,"shop":"f5a14c-2.myshopify.com","name":"Test Bundle","description":"Get them all at once and save big","status":"ACTIVE","customerIncludeTags":null,"discountType":"NO_DISCOUNT","discountValue":null,"products":"[{\"productId\":9637112906034,\"variantId\":null,\"price\":null,\"name\":\"Abhorrent Mage | STL | The Abhorrents\",\"productHandle\":\"digital-bundle-with-abhorrent-mage-the-abhorrents-bestiarum-miniatures-d-d-wargaming-dnd-copy\",\"imageSrc\":\"https://cdn.shopify.com/s/files/1/0813/3787/6786/files/03_AbhorrentMage_94cf8a9c-d2d7-4426-b2b1-76c766601a38.jpg?v=1722303103\",\"quantity\":1,\"status\":\"ACTIVE\",\"options\":[]},{\"productId\":9757269393714,\"variantId\":null,\"price\":null,\"name\":\"Abhorrent Crypt Holes | STL | The Abhorrents\",\"productHandle\":\"abhorrent-crypt-holes-the-abhorrents-bestiarum-miniatures-d-d-wargaming-dnd-copy\",\"imageSrc\":\"https://cdn.shopify.com/s/files/1/0813/3787/6786/files/18_VampireLairs_Group_59a7cbe3-8fc8-4a33-9cea-b3421ff10862.jpg?v=1728256244\",\"quantity\":1,\"status\":\"ACTIVE\",\"options\":[]},{\"productId\":9760870236466,\"variantId\":null,\"price\":null,\"name\":\"Abyssal High Priest | STL | The N'Gorroth\",\"productHandle\":\"abyssal-high-priest-stl-the-ngorroth\",\"imageSrc\":\"https://cdn.shopify.com/s/files/1/0813/3787/6786/files/01_AbyssalHighPriest_Cover.jpg?v=1722012389\",\"quantity\":1,\"status\":\"ACTIVE\",\"options\":[]}]","variants":"[]","sequenceNo":null,"bundleType":"CLASSIC","settings":null,"bundleProductId":9859177382194,"bundleVariantId":null,"productHandle":"test-bundle","discountId":null,"price":null,"numberOfProducts":0,"subscriptionBundlingEnabled":false,"subscriptionId":null,"minProductCount":null,"maxProductCount":null,"uniqueRef":"4fg5rkusOK","bundleRedirect":"CART","customRedirectURL":null,"minOrderAmount":null,"tieredDiscount":null,"productViewStyle":"QUICK_ADD","singleProductSettings":null,"trackInventory":false,"sellingPlanType":"BUNDLE_LEVEL","clearCart":"ENABLED","minPrice":37.0,"maxPrice":37.0,"externalBuildABoxId":null,"variantVisibilityType":"SHOW_VARIANTS_AS_INDIVIDUAL","subTitle":null,"freeShipping":false,"themeType":"THEME_TWO","showBundleInProductPage":true,"combinedWithProductDiscount":true,"combinedWithShippingDiscount":true,"combinedWithOrderDiscount":true,"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":null,"sections":"[{\"id\":1,\"name\":\"\",\"description\":\"\",\"minProductCount\":0,\"maxProductCount\":0,\"variants\":[]}]","limitToUsePerCustomer":null,"discountedVariantSelectionLimit":null,"hideOneTimePurchase":false,"hideSubscriptionPurchase":false,"maxOrderAmount":null,"collectionData":null,"productSelectionType":"PRODUCT","tag":"appstle_bundles","productChooseType":"CHOOSE_ALL","variantSelectionLimit":null,"discountTargetType":null,"enableSubscription":null,"subscriptionWidgetPosition":null,"subscribeTitle":null,"subscribeSubtitle":null,"subscriptionPreselected":null,"getYAppliesOn":null,"announcementBarMessage":null,"automaticDiscountNodeId":null,"recurringCycleLimit":null},{"id":16526,"shop":"f5a14c-2.myshopify.com","name":"Dynamic Discount","description":"Pack as much as you can for a discount","status":"ACTIVE","customerIncludeTags":null,"discountType":"TIERED_DISCOUNT","discountValue":null,"products":null,"variants":"[{\"productId\":9757269393714,\"variantId\":49729552580914,\"name\":\"Abhorrent Crypt Holes | STL | The Abhorrents \",\"productHandle\":\"abhorrent-crypt-holes-the-abhorrents-bestiarum-miniatures-d-d-wargaming-dnd-copy\",\"imageSrc\":\"https://cdn.shopify.com/s/files/1/0813/3787/6786/files/18_VampireLairs_Group_59a7cbe3-8fc8-4a33-9cea-b3421ff10862.jpg?v=1728256244\",\"quantity\":1,\"price\":\"12.00\",\"status\":\"ACTIVE\",\"productTitle\":\"Abhorrent Crypt Holes | STL | The Abhorrents\",\"variantTitle\":null,\"isMandatory\":false,\"preSelected\":false,\"minQuantity\":null,\"maxQuantity\":null},{\"productId\":9637112906034,\"variantId\":49340367798578,\"name\":\"Abhorrent Mage | STL | The Abhorrents \",\"productHandle\":\"digital-bundle-with-abhorrent-mage-the-abhorrents-bestiarum-miniatures-d-d-wargaming-dnd-copy\",\"imageSrc\":\"https://cdn.shopify.com/s/files/1/0813/3787/6786/files/03_AbhorrentMage_94cf8a9c-d2d7-4426-b2b1-76c766601a38.jpg?v=1722303103\",\"quantity\":1,\"price\":\"10.00\",\"status\":\"ACTIVE\",\"productTitle\":\"Abhorrent Mage | STL | The Abhorrents\",\"variantTitle\":null,\"isMandatory\":false,\"preSelected\":false,\"minQuantity\":null,\"maxQuantity\":null},{\"productId\":9760870236466,\"variantId\":49744609804594,\"name\":\"Abyssal High Priest | STL | The N'Gorroth \",\"productHandle\":\"abyssal-high-priest-stl-the-ngorroth\",\"imageSrc\":\"https://cdn.shopify.com/s/files/1/0813/3787/6786/files/01_AbyssalHighPriest_Cover.jpg?v=1722012389\",\"quantity\":1,\"price\":\"15.00\",\"status\":\"ACTIVE\",\"productTitle\":\"Abyssal High Priest | STL | The N'Gorroth\",\"variantTitle\":null,\"isMandatory\":false,\"preSelected\":false,\"minQuantity\":null,\"maxQuantity\":null},{\"productId\":9760870859058,\"variantId\":49744618651954,\"name\":\"Abyssal Pastors | STL | The N'Gorroth \",\"productHandle\":\"abyssal-pastors-stl-the-ngorroth\",\"imageSrc\":\"https://cdn.shopify.com/s/files/1/0813/3787/6786/files/02_AbyssalPastors_Cover.jpg?v=1722012446\",\"quantity\":1,\"price\":\"12.00\",\"status\":\"ACTIVE\",\"productTitle\":\"Abyssal Pastors | STL | The N'Gorroth\",\"variantTitle\":null,\"isMandatory\":false,\"preSelected\":false,\"minQuantity\":null,\"maxQuantity\":null},{\"productId\":9842001412402,\"variantId\":50004424294706,\"name\":\"Accursed Servants | STL | Calden Keep \",\"productHandle\":\"accursed-servants-stl-calden-keep\",\"imageSrc\":\"https://cdn.shopify.com/s/files/1/0813/3787/6786/files/03_Accursed_Servants_Group.jpg?v=1747948841\",\"quantity\":1,\"price\":\"15.00\",\"status\":\"ACTIVE\",\"productTitle\":\"Accursed Servants | STL | Calden Keep\",\"variantTitle\":null,\"isMandatory\":false,\"preSelected\":false,\"minQuantity\":null,\"maxQuantity\":null}]","sequenceNo":null,"bundleType":"CLASSIC_BUILD_A_BOX","settings":null,"bundleProductId":null,"bundleVariantId":null,"productHandle":null,"discountId":null,"price":null,"numberOfProducts":0,"subscriptionBundlingEnabled":false,"subscriptionId":null,"minProductCount":null,"maxProductCount":null,"uniqueRef":"kD9501LSRU","bundleRedirect":"CART","customRedirectURL":null,"minOrderAmount":null,"tieredDiscount":"[{\"discountBasedOn\":\"AMOUNT\",\"value\":50,\"discount\":5,\"discountType\":\"PERCENTAGE\",\"discountAllowedTags\":null},{\"discountBasedOn\":\"AMOUNT\",\"value\":75,\"discount\":10,\"discountType\":\"PERCENTAGE\",\"discountAllowedTags\":null},{\"discountBasedOn\":\"QUANTITY\",\"value\":100,\"discount\":15,\"discountType\":\"PERCENTAGE\",\"discountAllowedTags\":null}]","productViewStyle":"QUICK_ADD","singleProductSettings":null,"trackInventory":false,"sellingPlanType":"BUNDLE_LEVEL","clearCart":"ENABLED","minPrice":null,"maxPrice":null,"externalBuildABoxId":null,"variantVisibilityType":"SHOW_VARIANTS_AS_OPTIONS","subTitle":null,"freeShipping":true,"themeType":"THEME_TWO","showBundleInProductPage":true,"combinedWithProductDiscount":true,"combinedWithShippingDiscount":true,"combinedWithOrderDiscount":true,"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":null,"sections":"[{\"id\":1,\"name\":\"\",\"description\":\"\",\"minProductCount\":0,\"maxProductCount\":0,\"variants\":[]}]","limitToUsePerCustomer":null,"discountedVariantSelectionLimit":null,"hideOneTimePurchase":false,"hideSubscriptionPurchase":false,"maxOrderAmount":null,"collectionData":null,"productSelectionType":"PRODUCT","tag":"appstle_bundles","productChooseType":"CHOOSE_ALL","variantSelectionLimit":null,"discountTargetType":null,"enableSubscription":null,"subscriptionWidgetPosition":null,"subscribeTitle":null,"subscribeSubtitle":null,"subscriptionPreselected":null,"getYAppliesOn":null,"announcementBarMessage":null,"automaticDiscountNodeId":"gid://shopify/DiscountAutomaticNode/1597793239346","recurringCycleLimit":0},{"id":26013,"shop":"f5a14c-2.myshopify.com","name":"Allstein Hero Builder","description":"Mix and match your preferred Allsteiners and build your own warband.","status":"ACTIVE","customerIncludeTags":null,"discountType":"FIXED_AMOUNT","discountValue":25.0,"products":"null","variants":"[]","sequenceNo":null,"bundleType":"SECTIONED_BUNDLE","settings":"{\"enableAnnouncementBar\":true}","bundleProductId":null,"bundleVariantId":null,"productHandle":null,"discountId":null,"price":null,"numberOfProducts":0,"subscriptionBundlingEnabled":false,"subscriptionId":null,"minProductCount":null,"maxProductCount":null,"uniqueRef":"icskz0k1og","bundleRedirect":"CART","customRedirectURL":null,"minOrderAmount":null,"tieredDiscount":null,"productViewStyle":"QUICK_ADD","singleProductSettings":"null","trackInventory":false,"sellingPlanType":"BUNDLE_LEVEL","clearCart":"ENABLED","minPrice":null,"maxPrice":null,"externalBuildABoxId":null,"variantVisibilityType":"SHOW_VARIANTS_AS_OPTIONS","subTitle":null,"freeShipping":false,"themeType":"THEME_TWO","showBundleInProductPage":true,"combinedWithProductDiscount":true,"combinedWithShippingDiscount":true,"combinedWithOrderDiscount":true,"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":"Allstein Hero Builder","sections":"[{\"id\":1,\"name\":\"\",\"description\":\"\",\"minProductCount\":\"5\",\"maxProductCount\":\"5\",\"variants\":[{\"productId\":9001520136498,\"variantId\":47627074928946,\"name\":\"Arakhan, Bane Commander | Spires of Allstein - 32mm Plain Plastic Base\",\"productHandle\":\"arakhan-bane-commander-spires-of-allstein-bestiarum-miniatures-d-d-wargaming-dnd\",\"imageSrc\":\"https://cdn.shopify.com/s/files/1/0813/3787/6786/files/Allstein_P1_-_02_Arakhan_Bane_Commander_-_No_Logo_7e2cab94-40ea-4782-944b-082ddb8fac26.jpg?v=1749042831\",\"quantity\":1,\"price\":\"18.00\",\"status\":\"ACTIVE\",\"productTitle\":\"Arakhan, Bane Commander | Spires of Allstein\",\"variantTitle\":\"32mm Plain Plastic Base\",\"isMandatory\":false,\"preSelected\":false,\"minQuantity\":null,\"maxQuantity\":null},{\"productId\":9001520136498,\"variantId\":49536443613490,\"name\":\"Arakhan, Bane Commander | Spires of Allstein - 32mm Resin Scenic Base\",\"productHandle\":\"arakhan-bane-commander-spires-of-allstein-bestiarum-miniatures-d-d-wargaming-dnd\",\"imageSrc\":\"https://cdn.shopify.com/s/files/1/0813/3787/6786/files/Allstein_P1_-_02_Arakhan_Bane_Commander_-_No_Logo_7e2cab94-40ea-4782-944b-082ddb8fac26.jpg?v=1749042831\",\"quantity\":1,\"price\":\"20.00\",\"status\":\"ACTIVE\",\"productTitle\":\"Arakhan, Bane Commander | Spires of Allstein\",\"variantTitle\":\"32mm Resin Scenic Base\",\"isMandatory\":false,\"preSelected\":false,\"minQuantity\":null,\"maxQuantity\":null},{\"productId\":9775621275954,\"variantId\":49792448102706,\"name\":\"Mechanomagi | Allstein - 40mm Plain Plastic Base\",\"productHandle\":\"mechanomagi-penitent-hero-bestiarum-miniatures-d-d-wargaming-dnd-1\",\"imageSrc\":\"https://cdn.shopify.com/s/files/1/0813/3787/6786/files/Mechanomagi_cover1.jpg?v=1749047753\",\"quantity\":1,\"price\":\"18.00\",\"status\":\"ACTIVE\",\"productTitle\":\"Mechanomagi | Allstein\",\"variantTitle\":\"40mm Plain Plastic Base\",\"isMandatory\":false,\"preSelected\":false,\"minQuantity\":null,\"maxQuantity\":null},{\"productId\":9775621275954,\"variantId\":49792448135474,\"name\":\"Mechanomagi | Allstein - 40mm Resin Scenic Base\",\"productHandle\":\"mechanomagi-penitent-hero-bestiarum-miniatures-d-d-wargaming-dnd-1\",\"imageSrc\":\"https://cdn.shopify.com/s/files/1/0813/3787/6786/files/Mechanomagi_cover1.jpg?v=1749047753\",\"quantity\":1,\"price\":\"20.00\",\"status\":\"ACTIVE\",\"productTitle\":\"Mechanomagi | Allstein\",\"variantTitle\":\"40mm Resin Scenic Base\",\"isMandatory\":false,\"preSelected\":false,\"minQuantity\":null,\"maxQuantity\":null},{\"productId\":9666758705458,\"variantId\":49415923663154,\"name\":\"Orbek - The Exterminator | Allstein - 25mm Plain Plastic Base\",\"productHandle\":\"orbek-the-exterminator-penitent-hero-bestiarum-miniatures-d-d-wargaming-dnd\",\"imageSrc\":\"https://cdn.shopify.com/s/files/1/0813/3787/6786/files/Orbek1_d9f1f029-3898-4f27-86ed-aded325b9a28.jpg?v=1750643507\",\"quantity\":1,\"price\":\"18.00\",\"status\":\"ACTIVE\",\"productTitle\":\"Orbek - The Exterminator | Allstein\",\"variantTitle\":\"25mm Plain Plastic Base\",\"isMandatory\":false,\"preSelected\":false,\"minQuantity\":null,\"maxQuantity\":null},{\"productId\":9666758705458,\"variantId\":49785870090546,\"name\":\"Orbek - The Exterminator | Allstein - 25mm Resin Scenic Base\",\"productHandle\":\"orbek-the-exterminator-penitent-hero-bestiarum-miniatures-d-d-wargaming-dnd\",\"imageSrc\":\"https://cdn.shopify.com/s/files/1/0813/3787/6786/files/Orbek1_d9f1f029-3898-4f27-86ed-aded325b9a28.jpg?v=1750643507\",\"quantity\":1,\"price\":\"20.00\",\"status\":\"ACTIVE\",\"productTitle\":\"Orbek - The Exterminator | Allstein\",\"variantTitle\":\"25mm Resin Scenic Base\",\"isMandatory\":false,\"preSelected\":false,\"minQuantity\":null,\"maxQuantity\":null},{\"productId\":9001520202034,\"variantId\":47627075387698,\"name\":\"Xerofant | Spires of Allstein - 32mm Plain Plastic Base\",\"productHandle\":\"xerofant-spires-of-allstein-bestiarum-miniatures-d-d-wargaming-dnd\",\"imageSrc\":\"https://cdn.shopify.com/s/files/1/0813/3787/6786/files/Allstein_P1_-_05_Xerofant_-_No_Logo.jpg?v=1749046063\",\"quantity\":1,\"price\":\"18.00\",\"status\":\"ACTIVE\",\"productTitle\":\"Xerofant | Spires of Allstein\",\"variantTitle\":\"32mm Plain Plastic Base\",\"isMandatory\":false,\"preSelected\":false,\"minQuantity\":null,\"maxQuantity\":null},{\"productId\":9001520202034,\"variantId\":49536453312818,\"name\":\"Xerofant | Spires of Allstein - 32mm Resin Scenic Base\",\"productHandle\":\"xerofant-spires-of-allstein-bestiarum-miniatures-d-d-wargaming-dnd\",\"imageSrc\":\"https://cdn.shopify.com/s/files/1/0813/3787/6786/files/Allstein_P1_-_05_Xerofant_-_No_Logo.jpg?v=1749046063\",\"quantity\":1,\"price\":\"20.00\",\"status\":\"ACTIVE\",\"productTitle\":\"Xerofant | Spires of Allstein\",\"variantTitle\":\"32mm Resin Scenic Base\",\"isMandatory\":false,\"preSelected\":false,\"minQuantity\":null,\"maxQuantity\":null},{\"productId\":9763279733042,\"variantId\":49752546279730,\"name\":\"Fleshcrafter Moro | Spires of Allstein - 25mm Plain Plastic Base\",\"productHandle\":\"fleshcrafter-moro-spires-of-allstein-bestiarum-miniatures-d-d-wargaming-dnd\",\"imageSrc\":\"https://cdn.shopify.com/s/files/1/0813/3787/6786/files/Allstein_P4_-_01_Fleshcrafter_Moro_Front_-_No_Logo.jpg?v=1749041806\",\"quantity\":1,\"price\":\"18.00\",\"status\":\"ACTIVE\",\"productTitle\":\"Fleshcrafter Moro | Spires of Allstein\",\"variantTitle\":\"25mm Plain Plastic Base\",\"isMandatory\":false,\"preSelected\":false,\"minQuantity\":null,\"maxQuantity\":null},{\"productId\":9763279733042,\"variantId\":49752546312498,\"name\":\"Fleshcrafter Moro | Spires of Allstein - 25mm Resin Scenic Base\",\"productHandle\":\"fleshcrafter-moro-spires-of-allstein-bestiarum-miniatures-d-d-wargaming-dnd\",\"imageSrc\":\"https://cdn.shopify.com/s/files/1/0813/3787/6786/files/Allstein_P4_-_01_Fleshcrafter_Moro_Front_-_No_Logo.jpg?v=1749041806\",\"quantity\":1,\"price\":\"20.00\",\"status\":\"ACTIVE\",\"productTitle\":\"Fleshcrafter Moro | Spires of Allstein\",\"variantTitle\":\"25mm Resin Scenic Base\",\"isMandatory\":false,\"preSelected\":false,\"minQuantity\":null,\"maxQuantity\":null},{\"productId\":9775622029618,\"variantId\":49792459178290,\"name\":\"The Exiled Magnate | Allstein - 25mm Plain Plastic Base\",\"productHandle\":\"the-exiled-magnate-penitent-hero-bestiarum-miniatures-d-amp-d-wargaming-dnd\",\"imageSrc\":\"https://cdn.shopify.com/s/files/1/0813/3787/6786/files/The_Exiled_Magnate.jpg?v=1749047420\",\"quantity\":1,\"price\":\"18.00\",\"status\":\"ACTIVE\",\"productTitle\":\"The Exiled Magnate | Allstein\",\"variantTitle\":\"25mm Plain Plastic Base\",\"isMandatory\":false,\"preSelected\":false,\"minQuantity\":null,\"maxQuantity\":null},{\"productId\":9775622029618,\"variantId\":49792459211058,\"name\":\"The Exiled Magnate | Allstein - 25mm Resin Scenic Base\",\"productHandle\":\"the-exiled-magnate-penitent-hero-bestiarum-miniatures-d-amp-d-wargaming-dnd\",\"imageSrc\":\"https://cdn.shopify.com/s/files/1/0813/3787/6786/files/The_Exiled_Magnate.jpg?v=1749047420\",\"quantity\":1,\"price\":\"20.00\",\"status\":\"ACTIVE\",\"productTitle\":\"The Exiled Magnate | Allstein\",\"variantTitle\":\"25mm Resin Scenic Base\",\"isMandatory\":false,\"preSelected\":false,\"minQuantity\":null,\"maxQuantity\":null},{\"productId\":9775667708210,\"variantId\":49792618201394,\"name\":\"The Wrecker | Allstein - 32mm Plain Plastic Base\",\"productHandle\":\"the-wrecker-penitent-hero-bestiarum-miniatures-d-amp-d-wargaming-dnd\",\"imageSrc\":\"https://cdn.shopify.com/s/files/1/0813/3787/6786/files/03_The_Wrecker_Front_-_No_Logo.jpg?v=1749047387\",\"quantity\":1,\"price\":\"18.00\",\"status\":\"ACTIVE\",\"productTitle\":\"The Wrecker | Allstein\",\"variantTitle\":\"32mm Plain Plastic Base\",\"isMandatory\":false,\"preSelected\":false,\"minQuantity\":null,\"maxQuantity\":null},{\"productId\":9775667708210,\"variantId\":49792618234162,\"name\":\"The Wrecker | Allstein - 32mm Resin Scenic Base\",\"productHandle\":\"the-wrecker-penitent-hero-bestiarum-miniatures-d-amp-d-wargaming-dnd\",\"imageSrc\":\"https://cdn.shopify.com/s/files/1/0813/3787/6786/files/03_The_Wrecker_Front_-_No_Logo.jpg?v=1749047387\",\"quantity\":1,\"price\":\"20.00\",\"status\":\"ACTIVE\",\"productTitle\":\"The Wrecker | Allstein\",\"variantTitle\":\"32mm Resin Scenic Base\",\"isMandatory\":false,\"preSelected\":false,\"minQuantity\":null,\"maxQuantity\":null},{\"productId\":9001520365874,\"variantId\":47627076731186,\"name\":\"Bane Destroyer | Spires of Allstein - 50mm Plain Plastic Base\",\"productHandle\":\"bane-destroyer-spires-of-allstein-bestiarum-miniatures-d-d-wargaming-dnd\",\"imageSrc\":\"https://cdn.shopify.com/s/files/1/0813/3787/6786/files/Allstein_P1_-_07_Bane_Destroyer_-_No_Logo.jpg?v=1749043404\",\"quantity\":1,\"price\":\"20.00\",\"status\":\"ACTIVE\",\"productTitle\":\"Bane Destroyer | Spires of Allstein\",\"variantTitle\":\"50mm Plain Plastic Base\",\"isMandatory\":false,\"preSelected\":false,\"minQuantity\":null,\"maxQuantity\":null},{\"productId\":9001520365874,\"variantId\":49536456163634,\"name\":\"Bane Destroyer | Spires of Allstein - 50mm Resin Scenic Base\",\"productHandle\":\"bane-destroyer-spires-of-allstein-bestiarum-miniatures-d-d-wargaming-dnd\",\"imageSrc\":\"https://cdn.shopify.com/s/files/1/0813/3787/6786/files/Allstein_P1_-_07_Bane_Destroyer_-_No_Logo.jpg?v=1749043404\",\"quantity\":1,\"price\":\"23.00\",\"status\":\"ACTIVE\",\"productTitle\":\"Bane Destroyer | Spires of Allstein\",\"variantTitle\":\"50mm Resin Scenic Base\",\"isMandatory\":false,\"preSelected\":false,\"minQuantity\":null,\"maxQuantity\":null},{\"productId\":9001520464178,\"variantId\":47627077222706,\"name\":\"Bane Juggernaut | Spires of Allstein - 50mm Plain Plastic Base\",\"productHandle\":\"bane-juggernaut-spires-of-allstein-bestiarum-miniatures-d-d-wargaming-dnd\",\"imageSrc\":\"https://cdn.shopify.com/s/files/1/0813/3787/6786/files/Allstein_P1_-_09_Bane_Juggernaut_-_No_Logo.jpg?v=1749043962\",\"quantity\":1,\"price\":\"20.00\",\"status\":\"ACTIVE\",\"productTitle\":\"Bane Juggernaut | Spires of Allstein\",\"variantTitle\":\"50mm Plain Plastic Base\",\"isMandatory\":false,\"preSelected\":false,\"minQuantity\":null,\"maxQuantity\":null},{\"productId\":9001520464178,\"variantId\":49536460947762,\"name\":\"Bane Juggernaut | Spires of Allstein - 50mm Resin Scenic Base\",\"productHandle\":\"bane-juggernaut-spires-of-allstein-bestiarum-miniatures-d-d-wargaming-dnd\",\"imageSrc\":\"https://cdn.shopify.com/s/files/1/0813/3787/6786/files/Allstein_P1_-_09_Bane_Juggernaut_-_No_Logo.jpg?v=1749043962\",\"quantity\":1,\"price\":\"23.00\",\"status\":\"ACTIVE\",\"productTitle\":\"Bane Juggernaut | Spires of Allstein\",\"variantTitle\":\"50mm Resin Scenic Base\",\"isMandatory\":false,\"preSelected\":false,\"minQuantity\":null,\"maxQuantity\":null},{\"productId\":9001520431410,\"variantId\":47627077058866,\"name\":\"Flame Sower | Spires of Allstein - 50mm Plain Plastic Base\",\"productHandle\":\"flame-sower-spires-of-allstein-bestiarum-miniatures-d-d-wargaming-dnd\",\"imageSrc\":\"https://cdn.shopify.com/s/files/1/0813/3787/6786/files/Allstein_P1_-_08_Flame_Sower_-_No_Logo.jpg?v=1749044486\",\"quantity\":1,\"price\":\"20.00\",\"status\":\"ACTIVE\",\"productTitle\":\"Flame Sower | Spires of Allstein\",\"variantTitle\":\"50mm Plain Plastic Base\",\"isMandatory\":false,\"preSelected\":false,\"minQuantity\":null,\"maxQuantity\":null},{\"productId\":9001520431410,\"variantId\":49536458326322,\"name\":\"Flame Sower | Spires of Allstein - 50mm Resin Scenic Base\",\"productHandle\":\"flame-sower-spires-of-allstein-bestiarum-miniatures-d-d-wargaming-dnd\",\"imageSrc\":\"https://cdn.shopify.com/s/files/1/0813/3787/6786/files/Allstein_P1_-_08_Flame_Sower_-_No_Logo.jpg?v=1749044486\",\"quantity\":1,\"price\":\"23.00\",\"status\":\"ACTIVE\",\"productTitle\":\"Flame Sower | Spires of Allstein\",\"variantTitle\":\"50mm Resin Scenic Base\",\"isMandatory\":false,\"preSelected\":false,\"minQuantity\":null,\"maxQuantity\":null}]}]","limitToUsePerCustomer":null,"discountedVariantSelectionLimit":null,"hideOneTimePurchase":false,"hideSubscriptionPurchase":false,"maxOrderAmount":null,"collectionData":null,"productSelectionType":"PRODUCT","tag":"appstle_bundles","productChooseType":"CHOOSE_ALL","variantSelectionLimit":null,"discountTargetType":"PRODUCT","enableSubscription":false,"subscriptionWidgetPosition":"BELOW","subscribeTitle":"Subscribe and Save","subscribeSubtitle":"Delivered Monthly","subscriptionPreselected":true,"getYAppliesOn":"BOTH","announcementBarMessage":null,"automaticDiscountNodeId":"gid://shopify/DiscountAutomaticNode/1597801595186","recurringCycleLimit":0}];
window['isAppstleBuildABox'] = true;
window.sessionStorage.setItem('external-bundle-token', window.appstle_bundle_external_token);
const referenceBundle = blockElement.getAttribute('ref') || null;
const baseFilteredBundles = Array.isArray(babBundles) && babBundles?.length > 0 && babBundles.filter((rule) => {
if(!isCustomPage) {
rule.themeType = 'THEME_TWO';
}
if (rule?.bundleType === 'CLASSIC_BUILD_A_BOX' && rule?.status === 'ACTIVE' && (rule?.showBundleInProductPage === true || isCustomPage)) {
try {
const variants = JSON.parse(rule?.variants || '[]');
if(productId) return variants.some((variant) => parseInt(variant?.productId) === parseInt(productId));
if(!productId) return true;
} 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=1760355692209";
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=1760355692209";
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 = "8901060493618";
const blockElement = document.getElementById('dynamic-pricing-bundle-product-page');
const blockElements = document.querySelectorAll('.ab-dynamic-bundle-custom-placement-selector');
if (blockElement && productId) {
blockElement.classList.add(`product-id-${productId}`);
executeDynamicBundleBlock({ blockElement, productId, isCustomPage: false });
}
if (blockElements && blockElements.length > 0) {
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) executeDynamicBundleBlock({ blockElement: customPageBlockElement, productId: null, isCustomPage: true });
}
document.addEventListener('DOMContentLoaded', executeDynamicBundleLogic);
})();
document.addEventListener('DOMContentLoaded', () => {
const bundleSettings = {"id":7324,"shop":"f5a14c-2.myshopify.com","showOnProductPage":null,"selector":null,"placement":"AFTER","customCss":null,"customizeBundleOptionType":"RADIO","buyButtonSelector":null,"labels":"{\"productDiscountCombinedWithOrderDiscount\":true,\"bundleListViewDetailsButtonLabel\":\"View Details\",\"topBarFixedDiscountTitlePostfix\":\"{{currency}}{{discount}} off on shipping\",\"requiredLoginValidationLabel\":\"Please log in to purchase this bundle!\",\"volumeDiscountTypeLabel\":\"Volume Discount\",\"loginAlertLinkLabel\":\"Click here to login\",\"includedSubscriptionPlans\":\"\",\"breadCrumbProductsLabel\":\"Choose Products\",\"enableClassicBundleRecreation\":true,\"emptyProductImage\":\"https://cdn.shopify.com/s/files/1/0661/9224/4900/files/EmptyImage.jpg?v=1718447038\",\"enableAnnouncementBarAutoRotate\":true,\"reviewOrderInfoLabel\":\"\",\"productDiscountCombinedWithProductDiscount\":true,\"bundleMaximumQuantityLabel\":\"Add maximum up to {{maximum_quantity}} product\",\"volumeDiscountAppliesOnOneTimePurchase\":true,\"productAddToBundleLabel\":\"Add\",\"defaultSelectedPurchaseOptionSwitch\":\"ONE_TIME\",\"breadCrumbReviewBundleLabel\":\"Review Bundle\",\"enableScrollingToBundleSection\":false,\"orderNoteLabel\":\"Order Note\",\"showProductPerPage\":50,\"dynamicBundleDiscountCombinedWithShippingDiscount\":true,\"hidePurchaseOptionSelectLabel\":false,\"showPriceAsDecimals\":false,\"fixedDiscountText\":\"Enjoy a fixed discount of {{currency}}{{discount_value}} on your purchase!\",\"sectionTotalLabel\":\"Section Total\",\"fieldDisabledBackgroundColor\":\"#D1D5DB\",\"bundleTotalLabel\":\"Total\",\"disableRefreshSellingPlan\":false,\"checkInventoryQuantity\":false,\"showSubscriptionPlanDescription\":false,\"disableProductDescription\":false,\"fixedPricingBundleTypeLabel\":\"Fixed Pricing Bundle\",\"subscriptionAvailableLabel\":\"Subscription Available\",\"excludeSubscriptionPlans\":\"\",\"readLessText\":\"Read Less\",\"buyXGetYDiscountAppliesOnSubscription\":true,\"shippingDiscountLabel\":\"{{discount}}{{discount_type}} Shipping Discount\",\"selectedGiftProductProgressLabelText\":\"{{selected_product_quantity}} gift products added. The required quantity is {{required_product_quantity}}.\",\"disableFitImage\":false,\"secondaryTextColor\":\"#ffffff\",\"bundleProductsQuantityLabel\":\"{{quantity}}x quantity\",\"buyXGetYDiscountCombinedWithProductDiscount\":true,\"tieredDiscountLabel\":\"{{discount_amount}}{{discount_type}} Discount\",\"buyXGetYQuantityValidationLabel\":\"Add {{product_quantity}} quantities of the gift product (Get Y)\",\"primaryTextColor\":\"#000000\",\"modalOpenOnAddToCart\":true,\"notApplicableForSubscribeAndSaveNotificationTitle\":\"Not applicable for subscribe & save\",\"customSignInLink\":\"\",\"productDiscountAppliesOnOneTimePurchase\":true,\"topBarDiscountUnlockTitlePrefix\":\"You've unlocked \",\"loginAlertTextLabel\":\"You need to login to purchase this bundle.\",\"buyXGetYChooseProductLabel\":\"Choose Product\",\"chooseAPlanLabel\":\"Choose Plan\",\"singleParentProductDirectRedirectToChildProducts\":true,\"buyXGetYFixedDiscountText\":\"Enjoy a fixed discount of {{discount_value}} {{currency}}\",\"primaryColor\":\"#000000\",\"buyXGetYGiftProductPriceVisibilityType\":\"UNIT_PRICE\",\"shippingDiscountRecurringCycleLimit\":0,\"volumeDiscountVariantSelectLabel\":\"Denominations\",\"chooseSourceProductValidationLabel\":\"Please choose source product!\",\"shippingDiscountAppliesOnSubscription\":true,\"volumeDiscountSpentAmountRewardsLabel\":\"Spend {{currency}}{{spent_amount}} and get {{discount}}{{discount_type}} discount!\",\"hideBundleToastNotification\":false,\"classicBundleTypeLabel\":\"Classic Bundle\",\"volumeDiscountRecurringCycleLimit\":0,\"bundleListDescription\":\"Explore our Bundles and Discounted Pricing and enjoy exclusive discounts when you buy products together\",\"getYNoProductSelectedLabel\":\"No gift product selected (Get Y)\",\"hideVariantSelectLabel\":false,\"availableOnlySubscriptionLabel\":\"Available Only On Subscription\",\"enableParentProductDetailButton\":false,\"bundleListTitle\":\"List of Bundles and Discounted Pricing\",\"chooseAssociatedProductsValidationLabel\":\"Please choose associated products!\",\"selectedSourceProductLabel\":\"Selected\",\"enableBuyXGetYWidgetMergeAsOptions\":false,\"volumeDiscountNextApplicableSpentAmountRewardsLabel\":\"Spend {{spent_amount}}{{currency}} get {{discount}}{{discount_type}}\",\"sectionNoProductSelectedValidationLabel\":\"No product selected for: {{section_name}}!\",\"bundlePageBackgroundColor\":\"#FAFAF9\",\"showVendorName\":false,\"buyXQuantityValidationLabel\":\"Add {{product_quantity}} quantities of the product (Bux X)\",\"sectionMaximumQuantityValidationLabel\":\"Maximum quantity not selected for: {{section_name}}!\",\"volumeAmountDiscountSaveRewardsLabel\":\"Save {{currency}}{{discount}}!\",\"sectionLabel\":\"Section\",\"disabledTextColor\":\"#6B7280\",\"primaryHoverColor\":\"#000000\",\"shippingDiscountCombinedWithOrderDiscount\":true,\"defaultDiscountBarMessage\":\"Welcome to our store\",\"enableBundleProductFilter\":false,\"buyXGetYDiscountCombinedWithOrderDiscount\":true,\"bundleSubtotalLabel\":\"Subtotal\",\"reviewOrderDescription\":\"Check your items and select your required frequency plan\",\"dynamicBundleDiscountCombinedWithOrderDiscount\":true,\"volumeDiscountSaveRewardsLabel\":\"Save {{discount}}{{discount_type}}!\",\"addingProductsToBundle\":\"Adding products to bundle\",\"buyXGetYMergedWidgetTitle\":\"Select Buy X Get Y Discount\",\"bundleModalHeaderLabel\":\"Your Bundle({{total_quantity}})\",\"productAddedToBundleNotificationDescription\":\"{{product_title}} added to bundle.\",\"dynamicBundleDiscountAppliesOnSubscription\":true,\"productDiscountTypeLabel\":\"Product Discount\",\"bundleTopHtml\":\"\",\"proceedToCheckoutButtonText\":\"\",\"defaultSelectedPurchaseOption\":\"ONE_TIME\",\"showDraftProduct\":false,\"switchSubscriptionLabel\":\"Subscribe & Save\",\"percentDiscountText\":\"Get {{discount_value}}% off on your purchase!\",\"discountUsageLimitExceedLabel\":\"You have exceeded the bundle usage limit\",\"reviewOrderLabel\":\"Review Bundle\",\"chooseSectionProductsLabel\":\"Choose Section Products\",\"primaryDisabledColor\":\"#333333\",\"bundleMinimumOrderAmountLabel\":\"Add minimum {{minimum_amount}} order amount\",\"dynamicBundleDiscountRecurringCycleLimit\":0,\"breadCrumbSelectSectionLabel\":\"Select Section\",\"loadMoreButtonLabel\":\"Load More\",\"bundleQuantityRewardsLabel\":\"Add {{quantity}} item, get {{discount}}{{discount_type}} discount\",\"shippingDiscountCombinedWithProductDiscount\":true,\"sellingPlanNameSortOrder\":\"ASC\",\"switchOnTimeLabel\":\"One Time\",\"volumeDiscountCombinedWithProductDiscount\":true,\"chooseProductsText\":\"Products\",\"productDetailsViewType\":\"SHOW_PRODUCT_POPUP\",\"enableManualBundleBlockIntegration\":false,\"volumeDiscountNextApplicableQuantityRewardsLabel\":\"{{discount}}{{discount_type}} at checkout\",\"bundleCheckoutLabel\":\"Checkout\",\"productDiscountCombinedWithShippingDiscount\":true,\"skipSelectSectionPage\":false,\"productCardBackgroundColor\":\"#ffffff\",\"buyXGetYFreeLabel\":\"Free\",\"buttonBackgroundColor\":\"#000000\",\"dockbarHeadingLabel\":\"Bundle\",\"discountMessageInterval\":3000,\"sectionedBundleTypeLabel\":\"Sectioned Bundle\",\"buyXGetYAddToCartLabel\":\"Add to cart\",\"buyXGetYDiscountCombinedWithShippingDiscount\":true,\"dynamicBundleDiscountCodeText\":\"BUNDLE_DISCOUNT_{{bundle_id}}\",\"productDiscountAppliesOnSubscription\":true,\"selectedProgressLabelText\":\"{{total_bundle_items}} item added with a minimum quantity of {{minimum_quantity}}\",\"requiredBundleProductLabel\":\"Your bundle needs {{min_product_count}} more item(s).\",\"sellingPlanSelectionDropDownLabel\":\"Purchase Options\",\"buyXGetYPercentDiscountText\":\"Enjoy a percentage discount of {{discount_value}}%\",\"dockbarDescriptionLabel\":\"You're getting the most rewards!\",\"productDiscountRecurringCycleLimit\":0,\"preventClickableProductsOnCart\":false,\"enableProductDetailButton\":false,\"discountTargetType\":\"VARIANT\",\"buyXGetYDiscountTypeLabel\":\"Buy X Get Y Discount\",\"customOfferLink\":\"collections/all\",\"noItemsInBundle\":\"No items added to the bundle\",\"topBarPercentDiscountTitlePostfix\":\"{{discount}}% off on shipping\",\"variantSelectionDropDownLabel\":\"Variants\",\"chooseSectionLabel\":\"Choose Section\",\"dynamicPricingBundleTypeLabel\":\"Dynamic Pricing Bundle\",\"breadCrumbPlanLabel\":\"Select Plan\",\"showDynamicBundleOrderNote\":false,\"showOutOfStockProduct\":true,\"disabledSellingPlanSelectionValidation\":false,\"disableViewShopifyProduct\":false,\"bundleDiscountLabel\":\"Discount\",\"topBarDiscountRequiredAmountTitlePrefix\":\"Add {{currency}}{{remainingAmount}} more to unlock \",\"volumeDiscountAppliedQuantityRewardsLabel\":\"Applied: buy {{quantity}} get {{discount}}{{discount_type}}\",\"bundleNotEligibleLabel\":\"You're not eligible to purchase this bundle!\",\"reviewOrderProductsLabel\":\"Bundle Products\",\"outOfStockLabel\":\"Out Of Stock\",\"showUnitPrice\":false,\"buyXGetYFreeGiftDiscountText\":\"Enjoy the free product\",\"showDescriptionPopup\":true,\"readMoreText\":\"Read More\",\"totalBundleProductsAddedLabel\":\"{{total_bundle_items}} Products Added\",\"bundleMinimumQuantityLabel\":\"Add minimum {{minimum_quantity}} product\",\"noSourceProductSelectedLabel\":\"No source product selected.\",\"nonListedProductText\":\"Non-Listed\",\"buyXNoProductSelectedLabel\":\"No product selected (Buy X)\",\"volumeDiscountQuantityRewardsLabel\":\"Buy {{quantity}} quantity and get {{discount}}{{discount_type}} discount!\",\"freeShippingLabel\":\"Free Shipping\",\"previousButtonLabel\":\"Previous Step\",\"draftBundlePageTitle\":\"Oops! This bundle is temporarily unavailable.\",\"productDetailsMaximumDescriptionCount\":300,\"oneTimeOnlyLabel\":\"One time only\",\"buyXAnyNumberOfProductChooseLabel\":\"Choose any number of products\",\"productFilterConfig\":\"{\\\"enabled\\\":false,\\\"filters\\\":[]}\",\"volumeAmountDiscountQuantityRewardsLabel\":\"Buy {{quantity}} quantity and get {{currency}}{{discount}} discount!\",\"disableDiscountedPricingRedirectToCart\":false,\"volumeDiscountCombinedWithOrderDiscount\":true,\"dynamicBundleDiscountAppliesOnOneTimePurchase\":true,\"choosePlanButtonLabel\":\"Choose Plan\",\"enableAnnouncementBar\":false,\"bundleQuantityLabel\":\"{{quantity}}x\",\"showClassicBundleWidgetInChildProduct\":false,\"shippingDiscountAppliesOnOneTimePurchase\":true,\"classicBundleLinkLabel\":\"Go to the Classic Bundle\",\"topBarDiscountRequiredQuantityTitlePrefix\":\"Add {{remainingQuantity}} more item(s) to unlock \",\"bundleDetailsLabel\":\"Your bundle:\",\"buyXGetYDiscountAppliesOnOneTimePurchase\":true,\"volumeDiscountAppliedSpentAmountRewardsLabel\":\"Applied: spend {{spent_amount}}{{currency}} get {{discount}}{{discount_type}}\",\"enableAutoRemoveRelevantBundleItemInCart\":false,\"bundleModalShowRewardsLabel\":\"Show all rewards\",\"topBarFreeShippingTitlePostfix\":\"free shipping\",\"buyXGetYDiscountRecurringCycleLimit\":0,\"cartAndCheckoutMandatoryProductValidationMessage\":\"This bundle or discount must include all required products and they cannot be removed.\",\"volumeAmountDiscountSpentAmountRewardsLabel\":\"Spend {{currency}}{{spent_amount}} and get {{currency}}{{discount}} discount!\",\"notApplicableForOneTimeNotificationTitle\":\"Not applicable for one time\",\"showDiscountToNonEligibleCustomers\":false,\"primaryDisabledTextColor\":\"#ffffff\",\"draftBundlePageSubTitle\":\"In the meantime, check out our latest offers and discounts!\",\"volumeDiscountCombinedWithShippingDiscount\":true,\"bundleSpentAmountRewardsLabel\":\"Spent {{spent_amount}} worth of items, get {{discount}}{{discount_type}} discount\",\"nextButtonLabel\":\"Next Step\",\"classicBundleDescriptionLabel\":\"Your bundle contains the following products.\",\"bundleBottomHtml\":\"\",\"sectionMinimumQuantityValidationLabel\":\"Minimum quantity not selected for: {{section_name}}!\",\"volumeDiscountAppliesOnSubscription\":true,\"dynamicBundleDiscountCombinedWithProductDiscount\":true,\"buyXGetYAnyNumberOfGiftProductLabel\":\"Choose any number of gift products\",\"descriptionLength\":200,\"bundleDiscountNote\":\"Discounts will be applied at checkout.\",\"bundleModalCloseRewardsLabel\":\"Close all rewards\",\"dockbarCurrentRewardLabel\":\"You got {{discount_amount}}{{discount_type}} discount\",\"productDetailsAddToBundleLabel\":\"Add to bundle\",\"cartAndCheckoutQuantityValidationMessage\":\"Orders must match the quantity range: Min {{min_quantity}}, Max {{max_quantity}}\",\"bundleNoProductSelectedLabel\":\"No product selected\",\"checkoutInfoLabel\":\"Add products from each section to enable the add to cart button.\",\"enableShowMultipleImages\":false,\"redirectToCartPageOnCartIconClick\":true,\"freeShippingDiscountCodeText\":\"FREE_SHIPPING_{{bundle_id}}\",\"customOfferLinkButtonLabel\":\"Explore Offers\",\"oneTimePurchaseLabel\":\"One Time Purchase\",\"bundleMaximumOrderAmountLabel\":\"Add maximum {{maximum_amount}} order amount\",\"enableBundleProductAscOrderView\":true,\"productAddedToBundleNotificationTitle\":\"Added to bundle\",\"showClassicBundleProductVariant\":false,\"customHtmlInject\":\"[]\",\"breadCrumbReviewSectionLabel\":\"Review Section\"}","bundleTopHtml":"","bundleBottomHtml":"","proceedToCheckoutButtonText":"","chooseProductsText":"Products","productAddToBundleLabel":"Add","productDetailsAddToBundleLabel":"Add to bundle","productDetailsMaximumDescriptionCount":300,"variantSelectionDropDownLabel":"Variants","sellingPlanSelectionDropDownLabel":"Purchase Options","dockbarHeadingLabel":"Bundle","dockbarCurrentRewardLabel":"You got {{discount_amount}}{{discount_type}} discount","dockbarDescriptionLabel":"You're getting the most rewards!","bundleModalHeaderLabel":"Your Bundle({{total_quantity}})","bundleModalShowRewardsLabel":"Show all rewards","bundleModalCloseRewardsLabel":"Close all rewards","bundleQuantityRewardsLabel":"Add {{quantity}} item, get {{discount}}{{discount_type}} discount","bundleSpentAmountRewardsLabel":"Spent {{spent_amount}} worth of items, get {{discount}}{{discount_type}} discount","bundleQuantityLabel":"{{quantity}}x","bundleSubtotalLabel":"Subtotal","bundleDiscountLabel":"Discount","bundleTotalLabel":"Total","bundleCheckoutLabel":"Checkout","bundleMinimumQuantityLabel":"Add minimum {{minimum_quantity}} product","bundleMaximumQuantityLabel":"Add maximum up to {{maximum_quantity}} product","bundleMinimumOrderAmountLabel":"Add minimum {{minimum_amount}} order amount","oneTimePurchaseLabel":"One Time Purchase","noItemsInBundle":"No items added to the bundle","modalOpenOnAddToCart":true,"productAddedToBundleNotificationTitle":"Added to bundle","productAddedToBundleNotificationDescription":"{{product_title}} added to bundle.","chooseAPlanLabel":"Choose Plan","nextButtonLabel":"Next Step","previousButtonLabel":"Previous Step","chooseSourceProductValidationLabel":"Please choose source product!","chooseAssociatedProductsValidationLabel":"Please choose associated products!","choosePlanButtonLabel":"Choose Plan","selectedSourceProductLabel":"Selected","noSourceProductSelectedLabel":"No source product selected.","reviewOrderLabel":"Review Bundle","reviewOrderDescription":"Check your items and select your required frequency plan","reviewOrderProductsLabel":"Bundle Products","reviewOrderInfoLabel":"","orderNoteLabel":"Order Note","selectedProgressLabelText":"{{total_bundle_items}} item added with a minimum quantity of {{minimum_quantity}}","availableOnlySubscriptionLabel":"Available Only On Subscription","subscriptionAvailableLabel":"Subscription Available","oneTimeOnlyLabel":"One time only","switchOnTimeLabel":"One Time","switchSubscriptionLabel":"Subscribe & Save","breadCrumbPlanLabel":"Select Plan","breadCrumbProductsLabel":"Choose Products","breadCrumbReviewBundleLabel":"Review Bundle","showDescriptionPopup":true,"tieredDiscountLabel":"{{discount_amount}}{{discount_type}} Discount","emptyProductImage":"https://cdn.shopify.com/s/files/1/0661/9224/4900/files/EmptyImage.jpg?v=1718447038","outOfStockLabel":"Out Of Stock","notApplicableForOneTimeNotificationTitle":"Not applicable for one time","notApplicableForSubscribeAndSaveNotificationTitle":"Not applicable for subscribe & save","disableProductDescription":false,"descriptionLength":200,"readLessText":"Read Less","readMoreText":"Read More","bundleNoProductSelectedLabel":"No product selected","customHtmlInject":"[]","bundleDetailsLabel":"Your bundle:","bundleDiscountNote":"Discounts will be applied at checkout.","fixedDiscountText":"Enjoy a fixed discount of {{currency}}{{discount_value}} on your purchase!","percentDiscountText":"Get {{discount_value}}% off on your purchase!","hideVariantSelectLabel":false,"hidePurchaseOptionSelectLabel":false,"primaryColor":"#000000","primaryTextColor":"#000000","secondaryTextColor":"#ffffff","primaryHoverColor":"#000000","primaryDisabledColor":"#333333","primaryDisabledTextColor":"#ffffff","fieldDisabledBackgroundColor":"#D1D5DB","disabledTextColor":"#6B7280","volumeDiscountSaveRewardsLabel":"Save {{discount}}{{discount_type}}!","volumeDiscountQuantityRewardsLabel":"Buy {{quantity}} quantity and get {{discount}}{{discount_type}} discount!","volumeDiscountSpentAmountRewardsLabel":"Spend {{currency}}{{spent_amount}} and get {{discount}}{{discount_type}} discount!","volumeDiscountAppliedQuantityRewardsLabel":"Applied: buy {{quantity}} get {{discount}}{{discount_type}}","volumeDiscountAppliedSpentAmountRewardsLabel":"Applied: spend {{spent_amount}}{{currency}} get {{discount}}{{discount_type}}","volumeDiscountNextApplicableQuantityRewardsLabel":"{{discount}}{{discount_type}} at checkout","volumeDiscountNextApplicableSpentAmountRewardsLabel":"Spend {{spent_amount}}{{currency}} get {{discount}}{{discount_type}}","addingProductsToBundle":"Adding products to bundle","freeShippingLabel":"Free Shipping","requiredBundleProductLabel":"Your bundle needs {{min_product_count}} more item(s).","enableProductDetailButton":false,"requiredLoginValidationLabel":"Please log in to purchase this bundle!","bundleNotEligibleLabel":"You're not eligible to purchase this bundle!","loginAlertTextLabel":"You need to login to purchase this bundle.","loginAlertLinkLabel":"Click here to login","customSignInLink":"","shippingDiscountLabel":"{{discount}}{{discount_type}} Shipping Discount","classicBundleDescriptionLabel":"Your bundle contains the following products.","singleParentProductDirectRedirectToChildProducts":true,"buyXGetYFixedDiscountText":"Enjoy a fixed discount of {{discount_value}} {{currency}}","buyXGetYPercentDiscountText":"Enjoy a percentage discount of {{discount_value}}%","buyXGetYFreeGiftDiscountText":"Enjoy the free product","buyXGetYAddToCartLabel":"Add to cart","buyXGetYFreeLabel":"Free","disableDiscountedPricingRedirectToCart":false,"nonListedProductText":"Non-Listed","preventClickableProductsOnCart":false,"buyXGetYChooseProductLabel":"Choose Product","showSubscriptionPlanDescription":false,"volumeAmountDiscountSaveRewardsLabel":"Save {{currency}}{{discount}}!","volumeAmountDiscountQuantityRewardsLabel":"Buy {{quantity}} quantity and get {{currency}}{{discount}} discount!","volumeAmountDiscountSpentAmountRewardsLabel":"Spend {{currency}}{{spent_amount}} and get {{currency}}{{discount}} discount!","enableManualBundleBlockIntegration":false,"cartAndCheckoutQuantityValidationMessage":"Orders must match the quantity range: Min {{min_quantity}}, Max {{max_quantity}}","dynamicBundleDiscountCodeText":"BUNDLE_DISCOUNT_{{bundle_id}}","discountUsageLimitExceedLabel":"You have exceeded the bundle usage limit","disableViewShopifyProduct":false,"redirectToCartPageOnCartIconClick":true,"sectionLabel":"Section","chooseSectionLabel":"Choose Section","chooseSectionProductsLabel":"Choose Section Products","breadCrumbSelectSectionLabel":"Select Section","breadCrumbReviewSectionLabel":"Review Section","checkoutInfoLabel":"Add products from each section to enable the add to cart button.","sectionNoProductSelectedValidationLabel":"No product selected for: {{section_name}}!","sectionMinimumQuantityValidationLabel":"Minimum quantity not selected for: {{section_name}}!","sectionMaximumQuantityValidationLabel":"Maximum quantity not selected for: {{section_name}}!","dynamicBundleDiscountCombinedWithProductDiscount":true,"dynamicBundleDiscountCombinedWithShippingDiscount":true,"dynamicBundleDiscountCombinedWithOrderDiscount":true,"volumeDiscountCombinedWithProductDiscount":true,"volumeDiscountCombinedWithShippingDiscount":true,"volumeDiscountCombinedWithOrderDiscount":true,"productDiscountCombinedWithProductDiscount":true,"productDiscountCombinedWithShippingDiscount":true,"productDiscountCombinedWithOrderDiscount":true,"buyXGetYDiscountCombinedWithProductDiscount":true,"buyXGetYDiscountCombinedWithShippingDiscount":true,"buyXGetYDiscountCombinedWithOrderDiscount":true,"shippingDiscountCombinedWithProductDiscount":true,"shippingDiscountCombinedWithOrderDiscount":true,"showDynamicBundleOrderNote":false,"bundleMaximumOrderAmountLabel":"Add maximum {{maximum_amount}} order amount","buyXGetYQuantityValidationLabel":"Add {{product_quantity}} quantities of the gift product (Get Y)","selectedGiftProductProgressLabelText":"{{selected_product_quantity}} gift products added. The required quantity is {{required_product_quantity}}.","draftBundlePageTitle":"Oops! This bundle is temporarily unavailable.","draftBundlePageSubTitle":"In the meantime, check out our latest offers and discounts!","customOfferLink":"collections/all","customOfferLinkButtonLabel":"Explore Offers","enableParentProductDetailButton":false,"sectionTotalLabel":"Section Total","skipSelectSectionPage":false,"buyXGetYGiftProductPriceVisibilityType":"UNIT_PRICE","defaultSelectedPurchaseOptionSwitch":"ONE_TIME","defaultSelectedPurchaseOption":"ONE_TIME","discountTargetType":"VARIANT","enableShowMultipleImages":false,"buyXGetYAnyNumberOfGiftProductLabel":"Choose any number of gift products","showDiscountToNonEligibleCustomers":false,"dynamicBundleDiscountRecurringCycleLimit":0,"dynamicBundleDiscountAppliesOnOneTimePurchase":true,"dynamicBundleDiscountAppliesOnSubscription":true,"volumeDiscountRecurringCycleLimit":0,"volumeDiscountAppliesOnOneTimePurchase":true,"volumeDiscountAppliesOnSubscription":true,"productDiscountRecurringCycleLimit":0,"productDiscountAppliesOnOneTimePurchase":true,"productDiscountAppliesOnSubscription":true,"buyXGetYDiscountRecurringCycleLimit":0,"buyXGetYDiscountAppliesOnOneTimePurchase":true,"buyXGetYDiscountAppliesOnSubscription":true,"shippingDiscountRecurringCycleLimit":0,"shippingDiscountAppliesOnOneTimePurchase":true,"shippingDiscountAppliesOnSubscription":true,"buyXNoProductSelectedLabel":"No product selected (Buy X)","getYNoProductSelectedLabel":"No gift product selected (Get Y)","buyXQuantityValidationLabel":"Add {{product_quantity}} quantities of the product (Bux X)","buyXAnyNumberOfProductChooseLabel":"Choose any number of products","freeShippingDiscountCodeText":"FREE_SHIPPING_{{bundle_id}}","includedSubscriptionPlans":"","excludeSubscriptionPlans":"","enableBuyXGetYWidgetMergeAsOptions":false,"buyXGetYMergedWidgetTitle":"Select Buy X Get Y Discount","showClassicBundleProductVariant":false,"showProductPerPage":50,"loadMoreButtonLabel":"Load More","enableBundleProductAscOrderView":true,"cartAndCheckoutMandatoryProductValidationMessage":"This bundle or discount must include all required products and they cannot be removed.","sellingPlanNameSortOrder":"ASC","showVendorName":false,"disableFitImage":false,"enableAutoRemoveRelevantBundleItemInCart":false,"enableBundleProductFilter":false,"productFilterConfig":"{\"enabled\":false,\"filters\":[]}","enableMaxDiscountCap":null,"maxDiscountCapValue":null,"classicBundleLinkLabel":"Go to the Classic Bundle","showPriceAsDecimals":false,"showClassicBundleWidgetInChildProduct":false,"showOutOfStockProduct":true,"showDraftProduct":false,"totalBundleProductsAddedLabel":"{{total_bundle_items}} Products Added","bundleProductsQuantityLabel":"{{quantity}}x quantity","showUnitPrice":false,"productDetailsViewType":"SHOW_PRODUCT_POPUP","disableRefreshSellingPlan":false,"enableShippingDiscountBar":null,"enableVolumeDiscountBar":null,"defaultDiscountBarMessage":"Welcome to our store","discountMessageInterval":3000,"addedBundleToTheCart":null,"disabledSellingPlanSelectionValidation":false,"volumeDiscountVariantSelectLabel":"Denominations","enableScrollingToBundleSection":false,"enableClassicBundleRecreation":true,"topBarDiscountUnlockTitlePrefix":"You've unlocked ","topBarDiscountRequiredAmountTitlePrefix":"Add {{currency}}{{remainingAmount}} more to unlock ","topBarDiscountRequiredQuantityTitlePrefix":"Add {{remainingQuantity}} more item(s) to unlock ","topBarPercentDiscountTitlePostfix":"{{discount}}% off on shipping","topBarFixedDiscountTitlePostfix":"{{currency}}{{discount}} off on shipping","topBarFreeShippingTitlePostfix":"free shipping","checkInventoryQuantity":false,"hideBundleToastNotification":false,"enableBundleRecreation":null,"enableAnnouncementBar":false,"enableAnnouncementBarAutoRotate":true,"bundleListTitle":"List of Bundles and Discounted Pricing","bundleListDescription":"Explore our Bundles and Discounted Pricing and enjoy exclusive discounts when you buy products together","bundleListViewDetailsButtonLabel":"View Details","classicBundleTypeLabel":"Classic Bundle","dynamicPricingBundleTypeLabel":"Dynamic Pricing Bundle","fixedPricingBundleTypeLabel":"Fixed Pricing Bundle","sectionedBundleTypeLabel":"Sectioned Bundle","volumeDiscountTypeLabel":"Volume Discount","productDiscountTypeLabel":"Product Discount","buyXGetYDiscountTypeLabel":"Buy X Get Y Discount","bundlePageBackgroundColor":"#FAFAF9","productCardBackgroundColor":"#ffffff","buttonBackgroundColor":"#000000","showPrepaidPerDeliveryPrice":null,"prepaidPerDeliveryPriceLabel":null};
if (!bundleSettings?.enableAutoRemoveRelevantBundleItemInCart) return;
const originalFetch = window.fetch;
window.fetch = async function (...args) {
const [resource, config] = args;
const isRemoveRequest = typeof resource === 'string' &&
resource.includes('/cart/change') &&
config?.method === 'POST';
if (!isRemoveRequest) {
return originalFetch(...args);
}
let bodyData = {};
try {
bodyData = JSON.parse(config.body);
} catch (e) {
console.warn('Failed to parse request body', e);
return originalFetch(...args);
}
if (bodyData.quantity !== 0) {
return originalFetch(...args);
}
const cart = await fetch('/cart.js').then(res => res.json());
const removingLineIndex = parseInt(bodyData?.line) - 1;
const removingItem = cart?.items[removingLineIndex];
const bundleId = removingItem?.properties?.["_appstle-bb-id"];
if (!bundleId) {
return originalFetch(...args);
}
const updates = {};
cart?.items.forEach(item => {
if (item?.properties?.["_appstle-bb-id"] === bundleId) {
updates[item?.key] = 0;
}
});
const hasNonBundleItems = cart?.items.some(item => !item?.properties?.["_appstle-bb-id"]);
await fetch('/cart/update.js', {
method: 'POST',
headers: {
'Content-Type': 'application/json'
},
body: JSON.stringify({ updates })
});
if (hasNonBundleItems) {
const sections = bodyData?.sections;
const sectionsUrl = bodyData?.sections_url || '/cart';
const htmlResponse = await fetch(
`/?sections=${sections.join(',')}§ions_url=${encodeURIComponent(sectionsUrl)}`
);
const htmlData = await htmlResponse.json();
return new Response(JSON.stringify({
status: 'bundle removed',
sections: htmlData
}), {
status: 200,
headers: { 'Content-Type': 'application/json' }
});
}
return originalFetch(...args);
};
});
document.addEventListener('DOMContentLoaded', () => {
const originalFetch = window.fetch;
window.fetch = async function (...args) {
const [resource, config] = args;
const isCartUpdate = typeof resource === 'string' &&
(resource.includes('/cart/change') || resource.includes('/cart/update')) &&
config?.method === 'POST';
if (!isCartUpdate) {
return originalFetch(...args);
}
const response = await originalFetch(...args);
const cart = await fetch('/cart.js').then(res => res.json());
const hasBundleItems = cart?.items.some(item =>
item?.properties?.["_appstle-bb-id"]
);
const freeProductItems = cart?.items.filter(item =>
item?.properties?.["_appstle_free_product"] === true ||
item?.properties?.["_appstle_free_product"] === "true"
);
if (!hasBundleItems && freeProductItems.length > 0) {
const updates = {};
freeProductItems.forEach(item => {
updates[item?.key] = 0;
});
await fetch('/cart/update.js', {
method: 'POST',
headers: {
'Content-Type': 'application/json'
},
body: JSON.stringify({ updates })
});
let bodyData = {};
try {
bodyData = JSON.parse(config.body);
} catch (e) {
}
if (bodyData?.sections) {
const sections = bodyData.sections;
const sectionsUrl = bodyData.sections_url || '/cart';
const htmlResponse = await fetch(
`/?sections=${sections.join(',')}§ions_url=${encodeURIComponent(sectionsUrl)}`
);
const htmlData = await htmlResponse.json();
return new Response(JSON.stringify({
status: 'free product removed',
sections: htmlData
}), {
status: 200,
headers: { 'Content-Type': 'application/json' }
});
}
}
return response;
};
});
(() => {
const constructAndGetBundleElement = (rule) => {
const bundleDiv = document.createElement('div');
const typeConfig = {
SECTIONED_BUNDLE: {
attribute: 'appstle-sectioned-bundle-unique-reference',
className: `appstleSectionedBundleCustomPage appstleCustomPageSectionedBundle-${rule?.uniqueRef}`,
dataBlockHandle: 'div[data-block-handle="appstle-sectioned-bundle-custom-page"]'
},
SINGLE_PRODUCT_BUILD_A_BOX: {
attribute: 'appstle-fixed-pricing-bundle-unique-reference',
className: `appstleFixedPricingBundleCustomPage appstleCustomPageFixedPricingBundle-${rule?.uniqueRef}`,
dataBlockHandle: 'div[data-block-handle="appstle-fixed-pricing-bundle-custom-page"]'
}
};
const config = typeConfig?.[rule?.bundleType];
bundleDiv.setAttribute(config?.attribute, rule?.uniqueRef);
bundleDiv.className = `appstleBundlesCustomPage ${config?.className}`;
return { bundleDiv, dataBlockHandle: config?.dataBlockHandle };
};
const executeBundlesCustomPageBlock = ({ blockElement, bundleType = null }) => {
const babBundles = [{"id":16525,"shop":"f5a14c-2.myshopify.com","name":"Test Bundle","description":"Get them all at once and save big","status":"ACTIVE","customerIncludeTags":null,"discountType":"NO_DISCOUNT","discountValue":null,"products":"[{\"productId\":9637112906034,\"variantId\":null,\"price\":null,\"name\":\"Abhorrent Mage | STL | The Abhorrents\",\"productHandle\":\"digital-bundle-with-abhorrent-mage-the-abhorrents-bestiarum-miniatures-d-d-wargaming-dnd-copy\",\"imageSrc\":\"https://cdn.shopify.com/s/files/1/0813/3787/6786/files/03_AbhorrentMage_94cf8a9c-d2d7-4426-b2b1-76c766601a38.jpg?v=1722303103\",\"quantity\":1,\"status\":\"ACTIVE\",\"options\":[]},{\"productId\":9757269393714,\"variantId\":null,\"price\":null,\"name\":\"Abhorrent Crypt Holes | STL | The Abhorrents\",\"productHandle\":\"abhorrent-crypt-holes-the-abhorrents-bestiarum-miniatures-d-d-wargaming-dnd-copy\",\"imageSrc\":\"https://cdn.shopify.com/s/files/1/0813/3787/6786/files/18_VampireLairs_Group_59a7cbe3-8fc8-4a33-9cea-b3421ff10862.jpg?v=1728256244\",\"quantity\":1,\"status\":\"ACTIVE\",\"options\":[]},{\"productId\":9760870236466,\"variantId\":null,\"price\":null,\"name\":\"Abyssal High Priest | STL | The N'Gorroth\",\"productHandle\":\"abyssal-high-priest-stl-the-ngorroth\",\"imageSrc\":\"https://cdn.shopify.com/s/files/1/0813/3787/6786/files/01_AbyssalHighPriest_Cover.jpg?v=1722012389\",\"quantity\":1,\"status\":\"ACTIVE\",\"options\":[]}]","variants":"[]","sequenceNo":null,"bundleType":"CLASSIC","settings":null,"bundleProductId":9859177382194,"bundleVariantId":null,"productHandle":"test-bundle","discountId":null,"price":null,"numberOfProducts":0,"subscriptionBundlingEnabled":false,"subscriptionId":null,"minProductCount":null,"maxProductCount":null,"uniqueRef":"4fg5rkusOK","bundleRedirect":"CART","customRedirectURL":null,"minOrderAmount":null,"tieredDiscount":null,"productViewStyle":"QUICK_ADD","singleProductSettings":null,"trackInventory":false,"sellingPlanType":"BUNDLE_LEVEL","clearCart":"ENABLED","minPrice":37.0,"maxPrice":37.0,"externalBuildABoxId":null,"variantVisibilityType":"SHOW_VARIANTS_AS_INDIVIDUAL","subTitle":null,"freeShipping":false,"themeType":"THEME_TWO","showBundleInProductPage":true,"combinedWithProductDiscount":true,"combinedWithShippingDiscount":true,"combinedWithOrderDiscount":true,"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":null,"sections":"[{\"id\":1,\"name\":\"\",\"description\":\"\",\"minProductCount\":0,\"maxProductCount\":0,\"variants\":[]}]","limitToUsePerCustomer":null,"discountedVariantSelectionLimit":null,"hideOneTimePurchase":false,"hideSubscriptionPurchase":false,"maxOrderAmount":null,"collectionData":null,"productSelectionType":"PRODUCT","tag":"appstle_bundles","productChooseType":"CHOOSE_ALL","variantSelectionLimit":null,"discountTargetType":null,"enableSubscription":null,"subscriptionWidgetPosition":null,"subscribeTitle":null,"subscribeSubtitle":null,"subscriptionPreselected":null,"getYAppliesOn":null,"announcementBarMessage":null,"automaticDiscountNodeId":null,"recurringCycleLimit":null},{"id":16526,"shop":"f5a14c-2.myshopify.com","name":"Dynamic Discount","description":"Pack as much as you can for a discount","status":"ACTIVE","customerIncludeTags":null,"discountType":"TIERED_DISCOUNT","discountValue":null,"products":null,"variants":"[{\"productId\":9757269393714,\"variantId\":49729552580914,\"name\":\"Abhorrent Crypt Holes | STL | The Abhorrents \",\"productHandle\":\"abhorrent-crypt-holes-the-abhorrents-bestiarum-miniatures-d-d-wargaming-dnd-copy\",\"imageSrc\":\"https://cdn.shopify.com/s/files/1/0813/3787/6786/files/18_VampireLairs_Group_59a7cbe3-8fc8-4a33-9cea-b3421ff10862.jpg?v=1728256244\",\"quantity\":1,\"price\":\"12.00\",\"status\":\"ACTIVE\",\"productTitle\":\"Abhorrent Crypt Holes | STL | The Abhorrents\",\"variantTitle\":null,\"isMandatory\":false,\"preSelected\":false,\"minQuantity\":null,\"maxQuantity\":null},{\"productId\":9637112906034,\"variantId\":49340367798578,\"name\":\"Abhorrent Mage | STL | The Abhorrents \",\"productHandle\":\"digital-bundle-with-abhorrent-mage-the-abhorrents-bestiarum-miniatures-d-d-wargaming-dnd-copy\",\"imageSrc\":\"https://cdn.shopify.com/s/files/1/0813/3787/6786/files/03_AbhorrentMage_94cf8a9c-d2d7-4426-b2b1-76c766601a38.jpg?v=1722303103\",\"quantity\":1,\"price\":\"10.00\",\"status\":\"ACTIVE\",\"productTitle\":\"Abhorrent Mage | STL | The Abhorrents\",\"variantTitle\":null,\"isMandatory\":false,\"preSelected\":false,\"minQuantity\":null,\"maxQuantity\":null},{\"productId\":9760870236466,\"variantId\":49744609804594,\"name\":\"Abyssal High Priest | STL | The N'Gorroth \",\"productHandle\":\"abyssal-high-priest-stl-the-ngorroth\",\"imageSrc\":\"https://cdn.shopify.com/s/files/1/0813/3787/6786/files/01_AbyssalHighPriest_Cover.jpg?v=1722012389\",\"quantity\":1,\"price\":\"15.00\",\"status\":\"ACTIVE\",\"productTitle\":\"Abyssal High Priest | STL | The N'Gorroth\",\"variantTitle\":null,\"isMandatory\":false,\"preSelected\":false,\"minQuantity\":null,\"maxQuantity\":null},{\"productId\":9760870859058,\"variantId\":49744618651954,\"name\":\"Abyssal Pastors | STL | The N'Gorroth \",\"productHandle\":\"abyssal-pastors-stl-the-ngorroth\",\"imageSrc\":\"https://cdn.shopify.com/s/files/1/0813/3787/6786/files/02_AbyssalPastors_Cover.jpg?v=1722012446\",\"quantity\":1,\"price\":\"12.00\",\"status\":\"ACTIVE\",\"productTitle\":\"Abyssal Pastors | STL | The N'Gorroth\",\"variantTitle\":null,\"isMandatory\":false,\"preSelected\":false,\"minQuantity\":null,\"maxQuantity\":null},{\"productId\":9842001412402,\"variantId\":50004424294706,\"name\":\"Accursed Servants | STL | Calden Keep \",\"productHandle\":\"accursed-servants-stl-calden-keep\",\"imageSrc\":\"https://cdn.shopify.com/s/files/1/0813/3787/6786/files/03_Accursed_Servants_Group.jpg?v=1747948841\",\"quantity\":1,\"price\":\"15.00\",\"status\":\"ACTIVE\",\"productTitle\":\"Accursed Servants | STL | Calden Keep\",\"variantTitle\":null,\"isMandatory\":false,\"preSelected\":false,\"minQuantity\":null,\"maxQuantity\":null}]","sequenceNo":null,"bundleType":"CLASSIC_BUILD_A_BOX","settings":null,"bundleProductId":null,"bundleVariantId":null,"productHandle":null,"discountId":null,"price":null,"numberOfProducts":0,"subscriptionBundlingEnabled":false,"subscriptionId":null,"minProductCount":null,"maxProductCount":null,"uniqueRef":"kD9501LSRU","bundleRedirect":"CART","customRedirectURL":null,"minOrderAmount":null,"tieredDiscount":"[{\"discountBasedOn\":\"AMOUNT\",\"value\":50,\"discount\":5,\"discountType\":\"PERCENTAGE\",\"discountAllowedTags\":null},{\"discountBasedOn\":\"AMOUNT\",\"value\":75,\"discount\":10,\"discountType\":\"PERCENTAGE\",\"discountAllowedTags\":null},{\"discountBasedOn\":\"QUANTITY\",\"value\":100,\"discount\":15,\"discountType\":\"PERCENTAGE\",\"discountAllowedTags\":null}]","productViewStyle":"QUICK_ADD","singleProductSettings":null,"trackInventory":false,"sellingPlanType":"BUNDLE_LEVEL","clearCart":"ENABLED","minPrice":null,"maxPrice":null,"externalBuildABoxId":null,"variantVisibilityType":"SHOW_VARIANTS_AS_OPTIONS","subTitle":null,"freeShipping":true,"themeType":"THEME_TWO","showBundleInProductPage":true,"combinedWithProductDiscount":true,"combinedWithShippingDiscount":true,"combinedWithOrderDiscount":true,"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":null,"sections":"[{\"id\":1,\"name\":\"\",\"description\":\"\",\"minProductCount\":0,\"maxProductCount\":0,\"variants\":[]}]","limitToUsePerCustomer":null,"discountedVariantSelectionLimit":null,"hideOneTimePurchase":false,"hideSubscriptionPurchase":false,"maxOrderAmount":null,"collectionData":null,"productSelectionType":"PRODUCT","tag":"appstle_bundles","productChooseType":"CHOOSE_ALL","variantSelectionLimit":null,"discountTargetType":null,"enableSubscription":null,"subscriptionWidgetPosition":null,"subscribeTitle":null,"subscribeSubtitle":null,"subscriptionPreselected":null,"getYAppliesOn":null,"announcementBarMessage":null,"automaticDiscountNodeId":"gid://shopify/DiscountAutomaticNode/1597793239346","recurringCycleLimit":0},{"id":26013,"shop":"f5a14c-2.myshopify.com","name":"Allstein Hero Builder","description":"Mix and match your preferred Allsteiners and build your own warband.","status":"ACTIVE","customerIncludeTags":null,"discountType":"FIXED_AMOUNT","discountValue":25.0,"products":"null","variants":"[]","sequenceNo":null,"bundleType":"SECTIONED_BUNDLE","settings":"{\"enableAnnouncementBar\":true}","bundleProductId":null,"bundleVariantId":null,"productHandle":null,"discountId":null,"price":null,"numberOfProducts":0,"subscriptionBundlingEnabled":false,"subscriptionId":null,"minProductCount":null,"maxProductCount":null,"uniqueRef":"icskz0k1og","bundleRedirect":"CART","customRedirectURL":null,"minOrderAmount":null,"tieredDiscount":null,"productViewStyle":"QUICK_ADD","singleProductSettings":"null","trackInventory":false,"sellingPlanType":"BUNDLE_LEVEL","clearCart":"ENABLED","minPrice":null,"maxPrice":null,"externalBuildABoxId":null,"variantVisibilityType":"SHOW_VARIANTS_AS_OPTIONS","subTitle":null,"freeShipping":false,"themeType":"THEME_TWO","showBundleInProductPage":true,"combinedWithProductDiscount":true,"combinedWithShippingDiscount":true,"combinedWithOrderDiscount":true,"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":"Allstein Hero Builder","sections":"[{\"id\":1,\"name\":\"\",\"description\":\"\",\"minProductCount\":\"5\",\"maxProductCount\":\"5\",\"variants\":[{\"productId\":9001520136498,\"variantId\":47627074928946,\"name\":\"Arakhan, Bane Commander | Spires of Allstein - 32mm Plain Plastic Base\",\"productHandle\":\"arakhan-bane-commander-spires-of-allstein-bestiarum-miniatures-d-d-wargaming-dnd\",\"imageSrc\":\"https://cdn.shopify.com/s/files/1/0813/3787/6786/files/Allstein_P1_-_02_Arakhan_Bane_Commander_-_No_Logo_7e2cab94-40ea-4782-944b-082ddb8fac26.jpg?v=1749042831\",\"quantity\":1,\"price\":\"18.00\",\"status\":\"ACTIVE\",\"productTitle\":\"Arakhan, Bane Commander | Spires of Allstein\",\"variantTitle\":\"32mm Plain Plastic Base\",\"isMandatory\":false,\"preSelected\":false,\"minQuantity\":null,\"maxQuantity\":null},{\"productId\":9001520136498,\"variantId\":49536443613490,\"name\":\"Arakhan, Bane Commander | Spires of Allstein - 32mm Resin Scenic Base\",\"productHandle\":\"arakhan-bane-commander-spires-of-allstein-bestiarum-miniatures-d-d-wargaming-dnd\",\"imageSrc\":\"https://cdn.shopify.com/s/files/1/0813/3787/6786/files/Allstein_P1_-_02_Arakhan_Bane_Commander_-_No_Logo_7e2cab94-40ea-4782-944b-082ddb8fac26.jpg?v=1749042831\",\"quantity\":1,\"price\":\"20.00\",\"status\":\"ACTIVE\",\"productTitle\":\"Arakhan, Bane Commander | Spires of Allstein\",\"variantTitle\":\"32mm Resin Scenic Base\",\"isMandatory\":false,\"preSelected\":false,\"minQuantity\":null,\"maxQuantity\":null},{\"productId\":9775621275954,\"variantId\":49792448102706,\"name\":\"Mechanomagi | Allstein - 40mm Plain Plastic Base\",\"productHandle\":\"mechanomagi-penitent-hero-bestiarum-miniatures-d-d-wargaming-dnd-1\",\"imageSrc\":\"https://cdn.shopify.com/s/files/1/0813/3787/6786/files/Mechanomagi_cover1.jpg?v=1749047753\",\"quantity\":1,\"price\":\"18.00\",\"status\":\"ACTIVE\",\"productTitle\":\"Mechanomagi | Allstein\",\"variantTitle\":\"40mm Plain Plastic Base\",\"isMandatory\":false,\"preSelected\":false,\"minQuantity\":null,\"maxQuantity\":null},{\"productId\":9775621275954,\"variantId\":49792448135474,\"name\":\"Mechanomagi | Allstein - 40mm Resin Scenic Base\",\"productHandle\":\"mechanomagi-penitent-hero-bestiarum-miniatures-d-d-wargaming-dnd-1\",\"imageSrc\":\"https://cdn.shopify.com/s/files/1/0813/3787/6786/files/Mechanomagi_cover1.jpg?v=1749047753\",\"quantity\":1,\"price\":\"20.00\",\"status\":\"ACTIVE\",\"productTitle\":\"Mechanomagi | Allstein\",\"variantTitle\":\"40mm Resin Scenic Base\",\"isMandatory\":false,\"preSelected\":false,\"minQuantity\":null,\"maxQuantity\":null},{\"productId\":9666758705458,\"variantId\":49415923663154,\"name\":\"Orbek - The Exterminator | Allstein - 25mm Plain Plastic Base\",\"productHandle\":\"orbek-the-exterminator-penitent-hero-bestiarum-miniatures-d-d-wargaming-dnd\",\"imageSrc\":\"https://cdn.shopify.com/s/files/1/0813/3787/6786/files/Orbek1_d9f1f029-3898-4f27-86ed-aded325b9a28.jpg?v=1750643507\",\"quantity\":1,\"price\":\"18.00\",\"status\":\"ACTIVE\",\"productTitle\":\"Orbek - The Exterminator | Allstein\",\"variantTitle\":\"25mm Plain Plastic Base\",\"isMandatory\":false,\"preSelected\":false,\"minQuantity\":null,\"maxQuantity\":null},{\"productId\":9666758705458,\"variantId\":49785870090546,\"name\":\"Orbek - The Exterminator | Allstein - 25mm Resin Scenic Base\",\"productHandle\":\"orbek-the-exterminator-penitent-hero-bestiarum-miniatures-d-d-wargaming-dnd\",\"imageSrc\":\"https://cdn.shopify.com/s/files/1/0813/3787/6786/files/Orbek1_d9f1f029-3898-4f27-86ed-aded325b9a28.jpg?v=1750643507\",\"quantity\":1,\"price\":\"20.00\",\"status\":\"ACTIVE\",\"productTitle\":\"Orbek - The Exterminator | Allstein\",\"variantTitle\":\"25mm Resin Scenic Base\",\"isMandatory\":false,\"preSelected\":false,\"minQuantity\":null,\"maxQuantity\":null},{\"productId\":9001520202034,\"variantId\":47627075387698,\"name\":\"Xerofant | Spires of Allstein - 32mm Plain Plastic Base\",\"productHandle\":\"xerofant-spires-of-allstein-bestiarum-miniatures-d-d-wargaming-dnd\",\"imageSrc\":\"https://cdn.shopify.com/s/files/1/0813/3787/6786/files/Allstein_P1_-_05_Xerofant_-_No_Logo.jpg?v=1749046063\",\"quantity\":1,\"price\":\"18.00\",\"status\":\"ACTIVE\",\"productTitle\":\"Xerofant | Spires of Allstein\",\"variantTitle\":\"32mm Plain Plastic Base\",\"isMandatory\":false,\"preSelected\":false,\"minQuantity\":null,\"maxQuantity\":null},{\"productId\":9001520202034,\"variantId\":49536453312818,\"name\":\"Xerofant | Spires of Allstein - 32mm Resin Scenic Base\",\"productHandle\":\"xerofant-spires-of-allstein-bestiarum-miniatures-d-d-wargaming-dnd\",\"imageSrc\":\"https://cdn.shopify.com/s/files/1/0813/3787/6786/files/Allstein_P1_-_05_Xerofant_-_No_Logo.jpg?v=1749046063\",\"quantity\":1,\"price\":\"20.00\",\"status\":\"ACTIVE\",\"productTitle\":\"Xerofant | Spires of Allstein\",\"variantTitle\":\"32mm Resin Scenic Base\",\"isMandatory\":false,\"preSelected\":false,\"minQuantity\":null,\"maxQuantity\":null},{\"productId\":9763279733042,\"variantId\":49752546279730,\"name\":\"Fleshcrafter Moro | Spires of Allstein - 25mm Plain Plastic Base\",\"productHandle\":\"fleshcrafter-moro-spires-of-allstein-bestiarum-miniatures-d-d-wargaming-dnd\",\"imageSrc\":\"https://cdn.shopify.com/s/files/1/0813/3787/6786/files/Allstein_P4_-_01_Fleshcrafter_Moro_Front_-_No_Logo.jpg?v=1749041806\",\"quantity\":1,\"price\":\"18.00\",\"status\":\"ACTIVE\",\"productTitle\":\"Fleshcrafter Moro | Spires of Allstein\",\"variantTitle\":\"25mm Plain Plastic Base\",\"isMandatory\":false,\"preSelected\":false,\"minQuantity\":null,\"maxQuantity\":null},{\"productId\":9763279733042,\"variantId\":49752546312498,\"name\":\"Fleshcrafter Moro | Spires of Allstein - 25mm Resin Scenic Base\",\"productHandle\":\"fleshcrafter-moro-spires-of-allstein-bestiarum-miniatures-d-d-wargaming-dnd\",\"imageSrc\":\"https://cdn.shopify.com/s/files/1/0813/3787/6786/files/Allstein_P4_-_01_Fleshcrafter_Moro_Front_-_No_Logo.jpg?v=1749041806\",\"quantity\":1,\"price\":\"20.00\",\"status\":\"ACTIVE\",\"productTitle\":\"Fleshcrafter Moro | Spires of Allstein\",\"variantTitle\":\"25mm Resin Scenic Base\",\"isMandatory\":false,\"preSelected\":false,\"minQuantity\":null,\"maxQuantity\":null},{\"productId\":9775622029618,\"variantId\":49792459178290,\"name\":\"The Exiled Magnate | Allstein - 25mm Plain Plastic Base\",\"productHandle\":\"the-exiled-magnate-penitent-hero-bestiarum-miniatures-d-amp-d-wargaming-dnd\",\"imageSrc\":\"https://cdn.shopify.com/s/files/1/0813/3787/6786/files/The_Exiled_Magnate.jpg?v=1749047420\",\"quantity\":1,\"price\":\"18.00\",\"status\":\"ACTIVE\",\"productTitle\":\"The Exiled Magnate | Allstein\",\"variantTitle\":\"25mm Plain Plastic Base\",\"isMandatory\":false,\"preSelected\":false,\"minQuantity\":null,\"maxQuantity\":null},{\"productId\":9775622029618,\"variantId\":49792459211058,\"name\":\"The Exiled Magnate | Allstein - 25mm Resin Scenic Base\",\"productHandle\":\"the-exiled-magnate-penitent-hero-bestiarum-miniatures-d-amp-d-wargaming-dnd\",\"imageSrc\":\"https://cdn.shopify.com/s/files/1/0813/3787/6786/files/The_Exiled_Magnate.jpg?v=1749047420\",\"quantity\":1,\"price\":\"20.00\",\"status\":\"ACTIVE\",\"productTitle\":\"The Exiled Magnate | Allstein\",\"variantTitle\":\"25mm Resin Scenic Base\",\"isMandatory\":false,\"preSelected\":false,\"minQuantity\":null,\"maxQuantity\":null},{\"productId\":9775667708210,\"variantId\":49792618201394,\"name\":\"The Wrecker | Allstein - 32mm Plain Plastic Base\",\"productHandle\":\"the-wrecker-penitent-hero-bestiarum-miniatures-d-amp-d-wargaming-dnd\",\"imageSrc\":\"https://cdn.shopify.com/s/files/1/0813/3787/6786/files/03_The_Wrecker_Front_-_No_Logo.jpg?v=1749047387\",\"quantity\":1,\"price\":\"18.00\",\"status\":\"ACTIVE\",\"productTitle\":\"The Wrecker | Allstein\",\"variantTitle\":\"32mm Plain Plastic Base\",\"isMandatory\":false,\"preSelected\":false,\"minQuantity\":null,\"maxQuantity\":null},{\"productId\":9775667708210,\"variantId\":49792618234162,\"name\":\"The Wrecker | Allstein - 32mm Resin Scenic Base\",\"productHandle\":\"the-wrecker-penitent-hero-bestiarum-miniatures-d-amp-d-wargaming-dnd\",\"imageSrc\":\"https://cdn.shopify.com/s/files/1/0813/3787/6786/files/03_The_Wrecker_Front_-_No_Logo.jpg?v=1749047387\",\"quantity\":1,\"price\":\"20.00\",\"status\":\"ACTIVE\",\"productTitle\":\"The Wrecker | Allstein\",\"variantTitle\":\"32mm Resin Scenic Base\",\"isMandatory\":false,\"preSelected\":false,\"minQuantity\":null,\"maxQuantity\":null},{\"productId\":9001520365874,\"variantId\":47627076731186,\"name\":\"Bane Destroyer | Spires of Allstein - 50mm Plain Plastic Base\",\"productHandle\":\"bane-destroyer-spires-of-allstein-bestiarum-miniatures-d-d-wargaming-dnd\",\"imageSrc\":\"https://cdn.shopify.com/s/files/1/0813/3787/6786/files/Allstein_P1_-_07_Bane_Destroyer_-_No_Logo.jpg?v=1749043404\",\"quantity\":1,\"price\":\"20.00\",\"status\":\"ACTIVE\",\"productTitle\":\"Bane Destroyer | Spires of Allstein\",\"variantTitle\":\"50mm Plain Plastic Base\",\"isMandatory\":false,\"preSelected\":false,\"minQuantity\":null,\"maxQuantity\":null},{\"productId\":9001520365874,\"variantId\":49536456163634,\"name\":\"Bane Destroyer | Spires of Allstein - 50mm Resin Scenic Base\",\"productHandle\":\"bane-destroyer-spires-of-allstein-bestiarum-miniatures-d-d-wargaming-dnd\",\"imageSrc\":\"https://cdn.shopify.com/s/files/1/0813/3787/6786/files/Allstein_P1_-_07_Bane_Destroyer_-_No_Logo.jpg?v=1749043404\",\"quantity\":1,\"price\":\"23.00\",\"status\":\"ACTIVE\",\"productTitle\":\"Bane Destroyer | Spires of Allstein\",\"variantTitle\":\"50mm Resin Scenic Base\",\"isMandatory\":false,\"preSelected\":false,\"minQuantity\":null,\"maxQuantity\":null},{\"productId\":9001520464178,\"variantId\":47627077222706,\"name\":\"Bane Juggernaut | Spires of Allstein - 50mm Plain Plastic Base\",\"productHandle\":\"bane-juggernaut-spires-of-allstein-bestiarum-miniatures-d-d-wargaming-dnd\",\"imageSrc\":\"https://cdn.shopify.com/s/files/1/0813/3787/6786/files/Allstein_P1_-_09_Bane_Juggernaut_-_No_Logo.jpg?v=1749043962\",\"quantity\":1,\"price\":\"20.00\",\"status\":\"ACTIVE\",\"productTitle\":\"Bane Juggernaut | Spires of Allstein\",\"variantTitle\":\"50mm Plain Plastic Base\",\"isMandatory\":false,\"preSelected\":false,\"minQuantity\":null,\"maxQuantity\":null},{\"productId\":9001520464178,\"variantId\":49536460947762,\"name\":\"Bane Juggernaut | Spires of Allstein - 50mm Resin Scenic Base\",\"productHandle\":\"bane-juggernaut-spires-of-allstein-bestiarum-miniatures-d-d-wargaming-dnd\",\"imageSrc\":\"https://cdn.shopify.com/s/files/1/0813/3787/6786/files/Allstein_P1_-_09_Bane_Juggernaut_-_No_Logo.jpg?v=1749043962\",\"quantity\":1,\"price\":\"23.00\",\"status\":\"ACTIVE\",\"productTitle\":\"Bane Juggernaut | Spires of Allstein\",\"variantTitle\":\"50mm Resin Scenic Base\",\"isMandatory\":false,\"preSelected\":false,\"minQuantity\":null,\"maxQuantity\":null},{\"productId\":9001520431410,\"variantId\":47627077058866,\"name\":\"Flame Sower | Spires of Allstein - 50mm Plain Plastic Base\",\"productHandle\":\"flame-sower-spires-of-allstein-bestiarum-miniatures-d-d-wargaming-dnd\",\"imageSrc\":\"https://cdn.shopify.com/s/files/1/0813/3787/6786/files/Allstein_P1_-_08_Flame_Sower_-_No_Logo.jpg?v=1749044486\",\"quantity\":1,\"price\":\"20.00\",\"status\":\"ACTIVE\",\"productTitle\":\"Flame Sower | Spires of Allstein\",\"variantTitle\":\"50mm Plain Plastic Base\",\"isMandatory\":false,\"preSelected\":false,\"minQuantity\":null,\"maxQuantity\":null},{\"productId\":9001520431410,\"variantId\":49536458326322,\"name\":\"Flame Sower | Spires of Allstein - 50mm Resin Scenic Base\",\"productHandle\":\"flame-sower-spires-of-allstein-bestiarum-miniatures-d-d-wargaming-dnd\",\"imageSrc\":\"https://cdn.shopify.com/s/files/1/0813/3787/6786/files/Allstein_P1_-_08_Flame_Sower_-_No_Logo.jpg?v=1749044486\",\"quantity\":1,\"price\":\"23.00\",\"status\":\"ACTIVE\",\"productTitle\":\"Flame Sower | Spires of Allstein\",\"variantTitle\":\"50mm Resin Scenic Base\",\"isMandatory\":false,\"preSelected\":false,\"minQuantity\":null,\"maxQuantity\":null}]}]","limitToUsePerCustomer":null,"discountedVariantSelectionLimit":null,"hideOneTimePurchase":false,"hideSubscriptionPurchase":false,"maxOrderAmount":null,"collectionData":null,"productSelectionType":"PRODUCT","tag":"appstle_bundles","productChooseType":"CHOOSE_ALL","variantSelectionLimit":null,"discountTargetType":"PRODUCT","enableSubscription":false,"subscriptionWidgetPosition":"BELOW","subscribeTitle":"Subscribe and Save","subscribeSubtitle":"Delivered Monthly","subscriptionPreselected":true,"getYAppliesOn":"BOTH","announcementBarMessage":null,"automaticDiscountNodeId":"gid://shopify/DiscountAutomaticNode/1597801595186","recurringCycleLimit":0}];
window['isAppstleBuildABox'] = true;
window.sessionStorage.setItem('external-bundle-token', window.appstle_bundle_external_token);
const referenceBundle = blockElement.getAttribute('ref') || null;
const filteredBundles = Array.isArray(babBundles)
? referenceBundle
? babBundles.filter((rule) =>
rule?.bundleType === bundleType &&
rule?.status === 'ACTIVE' &&
rule?.uniqueRef === referenceBundle
)
: babBundles.filter((rule) =>
rule?.bundleType === bundleType &&
rule?.status === 'ACTIVE'
)
: [];
const injectAppstleBundlesScript = () => {
const link = document.createElement('link');
link.rel = 'stylesheet';
link.href = "https://bundles-admin.appstle.com/content/build-a-box.css?v=1760355692209";
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=1760355692209";
document.head.appendChild(script);
};
if (filteredBundles?.length > 0 && blockElement) {
injectAppstleBundlesScript();
filteredBundles.forEach((rule) => {
const { bundleDiv, dataBlockHandle } = constructAndGetBundleElement(rule);
blockElement.appendChild(bundleDiv);
const appBlockDiv = document.querySelector(dataBlockHandle);
if (appBlockDiv) {
appBlockDiv.appendChild(blockElement);
}
});
}
};
const sectionedBundleCustomPageBlockElement = document.getElementById('appstle-sectioned-bundle-custom-page');
if (sectionedBundleCustomPageBlockElement) {
executeBundlesCustomPageBlock({
blockElement: sectionedBundleCustomPageBlockElement,
bundleType: 'SECTIONED_BUNDLE'
});
}
const fixedPricingBundleCustomPageBlockElement = document.getElementById('appstle-fixed-pricing-bundle-custom-page');
if (fixedPricingBundleCustomPageBlockElement) {
executeBundlesCustomPageBlock({
blockElement: fixedPricingBundleCustomPageBlockElement,
bundleType: 'SINGLE_PRODUCT_BUILD_A_BOX'
});
}
})();