User posts

9 years ago

Thank you, i going to try it :)

I can download it, with the Fashion theme ? (because i can't download only the plugin.)

9 years ago

I'm not create my products at hand, they are create automatically by a synchronization.
But it's normal, it's a exception but i can't do another way. Because my grouped products can have one or more "simple product"

9 years ago

Hi everyone,

I have a weird problem. On the Catalog page, i can add Simple or Grouped Product.
But when i have only one simple product IN a grouped product the plugin show "It's not a simple product. You can't purchase it." whereas i've Two or more simple product in my grouped product it's work fine, in the popup i show my simple product.

Do you know why it didn't work with grouped product who contains one simple product ?

New Field
10 years ago

Hi indeed,

My new field is called "isInMegaMenu", and it's meant to provide a footer area for the Home page categories, similar to the way the Featured Products show on the home page.

I added the field to:
- Database
- Core.Domain.Catalog.Category
- Web.Models.Catalog.CategoryModel
- Admin.Models.Catalog.CategoryModel
      public partial class CategoryModel : BaseNopEntityModel, ILocalizedModel<CategoryLocalizedModel>
      public partial class CategoryLocalizedModel : ILocalizedModelLocal

- Libraries\Nop.Data\Mapping\Catalog\CategoryMap.cs
adding the line this.Property(c => c.isInMegaMenu) in the CategoryMap class

- Added the field to the Admin View:
- Added a resource for the field header

elsewhere my field get a goog value but not in MegaMenuView.

So i created a Html Extension to do that, i know that it's a good way to do but it's working, so if someone have another idea, i take it :)

        /// <summary>
        /// Test if CategoryId is enable to add in MegaMenu
        /// </summary>
        /// <param name="html">HTML helper</param>
        /// <param name="CategoryId">CategoryId</param>
        /// <returns>bool</returns>
        public static bool IsInMegaMenu(this HtmlHelper html, int CategoryId)
            bool ret = false;
            var RepoCateg = EngineContext.Current.Resolve<IRepository<Category>>();
            var cat = RepoCateg.Table.SingleOrDefault(x => x.Id == CategoryId);
            if (cat != null)
                return cat.isInMegaMenu;
            return ret;

And My Call is :

@foreach (var category in Model.CategoriesModels.Where(x => Html.IsInMegaMenu(x.CategoryModel.Id)) {
@foreach (var category in Model.CategoriesModels.Where(x => !Html.IsInMegaMenu(x.CategoryModel.Id)) {

New Field
10 years ago


I'm having trouble with a retrieving value of a field
I need to add categories in menu in additional "Categories Menu", i'm explain.

By Default it's possible to do :
Home, Categories
Home, Categ1, Categ2, Categ3

But i need to do that :
Home, Categories, Categ1

So, I added a new boolean field "IsInMenu" to exclude categories in sub "Categories" and Include it in First "<LI>" .

I edited Views to add my loop and my restriction but my field is always always "false" when I see in my administration this field is "true".

Do you have somes Ideas, to get my field's value and why is't not getting?

In SpecificationFilter.cshtml

@foreach (SpecificationFilterItem specificationFilterItem in specificationFilterGroup.FilterItems)
@foreach (SpecificationFilterItem specificationFilterItem in specificationFilterGroup.FilterItems.OrderByDescending(x => x.DisplayOrder))

And in SpecificationAttributeService

      return _specificationAttributeOptionRepository.GetById(specificationAttributeOptionId);


var _SpecificationAttributeOption = _specificationAttributeOptionRepository.GetById(specificationAttributeOptionId);
            _SpecificationAttributeOption.DisplayOrder = _SpecificationAttributeOption.ProductSpecificationAttributes.Count;
            return _SpecificationAttributeOption;


Thank you for your answer, it's working very well with Attributs.

But, i want doing the same thing with SpecificationAttributesOption (my color) and count is not available with.

By default,  the list returned by 'ProductLoadAllPaged' is good order and when i not use NopAjaxFilter.
But when NopAjaxFilter is enable my list is not order like i want.

I know for it, normaly we use 'DisplayOrder' but my color need to be order with the current product list. And its possible on my categoriy one Black is in more  product than blue but on category two Blue is in more product than Black.

Explain :

Categorie 1 :
-- Product 1 : Color is Black
-- Product 2 : Color is Blue
-- Product 3 : Color is Blue

Categorie 2 :
-- Product 5 : Color is Black
-- Product 2 : Color is Blue
-- Product 4 : Color is Black
I would have
Categorie 1
Color :
- Blue
- Black
Categorie 2
Color :
- Black
- Blue

But i always have
Color :

In "Nop.Web.Models.CatalogPagingFilteringModel" I've already try to replace
SpecificationAttributeOptionDisplayOrder = sao.DisplayOrder,
SpecificationAttributeOptionDisplayOrder = sao.ProductSpecificationAttributes.Count,

Hi all,

We have bought Nop Beauty Responsive Templates, and before to install it, we have an order attributes by number of product who contains this attribute.
With :
Product_1 contains size : XS, S, L, XL
Product_2 contains size: S, XL, XXL
Product_3 contains size: S,L, XXL
attributs will be display like that :
size :
1. S (3)
2. L (2)
3, XXL (2)
4. XL (2)
5, XS (1)

To do this we had edit : ¨ProductLoadAllPaged" and replace:
    INSERT INTO #FilterableSpecs ([SpecificationAttributeOptionId])
    SELECT DISTINCT [psam].SpecificationAttributeOptionId
    FROM [Product_SpecificationAttribute_Mapping] [psam] with (NOLOCK)
    WHERE [psam].[AllowFiltering] = 1
    AND [psam].[ProductId] IN (SELECT [pi].ProductId FROM #PageIndex [pi])
by that
    INSERT INTO #FilterableSpecs ([SpecificationAttributeOptionId])
    SELECT [psam].SpecificationAttributeOptionId
    FROM [Product_SpecificationAttribute_Mapping] [psam] with (NOLOCK)
    WHERE [psam].[AllowFiltering] = 1
    AND [psam].[ProductId] IN (SELECT [pi].ProductId FROM #PageIndex [pi])
    group by [psam].SpecificationAttributeOptionId
    order by count([psam].ProductId) desc

But with NopAjaxFilters this order is not keep because NopAjaxFilters use a new procedure with encryption. So we have find this procedure without encryption to edit it, again (it's was not easy to do this but we have do it).

In your procedure we have try to do that, replace:
    --INSERT INTO #FilterableProductVariantIdsDistinct ([ProductVariantAttributeId])
    --SELECT DISTINCT ProductVariantAttributeId
    --FROM #FilterableProductVariantIds
by that
    INSERT INTO #FilterableProductVariantIdsDistinct ([ProductVariantAttributeId])
    SELECT ProductVariantAttributeId
    FROM #FilterableProductVariantIds
    GROUP BY ProductVariantAttributeId
    ORDER BY count(ProductId).

But order not working whatever we edit, this list is only order by Name. (i have try to manufacturer, but it's the same things).

We Need Help.

PS : Why do you Encrypt your StoredProcedure ??