Negotiable quote
Shopping cart
- Company-specific carts:—Shopping carts are now linked to individual companies to support company-specific pricing and product options.
- Seamless switching—Users can easily switch between different company accounts without affecting the contents of each company’s cart.
- Contextual Integrity—All cart details remain within the context of the respective company, providing a consistent and reliable shopping experience.
B2B 1.5.0
October 30, 2024
Supported Adobe Commerce versions 2.4.7-p3+ and 2.4.6-p8+ security patch releases.
Compatible with Adobe Commerce versions 2.4.8-beta1, 2.4.7 to 2.4.7-p2, 2.4.6 to 2.4.6-p7.
Adobe Commerce B2B version 1.5.0 is also compatible with PHP 8.3 and supports the GraphQL Application Server.
The B2B v1.5.0 release includes new features, quality improvements, and bug fixes.
Company Management
-
Add and manage company assignments from the new Company Hierarchy section on the Company Account page in the Admin.
-
Sort and filter companies by the new Company Type setting. In the companies grid, the Company Type column indicates whether a company is an individual company or part of organizational hierarchy (parent or child).
/V1/company/{parentId}/relations
to create, view, and remove company assignments. See Manage company objects in the Web API Developer Guide.
Company Accounts
CRITICAL: Error: Call to a member function __toArray() on null in app/code/Magento/LoginAsCustomerLogging/Observer/LogSaveCustomerObserver.php:123
.
Quotes and Quote Templates
Improvements to quoting capabilities help Buyers and Sellers manage quotes and quote negotiation more effectively.
- Order thresholds allow sellers to set minimum and maximum order commitments, ensuring the buyer adhere to agreed-upon purchasing volumes.
- Setting minimum and maximum item order quantities provides the buyer with the flexibility to adjust order quantities on the linked quote without requiring a new template or further negotiation.
- Track the number of linked quotes generated and successfully completed orders to gain insights into the fulfillment of negotiated agreements.
- Linked quotes are pre-approved quotes that the buyer generates from an active quote template to submit recurring orders based on the terms negotiated in the quote template.
-
Updated Commerce Access Control List (ACL) rules allow B2B managers and supervisors to manage quotes and quote templates of subordinate users. Separate rules support granular configuration for view, edit, and delete access.
-
Save Quote as Draft—When creating a quote request from the shopping cart, buyers can now save the quote as a draft so that they can review and update it before initiating the quote negotiation process with the seller. The draft quote does not have an expiration date. Buyers can review and update draft quotes from the My Quotes section of their account dashboard.
-
Rename Quote—Buyers can now change a quote name from the Quote detail page by selecting the Rename option. This option is available to authorized buyers when they are editing the quote. Name change events are recorded in the Quote History Log.
-
Duplicate Quote—Buyers and sellers can now create a new quote by copying an existing quote. A copy is created from the Quote detail view by selecting Create Copy on the Quote detail view in the Admin or the Storefront.
-
Move quote item to requisition list—Buyers now have the flexibility to remove products from a quote and save them to a requisition list if they decide not to include them in the quote negotiation process.
-
Remove multiple products from a quote—On quotes with a large number of products, buyers can now remove multiple products from the quote by selecting them and using the Remove option from the Actions control on the Quote detail page. In previous releases, a buyer had to delete products one at time.
-
Line item discount locking—During quote negotiation, sellers can use line item discount locking for more flexibility when applying discounts during the quote negotiation process. For example, a Seller can apply a special line item discount to an item and lock the item to prevent further discounting. When an item is locked, the item price cannot be updated when a quote-level discount is applied. See Initiate quote for a buyer.
-
Merchants clicking the Print button in the Quote detail view in the Admin are now prompted to save the quote as a PDF. Previously, merchants were redirected to a page that contained quote details.
-
Previously when sending a customer quote with
0
percentage and changing quantity, the admin throws an exception but saved the quantity. After this fix applies, for the0 percentage
proper exception with a message will be thrown. -
During quote negotiation, a seller can now specify a
0%
discount in the Negotiated Quote quote discount field and send the quote back to the buyer. Previously, if the seller entered a 0% discount and sent the quote back to the buyer, the Admin returned anException occurred during quote sending
error message. -
ReCaptcha validation now works correctly during the checkout process for a B2B quote when ReCaptcha V3 is configured for storefront checkout. Previously, the validation failed with a
recaptcha validation failed, please try again
error message.
Purchase Orders
B2B v1.4.2-p4
February 11, 2025
Supported Adobe Commerce 2.4.7-p4+ and 2.4.6-p9+ security patch releases.
B2B v1.4.2-p3
October 8, 2024
Supported Adobe Commerce 2.4.7-p3+ and 2.4.6-p8+ security patch releases.
B2B v1.4.2-p2
Supported Adobe Commerce 2.4.7-p2+ and 2.4.6-p7+ security patch releases.
B2B v1.4.2-p1
August 9, 2024
Supported Adobe Commerce 2.4.7-p1+ and 2.4.6-p6+ security patch releases.
B2B v1.4.2
October 10, 2023
Supported Adobe Commerce version 2.4.7 and version from 2.4.6 to 2.4.6-p5.
The B2B v1.4.2 release includes quality improvements and bug fixes.
The SKU you entered is not available in the shared catalog. Please check the SKU and try again
. The Seller cannot save the quote until they remove the product that is not available. Previously, the quote was saved with the unavailable SKU included, and the quote failed to load on the storefront.
B2B v1.4.1
August 7, 2023
Supported Adobe Commerce 2.4.6-p2. Compatible with Adobe Commerce 2.4.7-beta1.
The B2B v1.4.1 release includes quality improvements and bug fixes.
B2B v1.4.0
June 13, 2023
Supported Adobe Commerce 2.4.6-p1. Compatible with Adobe Commerce 2.4.7-beta1
This release includes new capabilities and enhancements for B2B negotiable quotes and multiple bug fixes.
Known issue
If you install or upgrade B2B 1.4.0 on Adobe Commerce version 2.4.6-p1, the following error occurs:
Your requirements could not be resolved to an installable set of packages.
Problem 1
- Root composer.json requires magento/extension-b2b 1.4.0 -> satisfiable by magento/extension-b2b[1.4.0].
- magento/extension-b2b 1.4.0 requires magento/security-package-b2b 1.0.4-beta1 -> found magento/security-package-b2b[1.0.4-beta1] but it does not match your minimum-stability.
Installation failed, reverting ./composer.json and ./composer.lock to their original content.
You can fix this issue by adding manual dependencies for the B2B security package by adding manual dependencies for the B2B security package with a stability tag. For instructions, see the Adobe Commerce Knowledge Base.
B2B v1.3.5-p9
February 11, 2025
Supported Adobe Commerce 2.4.6-p9+ security patch releases.
B2B v1.3.5-p8
October 8, 2024
Supported Adobe Commerce 2.4.6-p8+ security patch releases.
B2B v1.3.5-p7
August 9, 2024
Supported Adobe Commerce 2.4.6-p7+ security patch releases.
B2B v1.3.5
March 14, 2023
Supported Adobe Commerce 2.4.0 - 2.4.6 and newer versions
SELECT
company permissions operations has improved.
negotiableQuoteCheckoutSessionPlugin
plugin have been resolved.
B2B v1.3.4-p11
February 11, 2025
Supported Adobe Commerce 2.4.0 and newer versions
B2B v1.3.4-p10
October 9, 2024
Supported Adobe Commerce 2.4.0 and newer versions
B2B v1.3.4
August 9, 2022
Supported Adobe Commerce 2.4.0 and newer versions
customer
query no longer returns empty results when it retrieves requisition lists that are filtered by uid
.
collectQuoteTotals
call to ensure that store credits are applied only once.
SessionPlugin
) code block is now inside the try…catch
block. Previously, this code was not wrapped inside the generic exception-handling block.
The requested Payment Method is not available
.
B2B v1.3.3
August 9, 2022
Supported Adobe Commerce 2.4.0 and newer versions
V1/order/:orderId/invoice
request now supports the creation of partial invoices when the Payment on Account payment method is enabled. Previously, Adobe Commerce threw this error: An invoice for partial quantities cannot be issued for this order. To continue, change the specified quantity to the full quantity
. GitHub-32428
File
, Adobe Commerce did not create the company and logged this error in the exception log: Something went wrong while saving file
.
File
) or (Image
) type. Previously, if the account had one of these customizable options, the Company edit page loader did not resolve, which prevented the editing of company details.
products
query now returns an accurate total_count
field when shared catalog is enabled.
File
, Adobe Commerce did not create the company and logged this error in the exception log: Something went wrong while saving file
.
Type Error occurred when creating object: Magento\CompanyShipping\Model\Source\ShippingMethod, Too few arguments to function Magento\CompanyShipping\Model\Source\ShippingMethod::__construct(), 1 passed in /var/www/html/elmtup/vendor/magento/framework/ObjectManager/Factory/AbstractFactory.php on line 121 and exactly 2 expected
.
categoryList
query now returns the correct number of products when catalog permissions are used and products are assigned to a shared catalog.
categoryList
query now respects category permissions and returns only permitted categories. Previously, it returned all assigned and unassigned categories.
rest/V1/company/{id}
request now returns is_purchase_order_enabled
attribute values as expected.
The SKU was not found in the catalog
.
sharedcatalog_category_permissions
table when the parent category is deleted. Previously, only the parent category data was removed.
B2B v1.3.2
August 29, 2022
Supported Adobe Commerce 2.4.0 and newer versions
cron
job is missing.
Company
AN
were empty.
app/code/Magento/PurchaseOrder/Setup/Patch/Data/InitPermissions.php::apply
method during bin/magento setup:upgrade
. Previously, Adobe Commerce did not use batch size for collection when initializing permissions, but instead loaded a collection of all company roles.
company_create_account
resolved this issue.
Company credit
from
email address and scope. Previously, Adobe Commerce did not consider website scope when sending company credit assignment or update email.
Quick Order
Negotiable quote
The product has required options. Enter the options and try again
.
isQuoteAddressLocked
was removed from the negotiable quote checkout renderer.
Purchase orders
required
. Previously, Adobe Commerce did not place the order or display an error message.
Requisition lists
rest/all/V1/requisition_lists
endpoint to create a requisition list for a customer. Previously, Adobe Commerce threw this 400 error when you tried to create a requisition list: Could not save Requisition List
.
(File)
to a wish list from a requisition list. The link to the uploaded file is also visible as expected. Previously, Adobe Commerce displayed incorrect product prices and did not display the link to the file.
(File)
can now be added to a shopping cart from a requisition list.
Shared catalog
products
query no longer returns a product’s price range and category for products that are not assigned to a shared catalog when shared catalog is enabled. Previously, the query returned the product’s aggregations, even though the product itself was not returned in the items
array.
B2B v1.3.1
February 9, 2021
Supported Adobe Commerce 2.4.0 and newer versions
Private Sales: Login Only
. Previously, shoppers were redirected to the store home page.
store_id
that is associated with a company administrator when the customer group for a company is updated. Previously, the store_id
changed to the default store when the group was updated.
var/export/{file-id}
.
1 product(s) require your attention - Options were updated. Please review available configurations
.
The store view is not in the associated website
.
You submitted your review for moderation
. The review also appears on the Pending Reviews page (Admin Marketing > Pending Reviews). Previously, although Adobe Commerce added the review to the list of pending reviews, it threw a 404 error on the product page.
sharedCatalogUpdateCategoryPermissions
consumer has been improved. After creating a shared catalog, the catalog permission indexer now uses only the customer group ID from the shared catalog, not all customer groups.
rest/V1/carts/{<CART_ID>/items
) as expected. Adobe Commerce now checks if the product was assigned to a public catalog before shared catalog permissions validation in \Magento\SharedCatalog\Plugin\Quote\Api\ValidateAddProductToCartPlugin::beforeSave
. Previously, Adobe Commerce did not add the product to the shopper’s cart and threw this error: No such shared catalog entity
.
credit_history
query now returns the specified company’s credit history for both the originally allocated amount and the purchased amount. Previously, this query returned an error.
Known issues
-
B2B buyers can use online payment methods to bypass the usual purchase order flow. This scenario can occur if the buyer can reduce their entire checkout total to a 0 — for example, by a promo code or gift card — and then remove the code or gift card. Even under those conditions, Adobe Commerce still places the order for the correct amount based on the prices of the items in their assigned catalog. Workaround: Disable gift cards and coupon codes when online payment methods are enabled for purchase order approval.
-
Buyers are redirected to the shopping cart when trying to place an order from a purchase order using PayPal Express Checkout when In-Context Mode is disabled.
-
Adobe Commerce sometimes displays a 404 error when a buyer creates a purchase order and then navigates to the checkout page. This error occurs when a buyer has previously created a different purchase order with an online payment method before navigating to the checkout page without completing the previous purchase. The buyer can still place the purchase order. Work around: None.
-
Discounts for a specific payment method persist during checkout for a purchase order even when the buyer changes their payment method during final checkout. As a result, customers can receive a discount that they are not entitled to. This issue occurs because a cart rule for the original payment method is still applied despite the change in payment method. Work around: None. See the Adobe Commerce 2.4.2 B2B known issue: discount remains for online Purchase Orders after payment method is changed Knowledge Base article.
-
The
deleteRequisitionListOutput
query returns details about the deleted requisition list instead of the remaining requisition lists.
B2B v1.3.0
October 15, 2020
Supported Adobe Commerce 2.4.0 and newer versions
This release includes improvements to order approvals, shipping methods, shopping cart, and logging of Admin actions.
Company
, NegotiableQuote
, CompanyCredit
, SharedCatalog
.
Allow
for the Display Product Prices and Add to Cart features in categories when the customer group is assigned this access in catalog permission settings. Previously, these settings were automatically set to Deny
even when catalog permissions were set to Allow
.
/V1/company/:companyId
request without specifying the region_id
when state is configured as not required. Previously, even though region_id
was not required, Adobe Commerce threw an error if it was not specified.
http://magento.local/rest/V1/company/2
, where 2
represents the company ID), the response now includes the settings for applicable_payment_method
or available_payment_methods
as expected.
rest/default/V1/company/{id}
, which is used to update Company email, is no longer case-sensitive.
Sales: Login Only
. Previously, Adobe Commerce threw this error when a merchant tried to create a user: Can not register new customer due to restrictions are enabled
.
addToCart
DataLayer event for Quick Order and Requisition lists pages.
1 product(s) require your attention - Options were updated. Please review available configurations
.
products
query now returns an accurate total_count
field when shared catalog is enabled.
Type Error occurred when creating object: Magento\CompanyShipping\Model\Source\ShippingMethod, Too few arguments to function Magento\CompanyShipping\Model\Source\ShippingMethod::__construct(), 1 passed in /var/www/html/elmtup/vendor/magento/framework/ObjectManager/Factory/AbstractFactory.php on line 121 and exactly 2 expected
.
B2B v1.2.0
July 28, 2020
Supported Adobe Commerce 2.4.0 and newer versions
php bin/magento indexer:set-dimensions-mode catalog_product_price website
and then trying to create a shared catalog, an error would occur. This issue has been fixed.
form
tag, the order page automatically refreshed when you pressed Enter after changing a proposed shipping charge. This issue has been fixed.
Known issues
- Adobe Commerce throws an exception during upgrade to B2B 1.2.0 in a multi-website deployment. When
setup:upgrade
runs, this error occurs on thePurchaseOrder
module:Module Magento_PurchaseOrder: Unable to apply data patch Magento\PurchaseOrder\Setup\Patch\Data\InitPurchaseOrderSalesSequence for moduleMagento_PurchaseOrder
. Workaround: Install theB2B-716 Add NonTransactionableInterface
interface to theInitPurchaseOrderSalesSequence
data patch hotfix, which is now available from the My Account > Downloads section ofmagento.com
. - If a discount code expires before a Purchase Order (PO) is approved, the PO continues to display the discounted amount, but once the PO is approved, the order is placed at the non-discounted total. Workaround: Install the
B2B-709 Purchase Order Discount patch
hotfix for this issue, which is now available from the My Account > Downloads section ofmagento.com
. - If items in a purchase order are out of stock, or of insufficient quantity when the purchase order is converted into an actual order, an error occurs. If backorders are enabled, the order is processed normally.