Skip to the content

Set up the Feefo plugin

How to install DC Feefo

Having a Feefo account is necessary for this plugin. We are a registered Feefo Partner, speak to us if you would like an account set up.

Installing the plugin

  1. Upload plugin into the /plugins folder in your nopcommerce directory:

Go to administration tab -> Configuration -> plugins

  1. Upload the plugin
  2. Restart the application for uploaded plugin to appear in list (or click “Reload list of plugins” button)

Note: some later versions will restart automatically after uploading a plugin or theme.

  1. Find Pugin in list and Install

Note: If you're running nopCommerce in medium trust, then it's recommended to clear your \Plugins\bin\ directory

  1. Once Installed. Click edit and check that the plugin is enabled (Make sure checkbox is ticked)

  1. Click Configure

 

Configuring the plugin

  • Enter License key.

This would have been sent to you separately from the plugin

If accepted Current License will change to Licensed Host: yourhostname

Note that the value of Current License will not change until form is saved. Sometimes the page needs to be refreshed after saving for change to appear.

  • ID refers to your Feefo Merchant ID
  • There are three URLs that exist already. Should these ever change, paste the correct ones in these fields
  • The FTP details are the details you used when setting up your ftp configuration in Feefo.

Versions >= 4.10 have additional functionality. This configuration requires some extra fields.

  • Only show Feefo Reviews. If checked will exclusively show Feefo Reviews. Unchecked => Feefo and Nop Reviews will be displayed
  • Send with Http, if checked, sends orders to feefo automatically when they are created. Leaving it unchecked, orders will be sent with the scheduled task. The following fields are not required if this feature is switched off.
  • The Http Feefo Api is a constant endpoint but if it changes in the future paste the correct in this field instead.
  • Your Api key can be found by logging into Feefo. Clicking the user Icon -> Business Details

How to use the DC Feefo Plugin

Feefo Product Reference Override

  • For versions before 4.10 (without http turned on)
  • Go To an order which you wish to send to feefo (Admin -> Sales -> Orders)
  • View the order and go to the Add to Feefo Tab

  • Click “Submit this Order to Feefo”

  • This will add the order to the collection of orders to send to Feefo the next time the Add to Feefo Scheduled task runs.
  • You can run the scheduled task manually by going to Scheduled tasks (Admin -> System -> Scheduled Tasks)

  • Click run now

  • Wait for the order to appear under Sales Upload in Feefo (Note: Sent orders will not appear in Feefo instantly, there is usually at least a half hour difference)

  • The Feefo Tab for the order will change with the details of the upload if it is successful.

Send With Http

For versions >= 4.10

Once an order has been placed the plugin will send the order to feefo in the background and update the relevant tables in your Nop database.

You can check that the order has sent by going to the feefo tab on the selected order. After a short while the order will appear in Feefo. When sending with Http there is a delay between the order being sent and the order appearing in the Feefo console (this delay is longer than sending with FTP).

Widget Zones

We have created some custom widget zones to place the Feefo widgets around the page.

These widget zones are:

  • feefo_producttemplate_reviewoverview
  • feefo_producttemplate_reviews
  • feefo_servicereviews
  • feefo_productbox_reviews
  • feefo_serviceimage

If you are using the default theme for Nop Commerce, we have provided updated views that already include this extra code. You will find these views in the themes folder of the downloaded plugin.

The Feefo Plugin is widget based, so you only need to call a widget where you would like the plugin to be shown.

Below are some Examples.

Important note If you are using the Nop Templates Ajax plugin.

The Feefo plugin uses a function which is not fired as part of the Nop templates Ajax plugin.

To rectify in views/WidgetsFeefo/ProductReviewOverview.cshtml

Replace the following code:

   $(document).ready(function() {
        $.get('@Url.Action("ProductReviewOverviewAjax", "WidgetsFeefo", new { productId = Model.ProductId})',
            null,
            function(data) {
                $('div[data-productid="@Model.ProductId"] .feeFoRatingContainer').first().html(data);
            });
    });

With this code:

$(document).on("nopAjaxFiltersFiltrationCompleteEvent", function(){
	 $.get('@Url.Action("ProductReviewOverviewAjax", "WidgetsFeefo", new { productId = Model.ProductId})',
            null,
            function(data) {
                $('div[data-productid="@Model.ProductId"] .feeFoRatingContainer').first().html(data);
            });
    });


Feefo Product Template Review - Example

ProductTemplate.Simple.cshtml

 @Html.Widget("productdetails_before_collateral", Model.Id)
<div class="product-collateral">@Html.Partial("_ProductSpecifications", Model.ProductSpecifications) @Html.Partial("_ProductTags", Model.ProductTags) @Html.Widget("feefo_producttemplate_reviews", Model.Id)</div>
   @Html.Action("ProductsAlsoPurchased", "Product", new { productId = Model.Id })
   @Html.Action("RelatedProducts", "Product", new { productId = Model.Id })

Feefo Product Groups Template Review - Example

ProductTemplate.Grouped.cshtml

@foreach (var variant in Model.AssociatedProducts)
    {
<div class="product-variant-line" data-productid="@variant.Id">@if (!String.IsNullOrWhiteSpace(variant.DefaultPictureModel.ImageUrl)) {
<div class="variant-picture"><img id="main-product-img-@variant.Id" src="/@variant.DefaultPictureModel.ImageUrl" alt="@variant.DefaultPictureModel.AlternateText" title="@variant.DefaultPictureModel.Title" /></div> } <div class="variant-overview">@if (!String.IsNullOrWhiteSpace(variant.Name)) { <div class="variant-name">@variant.Name</div> } @Html.Widget("feefo_producttemplate_reviewoverview", variant.Id) @if (!String.IsNullOrWhiteSpace(variant.ShortDescription)) { <div class="variant-description">@Html.Raw(variant.ShortDescription)</div> }</div> </div>

Feefo Product Box Reviews- Example

_ProductBox.cshtml || {0} = ID of the product || {1} = URL of the Product Detail Page

@if (Model.ReviewOverviewModel.AllowCustomerReviews)
     {
        int ratingPercent = 0;
        if (Model.ReviewOverviewModel.TotalReviews != 0)
         {
            ratingPercent = ((Model.ReviewOverviewModel.RatingSum * 100) / Model.ReviewOverviewModel.TotalReviews) / 5;
         }
<div class="product-rating-box">
<div class="rating">
<div style="width: @(ratingPercent)%;"></div>
</div>
</div>
    }
      @{ 
          var url = Url.RouteUrl("Product", new { SeName = Model.SeName });
      }
      @Html.Widget("feefo_productbox_reviews", string.Format("{0}|{1}", Model.Id, url))
<div class="description">@Html.Raw(Model.ShortDescription)</div><

Feefo Service Reviews - Example

Home/Index.cshtml

   @Html.Action("HomePageNews", "News")
   @Html.Widget("home_page_before_poll")
   @Html.Action("HomePagePolls", "Poll")
   @Html.Widget("feefo_servicereviews")
   @Html.Widget("home_page_bottom")

Feefo Service Image - Example

Footer.cshtml

            @if (!string.IsNullOrEmpty(Model.GooglePlusLink))
               {
                   <li class="google-plus"><a href="@Model.GooglePlusLink" target="_blank">@T("Footer.FollowUs.GooglePlus")</a></li>
              }
        </ul>
      </div>
   @Html.Action("NewsletterBox", "Newsletter")
   @Html.Widget("feefo_serviceimage")

 

I find their approach to our relationship very professional whilst being refreshingly realistic. We now consider them to be part of our team
⭐⭐⭐⭐⭐

Technical Director, Bainbridge International

Partner with the Experts

With over 300 years of combined experience in Microsoft business solutions, our team will help to get you up and running, as well as building a partnership that keeps you supported, all from our UK offices. 

From functionality and licensing to business strategy, we like your questions; contact our experienced team for open, honest and reliable advice so that we can find the answers.