Skip to content
icon-search
Close (esc)
icon-search
Close (esc)
icon-search
Close (esc)
icon-search
Close (esc)
F
UNGAL DRAGON | STL
Professionally Designed for Resin 3D Printers
Supported & Test Printed by the Experts
Supplied in Original STL, Supported STL & Editable LYS
Once a sky-reigning leviathan, this dragon's might has been felled, not by blade or arrow, but by the inexorable creep of fungi. Its massive form, now a sprawling canvas of mushroom caps and mycelial tendrils, stands as a stark reminder: even the mightiest can be overtaken by the smallest of life, and even the most complex of forms may be reanimated by the sinister Mycena Mortifera.
Digital Product Details & Terms
Our digital products are delivered via Direct Download and can be accessed anytime from your Account page.
Please double-check your selection before purchasing, due to the nature of downloadable files, we do not offer refunds on digital products. All STL miniatures are:
Expertly Supported for Resin Printing Test-Printed to ensure optimal results on a properly calibrated 3D Printer. Please note that print results may vary depending on your individual printer settings, resin type, and environmental conditions. While we provide the best files possible, we cannot guarantee flawless prints in all setups.
Usage Policy: All STL files are sold for private, personal use only . Selling printed versions — whether online, at conventions, or through storefronts — is strictly prohibited and constitutes a violation of our Terms & Conditions .
Fungal Dragon | STL | Mycena Mortifera
LORE & BACKGROUND Once a sky-reigning leviathan, this dragon's might has been felled, not by blade or arrow, but by the inexorable creep of fungi. Its massive form, now a sprawling canvas of mushroom caps and mycelial tendrils, stands as a stark reminder: even the mightiest can be overtaken by the smallest of life, and even the most complex of forms may be reanimated by the sinister Mycena Mortifera.
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 = "9758100848946";
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'
});
}
})();