Skip to content

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

@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

Assignees

Labels

Area: Cart & CheckoutComponent: GraphQLGraphQLIssue: ConfirmedGate 3 Passed. Manual verification of the issue completed. Issue is confirmedPriority: P2A defect with this priority could have functionality issues which are not to expectations.Reported on 2.4.7-p5Indicates original Magento version for the Issue report.Reproduced on 2.4.xThe issue has been reproduced on latest 2.4-develop branch

Type

No type

Projects

Status

Ready for Development

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions