Så får du nyligen visade produkter programmatiskt i Magento 2.2.2

Innehållsförteckning

  1. Introduktion
  2. Varför visa nyligen visade produkter?
  3. Steg för steg-process för att hämta nyligen visade produkter
  4. Felsökning av vanliga problem
  5. Slutsats
  6. FAQ

Introduktion

Har du någonsin funderat på hur du kan förbättra användarupplevelsen på din e-handelssida med Magento 2.2.2? Att visa kunderna deras nyligen visade produkter kan markant öka engagemanget och konverteringsfrekvensen. Den här bloggposten kommer att guida dig i hur du programmatiskt hämtar nyligen visade produkter i Magento 2.2.2 och ge dig användbara steg och insikter för att underlätta implementeringen av denna funktion.

Att förstå hur man programmatiskt hämtar nyligen visade produkter kan vara otroligt fördelaktigt, särskilt när det krävs anpassad funktionalitet bortom Magentos standardmöjligheter. I slutet av den här artikeln kommer du att kunna implementera kodsnuttar för att få nyligen visade produkter och förstå hur detta kan anpassas efter dina affärsbehov.

Vi kommer att täcka:

  1. Varför det är viktigt att visa nyligen visade produkter.
  2. Steg-för-steg-processen för att hämta nyligen visade produkter i Magento 2.2.2.
  3. Felsökning av vanliga problem.

Låt oss dyka in!

Varför visa nyligen visade produkter?

Att visa nyligen visade produkter kan dramatiskt förbättra användarinteraktionen och öka försäljningen. Den här funktionen fungerar som en påminnelse om produkter som användarna har visat intresse för, vilket gör det enklare för dem att återvända och eventuellt köpa dessa artiklar. Här är några viktiga fördelar:

  • Förbättrad användarupplevelse: Det förenklar shoppingprocessen genom att låta användare snabbt navigera tillbaka till produkter de nyligen har visat.
  • Ökade konverteringsfrekvenser: Ju mer en användare ser en produkt, desto större chans att de kommer att köpa den.
  • Personlig shopping: Att erbjuda en personlig shoppingupplevelse ökar kundnöjdheten.

Givet dessa fördelar kan integrationen av denna funktion i din Magento-butik vara en spelväxlare.

Steg för steg-process för att hämta nyligen visade produkter

1. Krav och konfiguration

Innan du dyker ner i koden, se till att du har följande förutsättningar:

  • Magento 2.2.2 installerat och igång.
  • Grundläggande förståelse för Magento-modul- och mallfiler.
  • Tillgång till ditt Magentoprojekts filsystem för att lägga till eller ändra filer.

2. Kodimplementering

För att hämta nyligen visade produkter måste du importera vissa klasser och använda fördefinierade metoder som tillhandahålls av Magento. Nedan finns en steg-för-steg-guide för att implementera denna funktion:

a. Skapa en ny block

Börja med att skapa en ny blockfil där din anpassade kod kommer att finnas.

// app/code/YourNamespace/YourModule/Block/RecentlyViewed.php

namespace YourNamespace\YourModule\Block;

use Magento\Catalog\Block\Product\AbstractProduct;
use Magento\Reports\Model\ResourceModel\Product\CollectionFactory as ReportCollectionFactory;
use Magento\Catalog\Api\ProductRepositoryInterface;
use Magento\Framework\Data\Helper\PostHelper;

class RecentlyViewed extends AbstractProduct
{
    protected $_reportCollectionFactory;
    protected $_productRepository;
    protected $_postDataHelper;
    protected $_customerSession;
    protected $_catalogSession;

    public function __construct(
        \Magento\Catalog\Block\Product\Context $context,
        ReportCollectionFactory $reportCollectionFactory,
        ProductRepositoryInterface $productRepository,
        PostHelper $postDataHelper,
        \Magento\Customer\Model\Session $customerSession,
        \Magento\Catalog\Model\Session $catalogSession,
        array $data = []
    ) {
        $this->_reportCollectionFactory = $reportCollectionFactory;
        $this->_productRepository = $productRepository;
        $this->_postDataHelper = $postDataHelper;
        $this->_customerSession = $customerSession;
        $this->_catalogSession = $catalogSession;
        parent::__construct($context, $data);
    }

    public function getRecentProducts($limit = 5)
    {
        $products = [];
        $collection = $this->_reportCollectionFactory->create()
            ->addAttributeToSelect('*')
            ->setPageSize($limit)
            ->setCurPage(1);

        foreach ($collection as $product) {
            $products[] = $this->_productRepository->getById($product->getId());
        }
        return $products;
    }
}

b. Skapa en ny mallfil

Skapa en ny mallfil för att visa de nyligen visade produkterna.

<!-- app/code/YourNamespace/YourModule/view/frontend/templates/recently_viewed.phtml -->

<?php
$products = $block->getRecentProducts();
?>

<div class="recently-viewed-products">
    <h2>Nyligen visade produkter</h2>
    <ul>
        <?php foreach ($products as $product): ?>
            <li>
                <a href="<?= $product->getProductUrl() ?>">
                    <img src="<?= $block->getImage($product, 'category_page_list')->getImageUrl() ?>" alt="<?= $product->getName() ?>">
                    <p><?= $product->getName() ?></p>
                </a>
            </li>
        <?php endforeach; ?>
    </ul>
</div>

c. Uppdatera layoutfilen

Slutligen, uppdatera layout-XML för att lägga till blocket på den önskade sidan.

<!-- app/code/YourNamespace/YourModule/view/frontend/layout/catalog_product_view.xml -->

<page xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:framework:View/Layout/etc/page_configuration.xsd">
    <body>
        <referenceContainer name="content">
            <block class="YourNamespace\YourModule\Block\RecentlyViewed" name="recently.viewed.products" template="YourNamespace_YourModule::recently_viewed.phtml"/>
        </referenceContainer>
    </body>
</page>

3. Anpassningstips

Du kan anpassa utseendet och funktionaliteten för de nyligen visade produkterna med hjälp av följande tips:

  • Justera antalet produkter: I metoden getRecentProducts, ändra parametern $limit för att visa fler eller färre produkter.
  • Styling: Använd CSS för att stilisera produktlistan efter behov. Detta kommer att förbättra användargränssnittet och göra det mer visuellt tilltalande.
  • Villkorlig logik: Implementera villkorlig logik för att kontrollera användarsessioner eller specifika villkor innan blocket visas.

Felsökning av vanliga problem

Trots att du följer stegen kan du stöta på några problem. Här är hur du felsöker vanliga problem:

  • Produkter visas inte: Se till att Full Page Cache är inaktiverad eller konfigurera blocket för att vara icke-cachebart:
    <block class="YourNamespace\YourModule\Block\RecentlyViewed" cacheable="false" .../>
    
  • Fel vid beroendeinjicering: Kontrollera att alla nödvändiga beroenden injiceras korrekt i blockets konstruktor.
  • Magento Cache: Rensa Magento-cache efter att ha gjort några konfigurationsändringar för att se till att uppdateringarna appliceras:
    bin/magento cache:clean && bin/magento cache:flush
    

Slutsats

Genom att integrera en funktion för nyligen visade produkter i Magento 2.2.2 kan du avsevärt förbättra användarupplevelsen på din e-handelssida och öka försäljningen. Genom att följa stegen i den här guiden kan du programmatiskt hämta och visa nyligen visade produkter, vilket erbjuder dina kunder en mer personlig och engagerande shoppingupplevelse.

Fortsätt att följa oss för fler insikter och tips om hur du optimerar och anpassar din Magento-butik för en förbättrad kundupplevelse.

FAQ

Fråga 1: Kan nyligen visade produkter cachas?

  • Ja, men det kan inte alltid återspegla realtidsdata. För att säkerställa noggrannhet, ställ in blocket som icke-cachebart.

Fråga 2: Hur kan jag begränsa antalet nyligen visade produkter som visas?

  • Ändra parametern $limit i metoden getRecentProducts i blockklassen.

Fråga 3: Är det möjligt att visa de nyligen visade produkterna på flera sidor?

  • Ja, genom att lägga till blocket i de relevanta layout-XML-filerna för dessa sidor.

Fråga 4: Kräver den här funktionen några ytterligare tillägg?

  • Nej, detta kan uppnås med inbyggd funktionalitet i Magento och anpassad kodning enligt beskrivningen i den här guiden.

Implementera detta idag och upplev en förbättring av användarinteraktionen och konverteringsfrekvenserna i din Magento-butik!