Skip to content

Graphql - Merge cart not working correctly when Backorder is enabled #40064

Open
@tushardatar7

Description

@tushardatar7

Preconditions and environment

  • Magento: 2.4.7-p5
    -PHP 8.3
  • Backorder configuration enabled (Allow Qty Below 0)
  • Simple / virtual product with 0 qty and Backorder flag set as (Use config settings)

Steps to reproduce

Admin -

  1. Enable Backorders (Allow Qty Below 0)
  2. Set Qty for product as 0

Frontend / Graphql-

  1. Login as customer (mutation generateCustomerToken)
  2. Create / Get Customer cart (customerCart query)
  3. Add product with 2 qty
  4. logout
  5. Create empty guest cart (mutation createEmptyCart)
  6. Add same product with 3 qty in guest cart.
  7. Merge Guest cart to customer cart (mutation MergeCarts)
  8. Fetch cart details (cart query)

Expected result

Customer Cart should have product with 5 qty.

Actual result

Customer cart have product with only 2 qty (guest qty is not merged)

Additional information

  1. Merge Cart mutation calls Magento\QuoteGraphQl\Model\Cart\MergeCarts\CartQuantityValidatorInterface::validateFinalCartQuantities
  2. In this, products current stock validates with customer cart qty + guest cart qty.
  3. it deletes product from guest cart if product stock condition is not satisfied

if ($stockCurrentQty < $guestCartItem->getQty() + $customerCartItem->getQty()) {
$this->cartItemRepository->deleteById($guestCart->getId(), $guestCartItem->getItemId());
$modified = true;
}

Release note

No response

Triage and priority

  • Severity: S0 - Affects critical data or functionality and leaves users without workaround.
  • Severity: S1 - Affects critical data or functionality and forces users to employ a workaround.
  • Severity: S2 - Affects non-critical data or functionality and forces users to employ a workaround.
  • Severity: S3 - Affects non-critical data or functionality and does not force users to employ a workaround.
  • Severity: S4 - Affects aesthetics, professional look and feel, “quality” or “usability”.

Metadata

Metadata

Type

No type

Projects

Status

Ready for Confirmation

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions