gpt4 book ai didi

Shopware:有条件地取消将产品添加到购物车

转载 作者:行者123 更新时间:2023-12-02 01:31:02 29 4
gpt4 key购买 nike

我想实现一个调用外部 API 的功能,然后根据请求是否得到满足将产品行项目添加到购物车,否则它会向客户显示一条已翻译的快速消息,表明该产品无法满足“由于 X 种原因未被添加到购物车。

我尝试过订阅 BeforeLineItemAddedEvent,但此时该订单项似乎已经添加到购物车中,我不太确定如何实现即显消息。

最佳答案

您可以实现自己的自定义购物车验证器。如果您的验证标准基于对外部资源的请求,请注意每次构建购物车时都会调用此验证器。也许考虑缓存这些请求。

服务定义:

<service id="MyPlugin\Core\Checkout\Cart\LineItem\CustomValidator">
<tag name="shopware.cart.validator"/>
</service>

验证器类:

class CustomValidator implements CartValidatorInterface
{
public function validate(Cart $cart, ErrorCollection $errors, SalesChannelContext $context): void
{
foreach ($cart->getLineItems()->getFlat() as $lineItem) {
// your custom logic here
if ($lineItem->getLabel() === 'Aerodynamic Concrete Isoswitch') {
$errors->add(new IncompleteLineItemError($lineItem->getId(), 'yourCustomSnippet'));
$cart->getLineItems()->removeElement($lineItem);
}
}
}
}

您可能想要实现您自己的 Error 自定义扩展,而不是在此处使用预先存在的 IncompleteLineItemError

您翻译的消息 json:

{
// storefront.en-GB.json
"checkout": {
"yourCustomSnippet": "This is not allowed"
}
}

您可以在 docs 中找到更详细的解释.

关于Shopware:有条件地取消将产品添加到购物车,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/73280147/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com