B2B - Hyvä Theme - Upgrading to 1.0.0 (from 0.5.0 pre-release version)
Release 1.0.0 includes support for all B2B features offered in Adobe Commerce via the B2B add-on for magento/extension-b2b
version 1.4.0
and above.
This upgrade guide covers notable changes from the previously released early access version: 0.5.0
along with any notable differences to Luma. Prior changes are not covered (i.e. 0.4.x
and lower)
Notable news
Feature parity with Luma
This initial release brings compatibility with all key B2B features along with some bug fixes/enhancements that are currently present in Luma.
Notable differences include:
- All grids (listing pages, such 'my quotes', 'my purchase orders', 'company credit' and many more) are reimplemented using View Models, collections and the default pager block, with standardized table markup (inline with the 'my orders' page)
- They are all server side rendered for performance and simplicity, using query parameters for filtering
- This replaces the UI component (client side rendered) approach in Luma
- For standardization, all implementations inherit from
\Hyva\Enterprise\ViewModel\AbstractList
- Other JavaScript heavy areas, such as the company structure and company permissions trees are now server side rendered
- Updates to the company structure, such as moving nodes, are still handled client side, however, a full re-paint of the entire tree is now avoided to reduce network requests
- The company shipping block on the company view/edit adheres to company role permissions
- On Luma, this block always displays even if the current user does not have permission to view it
- The inline toggleable panel to add products to a requisition list is replaced with a standard modal
- This resolves the markup being duplicated by the number of products visible on the page
- There is now just one instance of the markup with product ID/data being passed to the modal on trigger
- This has most impact on product listing pages (category) pages given the number of products
- Most detail (individual entity) pages (such as quotes, purchase orders and requisition lists) have dedicated 'current entity' View Models for a consistent way to retrieve and access data from the model without duplicated calls
- The UX (user experience) has been simplified on negotiable quote and purchase order detail pages
- Tabbed sections are replaced with HTML
<details>
sections for simplification- Non-interactive elements (such as links or buttons) are hidden, rather than disabled, when they cannot be interacted with without a full page reload occurring, to simplify UX (reduce clutter)
- Quote item notes are moved inline on the page (from a modal)
- This is also to reduce duplicated markup
- Customer custom attributes for company users correctly function
- In Luma may types of custom attribute cause JavaScript errors, making the add/edit user modal unusable
- All custom form validation requirements have been implemented as additions to advanced JavaScript form validation
- This includes URL, file type, file size, image dimensions, date from/to, value min/max and more
- A standardized and streamlined way to access company permissions has been implemented
- For non FPC (full page cache) pages (e.g. the account area), see:
\Hyva\MagentoCompany\ViewModel\CompanyPermissions
and in particular theisAllowed()
method, along with the class constants for the relevant permissions available across the entire B2B suite - For FPC pages a new JavaScript event has been added that provides all the relevant data:
company-permissions-loaded
- This functions and can be used in the same way as
private-content-loaded
- For non FPC (full page cache) pages (e.g. the account area), see:
Deprecated code removed
All code deprecated prior this release during Early Access has been removed to provide a cleaner, less cluttered codebase from this initial stable version.
Warning
Some code was also removed in very early versions without being deprecated, which is not listed below. Please review the changes between 0.1.x
, 0.2.x
and 0.n.x
versions (i.e. major pre-release version changes) within the relevant modules if not upgrading from 0.5.0
B2B metapackage.
Hyva_MagentoCompany
See commit 7771def7
for full details including replacement code/files.
Classes
\Hyva\MagentoCompany\ViewModel\CompanyRolesTree
\Hyva\MagentoCompany\ViewModel\CompanyUserEditModal
\Hyva\MagentoCompany\ViewModel\CustomerData
Methods and properties
\Hyva\MagentoCompany\ViewModel\CompanyPermissions::VIEW_COMPANY
\Hyva\MagentoCompany\ViewModel\CompanyPermissions::VIEW_ACCOUNT
\Hyva\MagentoCompany\ViewModel\CompanyPermissions::EDIT_ACCOUNT
\Hyva\MagentoCompany\ViewModel\CompanyPermissions::VIEW_CONTACTS
\Hyva\MagentoCompany\ViewModel\CompanyPermissions::VIEW_SHIPPING
\Hyva\MagentoCompany\ViewModel\CompanyPermissions::VIEW_PAYMENT
\Hyva\MagentoCompany\ViewModel\CompanyPermissions::MANAGE_USERS
\Hyva\MagentoCompany\ViewModel\CompanyPermissions::VIEW_ROLES
\Hyva\MagentoCompany\ViewModel\CompanyPermissions::EDIT_ROLES
\Hyva\MagentoCompany\ViewModel\CompanyPermissions::VIEW_USERS
\Hyva\MagentoCompany\ViewModel\CompanyPermissions::EDIT_USERS
Template files
Hyva_MagentoCompany::company/management/dialog/customer/delete-user.phtml
Hyva_MagentoCompany::company/management/dialog/customer/modal.phtml
Hyva_MagentoCompany::company/role/tree.phtml
Hyva_MagentoNegotiableQuote
See commit 54363654
for full details including replacement code/files.
Classes
\Hyva\MagentoNegotiableQuote\ViewModel\NoteModal
Methods and properties
\Hyva\MagentoNegotiableQuote\ViewModel\CurrentNegotiableQuote::getOrder()
\Hyva\MagentoNegotiableQuote\ViewModel\NegotiableQuoteList::formatPrice()
\Hyva\MagentoNegotiableQuote\ViewModel\NegotiableQuoteList::setPager()
Template files
Hyva_MagentoNegotiableQuote::checkout/cart/drawer.phtml
Hyva_MagentoNegotiableQuote::quote/address.phtml
Hyva_MagentoNegotiableQuote::quote/item/actions/note.phtml
Hyva_MagentoNegotiableQuote::quote/item/item_popup.phtml
Hyva_MagentoNegotiableQuote::quote/print/items.phtml
Hyva_MagentoNegotiableQuote::quote/print/shipping-info.phtml
Hyva_MagentoNegotiableQuote::quote/status.phtml
Hyva_MagentoOrderHistorySearch
See commit 7641e236
for full details including replacement code/files.
Classes
\Hyva\MagentoOrderHistorySearch\ViewModel\OrderHistorySearchViewModel
Hyva_MagentoPurchaseOrder
See commit 8b60517b
for full details including replacement code/files.
Classes
\Hyva\MagentoPurchaseOrder\ViewModel\AddItemModal
\Hyva\MagentoPurchaseOrder\ViewModel\QuotePurchaseOrder
Methods and properties
\Hyva\MagentoPurchaseOrder\ViewModel\PurchaseOrderList::formatPrice()
Template files
Hyva_MagentoPurchaseOrder::purchaseorder/add_item.phtml
Hyva_MagentoPurchaseOrder::purchaseorder/view/additional.phtml
Hyva_MagentoQuickOrder
See commit 69c5cc28
for full details including replacement code/files.
Template files
Hyva_MagentoQuickOrder::advancedcheckout/customer/file.phtml
Hyva_MagentoQuickOrder::footer/b2blinks.phtml
Hyva_MagentoQuickOrder::footer/link.phtml
Hyva_MagentoQuickOrder::multipleskus.phtml
Hyva_MagentoQuickOrder::widget/sku.phtml
Hyva_MagentoRequisitionList
See commit f8a799e2
for full details including replacement code/files.
Classes
\Hyva\MagentoRequisitionList\ViewModel\RequisitionList
Many files were previously removed in the earlier 0.2.0
release of this module.
Translated phrases
Care was taken to keep inline with existing translated phrases as much as possible. A number of additional translated phrases where added where this was not possible.
Translation additions context
This includes phrases that are actually missing from translation dictionaries or had to be modified due to inconsistency with string replacement placeholders (e.g. %0
instead of %1
) and phrases added to aid with accessibility.
B2B
Granting permissions does not affect which features are available for your company account. The merchant must enable features to make them available for your account.
Please select a user or team first.
Please select user or team
Region
This user cannot be deleted because child users are assigned to it. You must re-assign the child users before you can delete this user.
New value
Notes
Old and new value
Old value
The maximum file name length is %0 characters.
The seller will see the note when you send the quote back.
There are no comments in this quote
There are no items in this quote
No comments have been left for this purchase order.
Purchaser's Manager
Reject
Validate
Some items in your Shopping Cart are already in the ""%0"" requisition list.
The item ""%0"" is already in the ""%1"" requisition list.
Changelogs
The changelog is available here.
Tooling
Please refer to the Hyvä Enterprise upgrade docs for helpful information on how to upgrade.
Known Issues
Please check the GitLab issue tracker for known issues.