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 仅支持每个客户的一个愿望清单。对于多个愿望清单,您可以在这里查看我们的免费扩展

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

感谢您的阅读!