Làm thế nào để có được sản phẩm được xem gần đây bởi id khách hàng?


8

Tôi muốn trưng bày thông qua một SOAP WS các mục được xem gần đây nhất của khách hàng.

Làm thế nào tôi có thể đạt được những mục đó? Tôi biết chúng được lưu trữ trong 'báo cáo / sản phẩm_index_viewed'; tuy nhiên, tôi không biết đâu là cách phù hợp để tiếp cận những người đó.

Đây là những gì tôi đã nhận được cho đến nay:

public function getRecentlyViewedByCustomer($customerId)
{
    Mage::log(__METHOD__);
    $customer = $this->_getCustomer($customerId);
    Mage::log('Getting recently viewed products of '. $customer->getName() .' ('. $customer->getEmail() .'), ID: ' . $customer->getId() );

    $productCollection = Mage::getResourceModel('reports/product_index_viewed');

    Mage::log(print_r($productCollection, true));

    return __METHOD__;
}

public function _getCustomer($customerId)
{
    $customer = Mage::getModel('customer/customer')->load($customerId);
    return $customer;
}

Câu trả lời:


0
public function getMostViewedProducts()
{       
    /**
     * Number of products to display
     * You may change it to your desired value
     */
    $productCount = 5; 

    /**
     * Get Store ID
     */
    $storeId    = Mage::app()->getStore()->getId();       

    /**
     * Get most viewed product collection
     */
    $products = Mage::getResourceModel('reports/product_collection')
        ->addAttributeToSelect('*')     
        ->setStoreId($storeId)
        ->addStoreFilter($storeId)
        ->addViewsCount()
        ->setPageSize($productCount); 

    Mage::getSingleton('catalog/product_status')
            ->addVisibleFilterToCollection($products);
    Mage::getSingleton('catalog/product_visibility')
            ->addVisibleInCatalogFilterToCollection($products);

    return $products; 
}

Xin lỗi, điều này không làm việc cho tôi. Ngoài ra, trong api, làm cách nào tôi có thể có được storeId được liên kết với một khách hàng?
Ramíp

1
bộ sưu tập này sẽ trả lại các sản phẩm đã xem cho cửa hàng chứ không phải khách hàng.
ngủ

mã không hoạt động
Gem

0

Bạn nên thêm một phù thủy quan sát phát hiện rằng người dùng đang xem sản phẩm và trả lại id sản phẩm và id khách hàng và lưu trữ nó trong cơ sở dữ liệu để bạn có thể sử dụng nó


0

Đây là cách tôi đã giải quyết vấn đề này

public function getRecentlyViewedByCustomer($customerId, $categoryId, $limit = 5){
    $resource = Mage::getSingleton('core/resource');
    $readConnection = $resource->getConnection('core_read');

    $q = "SELECT DISTINCT report_viewed_product_index.product_id, report_viewed_product_index.added_at "  .
    " FROM report_viewed_product_index " .
    " INNER JOIN catalog_category_product ON catalog_category_product.product_id = report_viewed_product_index.product_id " .
    " WHERE customer_id = " . $customerId;

    if($categoryId > 0){
        $categories = $this->_getCategories($categoryId);
        $q = $q . " AND category_id in (" . $categories . ")";
    }

    $q = $q . " ORDER BY added_at desc LIMIT " . $limit;

    return $readConnection->fetchAll($q);
}
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.