Migration guide
2.27.0
Magepack
If you use Magepack, then we recommend generating new magepack.config.js. Some JS caused us issues. We had to remove the following lines from the config:
'Magento_Theme/js/lib/select2.full.min': 'Magento_Theme/js/lib/select2.full.min'
'jquery-ui-modules/effect': 'jquery/ui-modules/effect',
'jquery-ui-modules/effect-blind': 'jquery/ui-modules/effect-blind',
'jquery-ui-modules/effect-fade': 'jquery/ui-modules/effect-fade',
Snowdog_Acm module
snowdog/module-alpaca-acm module is no longer needed.
You can remove it from your project. If you have overwritten files from Snowdog_Acm directory in your child theme, please move them to Blackbird_ContentManager and remove Snowdog_Acm directory.
2.26.0
Tools
You can use this helper to update child theme styles to Alpaca version >= 2.26.0 automatically.
Then move to this step.
Step by step guide
New files overview
theme-frontend-alpaca/
├── styles/
│   ├── critical-checkout.scss
│   └── critical.scss
├── Snowdog_Components/components/styles/
│   ├── _critical-checkout.scss
│   ├── _critical-extends.scss
│   ├── _critical.scss
│   └── _non-critical.scss
└── Magento_Theme/styles/
    ├── modules/
    │   ├── _button-extends.scss
    │   ├── _grid-extends.scss
    │   ├── _heading-extends.scss
    │   ├── _input-extends.scss
    │   ├── _label-extends.scss
    │   ├── _list-extends.scss
    │   └── _pager-extends.scss
    ├── _module-critical.scss
    └── _module-non-critical.scss
- Remove - <child-theme>/styles/styles.scss
- Copy - critical.scss,- critical-checkout.scss,- styles.scssfiles from- vendor/snowdog/theme-frontend-alpaca/stylesto- <child-theme>/styles
- Import variables from child theme in - critical.scss,- critical-checkout.scss,- styles.scssfiles
Example:
// Variables
@import '../Snowdog_Components/components/Atoms/variables/variables';
@import '../Snowdog_Components/components/Atoms/variables/<child-theme>';
- Move theme partials from - <child-theme>/styles/_theme.scssto- <child-theme>/styles/styles.scssand remove- _theme.scssfile
- Copy - _critical.scss,- _non-critical.scssfiles from- Snowdog_Components/components/styles/_critical.scssand- Snowdog_Components/components/styles/_non-critical.scssto- <child-theme>/Snowdog_Components/components/styles
- Compare content from - _critical.scssand- _non-critical.scsswith- _components.scssfiles located in Atoms, Molecules, Organisms or Templates and adjust the content with customised child theme. For example, if you extended button styles and imported it in- <child-theme>/Snowdog_Components/components/Molecules/_components.scsse.g
@import 'button/button-extend'; // extend
Go to critical.scss file and adjust the import
From:
@import '../Molecules/button/button';
To:
@import '../Molecules/button/button-extend'; // extend
- After adding all changes remove these files:
- <child-theme>/Snowdog_Components/components/Atoms/_components.scss
- <child-theme>/Snowdog_Components/components/Molecules/_components.scss
- <child-theme>/Snowdog_Components/components/Organisms/_components.scss
- <child-theme>/Snowdog_Components/components/Templates/_components.scss
- Additional imports should be added to <child-theme>/Snowdog_Components/docs/styles/styles.scssfile:
// Variables
@import '../../components/Atoms/variables/variables';
@import '../../components/Atoms/variables/<child-theme>-variables';
// Components
@import '../../components/styles/critical';
@import '../../components/styles/non-critical';
// Styles necessary only for Fractal purposes
@import 'fractal';
Also in <child-theme>/Snowdog_Components/docs/styles/checkout.scss
// Variables
@import '../../components/Atoms/variables/variables';
@import '../../components/Atoms/variables/<child-theme>-variables';
// Components
@import '../../components/styles/critical-checkout';
@import '../../components/styles/checkout';
// Styles necessary only for Fractal purposes
@import 'fractal';
[Start here when using upgrade helper]
- Adjust fractal components inheritance:
- replace <child-theme>/Snowdog_Components/modules.jsonfile with an array of paths to Alpaca components libraries withmodules.mjsand adjust the content, example:
export default [
  "../../../../../../vendor/snowdog/theme-frontend-alpaca/Snowdog_Components"
]
- copy content of vendor/snowdog/theme-frontend-alpaca/Snowdog_Components/gulpfile.mjsto child theme (<child-theme>/Snowdog_Components/gulpfile.mjs) components and adjust child components customisations if needed.
- Update the following component configuration options in .config.jsfiles to their new version:
- preview: '@checkout'to:
    meta: {
        checkout: true
    }
- preview: '@docs-only-styles'to:
  meta: {
    docsOnlyStyles: true
  }
- Remove Snowdog_Components/components/Atoms/_fonts/_fonts.scssand addSnowdog_Components/docs/styles/docs-only-styles/_fonts.scssinstead
Magento_Theme module
- If you've overwritten - root.phtmlfile please adjust content to the newest changes in- theme-frontend-alpaca/Magento_Theme/templates/root.phtml
- Styles which use - @extendrule are moved to- Magento_Theme/styles/_module-critical.scssand- Magento_Theme/styles/_module-non-critical.scss
Minicart
Theme Alpaca 2.26.0 requires snowdog/module-alpaca-general: 1.5.0. We introduced an option to remove quantity input in minicart in Admin > Store > Configuration > Snowdog > Alpaca General > Mini Cart > Qty.
Magepack
In magepack.config.js:
- Change:
- Magento_Wishlist/js/add-to-wishlist-mixinto- Magento_Wishlist/js/add-to-wishlist-mixin.babel
- Remove:
- 'Magento_Theme/js/lib/lazysizes.min': 'Magento_Theme/js/lib/lazysizes.min'
- 'Magento_Theme/js/lib/picturefill.min': 'Magento_Theme/js/lib/picturefill.min'