如何以编程方式在 Magento 2 中将产品添加到愿望清单

redmaomail 2024-07-24 18:19 阅读数 58 #Magento

红帽云邮外贸主机

Magento 2 Wishlist 允许用户将产品添加到他们的收藏夹中,这将为下次购买节省时间。此外,愿望清单也可以通过电子邮件与任何人共享。

本文将指导您如何以编程方式将产品添加到 Magento 2 的愿望清单中。

如何将产品添加到愿望清单

要将产品添加到愿望清单,我们需要两个参数:产品对象客户 ID

  • Product Object:可以通过Product SKU或者Id获取。例如,使用此方法从SKU获取产品:Magento\Catalog\Api\ProductRepositoryInterface::get($sku)
  • 客户 ID可以使用此方法为当前登录的客户获取前端客户 ID:Magento\Customer\Model\Session::getId()

要保存产品,首先加载客户的愿望清单,然后通过愿望清单模型添加产品。

编码示例:

<?php

class AddProductToWishlist
{
   protected $_wishlistFactory;
   protected $_wishlistResource;

   public function __construct(
       Magento\Wishlist\Model\WishlistFactory $wishlistFactory,
       Magento\Wishlist\Model\ResourceModel\Wishlist $wishlistResource
   ) {
       $this->_wishlistFactory  = $wishlistFactory;
       $this->_wishlistResource = $wishlistResource;
   }

   /** * @param $product * @param $customerId * * @throws \Magento\Framework\Exception\AlreadyExistsException * @throws \Magento\Framework\Exception\LocalizedException */
   public function saveProductToWishlist($product, $customerId)
   {
       //load wishlist by customer id
       $wishlist = $this->_wishlistFactory->create()->loadByCustomerId($customerId, true);

       //add product for wishlist
       $wishlist->addNewItem($product);

       //save wishlist
       $this->_wishlistResource->save($wishlist);
   }
}

结果如下:该产品已在前端成功添加到用户的收藏列表中。

结论

Magento 2 Wishlist 是一种方便的方式来跟踪您喜欢但尚未准备好购买的产品。您的愿望清单中的物品可以与他人共享或添加到购物车中。为用户带来更好的体验。

默认情况下,Magento 仅支持每个客户的一个愿望清单。对于多个愿望清单,您可以在这里查看我们的免费扩展

我们希望您从这篇文章中学到了一些有用的东西。如果出现任何问题,请在评论中告诉我们。

感谢您的阅读!


红帽云邮外贸主机

分享到:
版权声明:本站内容源自互联网,如有内容侵犯了你的权益,请联系删除相关内容。
    红帽云邮外贸主机
热门
    红帽云邮外贸主机
    红帽云邮外贸主机