cancel
Showing results for 
Search instead for 
Did you mean: 

Get the date of last purchase of product, by customer

   Did you know you can see the translated content as per your choice?

Translation is in progress. Please check again after few minutes.

Get the date of last purchase of product, by customer

How can I get the last date that a customer has purchased a product?

Thank you

5 REPLIES 5

Re: Get the date of last purchase of product, by customer

Hello @blaz_p

 

You can fetch sales order collection with customer filter:

 

<?phpnamespace 'YOUR_CUSTOM_NAME_SPACE';

class YOURCALSS extends \Magento\Framework\App\Action\Action{

    protected $_orderCollectionFactory;

    public function __construct(
        Magento\Framework\App\Action\Context $context,        \Magento\Sales\Model\ResourceModel\Order\CollectionFactory $orderCollectionFactory 
    ) {        $this->_orderCollectionFactory = $orderCollectionFactory;        parent::__construct($context);

    }

    }
   public function YOURFUNCTION()
   {       $collection = $this->_orderCollectionFactory->create()->addAttributeToSelect('*');

       // You Can filter collection as        $this->orderCollectionFactory->addFieldToFilter($field, $condition);
    }


   }       
}

 

->addAttributeToFilter('customer_id', $customer_id) //fetch order in desc order and get first order item's as last purchase item

 

Manish Mittal
https://www.manishmittal.com/

Re: Get the date of last purchase of product, by customer

Is there any REST api in magento 2.2 version to get last purchase date of a customer?

Re: Get the date of last purchase of product, by customer

@blaz_p 
You can use below code for getting last date of purchase of any customer,

<?php

namespace NameSpace;

class CLASSNAME extends \Magento\Framework\App\Action\Action
{
    public function __construct(
        \Magento\Framework\App\Action\Context $context,
        \Magento\Sales\Model\ResourceModel\Order\CollectionFactory $orderCollection
    ) {
        $this->_orderCollection = $orderCollection;
        parent::__construct($context);
    }

    public function execute()
    {       
        $customer_id = 1; //set customer id whose last order you want to get
        $last_order = $this->_orderCollection->create()->addFieldToFilter('customer_id',$customer_id)
                                        ->setOrder('created_at', 'DESC')
                                        ->getFirstItem();
        echo $last_date = $last_order->getCreatedAt();die;
    }
}

If my answer is useful click kudos and Accept as Solution

Re: Get the date of last purchase of product, by customer

@sarita_furtado 

 

You can first use customer auth api:

 

http://your_site_url/index.php/rest/V1/integration/customer/token

Then get all orders of customer,last order created_at is the last date of purchase of any customer.

 

"http://127.0.0.1/mago/index.php/rest/V1/orders?searchCriteria=all"

 If my answer is useful click kudos and Accept as Solution

Re: Get the date of last purchase of product, by customer

Thanks @verma_mallika.

 

I understand we can get purchase date using V1/orders api by taking the last record. 

My usecase required direct REST API where I could find information related to purchase data, eg. last purchase date, purchase frequency etc.

 

I went through all the swagger apis mentioned in 2.3 version. Looks like there are no such Apis.