What are the Slack Archives?

It’s a history of our time together in the Slack Community! There’s a ton of knowledge in here, so feel free to search through the archives for a possible answer to your question.

Because this space is not active, you won’t be able to create a new post or comment here. If you have a question or want to start a discussion about something, head over to our categories and pick one to post in! You can always refer back to a post from Slack Archives if needed; just copy the link to use it as a reference..

Hi, While handling request to PersistentCart from Yves (for me it's operation addItem (`/Spryker/Cli

U04LMNT2PUH
U04LMNT2PUH Posts: 2 🧑🏻‍🚀 - Cadet

Hi,
While handling request to PersistentCart from Yves (for me it's operation addItem (/Spryker/Client/PersistentCart/Zed/PersistentCartStub.php) I can see that Client returns Quote and completely ignores returned QuoteErrorTransfer in QuoteResponseTransfer. That causes that there is no error message on Yves and nothing happens.
Temporary I solve it by add

<property name="errors" type="QuoteError[]" singular="error"/>

to Quote transfer and update src/Zed/Yves/CartPage/Controller/CartController.php
from:

$this->getFactory()
    ->getCartClient()
    ->addItem($itemTransfer, $request->request->all());

$messageTransfers = $this->getFactory()
    ->getZedRequestClient()
    ->getLastResponseErrorMessages();

to:

$quoteTransfer = $this->getFactory()
    ->getCartClient()
    ->addItem($itemTransfer, $request->request->all());

$messageTransfers = [];
foreach ($quoteTransfer->getErrors() as $error) {
    $messageTransfers[] = (new MessageTransfer())->setValue($error->getMessage());
}

$messageTransfers = array_merge(
    $messageTransfers,
    $this->getFactory()
        ->getZedRequestClient()
        ->getLastResponseErrorMessages()
);

It's the most simple solution, but not the best.

Comments

  • U01A5ARAXP0
    U01A5ARAXP0 Posts: 119 🧑🏻‍🚀 - Cadet

    have you tried using addValidItems instead of addItem ?

  • U04LMNT2PUH
    U04LMNT2PUH Posts: 2 🧑🏻‍🚀 - Cadet

    It's default method used by Yves while adding to cart, it's clean demo shop instance with added validation on Zed PersistentCart.