There is expected to receive an empty Cart (or Quote) due calling "createEmptyCartForCustomer" method. It says the method name. But it's not always true.
Magento 2.4-develop
<route url="/V1/customers/:customerId/carts" method="POST">
<service class="Magento\Quote\Api\CartManagementInterface" method="createEmptyCartForCustomer"/>
<resources>
<resource ref="Magento_Cart::manage" />
</resources>
</route>

Sorry Yuriy, that expected result is wrong in case of Magento. Our user has only one active cart, if admin resets that cart from API, user will see empty cart on frontend.
To create order not impacting current user's cart you may utilize Sales module service:
<route url="/V1/orders/create" method="PUT">
<service class="Magento\Sales\Api\OrderRepositoryInterface" method="save"/>
<resources>
<resource ref="Magento_Sales::sales" />
</resources>
</route>
It requires huge amount of data, but creates order in one step.
Created internal issue MAGETWO-58190 for updating annotation for createEmptyCartForCustomer() and creating new service supporting old behavior: create new cart for customer and leave it inactive.
Thank you for the report.
@SerhiyShkolyarenko , I believe Yurii to be correct. The intent of this method is to return a quote from the "quote" table with the column "is_active" boolean set to "0". Preparing a quote object for conversion to a transaction via API or other external methods should be able to bypass the current active session. This is a feature of Magento 1, and all Magento 1 features were to be included with Magento 2 this is not an annotation issue, this is missing / not completed functionality. @benmarks, I'd like to involve you in this issue / broken / missing feature. This is a major issue for any customers who want to be able to create an order for a customer, without deleting their existing cart, I'm hoping you can see that this major Enterprise feature is not lost in Magento 2.
@SerhiyShkolyarenko, I am aware of the <route url="/V1/orders/create" method="PUT"> <service class="Magento\Sales\Api\OrderRepositoryInterface" method="save"/> <resources> <resource ref="Magento_Sales::sales" /> </resources> </route> However, creating an order directly doesn't always make sense as you may need to manipulate the object prior to an order.
@duffner thank you for explanation. In Magento 1 that was undocumented feature and in services we lost it. Now we promoted priority of MAGETWO-58190 in order to restore that lost feature and fix our docs.
@SerhiyShkolyarenko thank you!!
@ytorbyk, thank you for your report.
We've created internal ticket(s) MAGETWO-58190 to track progress on the issue.
@magento-engcom-team, has there been any updates on the status of resolving the core issue?
Team, a couple more months have passed and years since the original issue. This is a critical issue for any extension writers who want to work with the Magento cart for marketing reasons.
@duffner do you currently have any work around for this?
Hi @sergey-solo. Thank you for working on this issue.
Looks like this issue is already verified and confirmed. But if you want to validate it one more time, please, go though the following instruction:
Component: XXXXX label(s) to the ticket, indicating the components it may be related to.[ ] 2. Verify that the issue is reproducible on 2.3-develop branchDetails
- Add the comment @magento give me 2.3-develop instance to deploy test instance on Magento infrastructure.
- If the issue is reproducible on 2.3-develop branch, please, add the label Reproduced on 2.3.x.
- If the issue is not reproducible, add your comment that issue is not reproducible and close the issue and _stop verification process here_!
[ ] 3. Verify that the issue is reproducible on 2.2-develop branch. Details
- Add the comment @magento give me 2.2-develop instance to deploy test instance on Magento infrastructure.
- If the issue is reproducible on 2.2-develop branch, please add the label Reproduced on 2.2.x
[ ] 4. If the issue is not relevant or is not reproducible any more, feel free to close it.
Hi @engcom-Charlie. Thank you for working on this issue.
Looks like this issue is already verified and confirmed. But if you want to validate it one more time, please, go though the following instruction:
Component: XXXXX label(s) to the ticket, indicating the components it may be related to.[ ] 2. Verify that the issue is reproducible on 2.4-develop branchDetails
- Add the comment @magento give me 2.4-develop instance to deploy test instance on Magento infrastructure.
- If the issue is reproducible on 2.4-develop branch, please, add the label Reproduced on 2.4.x.
- If the issue is not reproducible, add your comment that issue is not reproducible and close the issue and _stop verification process here_!
[ ] 3. If the issue is not relevant or is not reproducible any more, feel free to close it.
:white_check_mark: Confirmed by @engcom-Charlie
Thank you for verifying the issue. Based on the provided information internal tickets MC-30045 were created
Issue Available: @engcom-Charlie, _You will be automatically unassigned. Contributors/Maintainers can claim this issue to continue. To reclaim and continue work, reassign the ticket to yourself._
Hi @devamitbera. Thank you for working on this issue.
Looks like this issue is already verified and confirmed. But if you want to validate it one more time, please, go though the following instruction:
Component: XXXXX label(s) to the ticket, indicating the components it may be related to.[ ] 2. Verify that the issue is reproducible on 2.4-develop branchDetails
- Add the comment @magento give me 2.4-develop instance to deploy test instance on Magento infrastructure.
- If the issue is reproducible on 2.4-develop branch, please, add the label Reproduced on 2.4.x.
- If the issue is not reproducible, add your comment that issue is not reproducible and close the issue and _stop verification process here_!
[ ] 3. If the issue is not relevant or is not reproducible any more, feel free to close it.
So ... 4 years later issue is still open? Is this serious? Come on guys ....
Most helpful comment
@SerhiyShkolyarenko, I am aware of the
<route url="/V1/orders/create" method="PUT"> <service class="Magento\Sales\Api\OrderRepositoryInterface" method="save"/> <resources> <resource ref="Magento_Sales::sales" /> </resources> </route>However, creating an order directly doesn't always make sense as you may need to manipulate the object prior to an order.