Mealz SSR API Changelog
2.8.0 [26/03/2026]
Added
- my-space - v1 & v2
- Added container div with a class name .mealz-my-space around the content of the page to make it more coherent with the other pages and facilitate page-specific style overriding
- Added classes names .mealz-tab-favorites and .mealz-tab-history on the tabs (className .mealz-catalog-tabs__item) so the tab icons can overriden individually
Updated
- recipe-card - v2
- Recipe card
display_variant(1–4) is normalized on the API and applied in SSR (recipe-card.ejs): badge and bottom like-button layout match legacy Angular behavior;POST /recipe-card/multipleno longer forces badge/like flags off.
- Recipe card
Internal
- catalog-toolbar & breadcrumb - v1 | v2
- Replaced raw string page comparisons with
Pagesenum (v2) andCatalogPages/Pages(v1 toolbar) for consistent page detection across catalog views. - v1 catalog-toolbar: supports v1
CatalogPagesenum values. - v2 catalog-toolbar: uses
Pages.CATALOG_*for home, favorites, my-space, and history tab logic. - v2 breadcrumb: uses
Pagesenum keys in page titles map instead of raw strings. - v1 catalog-home: fixed page value to
Pages.CATALOG_HOME. - Update mealz-component version to 2.7.1
- Replaced raw string page comparisons with
2.7.0 [19/03/2026]
Added
- catalog/my-space - v2
- New query param
show_tab_selectorto toggle the segmented control (Favoris/Historique tabs). Whenfalseor0, tabs are hidden and the page title shows the active section ("Favoris" or "Historique") instead of "Mon carnet".
- New query param
- basket-preview - v2
- New route
GET /v2/catalog/my-space/basket-previewto render basket preview standalone (title, show_tab_selector, embed query params). - New EJS template
basket-preview.controller.ejswith drawer-view-swapper and init-basket-preview-drawer scripts for direct navigation.
- New route
Removed
- catalog-favorites - v2
- Removed standalone catalog-favorites page route (
GET /v2/catalog/favorites) was not used. Favorites are only available via my-space (/v2/catalog/my-space). v1 catalog-favorites remains unchanged.
- Removed standalone catalog-favorites page route (
Updated
- baskets-service - v2
- Handle 400 response with "Inexistant record for point_of_sale_id" gracefully: return empty basket instead of throwing.
- my-space-service - v2
- Added readonly to constructor dependencies.
- planner-menu-option - v2
- Custom menu recipe avatars: when more than 6 recipes, show 5 avatars plus an overflow badge (+N) instead of empty plate placeholders.
- catalog - Implemented versioned endpoints for catalog categories, favorites, and my-space load-more. Routes now use explicit
@Version('1')/@Version('2')and call the corresponding v1/v2 services. - packages - v1:
getPackageByIdnow unwrapsresponse.dataand returns the package object directly; throwsNotFoundExceptioninstead ofBadRequestExceptionwhen the API returns no data (aligned with v2 semantics). - no-supplier-add-to-cart-cta - v2
recipe_idquery param is now treated as external recipe ID: the service resolves it to the internal recipe ID viaRecipesService.getRecipeByExtIdbefore checking basket status. Falls back to the provided value when no match is found.
- recipes - v2
- Added
getRecipeByExtId(headers, recipeExtId)to fetch recipe by external ID (cached 5s, returns null when not found).
- Added
Internal
- Refactored catalog controllers to use version-specific service instances (CatalogCategoryServiceV1/V2, etc.) instead of runtime version detection for load-more routes.
- demo
- Added basket preview to custom-elements demo page.
- no-supplier-add-to-cart-cta - v2
- Added unit tests for NoSupplierAddToCartCtaService.
- Update mealz-components to 2.7.0 and SDK to 10.4.0
2.6.3 [03/03/2026]
Updated
- planner - v2
- When fetching the current menu, if the selected store differs from the menu
point-of-sale-id, the menu is patched to match the selected store to keep planner data consistent. - Removed deprecated planner entrypoints and links: dashboard page (
GET /plannerlegacy),GET /planner-card-link,GET /planner-banner-link. The planner landing endpoint now renders the current menu experience (planner-current-menu). - Updated routing configuration: removed
planner.dashboard; planner routing now relies onplanner.currentonly.
- When fetching the current menu, if the selected store differs from the menu
Fixed
- recipes - v2
hasPromotions()now returnsfalsewhenstoreIdis missing, allowing planner screens to work without a selected POS.
- recipe-pricing - v2
- Pricing wrapper is only displayed when
price-per-serveexists, preventing empty pricing blocks.
- Pricing wrapper is only displayed when
2.6.2 [26/02/2026]
Fixed
- Added missing scripts in no-supplier-add-to-cart-cta (drawer-view-swapper & basket-transfer-modal)
Internal
- Update SDK 9.1 to 9.1.26
2.6.1 [12/02/2026]
Internal
- Update mealz-components to 2.6.1
2.6.0 [12/02/2026]
Added
- recipe-card-cta
- Added class variants to separate default and planner usecase
- packages
- Added
from=headerquery parameter to package URLs when redirecting from the header - Added analytics path to header starting-data for tracking events
- Added
- menu - v2
- New route
GET /menu/merge-authless-menu?authless_id=...to transfer the authless user's current menu to the logged-in user (replaces menu, no merge). Calls backendPATCH /menus/transfer-authless. To be used at end of auth flow when the user had built a menu while unauthenticated.
- New route
Updated
- styles
- Added drawer stylesheets to recipe-card
- Added recipe-details and like button stylesheets to recipe-card-cta
- planner-entry
- Replaced minus and plus icon in the stepper with
imgtags to replace easily for suppliers overrides
- Replaced minus and plus icon in the stepper with
- recipe-card-cta
- Added the parameter
to_basket_on_clickthat is provided in the starting data
- Added the parameter
- planner-budget-gauge - v2
- Reordered layout: overflow badge now appears before the edit button
Internal
- planner-onboarding-modal - v2
- Refactored initialization from EJS template include to JavaScript helper module (
init-planner-onboarding-modal.min.js)
- Refactored initialization from EJS template include to JavaScript helper module (
2.5.1 [05/02/2026]
Updated
- catalog-home-header
- Increase header height to 200px on desktop for custom header
2.5.0 [22/01/2026]
Added
- planner-onboarding-modal
- Added planner onboarding modal route to display onboarding content standalone.
- planner-current-menu - v2
- Added support for prefilled recipes (featured recipes)
Internal
- Update allowed origin for webview
- Update version for mealz-components to 2.5.0
- Update version for SDK to 10.3.0
2.4.2 [13/01/2026]
Internal
- Update version for mealz-components to 2.4.2
2.4.1 [10/01/2026]
Fixed
- catalog-list - v2
- Fix
recipe_type_filterhandling and normalize query parsing (string/boolean) so the view and starting-data receive a real boolean. - Fix merge regression where
recipeTypeFilterwas typed asstringinCatalogListService(causing TS build failure).
- Fix
Internal
- Update version for mealz-components to 2.4.1 and SDK to 10.2.3 - v2
- navigation
- Manage mobile webview navigation based on User-Agent
2.4.0 [29/12/2025]
Internal:
- navigation
- Manage mobile webview navigation based on User-Agent
Added
- planner-quick-menu - v2
- Added SSR template
planner-quick-menu.ejsto render a compact “quick menu” (menu count + thumbnails preview).
- Added SSR template
Updated
- planner-current-menu - v2
- Update template structure to match planner v3 design (header/footer + suggestion area)
- Integrated quick menu as an alternate footer (mobile) and extracted the primary footer into
planner-current-menu.footer.ejsto improve responsiveness/maintainability.
- planner-recipe-suggestion - v2
- Add “Our suggestions” block with optional next suggestion card and recipe labels (prep/cooking/difficulty)
- planner-quick-menu - v2
- Refined quick menu rendering logic and markup (thumbnail slots, data attributes, buttons).
- catalog-list
- Added meals type filters when the catalog list is opened from the planner
Fixed
- styles
- Add planner entry css in catalog and catalog-home styles routes
- Add planner quick menu css in planner styles route
2.3.1 [16/12/2025]
Update
- Update version for mealz-components to 2.3.2 and SDK to 10.2.1 - v2
Fixed
- planner-menu-option - v2
- Now display current menu recipe in custom menu option, not only empty plates.
- planner-budget-gauge - v2
- Don't display budget gauge if budget is empty or 0
- planner-current-menu - v2
- Suggested recipe detail now uses guests selected in planner entry (no fallback to 4)
- Renamed AddToCartCtaController into NoSupplierAddToCartCtaController
2.3.0 [12/12/2025]
Added:
- planner-entry - v2
- Added new
/v2/planner/entryroute and controller for planner home entry component - Added planner entry integration in catalog home page
- Added planner entry template with guest stepper and menu options
- Added new
- planner-entry.controller.spec.ts - v2
- Added comprehensive unit tests for PlannerEntryController
- catalog-home-header
- New
CatalogHomeHeaderControllerwith routeGET /catalog/headerto render the catalog home header - Added styles includes for
catalog-home-header.cssin all style routes
- New
- catalog-settings
- Introduced
CatalogSettingsServiceto fetch and cache supplier catalog settings
- Introduced
- packages-service
- Added
getPackageSpotlightsmethod to retrieve and build spotlighted package CTA
- Added
Updated:
- catalog-home - v2
- Integrated planner entry component with current menu and custom menu data
- Added planner entry data fetching with error handling (feature gracefully degrades if unavailable)
- planner-budget-gauge - v2
- Added budget edit button functionality
- Added formatted budget values (budgetLimitFormatted, budgetTotalFormatted) alongside numeric values
- Improved budget display logic with better conditional rendering
- planner-menu-option - v2
- Updated custom menu display to always show 6 empty plate images
- Added new empty plate images (webp and jpg formats) for custom menu slots
- Removed cancel button from custom menu option
- Improved recipe avatar display logic
- planner-current-menu - v2
- Changed default recipe display to always show suggestion first when available, even if menu has recipes
- Enhanced budget gauge initialization with formatted price values
- planner-recipe-suggestion - v2
- Fixed button styling to always show primary style on "Add meal" button
- styles - v2
- Added planner-entry CSS to planner styles group
- catalog-home
- Header markup replaced with include of
catalog-home-header.ejs
- Header markup replaced with include of
Fixed:
- planner-current-menu - v2
- Fixed recipe display priority to show suggestions by default
Internal:
- i18n - v2
- Updated French and English translations for planner menu options with new wording
- catalog-home.controller - v2
- Added PlannerDashboardService dependency for planner entry data fetching
- Improved error handling for planner entry feature (warns but doesn't break if unavailable)
2.2.2 [11/12/2025]
Updated
- recipe-pricing
- Now update pricing card when a product added or removed from basket
Fixed
- recipe-card
- Fix guests in recipeCardStartingData for multiple route
2.2.1 [04/12/2025]
Config
- Update mealz-components to 1.3.15 and 2.1.1 - v1 | v2
2.2.0 [03/12/2025]
Updated
- recipe-pricing - v1 | v2
- Refactored to be independent and rendered via dedicated route
- Pricing calculation moved to client-side
- recipe-card-cta - v1 | v2
- Refactored to be independent and rendered via dedicated route
- Added RecipeCardCtaController for standalone rendering
- like-button - v1 | v2
- Refactored to be independent and rendered via dedicated route
- recipe-card - v1 | v2
- Updated to use extStoreId instead of storeId in multiple suggestions route
- recipes-service
- Updated getMultipleSuggestedRecipes to use point-of-sale-ext-id instead of point-of-sale-id
Added
- Added recipe-card-cta route
Fixed:
- like-button
- Fix like-button standalone render route
2.1.2 [28/11/2025]
Config
- Update SDK to 10.0.2 / 9.1.23 and mealz-components to 2.0.2
2.1.1 [12/11/2025]
Fixed:
- render - v1 | v2
- Fix rendering strategy to avoid conflict between parallels requests with /v1 and /v2 versions
2.1.0 [12/11/2025]
Added:
- routing
- Added retailerCart URL configuration to routing files (dev/uat/prod)
- Added retailerCartPageUrl method to RoutingService with fallback to catalog home
Updated:
- planner-current-menu
- Updated to redirect to retailer cart URL after menu finalization instead of catalog home
- Added fallback to previous behavior if retailer cart URL not configured
2.0.3 [10/11/2025]
Internal
- Set base dir version view from interceptor instead app global middleware.
- Update mealz-component to
2.0.1and SDK to10.0.1and9.3.1
2.0.2 [03/11/2025]
Internal
- logging-service
- Include request body in log metadata for POST routes
- Ensure unique insertId for each log entry to prevent Google Cloud Logging collisions
2.0.1 [03/11/2025]
Fixed:
- styles - v1
- Fixed styles for my-space
2.0.0 [03/11/2025]
Fixed:
- templates:
- Migrated all CSS classes from
miam-ds-*tomealz-ds-*across all EJS templates (v1 and v2) that remains
- Migrated all CSS classes from
- my-space-controller:
- Added
history_stylequery parameter with 'list' | 'grid' values (default: 'list')
- Added
- translations:
- Fixed translation keys in history-order-expanded template
- basket-controller:
- Fix
/basket/merge-authless-basketroute method from POST to GET to fit with docs
- Fix
Internal
- analytics-service
- Send events to bigQuery instead Plausible
- Add ANALYTICS_URL environment variable for analytics endpoint configuration
- Add ANALYTICS_ENABLED environment variable for development environment
Internal:
- Added add-to-cart CTA to demo
2.0.0-beta.5 [09/10/2025]
Added:
- recipe-card - v1 | v2
- Added "keyword" and "categoryId" body parameters support in /multiple route for recipe suggestions
- Created ItemExtIdsDTO type to standardize request body structure across v1 and v2
Updated:
- recipe-card - v1 | v2
- Removed redundant "supplier-id" from request body in /multiple route (already present in URL query params)
Internal
-
http-service - v1 | v2
- add TraceContextService and TraceInterceptor
- propagate X-Cloud-Trace-Context and traceparent
-
logger-service - v1 | v2
- Migrated to Winston with @google-cloud/logging-winston transport
- Logs now use structured format for GCP
2.0.0-beta.4
Updated:
- environment
- Changed SDK_WEBC_URL_V2 from webc-miam.js to webc-miam-fr.js in both main and demo/nextjs environments
- Update versions UAT
2.0.0-beta.3
Added:
- planner-current-menu
- Added a button to access onboarding from current menu for both mobile and desktop views
- planner-dashboard
- Added onboarding modal access button with help icon
Updated:
- planner-dashboard
- Restructured history section
2.0.0-beta.2
Fixed:
- recipe-card - v1 | v2
- Changed NotFoundException throws to return null or empty arrays when no recipe suggestions found
- catalog-list - v2
- Fixed loadMore functionality in meal planner to properly display selected recipes state (inMenu) instead of always showing as unselected
- planner - v2
- Fixed meal planner catalog to only display main dishes (plats) instead of showing desserts, drinks, and starters when planner=true
2.0.0-beta.1
Fixed:
- catalog-list:
- Added recipe type filter to catalog list controller and service to properly filter recipes by type in load more functionality
- catalog:
- Updated shouldRemovePersonalization to use supplier.noPersonalizationOnShelves in multiple controllers for better personalization handling
Updated:
- planner:
- Updated French translations and replaced icons in planner views for better user experience
- routing:
- Added catalog structure to routing configuration for production and UAT environments
2.0.0-beta
Breaking changes:
Upgraded from miam-ds@1.2.6 to mealz-ds@2.0.0. The design system was renamed from miam-ds to mealz-ds, and all references were updated accordingly.
Added:
- all-recipes-banner
- New all recipes banner on catalog home
- catalog-list
- Added
plannerto request parameters (default: false) - Added
all_recipesto request parameters (default: false)
- Added
- planner
- Added planner-budget-gauge component
- Added planner-current-menu component and controller
- Added planner-dashboard component and controller
- Added planner-menu-option component
- Added planner-recipe-card component and controller
- Added planner-recipe-list component
- Added planner-recipe-suggestion component
- Integrated PreferencesService for recipe suggestions to append user preferences filters to suggestion URLs
- planner-link
- Introduced
PlannerCardLinkControllerandPlannerBannerLinkControllerfor handling planner link routes. - Added tests for the new planner link controllers to ensure proper functionality.
- Introduced
- preferences
- Added PreferencesService with methods to fetch user preferences data and build filter URLs
- Enhanced PreferencesService with comprehensive test coverage for all edge cases
- price
- Add dynamic currency formatting based on language settings
- drawer:
- New routes to fetch mandatory JS and CSS for component
- supplier-configuration:
- Added new supplier configuration for CoursesU in local environment
- add-to-cart-cta:
- Added AddToCartCtaController for rendering add-to-cart CTA components
- Created AddToCartCtaService to check if recipe is in user's basket using BasketsService
- Implemented EJS templates (add-to-cart-cta.ejs, add-to-cart-cta.controller.ejs) for SSR rendering
- Added CSS styling with animations and responsive design through styles controller
- Integrated with existing basket state management and starting data pattern
Updated:
- catalog-list
- Updated view for planner compatibility
- Added query recipe_type_id to filter by recipe type (e.g. "starter", "main-dish", "dessert", "drink")
- catalog-toolbar
- Updated view for planner compatibility
- recipe-card-cta
- Updated view for planner compatibility
- recipe-card
- Updated view for planner compatibility
- styles
- Updated
StylesControllerto include new style groups for planner links.
- Updated
- searchbar:
- Replace catalog searchbar with miam-ds-searchbar
Fixed:
- planner:
- Fixed catalog list style inclusion in planner to ensure proper component functionality
- recipe:
- Added check on sponsors before matching included to prevent bug
Internal:
- Added mealz-hub service to Docker Compose configuration for local development
- Added planner page to the demo
- Added config in the demo to test addProductsToCart & removeProductsFromCart instead of pushProductsToCart
- Logging out in demo site was creating an error
Fixed:
- searchbar:
- Fix searchbar placeholder on favorite page
1.3.20 - [23/10/2025]
Internal
- analytics-service
- Send events to bigQuery instead Plausible
- Add ANALYTICS_URL environment variable for analytics endpoint configuration
- Add ANALYTICS_ENABLED environment variable for development environment
- Analytics can now be disabled in development mode by setting ANALYTICS_ENABLED=false
- UAT and PROD environments always send analytics regardless of ANALYTICS_ENABLED setting
1.3.19 - [16/10/2025]
Config
- Update version for mealz-components 1.3.13
1.3.18 - [13/10/2025]
Internal
- cache-service
- UserID is now optional in cache key.
- pos-service
- Updated pos service to remove userID from cache key usage.
- Logging System:
- Implemented logger with Google Cloud Logging integration
- Added distributed tracing support using AsyncLocalStorage
1.3.17 - [25/09/2025]
Added
- recipe-card
- Added "keyword" body attribute to /multiple route
Config:
- Update version for SDK to 9.1.21
1.3.16 - [03/09/2025]
Fixed:
- recipe-card
- Changed NotFoundException throws to return null or empty arrays when no recipe suggestions found
1.3.15 - [26/08/2025]
Added
- recipe-card
- Added "categoryId" body attribute in /multiple route
Fixed:
- catalog-list
- Fix button preferences displayed on search results despite configuration to turn them off
Config:
- Update version for mealz-component to 1.3.12
- Update versions for local and UAT
1.3.14 - [06/08/2025]
Config:
- Update component version 1.3.11 in env
1.3.13 - [04/08/2025]
Fixed:
- recipe-card:
- Fix pricing flickering with loader
Config:
- Update component versions in env
1.3.12 - [04/08/2025]
Config:
- Update component versions in env
1.3.11 - [04/08/2025]
Fixed :
- recipe-card:
- Revert usage of store ext id in route multiple
1.3.10 - [04/08/2025]
Updated:
- recipe-card:
- Optimized /multiple route performance by moving dynamic data fetching to client-side
- Removed server-side API calls for likes, pricing, and basket data
- Simplified data formatting and reduced parallel API calls
1.3.9 [24/06/2025]
Fixed:
- recipe-card-cta
- Fix displaying CTA when shouldRemovePersonalization is true
1.3.8 [23/06/2025]
Config:
- Update SDK / Component versions in env
1.3.7 [23/06/2025]
Fixed:
- demo/retailer-cart:
- Optimized cart updates by only triggering the retailerBasketChanged event once after adding multiple products instead of after each individual product
- recipe-card:
- Fixed recipe card basket detection when using suggested recipes, ensuring correct guest count is displayed for recipe cards loaded via product suggestions
Deleted:
- pricebookKey:
- Remove deprecated variable pricebookKey
1.3.6 [16/06/2025]
Fixed:
- recipe-card:
- Fixed issue where all recipe cards in multiple route used the same guest count instead of respecting individual recipe guest settings
- recipe-pricing:
- Fixed issue where recipe cards in catalog home beyond the first two categories used a hardcoded guest count of 4 instead of the recipe's actual guest count
1.3.4 [10/06/2025]
Fixed:
- recipe-pricing:
- Revert previous changes
1.3.3 [10/06/2025]
Updated:
- If render if called and price is defined, update the view
1.3.2 [06/06/2025]
Fixed:
- catalog:
- All /load-more routes were missing
shouldRemovePersonalization: false
- All /load-more routes were missing
1.3.1 [06/06/2025]
Added:
- styles:
- Added
/styles/catalog/my-spacewhich corresponds to the styles for the/my-spaceroute. It combines the previous routes/styles/catalog/catalog-history&/styles/catalog/catalog-favorites
- Added
Updated:
- recipe-card:
- Added a global configuration in supplier-tokens to disable personalization in both recipe-card routes. When disabled, the pre-rendered recipes-cards will not display the like button nor the cart CTA at prerender, and both will be displayed client-side, to avoid issues with caching between users.
- /multiple route now uses the new suggestion-batch route from miam-api for better performances
- preferences:
- Preferences are disabled if personalization is disabled, meaning the button will not be rendered and if the user had any preferences set, they are removed
Fixed:
- recipe-card
- The /multiple route now returns a JSON array of the recipe cards instead of one HTML
- my-space:
- Added missing paths in startingData for favorites & history
1.3.0 [23/05/2025]
Updated:
- my-space:
- History now has a toggle to switch the view style between 'grid' and 'list' mode
- Added a new param
history_styleto the /my-space route. The param only has an effect when used alongsidetab=historyand can have as value either 'grid' or 'list', defaulting to 'grid' of not passed. - Using the new view style toggle will put in the currentUrl either
&history_style=gridor&history_style=list, which can be passed to the /my-space route
1.2.26 [19/05/2025]
Internal:
- Update CI to push to artifact registry
- Added 2 more cards on shelf demo page
- Fixed potential error on demo if there was not enough product to display cards
1.2.25 [05/05/2025]
- Removed @google-cloud/logging which had performance issues and replaced with correctly formatted console.log
1.2.24 [02/05/2025]
- Revert previous tag for performances reasons
1.2.23 [02/05/2025]
Internal:
- upgraded Nest to v11
- Added @google-cloud/logging library for better logging on GCP
- Added new Logger service to log for GCP in uat & prod and use default Logger only for dev
- Updated fetch to node-fetch to have the option to log response headers with response.entries()
1.2.22 [29/04/2025]
Fixed:
- Handle-payment doesn't confirms the basket twice if called twice in a row
- Added headers to the plausible calls just in case they weren't automatically passed
1.2.21 [23/04/2025]
Updated to webc-miam@9.1.15 Updated to mealz-components@1.2.8
1.2.20 [23/04/2025]
Updated:
- handle-payment route now checks the order-id param if passed to not confirm different baskets for the same order
Internal:
- Added more logs for plausible events in order to check if they are sent correctly
1.2.19 [22/04/2025]
Fixed:
- Added url attribute in the body of requests sent to plausible, as its absence caused these requests to return a 400 error
1.2.18 [22/04/2025]
Internal:
- Added more logs for headers checks on all routes
1.2.17 [18/04/2025]
Updated to mealz-components@1.2.7
1.2.16 [18/04/2025]
Updated to webc-miam@9.1.14 Updated to mealz-components@1.2.6 Updated to miam-ds@1.2.6
Fixed:
- toolbar: anchor was missing a navigate back
Internal:
- supplier-values:
- Added Marmiton default values for the env-configurator
- recipe-card:
- Added an id on the format
mealz-recipe-card-{RECIPE-ID}
- Added an id on the format
1.2.15 [14/04/2025]
Updated to webc-miam@9.1.13
1.2.14 [04/04/2025]
Updated to webc-miam@9.1.12
1.2.13 [03/04/2025]
Fixed:
- Resolved issue where recipe details always opened with 4 guests by refining guest count logic in : catalog-category, catalog-favorites, catalog-home, catalog-list, my-space
- catalog-home:
- Did not have an empty state for extreme cases of contradictory preferences
Internal:
- Removed unused
servesquery param in load-more functionality for: catalog-category, catalog-favorites, catalog-list, my-space
1.2.12 [31/03/2025]
Internal:
- Changed all urls from unpkg to cdn.jsdelivr/npm to avoid unpkg that was down on 31/03/2025
1.2.11 [28/03/2025]
Fixed:
- catalog-favorites:
- Fixed init state was incorrect
Internal:
- Fixed log in case of missing auth headers
1.2.10 [26/03/2025]
Fixed:
- Updated to webc-miam@9.1.8 to fix bug on basket-preview opening the last added recipes instead of the one clicked in some cases
- miam-api prod URL had an unnecessary "/"
1.2.9 [24/03/2025]
Fixed:
- recipe-card:
- Optimized performances for the /recipe-card route: Should reduce response times by 150 to 200ms
1.2.8 [21/03/2025]
Fixed:
- Better logging for supplier-token errors
- catalog-routing:
- Added redirecting url for my-space for the catalog-routing config for supplier 23
- catalog-toolbar:
- Removed href for the back button as now the component does a native back action client-side
- recipe-card:
- Optimized performances for the /recipe-card/multiple route: Should reduce response times by 150 to 200ms
Internal:
- Fixed coverage rules to be at 100%
- Gave access in the starting data of
recipe-pricingif the recipe is already in the basket
1.2.7 [07/03/2025]
Updated:
- Added automatic completion filters for all routes returning recipe-cards - recipes without their primary ingredient available in the store will not appear anymore
Fixed:
- Fixed null error when store_id was not provided for all routes returning recipe-cards
1.2.6 [28/02/2025]
Internal:
- Added unit tests to all services
- git-hooks:
- Added a pre-push hook that runs tests before pushing anything upstream
- demo-app:
- retailer-cart: Added basket sync on demo start up as first basket change call is dedicated to sync
- Fixed generate-authless route call asking for headers
- catalog-category
- Added analytics path to starting-data so mealz-components can send pageview event
- catalog-favorites
- Added analytics path to starting-data so mealz-components can send pageview event
- retailer-cart:
- Added basket sync on demo start up as first basket change call is dedicated to sync
1.2.5 [21/02/2025]
Fixed:
- handle-payment:
- Fixed possible concurrency errors and undefined errors
- Does not try to confirm an empty basket
- Correctly sends the analytics events
1.2.4 [07/01/2025]
Added:
- recipe-card:
- Added a new route /recipe-card/multiple to fetch more than one card at once. It takes an array of surrounding_products_ids as input and returns a HTML of all cards
1.2.3 [31/01/2025]
Internal:
- catalog-category
- Added analytics path to starting-data so mealz-components can send pageview event
- catalog-favorites
- Added analytics path to starting-data so mealz-components can send pageview event
- retailer-cart:
- Added basket sync on demo start up as first basket change call is dedicated to sync
1.2.2 [17/01/2025]
Fixed:
- recipes:
- Fixed number of guests for recipes in the basket, ensuring the number of guests remains as it was when the recipe was added to the basket
- recipe-card
- Fixed JSON parsing error for surroundingProductsIds by adding a try-catch block
- Prevent null reference errors when accessing recipe pricing data
- recipe-pricing
- Load discounted ingredients count when the recipe is already in the basket
Internal:
- Added a new page to the demo simulate a retailer cart and interactions with the products (add, update, remove)
1.2.1 [10/01/2025]
Updated:
- recipe-card:
- Added the attribute aria-hidden="true" to recipe picture as redundant with recipe label
Fixed:
- Fixed CORS configuration to allow all localhost origins, removing the restriction to only port 4200
- recipe-card:
- Favorite button was still displayed when user was not logged
Internal:
- recipes
- Updated
page_sizeandpage_numbersearch request params
- Updated
- catalog-home
- Added
sessionIdto starting-data to synchronize session id with SDK
- Added
- recipe-card
- Added
sessionIdto starting-data to synchronize session id with SDK
- Added
- catalog-home:
- Added analytics path & category id to starting-data so mealz-components can send category.display event
1.2.0 [20/12/2024]
Added:
- catalog-history
- Added component + controller for JS injection
- Added search functionality
- Added "no history" view
- catalog-tabs
- Added tabs for Favorites / History
- drawer
- Added component
- history-order
- Added component
- recipe-card
- Added a variant
- http.service
- Added
profilingas an optional header for all routes, defaulting totrue - Added
profiling=offquery param in all requests tomiam-apiwhen the profiling header value is "false"
- Added
Updated:
- All features now have semantic tags (p, h1, h2, h3, h4) instead of div and spans around texts
- recipe-card
- Removed the
profilingquery param from therecipe-cardroute
- Removed the
- recipe-pricing
- Removed the
profilingquery param from therecipe-pricingroute
- Removed the
- catalog-toolbar
- Renamed the favorites button to my space
Fixed:
- baskets/handle-payment route now takes as body the current retailer car in order to sync the basket with the cart before confirming it
Internal:
- Added a first basic implementation of JSONAPI data management with generic interfaces, a generic fetchAll method and models for the BasketEntries and Items.
- analytics:
- Add
pathto recipe-card starting-data - Add myMealsButtonStartingData with
path - New AnalyticsPaths enum
- Add
- auth-widget:
- New component to handle user log status handled by cookies
- headers:
- Added new
authless-idattribute in header authless-idheader is turned into authorization header for miam-api- New component in demo app to handle user log status handled by cookies
- Added new
1.1.2 [29/11/2024]
Added:
- basket
- Added a controller and methods to handle merge authless basket
- Added a controller and methods to handle payment confirmation
Added:
- promotions-banner:
- New promotions-banner component on catalog home
- recipe-promotion-badge:
- New recipe-promotion-badge component currently displayed on recipe cards
Fixed:
- catalog-routing always used the dev routing file
- styles:
- Added missing breadcrumb style on catalog-category style route
1.1.1 [22/11/2024]
Added:
- catalog-favorites
- Added a controller to load more recipe cards
- catalog-list
- Added a controller to load more recipe cards
- catalog-toolbar
- Added preferences loader
- recipe
- Added recipe model
- sponsor
- Added sponsor model
Updated:
- catalog-category
- Updated the url from
/category?id=[category_id]to/category/[category-name-slug]/[category_id]
- Updated the url from
Updated:
- Updated allowed origins to support additional trusted domains
Fixed:
- CORS
- Added support for the OPTIONS method
- recipes.service
- Added validation for JSON response to avoid parsing errors
- Refactored
getRecipeSponsorLogoUrlto useRecipemodel methods instead of nested properties
Internal:
- Updated several dependencies to newer, more secure versions
- slug.service
- Added a service to convert text to slug
- recipes.service
- Updated the search endpoint path from
/recipes?search=[search]torecipes/search?name=[search]
- Updated the search endpoint path from
1.1.0 [15/11/2024]
Added:
- Added
mealz-session-idto request headers - Added Redis configuration for caching
- catalog-category
- Implemented empty state for scenarios where no recipes match the selected criterias.
- Added search functionality
- Integrated user preferences
- catalog-favorites
- Added search functionality
- catalog-home
- Integrated user preferences
- catalog-list
- Added component + controller for JS injection
- catalog-toolbar
- Added preferences badge count
Updated:
- catalog-toolbar
- Removed unused filters
- catalog-favorites
- Removed preferences button
Internal:
- Added a cache controller to manage Redis cache through ng-miam-sdk
- Enabled caching for
getBasket,getPointOfSaleByExtId,getByRecipeId,getRecipeById,getRecipePricing
Fixed:
- catalog-home:
- Added back arrow to "See All" button.
- generate-authless-token
- Added error handling for missing or invalid supplier token
- http.service
- Added null checks for supplier data to avoid errors when supplierId is undefined or null
- point-of-sales.service
- Added a check to ensure
posis defined before attempting to accessid
- Added a check to ensure
1.0.2 [08/11/2024]
Added:
- Added logs for missing required query parameters
Fixed:
- catalog:
- Made the display_recipe_variant query paramater optional
1.0.1 [04/11/2024]
Updated:
- urls:
- Moved every routes from v0 to v1
Fixed:
- recipe-card
- Fixed suggested recipe-card
1.0.0 [24/10/2024]
Breaking changes:
- window.miam:
- Renamed to window.mealz
Added:
- catalog-category
- Added component + controller for JS injection
- catalog-favorites
- Added component + controller for JS injection
- catalog-home
- Added controller for JS injection
- like-button
- Added controller for JS injection
- recipe-card
- Added controller for JS injection
- recipe-card-cta
- Added controller for JS injection
- recipe-pricing
- Added controller for JS injection
- catalog-breadcrumbs
- Added component
- catalog-toolbar
- Added component
- my-meals-button
- Added component -http.service
- Now handles errors and build header from this service, throw error when category_id is required but not provided
Updated:
- catalog:
- Now fetches recipe sponsor on catalogs pages
- catalog-category:
- update routes from /catalog/category/ID to /catalog/category?id=ID
- recipe-card:
- if no suggestion is given for recipe in shelf, throws NotFoundException
- ng-miam-sdk:
- updated to 9.0.1 on prod and uat
Fixed:
- catalog-favorites:
- Fix new logic on like button
0.2.1 [23/09/2024]
Fixed:
- recipe-card:
- Fixed double basket-current call
Internal:
- Added performance log to measure requests times
0.2.0 [20/09/2024]
Added:
- point-of-sales-service:
- Added point-of-sales service with method getPointOfSaleByExtId
- nextJS-demo:
- Added NextJS Demo to project using the SSR API
- catalog:
- Initiated recipe catalog with home page
- styles:
- Added routes to fetch components styles individually to add them to
<head>
- Added routes to fetch components styles individually to add them to
- i18n:
- Added I18n for catalog-home, my-meals-button, recipe-pricing and recipe-card-cta
Fixed:
- recipe-pricing:
- Recipe pricing initial data was an object rather than a string with the value
Internal:
- Updated mealz-component version to 0.4.0
- Added Nest built-in logger to project with some errors handling
0.1.1 [03/09/2024]
Fixed:
- env config for uat & prod
0.1.0 [30/08/2024]
Added
- like-button:
- Added a route for the component, and the associated services and views
- recipe-card:
- Added a route for the component, and the associated services and views
- recipe-pricing:
- Added a route for the component, and the associated services and views
- i18n:
- POC of i18n implementation, not enough text in the served components to use yet
- routes
- Added a generate-authless-token route to fetch an authless token for loggued out users
- versioning:
- Added basic versioning handler on url
Internal
- Added baskets service
- Added recipes service
- Added recipe-likes service
- Added supplier service
- Added user service
- Added scripts to download SDK Web-C lib and style files to each components
- Added environment files for dev, uat and prod