Magento 2.2.2'de Son Görüntülenen Ürünleri Programatik Olarak Nasıl Alabilirsiniz

İçindekiler

  1. Giriş
  2. Neden Son Görüntülenen Ürünleri Göstermek Önemlidir?
  3. Son Görüntülenen Ürünleri Almak İçin Adım Adım Süreç
  4. Yaygın Sorunları Giderme
  5. Sonuç
  6. SSS

Giriş

Magento 2.2.2 e-ticaret sitenizde kullanıcı deneyimini nasıl geliştireceğinizi hiç düşündünüz mü? Müşterilere son görüntülenen ürünlerini göstermek, etkileşimi ve dönüşüm oranlarını önemli ölçüde artırabilir. Bu blog yazısı, Magento 2.2.2'de son görüntülenen ürünleri programatik olarak nasıl alacağınızı ve bu özelliği uygulamayı kolay hale getirmenizi sağlayan işlenebilir adımlar ve bilgiler sunar.

Magento'nun varsayılan yeteneklerinin ötesinde özel işlevsellik gerektiğinde, son görüntülenen ürünleri programatik olarak almayı anlamak son derece faydalı olabilir. Bu makalenin sonunda, son görüntülenen ürünleri almak için kod örneklerini uygulayabilir ve bunun işletme ihtiyaçlarınıza göre nasıl özelleştirilebileceğini anlayabilirsiniz.

Kapsamımız:

  1. Neden son görüntülenen ürünleri göstermek önemlidir?
  2. Magento 2.2.2'de son görüntülenen ürünleri almanın adım adım süreci.
  3. Yaygın sorunları giderme.

Hadi başlayalım!

Neden Son Görüntülenen Ürünleri Göstermek Önemlidir?

Son görüntülenen ürünleri göstermek, kullanıcı etkileşimini ve satışları önemli ölçüde artırabilir. Bu özellik, kullanıcıların ilgi gösterdikleri ürünleri hatırlatır ve bu ürünlere tekrar ziyaret etmelerini ve potansiyel olarak satın almalarını kolaylaştırır. İşte bazı ana faydaları:

  • Geliştirilmiş Kullanıcı Deneyimi: Son görüntülenen ürünleri hızlı bir şekilde geri dönebilme imkanı sunarak alışveriş sürecini basitleştirir.
  • Dönüşüm Oranlarında Artış: Bir kullanıcı bir ürünü daha sık görürse, onu satın alma olasılığı daha yüksektir.
  • Özelleştirilmiş Alışveriş: Özelleştirilmiş bir alışveriş deneyimi sağlamak, müşteri memnuniyetini artırır.

Bu faydalar göz önüne alındığında, bu özelliği Magento mağazanıza entegre etmek önemli bir fark yaratabilir.

Son Görüntülenen Ürünleri Almak İçin Adım Adım Süreç

1. Gereksinimler ve Kurulum

Koda dalmadan önce aşağıdaki ön gereksinimleri sağladığınızdan emin olun:

  • Magento 2.2.2 yüklü ve çalışır durumda.
  • Magento modül ve şablon dosyalarını temel düzeyde anlamak.
  • Magento projenizin dosya sistemi üzerinde dosya eklemek veya değiştirmek için erişim.

2. Kod Uygulama

Son görüntülenen ürünleri almak için, belirli sınıfları içeri aktarmanız ve Magento tarafından sağlanan önceden tanımlanmış yöntemleri kullanmanız gerekmektedir. Aşağıda bu özelliği uygulamanın adım adım bir rehberi yer almaktadır:

a. Yeni Bir Blok Oluşturun

İlk olarak, özel kodunuzun bulunacağı yeni bir blok dosyası oluşturun.

// 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. Yeni bir Şablon Dosyası Oluşturun

Son görüntülenen ürünleri görüntülemek için yeni bir şablon dosyası oluşturun.

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

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

<div class="recently-viewed-products">
    <h2>Son Görüntülenen Ürünler</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. Düzen Dosyasını Güncelleme

Son olarak, istediğiniz sayfaya bloğu eklemek için düzen XML'yi güncelleyin.

<!-- 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. Özelleştirme İpuçları

Aşağıdaki ipuçlarını kullanarak son görüntülenen ürünlerin görüntülenimini ve işlevselliğini özelleştirebilirsiniz:

  • Ürün Sayısını Ayarlama: getRecentProducts yönteminde $limit parametresini değiştirerek daha fazla veya daha az ürün gösterebilirsiniz.
  • Stil: İhtiyaca göre ürün listesini CSS ile stilize edin. Bu, kullanıcı arayüzünü geliştirerek görsel olarak daha çekici hale getirecektir.
  • Koşullu Mantık: Bloğu görüntülemeden önce kullanıcı oturumlarını veya belirli koşulları kontrol etmek için koşullu mantık uygulayın.

Yaygın Sorunları Giderme

Aşama adımlarını takip etmenize rağmen bazı sorunlarla karşılaşabilirsiniz. İşte yaygın sorunları gidermenin yolları:

  • Ürünler Gösterilmiyor: Tam Sayfa Önbelleği'nin devre dışı olduğundan veya özel bloğun önbelleğe alınamayacak şekilde yapılandırılmasından emin olun:
    <block class="YourNamespace\YourModule\Block\RecentlyViewed" cacheable="false" .../>
    
  • Injection Hataları: Blok yapıcısında gereken tüm bağımlılıkların doğru bir şekilde eklenip eklenmediğini kontrol edin.
  • Magento Önbelleği: Yapılandırma değişiklikleri yaptıktan sonra Magento önbelleğini temizleyerek güncellemelerin uygulandığından emin olun:
    bin/magento cache:clean && bin/magento cache:flush
    

Sonuç

Magento 2.2.2'de son görüntülenen ürünlere bir özellik entegre etmek, e-ticaret sitenizin kullanıcı deneyimini önemli ölçüde geliştirebilir ve satışları artırabilir. Bu rehberde belirtilen adımları izleyerek, son görüntülenen ürünleri programatik olarak alabilir ve müşterilerinize daha kişiselleştirilmiş ve etkileşimli bir alışveriş deneyimi sunabilirsiniz.

Magento mağazanızı zengin bir müşteri deneyimi için optimize etme ve özelleştirme konusunda daha fazla bilgi ve ipucu için bizi takip edin.

SSS

S1: Son görüntülenen ürünler önbelleğe alınabilir mi?

  • Evet, ancak her zaman gerçek zamanlı verileri yansıtmayabilir. Doğruluk için bloğu önbelleğe alınamayacak şekilde ayarlayın.

S2: Gösterilen son görüntülenen ürünlerin sayısını nasıl sınırlayabilirim?

  • getRecentProducts yöntemi içindeki $limit parametresini değiştirerek sayıyı sınırlayabilirsiniz.

S3: Son görüntülenen ürünleri birden çok sayfada nasıl gösterebilirim?

  • İlgili sayfaların düzen XML dosyalarına bloğu ekleyerek yapabilirsiniz.

S4: Bu özellik için ek bir uzantıya ihtiyaç duyulur mu?

  • Hayır, bu, bu rehberde anlatılan gibi yerleşik Magento işlevselliği ve özel kodlama ile başarılabilir.

Bunu bugün uygulayın ve Magento mağazanızın kullanıcı etkileşimini ve dönüşüm oranlarını iyileştirmeyi görün!