Giter Site home page Giter Site logo

vc-module-catalog's Introduction

Virto Commerce Catalog Module

CI status Quality gate Reliability rating Security rating Sqale rating

The Catalog module presents the ability to add items to your e-commerce store. It can be electronics, groceries, digital content or anything else. Items can be grouped into categories and catalogs. The item grouping is individual depending on the stock size, item types, vendors, etc.

The Catalog Module supports two types of catalogs - master and virtual.

Catalog Overview

Key features

  • Master and Virtual catalogs
  • Multiple languages
  • Multiple currencies
  • Physical and Digital products
  • Subscription products
  • SEO Information
  • Product Variations
  • Product & Category attributes
  • Flexible properties inheritance
  • Sort and filter product listing based on any attribute
  • Associations
  • Personalization
  • Categories taxonomy
  • Full-text search engine
  • Enterprise ready - supports millions of the products

Documentation

References

License

Copyright (c) Virto Solutions LTD. All rights reserved.

Licensed under the Virto Commerce Open Software License (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at

http://virtocommerce.com/opensourcelicense

Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.

vc-module-catalog's People

Contributors

akak1977 avatar alex765022 avatar alivemen avatar andrew-orlov avatar anivirtoway avatar artem-dudarev avatar asvishnyakov avatar basilkot avatar belyakovsergey avatar dmitry-virtoway avatar einlied753 avatar eugeneokhriemnko avatar flamasterr avatar getmansky avatar kostyrin avatar krankenbro avatar ksavosteev avatar malikjuly avatar mvktsk avatar n2pro avatar olegoo avatar pav-el avatar pushnitsa avatar t13ka avatar tatarincev avatar vc-ci avatar vectorfield4 avatar woland2k avatar yecli avatar zashchitnik-kuka avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

vc-module-catalog's Issues

Incorrect product properties for variation product

@krzysztofwalachmw commented on Fri Nov 17 2017

After adding product property (on catalog, for all products) and setting different values for product+it's variation, when fetching CatalogProduct via API, I keep receiving incorrect values. BackOffice UI presents proper values.

Used service:
VirtoCommerce.Domain.Catalog.Services.GetByIds(ids, ItemResponseGroup.ItemLarge)
reading variation CatalogProducts from
CatalogProduct.Variations
from which I am reading property values from:
CatalogProduct.PropertyValues.Value.

Excpected value is property assigned to "child" variation
Actual value is value from "parent" product

VC version from side menu: 2.13.15

Keep image category when creating a new image

Version info:

  • Browser version: Any
  • Module version: v2.18.7

Expected behavior

Keep image category when creating a new image

Actual behavior

I don't see any effect

Steps to reproduce

  1. Go to product images

  2. upload image and set image category and language
    image

  3. save
    image

Product startdate issue

It seems product start date is not compared in UTC format:
When adding new products, it appears the product's Start date is set to tomorrow by default. I get around this by simply modifying the value in the database to an earlier date time, otherwise it doesn't show up in the store until tomorrow

Create unique validator field

@Woland2k commented on Thu Jul 20 2017

In order to allow unique field type of validation, create a new fields in PropertyValue named "ShortTextUniqueValue" and "IntegerUniqueValue" (unique will only be available for short and integer value fields).

Then create the following type of constraints:

CREATE UNIQUE NONCLUSTERED INDEX idx_shorttextuniquevalue_notnull
ON PropertyValue(ShortTextUniqueValue)
WHERE ShortTextUniqueValue IS NOT NULL;


@OlegoO commented on Thu Aug 31 2017

  1. Display [Is Unique] checkbox [UI]
  2. Add new column ShortTextUniqueValue, IntegerUniqueValue into persistent model
  3. Add Database constrain into repository
  4. Update model mapping (Domain to Persistent, Persistent to Domain)
  5. Display validation error on save if error is occurred

Select all when adding products to virtual catalog only selects 20 in view

When selecting products for a virtual catalog the "check all checkbox" will only select the 20 products in view. I have about 500 products to add. So i need to add/map 20, go to the next page, map 20 and so on. The UI "locks up" when i do this so some times i need to go back, search again and start over.

I would love it if check all checkbox gave me all of the search results to map for my virtual catalog.

Item Associations are Not Editable

Currently when you add an item association it can only then be deleted.

I'm planning on extending the associations, which are great, but need to add additional data to each association to drive some additional requirements.

Even now it would be nice to edit the quantity or tags without having to delete and re-add the association.
I would think a blade for this should be added and the link to the associated product should be on that instead off the current list.

I'm happy to help as I need to learn how to work on blades anyway as I'll need to extend the base blade once completed.

Catalog Module Clone Functionality for Properties

@retschgi commented on Wed Jul 19 2017

Please provide detailed information about your issue, thank you!

Version info:

  • Platform version: 2.13.10
  • Module version: Catalog Module 2.18.1

Expected behavior

We often need to capture a long list of properties with different Names, but identical Dictionary-Values. It would be nice to have a "Clone"-Button. Same functional behavior as you clone a Product.

Actual behavior

screenshot

Sometimes description cointent can be empty if open it first time

Sometimes description cointent can be empty if open it first time

Version info:

  • Browser version: Chrome
  • Module version: v2.18.7

Expected behavior

Actual behavior

Steps to reproduce

  1. Go to demo site
  2. GO to 347271809 product
  3. Try open review

Open first time
image

Open second time
image

Sometimes description cointent can be empty if open it first time

Version info:

  • Browser version: Chrome
  • Module version: v2.18.7

Expected behavior

Actual behavior

Steps to reproduce

  1. Go to demo site
  2. GO to 347271809 product
  3. Try open review

Open first time
image

Open second time

Can't add product to virtual catalog when product found via search

In gitter client says:

Found a bug in adding product to virtual catalog with search: Virtual Catalog -> Add -> Link -> Select Catalog -> Search in catalog -> Select Product -> Link -> No product is added to virtual catalog
Not doing the search part, looking for it and selecting and link works fine

Move product in catalog failed

@freeken commented on Wed Oct 25 2017

Please provide detailed information about your issue, thank you!

Expected behavior

Cut product in category and paste other category

Actual behavior

Paste action returns 500 error

image

Exception text:
[NullReferenceException: Object reference not set to an instance of an object.]
VirtoCommerce.CatalogModule.Web.Model.ListEntry..ctor(String typeName, AuditableEntity auditableEntity) +38
Void .ctor(System.String, VirtoCommerce.Platform.Core.Common.AuditableEntity)(Object[] ) +141
Newtonsoft.Json.Serialization.JsonSerializerInternalReader.CreateObjectUsingCreatorWithParameters(JsonReader reader, JsonObjectContract contract, JsonProperty containerProperty, ObjectConstructor`1 creator, String id) +1720
Newtonsoft.Json.Serialization.JsonSerializerInternalReader.CreateObject(JsonReader reader, Type objectType, JsonContract contract, JsonProperty member, JsonContainerContract containerContract, JsonProperty containerMember, Object existingValue) +727
Newtonsoft.Json.Serialization.JsonSerializerInternalReader.PopulateList(IList list, JsonReader reader, JsonArrayContract contract, JsonProperty containerProperty, String id) +541

Steps to reproduce

  1. Cut product in category
  2. Navigate to other category (new category)
  3. Paste product

Can close Edit Description blade without confirmation

I can close Edit Description blade without confirmation.
Bad UI|UX, I suggest to move Save|Cancel button into toolbar

Version info:

  • Browser version: Chrome
  • Module version: v2.18.7

Expected behavior

Open Edit Description, VC should ask warning confirmation, I want to close blade when exit/close with edited description.

Actual behavior

Can close blade without confirmation and lost data

Steps to reproduce

  1. Open product
  2. Open descriptions
  3. Edit text
  4. Close blade

image

Order dictionary items in alphabetical order

Please provide detailed information about your issue, thank you!

Version info:

  • Browser version: Any
  • Module version: 2.19.3

Expected behavior

In Admin UI, see that dictionary items are ordered by value

Actual behavior

Display dictionary items as IS

Image uploading issue

@AlexMoore94 commented on Tue Mar 07 2017

It is not possible to upload a picture if an image with the same name has already been uploaded.

Ex. If you uploaded a 'picture1.png' then now any file (no matter an image, a text file, an archive or just a set of bytes) you'd upload with the name 'picture1.png' will be displayed as a previously uploaded picture.


@tatarincev commented on Tue Mar 07 2017

If you mean product images, then each product assets or image have stored in folder with have name same as product code and it is expected behavior for override if you want to upload in same folder file with name already exist in this folder.


@AlexMoore94 commented on Fri Mar 10 2017

Yes, I mean product images. When I edited svg image that was loaded to product assets and then tried to upload it product image did not change.

Cannot create property for Product

Hi,

Steps to reproduce:

  1. Click 'Manage' on catalog.
  2. Add property for Category with Property name = "Display name" and Display name = "Display name".
  3. Click 'Manage' on category inside the catalog from point 1.
  4. Add property for Product with Property name = "Display name" and Display name = "Display name".

Expected result: I have property Display name on category and product level.
Actual result: Property is not added to Products. Nothing happens.
If in step 4 I create a property named "test", save it and add another property with name and display name = "Display name" the 'test' property disappears.

Catalog module version: 2.19.2

Association tags not working

it seems like tags are not being assigned to created/updated association. I checked the behavior with your online demo BO and is the same.

Steps to follow:
Enter any product details blade
Click association widget, Add
Select any product, pick type, enter quantity and value of tag, e.g. โ€œMyTestTagโ€, the tag field is instantly highlighted in red
Click save on productโ€™s blade
Re-enter association blade

Outcome is that tag is not saved. It seems like angular is not submitting the value to the backend, please find screenshot from dev tools attached.

capture_vc_associations tag missing

Connection of accessories doesn't work for variant products

Connection of accessories doesn't work for variant products. Works for basic and parents.
Why: So machines have complete accessories attached. Better customer service by listing all variants.

Version info:

  • Browser version: Any
  • Platform version: Any
  • Module version: v2.20.0

Expected behavior

Connection of accessories doesn't work for variant products. Works for basic and parents.
Why: So machines have complete accessories attached. Better customer service by listing all variants.

image

Search throw an exception when you open Fill properties blade in product clone process

@asvishnyakov commented on Sat Sep 02 2017

Exception:

{  
   "message":"An error has occurred.",
   "exceptionMessage":"One or more errors occurred.",
   "exceptionType":"System.AggregateException",
   "stackTrace":"   at System.Threading.Tasks.Task.WaitAll(Task[] tasks, Int32 millisecondsTimeout, CancellationToken cancellationToken)\r\n   at VirtoCommerce.CatalogModule.Data.Services.CatalogSearchServiceImpl.Search(SearchCriteria criteria)\r\n   at VirtoCommerce.CatalogModule.Data.Services.CatalogSearchServiceDecorator.Search(SearchCriteria criteria)\r\n   at VirtoCommerce.Platform.Data.Common.CacheManagerExtension.Get[T](ICacheManager`1 cacheManager, String cacheKey, String region, TimeSpan expiration, ExpirationMode expirationMode, Func`1 getValueFunction, Boolean cacheNullValue)\r\n   at VirtoCommerce.Platform.Data.Common.CacheManagerExtension.Get[T](ICacheManager`1 cacheManager, String cacheKey, String region, TimeSpan expiration, Func`1 getValueFunction, Boolean cacheNullValue)\r\n   at VirtoCommerce.Platform.Data.Common.CacheManagerExtension.Get[T](ICacheManager`1 cacheManager, String cacheKey, String region, TimeSpan expiration, Func`1 getValueFunction)\r\n   at VirtoCommerce.CacheModule.Data.Decorators.CacheManagerAdaptor.Get[T](String cacheKey, String region, Func`1 getValueFunction)\r\n   at VirtoCommerce.CacheModule.Data.Decorators.CatalogServicesDecorator.Search(SearchCriteria criteria)\r\n   at VirtoCommerce.CatalogModule.Web.Controllers.Api.CatalogModuleListEntryController.ListItemsSearch(SearchCriteria criteria)\r\n   at lambda_method(Closure , Object , Object[] )\r\n   at System.Web.Http.Controllers.ReflectedHttpActionDescriptor.ActionExecutor.<>c__DisplayClass10.<GetExecutor>b__9(Object instance, Object[] methodParameters)\r\n   at System.Web.Http.Controllers.ReflectedHttpActionDescriptor.ExecuteAsync(HttpControllerContext controllerContext, IDictionary`2 arguments, CancellationToken cancellationToken)\r\n--- End of stack trace from previous location where exception was thrown ---\r\n   at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()\r\n   at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)\r\n   at System.Web.Http.Controllers.ApiControllerActionInvoker.<InvokeActionAsyncCore>d__0.MoveNext()\r\n--- End of stack trace from previous location where exception was thrown ---\r\n   at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()\r\n   at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)\r\n   at System.Web.Http.Filters.ActionFilterAttribute.<CallOnActionExecutedAsync>d__5.MoveNext()\r\n--- End of stack trace from previous location where exception was thrown ---\r\n   at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()\r\n   at System.Web.Http.Filters.ActionFilterAttribute.<CallOnActionExecutedAsync>d__5.MoveNext()\r\n--- End of stack trace from previous location where exception was thrown ---\r\n   at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()\r\n   at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)\r\n   at System.Web.Http.Filters.ActionFilterAttribute.<ExecuteActionFilterAsyncCore>d__0.MoveNext()\r\n--- End of stack trace from previous location where exception was thrown ---\r\n   at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()\r\n   at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)\r\n   at System.Web.Http.Controllers.ActionFilterResult.<ExecuteAsync>d__2.MoveNext()\r\n--- End of stack trace from previous location where exception was thrown ---\r\n   at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()\r\n   at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)\r\n   at System.Web.Http.Filters.AuthorizationFilterAttribute.<ExecuteAuthorizationFilterAsyncCore>d__2.MoveNext()\r\n--- End of stack trace from previous location where exception was thrown ---\r\n   at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()\r\n   at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)\r\n   at System.Web.Http.Dispatcher.HttpControllerDispatcher.<SendAsync>d__1.MoveNext()\r\n--- End of stack trace from previous location where exception was thrown ---\r\n   at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()\r\n   at System.Web.Http.Dispatcher.HttpControllerDispatcher.<SendAsync>d__1.MoveNext()\r\n--- End of stack trace from previous location where exception was thrown ---\r\n   at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()\r\n   at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)\r\n   at System.Web.Http.Cors.CorsMessageHandler.<HandleCorsRequestAsync>d__5.MoveNext()\r\n--- End of stack trace from previous location where exception was thrown ---\r\n   at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()\r\n   at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)\r\n   at System.Web.Http.Cors.CorsMessageHandler.<SendAsync>d__0.MoveNext()",
   "innerException":{  
      "message":"An error has occurred.",
      "exceptionMessage":"Value cannot be null.\r\nParameter name: key",
      "exceptionType":"System.ArgumentNullException",
      "stackTrace":"   at System.ThrowHelper.ThrowArgumentNullException(ExceptionArgument argument)\r\n   at System.Collections.Generic.Dictionary`2.Insert(TKey key, TValue value, Boolean add)\r\n   at System.Linq.Enumerable.ToDictionary[TSource,TKey,TElement](IEnumerable`1 source, Func`2 keySelector, Func`2 elementSelector, IEqualityComparer`1 comparer)\r\n   at VirtoCommerce.CatalogModule.Data.Services.ItemServiceImpl.LoadDependencies(CatalogProduct[] products, Boolean processVariations)\r\n   at VirtoCommerce.CatalogModule.Data.Services.ItemServiceImpl.GetByIds(String[] itemIds, ItemResponseGroup respGroup, String catalogId)\r\n   at VirtoCommerce.CatalogModule.Data.Services.CatalogSearchServiceImpl.SearchItems(SearchCriteria criteria, SearchResult result)\r\n   at System.Threading.Tasks.Task.Execute()"
   }
}

How to reproduce:

  1. Open any product
  2. Click Clone
  3. Try to open Fill properties blade

500 error occurs

To fix problem, disable indexed search in catalog, restart platform and rebuild index with deletion.

The performance problems of index and query in catalog module

Hi,We recently encountered a problem, the scene is like this: we have ten thousand products, each product has 10 attributes, so that we in the database of product attribute value (PropertyValue) will be 100 thousand, the value of the property when establishing the index you will be query the database and return all the property value. (VirtoCommerce.CatalogModule.Data.Repositories.CatalogRepositoryImpl.GetCategoriesByIds, Line174), the query time required about 1 min, we are mainly property value problems, but we found that late product pictures will encounter the same problem,can you give me a solutions?

Wrong permission checking for catalog:read permission

Platform version: 2.13.8
Module version: 2.16.7

Expected behavior:

  1. When user has no catalog:read permission, he/she must be unable to view catalog, categories and products inside them.
  2. When catalog:read permission assigned and no scopes assigned, use must be able to view all catalogs, categories and products inside them.
  3. When catalog:read permission assigned, catalog scope assigned and categories scope not assigned, user must be able to view only selected catalogs and categories inside them.
  4. When catalog:read permission assigned, catalog scope not assigned and categories scope assigned, user must be able to view only selected categories and all catalogs, which contains this categories.
  5. When catalog:read permission assigned, catalog scope assigned and categories assigned, user must be able to view only selected categories in selected catalogs (intersection).

Actual behavior:

  1. Works as expected.
  2. Works as expected.
  3. User is able to view only selected catalogs, but every catalog contains root and/or nested categories from all available to user catalogs. Also, if you try to open product page, you will receive 401 error.
  4. User is able to view all catalogs, but every catalog contains nested categories from all available to user categories and/or products from them. Also, user can't open any category.
  5. User is able to view only selected catalogs, but every catalog contains nested categories from all categories assigned to scope and/or products from them. Also, user can't open any category.

Steps to reproduce

  1. Create new user (test user) without permissions and administrator rights.
  2. Create new role (test role) and assign catalog:access and catalog:read permissions to it.
  3. Assign test role to test user.
  4. Assign security scope to catalog:access permission in test role, restart IIS (VirtoCommerce/vc-platform#732) and login to platform using test user account. The following security scopes affected:
    4.1. Only for selected catalogs
    4.2. Only for selected categories
    4.3. Combination of this scopes

This issue possible caused by this code (file VirtoCommerce.CatalogModule.Web.Core\Security\SearchCriteriaExtensions.cs):

public static class SearchCriteriaExtensions
{
    public static void ApplyRestrictionsForUser(this SearchCriteria criteria, string userName, ISecurityService securityService)
    {
        // Check global permission
        if (!securityService.UserHasAnyPermission(userName, null, CatalogPredefinedPermissions.Read))
        {
            // Get user 'read' permission scopes
            var readPermissionScopes = securityService.GetUserPermissions(userName)
                .Where(x => x.Id.StartsWith(CatalogPredefinedPermissions.Read))
                .SelectMany(x => x.AssignedScopes)
                .ToList();

            var catalogScopes = readPermissionScopes.OfType<CatalogSelectedScope>();
            if (catalogScopes.Any())
            {
                // Filter by selected catalog
                criteria.CatalogIds = catalogScopes.Select(x => x.Scope)
                                                    .Where(x => !string.IsNullOrEmpty(x))
                                                    .ToArray();
            }

            var categoryScopes = readPermissionScopes.OfType<CatalogSelectedCategoryScope>();
            if(categoryScopes.Any())
            {
                // Filter by selected categories
                criteria.CategoryIds = categoryScopes.Select(x => x.Scope)
                                                        .Where(x => !string.IsNullOrEmpty(x))
                                                        .ToArray();
            }
              
        }
    }
}

UI, UX. In product details page need to see to which virtual catalog(s) the product is linked.

Currently there is no possibility to see if the product is in any of the virtual catalogs. As a consequence when a user clones the product it can appear in the storefront as the link in the virtual catalog will be cloned as well. So after cloning it would be nice to see to what virtual catalog(s) the product belongs to and probably have possibility to add/remove the link to virtual catalog from product details page.
The task could be related to issue #31 to restrict links to virtual catalogs cloning.

The Catalog blade show wrong catalog & categories list when user is non-administrator

@asvishnyakov commented on Wed Feb 22 2017

How to reproduce:

  1. Create new user
  2. Assign role "Clothing accessory category manager" to it
  3. Open catalog, try to browse catalogs. You will see pic 1. instead of pic. 2.
    pic. 1
    pic. 2
    You may also try to assign "Electronic store administrator" role.

@OlegoO commented on Thu Oct 26 2017

Issue moved to VirtoCommerce/vc-module-catalog #64 via ZenHub

Expected behavior:

  • We should not see catalogs to which categories we don't have access for (ex. for "Clothing accessory category manager" only "Clothing" catalog should be visible);
  • In case we have selected category scope, we should have permissions to its children ("Clothing accessory category manager" has catalog:read on "Accessories" category, means he is able to open child categories like "Bags" and products as well).

Technical details:
We could properly filter catalog SearchCriteria CatalogIds and CategoryIds according to user permission scopes in SearchCriteriaExtensions.ApplyRestrictionsForUser: modify SearchCriteria with the intersection of what we are trying to find and what we could see (note that CatalogSearchService returns both searched CatalogIds and CategoryIds content, not their intersection).
In result some catalogs or categories may be filtered out if user has no access to them. E.g. if user search for A1 catalog and have scoped access only to C1 category inside A1 and to C2 category inside A2 catalog, we should add only C1 category to SearchCriteria CategoryIds, and exclude A1 catalog from SearchCriteria CatalogIds (as SearchService searches for catalogs and categories independently, and having A1 catalogId and C1 category in searchCriteria would lead to returning content of A1 catalog AND C1 content, when we have access ONLY to C1 category content).

Also need to add unit tests for the filtering method.

Incorrect product properties for variation product

@krzysztofwalachmw commented on Fri Nov 17 2017

After adding product property (on catalog, for all products) and setting different values for product+it's variation, when fetching CatalogProduct via API, I keep receiving incorrect values. BackOffice UI presents proper values.

Used service:
VirtoCommerce.Domain.Catalog.Services.GetByIds(ids, ItemResponseGroup.ItemLarge)
reading variation CatalogProducts from
CatalogProduct.Variations
from which I am reading property values from:
CatalogProduct.PropertyValues.Value.

Excpected value is property assigned to "child" variation
Actual value is value from "parent" product

VC version from side menu: 2.13.15

We should get same result either turn on or turn off [Store serialized catalog objects in the index ]

@OlegoO commented on Thu Jul 27 2017

We should get same result for different response group either turn on or turn off [Store serialized catalog objects in the index ]

Version info:

  • Module version:
    Catalog module v2.18.6

Expected behavior

Get same result for different response group either turn on or turn off [Store serialized catalog objects in the index ]

Actual behavior

For example when we turn on [Store serialized catalog objects in the index ], we don't get associations.

I think we should use Large response group when get product.

Delete property values for all objects on property deletion

If I assign a property to all products in a category and delete this property, products who had a value on this property but is now empty will not be removed when you delete the category-assigned product property.

Probably solution:
To support both types of deletion behavior, we can ask the user before deleting how he wants to delete the property. Completely with all the values, or only a property meta description with preserving values of this property in objects.

Add hints about priority order

In gitter client says:

I was playing around with the pricelist, and if i'm correct. The higher priority on Pricelist assignment get chosen to be used first. But on Item images the lowest priority is used first. It took me a while to figure it out with the pricing. I don't know if this is an issue, but maybe there should be some small "hint" text

I think it's good idea to add small hint about priority order (asc or desc) anywhere in products

How to get rid of duplicated data?

Hi,I'd search something,and search request struct like that:
{
"size" : 0,
"aggs": {
"distinct_propname" : {
"terms" : {
"field" : "propname",
"size":100
}
}
}
}
}
what should I do?Can it be realized?

Not restore sorting after reopen category blade

I open list of products blade, click label for sort by property(desc sort), product sorted. I then close this blade
image
I reopen this blade, but products not sorted by property and show sort label, for restore sorting need thre clicks by this property.
image

Write unit tests for catalog module

@tatarincev commented on Wed Jul 19 2017

Here is main topics which should be covered by Unit and E2E tests

CRUD
Catalog, categories, product, variations

Properties
Definition levels (Catalog, Category)
Applies to (Catalog, category, product, variation)
Types (Dictionary, Multilingual, Multi-value)
Value types
Validation rules
Display names for multi-languages

Inheritance
Property inheritance Catalog -> Category -> Product
Inheritance by variation from main product (Images, Descriptions, Prices, Dimensions)

Associations
Manage product associations

Virtual catalog
Virtual catalog
Categories in virtual catalog
Linking categories or products to the virtual catalog or categories

Multilingual
Descriptions, property values, SEO slugs, property display names and values for different languages

Export/Import
CSV import/export
Platform Export/Import

Partial update
Products, Categories

CatalogSearchServiceImpl sometimes returns all categories, even when specific catalogId specified

Steps to reproduce:
Create a few catalogs with each some categories. They don't have to contain products.
Then make a final catalog, but don't create categories in it.

Then, using the following search criteria, invoke the service's Search method

var _searchService = _container.Resolve<ICatalogSearchService>();
var criteria = new SearchCriteria
{
	CatalogId = catalog.Id,
	ResponseGroup = SearchResponseGroup.WithCategories,
	SearchInChildren = true,
	WithHidden = true
};
var foundCategories = _searchService.Search(searchCriteria).Categories;

You'll find that all categories created in the other catalogs are returned.

Because if (criteria.SearchInChildren) ( on line 95 ) is true, the catalogId filter ( like on line 108 ) is never set.

Image uploading issue

@AlexMoore94 commented on Tue Mar 07 2017

It is not possible to upload a picture if an image with the same name has already been uploaded.

Ex. If you uploaded a 'picture1.png' then now any file (no matter an image, a text file, an archive or just a set of bytes) you'd upload with the name 'picture1.png' will be displayed as a previously uploaded picture.


@tatarincev commented on Tue Mar 07 2017

If you mean product images, then each product assets or image have stored in folder with have name same as product code and it is expected behavior for override if you want to upload in same folder file with name already exist in this folder.


@AlexMoore94 commented on Fri Mar 10 2017

Yes, I mean product images. When I edited svg image that was loaded to product assets and then tried to upload it product image did not change.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.