Magento 更改购物车商品价钱

为了在产品页面或小部件上显示产品价格,Magento会根据底价、特价、层价或目录规则价中的一个计算最低价格。可配置产品可以为子产品设置自己的价格,捆绑产品可以对捆绑产品应用固定价格。然后,当将产品添加到购物车时,其价格也会受到购物车价格规则的影响。
在本文中,我们将演示如何将自定义价格添加到购物车中的产品。这一行动将压倒Magento计算的价格。

购物车中产品的自定义价格

以下是可以帮助您实现这一目标的两个简单步骤:
首先,在安装了自定义模块之后,您需要声明一个名为events的文件。xml来捕获产品添加到购物车后发生的事件
<vendor_name>/<module_name>/etc/frontend/events.xml

<?xml version="1.0"?>
<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:framework:Event/etc/events.xsd">
    <event name="checkout_cart_product_add_after">
        <observer name="customPriceInCart" instance="VendorName\ModuleName\Observer\CustomPriceInCart" />
    </event>
</config>

在这里,您声明了一个名为customPriceInCart的观察者,该观察者将处理事件checkout_cart_product_add_add_after,之后Magento每次将产品添加到购物车时都会发送该事件。
接下来,我们创建观察者类
<vendor_name>/<module_name>/Observer/customPriceInCart.php

<?php
namespace VendorName\ModuleName\Observer;
use Magento\Framework\Event\ObserverInterface;
use Magento\Framework\App\RequestInterface;

class CustomPriceInCart implements ObserverInterface
{
    public function execute(\Magento\Framework\Event\Observer $observer)
    {
        //get the item just added to cart
        $item = $observer->getEvent()->getData('quote_item');
        //(optional) get the parent item, if exists
        $item = ($item->getParentItem() ? $item->getParentItem() : $item);
        // set your custom price
        $customPrice = 101;
        $item->setCustomPrice($customPrice);
        $item->setOriginalCustomPrice($customPrice);
        $item->getProduct()->setIsSuperMode(true);
    }
}

您的定制价格都会取代原来的价格


image.png
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容