Giter Site home page Giter Site logo

pixelant / pxa_product_manager Goto Github PK

View Code? Open in Web Editor NEW
11.0 3.0 11.0 13.72 MB

Product Manager. Allow to create and list products on a site. Create dynamical attributes for products. Filter by categories and attributes

PHP 86.93% TypeScript 0.29% HTML 6.51% CSS 2.20% JavaScript 1.38% Vue 2.70%
php products product-listing

pxa_product_manager's Introduction

pxa_product_manager's People

Contributors

alexander-nitsche avatar anjeylink avatar lneugebauer avatar mabolek avatar machine-user-pixelant avatar mattiasnilsson avatar mesosa avatar pixelmatseriks avatar pxamike avatar stefanwimmer128 avatar vladvilya avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar

pxa_product_manager's Issues

Unique attribute options of last Item in list are missing in Filters

Hi,

I've a problem with the attribute-fiters at the lazyList.
Typo3 version is 8.7.24-
All my attributes are of type multiSelect and I only use attribute-filters. My LazyList has no limit so every product of the allowed category is shown.

It seems that the attribute values of the last Item in a lazyList do not appear in the Filter if it's the only Item with this attribute-value.

For Example:
We have 4 Items with 2 Attributes. (Size: s, m, l, / Color: white, blue, red)

Item 1
Size: s
Color: white

Item 2
Size: m
Color: blue

Item 3
Size: l
color:blue

Item 4
Size: l
color:red

The option 'red' of 'color' will be disabled (hidden) in the filter.
The ID of the value is not included in the ajax-response of type 201701 (availableOptionsList), so it doesn't seem to be a javascript problem

If we change the order of the products to 1,2,4,3 then everything is shown in the filter ('blue' and 'l' are in use by products that are not the last item in list, so they appear).
Thanks for checking
Constantin

Single View Gallery show more than one?

Hello,

The gallery is by default set to only show one image, with the option to cycle through all with navigation arrows

is it possible to show more than one image in the gallery?

Creating of Product in Product Manager Modul, doesn't asign parents category

Hello dear Pixelants Team,

if i use the Product Manager Modul instead of the List View to create a Product,
the automatic assigned Category is just the Child Category, which makes a problem,
if you doesn't add the parents Category too.

It won't be shown inside of the Product Manager afterwards if not set.
Is it possible to automaticly add the parents category, or change the view to also show the product without manually changing and adding the parent?

Gallery Slider on Product-Detail not working when use routeEnhancers

The Gallery Pagination (Slider) not working when using routeEnhancers

myRouteEnhancers:

routeEnhancers:
  ProductPlugin:
    type: Extbase
    limitToPages: [12,761,762] #Product Category/Detail
    extension: PxaProductManager
    plugin: Pi1
    routes:
      
      # Just product in URL when categories are excluded
      -
        routePath: '/{product_title}'
        _controller: 'Product::show'
        _arguments:
          product_title: 'product'

      # One level categories
      -
        routePath: '/{category_title_0}'
        _controller: 'Product::list'
        _arguments:
          category_title_0: 'category_0'
      -
        routePath: '/{category_title_0}/{product_title}'
        _controller: 'Product::show'
        _arguments:
          category_title_0: 'category_0'
          product_title: 'product'

      # Two levels
      -
        routePath: '/{category_title_0}/{category_title_1}'
        _controller: 'Product::list'
        _arguments:
          category_title_0: 'category_0'
          category_title_1: 'category_1'

      -
        routePath: '/{category_title_0}/{category_title_1}/{product_title}'
        _controller: 'Product::show'
        _arguments:
          category_title_0: 'category_0'
          category_title_1: 'category_1'
          product_title: 'product'


      # Three levels
      -
        routePath: '/{category_title_0}/{category_title_1}/{category_title_2}'
        _controller: 'Product::list'
        _arguments:
          category_title_0: 'category_0'
          category_title_1: 'category_1'
          category_title_2: 'category_2'

      -
        routePath: '/{category_title_0}/{category_title_1}/{category_title_2}/{product_title}'
        _controller: 'Product::show'
        _arguments:
          category_title_0: 'category_0'
          category_title_1: 'category_1'
          category_title_2: 'category_2'
          product_title: 'product'

      # Four levels
      -
        routePath: '/{category_title_0}/{category_title_1}/{category_title_2}/{category_title_3}'
        _controller: 'Product::list'
        _arguments:
          category_title_0: 'category_0'
          category_title_1: 'category_1'
          category_title_2: 'category_2'
          category_title_3: 'category_3'

      -
        routePath: '/{category_title_0}/{category_title_1}/{category_title_2}/{category_title_3}/{product_title}'
        _controller: 'Product::show'
        _arguments:
          category_title_0: 'category_0'
          category_title_1: 'category_1'
          category_title_2: 'category_2'
          category_title_3: 'category_3'
          product_title: 'product'

    defaultController: 'Product::list'
    aspects:
      category_title_0:
        type: PersistedAliasMapper
        tableName: 'sys_category'
        routeFieldName: 'pxapm_slug'
      category_title_1:
        type: PersistedAliasMapper
        tableName: 'sys_category'
        routeFieldName: 'pxapm_slug'
      category_title_2:
        type: PersistedAliasMapper
        tableName: 'sys_category'
        routeFieldName: 'pxapm_slug'
      category_title_3:
        type: PersistedAliasMapper
        tableName: 'sys_category'
        routeFieldName: 'pxapm_slug'
      product_title:
        type: PersistedAliasMapper
        tableName: 'tx_pxaproductmanager_domain_model_product'
        routeFieldName: 'slug'

PageTypeSuffix with working wishList pageType & lazyLoading pageType

Hello,

i was trying to Map PageType 1533906435 to sitemap.xml but then the Ajax calls (Lazy Loading List etc.) does not work anymore

My Configration:

routeEnhancers:
	PageTypeSuffix:
	    type: PageType
	    default: /
	    index: index
	    map:
	      /: 0
	      sitemap.xml: 1533906435

does anybody have a working configuration for me?

Thank you very much

Is it possible to add "freetext" filter for Lazy List attributes that aren't options?

F.ex. I wan't to be able to filter by the attribute "Length", but there are more than hundred different values, so it wouldn't make sense to create options for all of these values. It wouldn't be userfriendly to populate a dropdown with all these values in the filter either. Would it be possible to create som kind of "freetext" type filter?

How to hide Static Sites from URL

I have the following structure:

-- Level1: Page "products" with ProductManager Plugin "list view"
Product Page: "category"
= List of all Categories

--- Level2: Page "category" with ProductManager Plugin "list view"
Product Page "detail"
= List of al Products of this category

---- Level3: Page "detail" with ProductManager Plugin "single view"
Product Page "same"
= Product Detail

With using the RoutingExample i get URLs like
for Level2: mydomain.de/products/category/{category_title_0}
for Level3: mydomain.de/products/category/detail/{category_title_0}/{product_title}

what i want:
for Level2: mydomain.de/products/{category_title_0}
for Level3: mydomain.de/products/{category_title_0}/{product_title}

if i add ../ to the routePath i get an 500-Error
what i tried:

# One level categories
      -
        routePath: '../{category_title_0}'
        _controller: 'Product::list'
        _arguments:
          category_title_0: 'category_0'
      -
        routePath: '../../{category_title_0}/{product_title}'
        _controller: 'Product::show'
        _arguments:
          category_title_0: 'category_0'
          product_title: 'product'

How can i achieve the url without the static pages of level2/3 in the url?

Thank you for your help

Create UML diagram

Illustrate the object and data structure of the extension.

  • Create diagrams
  • Add to documentation

Categories & Localization (translation) problem

Hi,
There is something terrible wrong in my installation.
I'm using two language setup, and translated categories won't work properly.
Case: cat tree like:

  • Main category  & Translate : Main category
    -- Sub Category & Translate : Sub Category
    Both subcategories (def lang and translation) become children's of original category "Main category" - screen attached.

src-3

Result of this is that i don't get any categories (navigation) or products in FE for second language.

What's more, when browsing products [detail view] in product catalog in default language, parent categories are translated to second language.

I check for DB relations and Structure, also TCA - it's ok. My Environment also give no problems in tests.

My setup:
TYPO3 9.5.18
PHP 7.3.11 (tested also on 7.2) MySQL 5.7.28
plugin version 9.9.2 -> updated to (9.14.1) after detecting a problem.
Also it would be nice to see the plugin update in TYPO3 TER.

Thanks.

Language fallback for products

I am currently using TYPO3 9.5.8 and pxa_product_manager 9.8.6.

My customer has the requirement, that translated products should use fallback at least for attribute values (or for the whole product dataset with all subs). If a product is translated into 5 more languages, he wants to change the attribute values in the default language only (of course: only numeric values, not any values that need translation).

After hours of researching through your extension and the core, I could not figure out a way to do this. Is there a way ´? Or wouldn't this be a nice feature?

Best regards (your extension is awesome, I like working with it as it is so dynamic)!

minor css/less issue.

Hi!
I think line 16 and 27 in pxa_product_manager/Resources/Private/Less/product_manager.less may need replacing:

vertical-align: auto;

There's no 'auto' setting for vertical-align, so either it could be 'middle', 'initial' or 'baseline' (depending on what result you want to achieve)

attributes in attributesGroupedBySets empty

Hello,

i have 3 attributeSets and want do display them separately from each other.
In the product Object i have the sets as objects in the attributesGroupedBySets but in the attributeSet Object the attributes storage Object is empty

in the attributes Object directly inside the product i have all the attributes from the 3 sets.

I needed that the attributes object in the attributesGroupedBySets object be filled with the Attributes of this set

Thank you very much

Bildschirmfoto 2019-11-14 um 15 41 46

Import logs fill up disk

We are experiencing an issue where the import log is filling up the disk space. Would it be possible to disable the logging? Or maybe the other way around, opt in for logging?

Controller Navigation and Product not possible on one page

We use "List view (Possible navigation)" and "Navigation menu" on one page. After updating from 9.6.3 to 9.7.1 we got the following error:
TYPO3\CMS\Extbase\Mvc\Exception\InvalidControllerNameException
The controller "Product" is not allowed by plugin "Pi1". Please check for TYPO3\CMS\Extbase\Utility\ExtensionUtility::configurePlugin() in your ext_localconf.php.

Wrong detection of PageUid in LinkViewHelper

In latest version (9.7.1), there is a typo in class LinkViewHelper:

In line 61 it should be
$pageUid = intval($this->arguments['pageUid'] ?? $GLOBALS['TSFE']->id);
instead of
$pageUid = intval($this->arguments['pagePid'] ?? $GLOBALS['TSFE']->id);

Solr Search Product Attributes are not getting indexed!

Hello guys,

i used the typoscript files for the Solr Settings,

and i can't get the Attributes to be indexed.

i removed the commenttags to allow following code to be used:

    attribute_name = USER
    attribute_name {
        userFunc = Pixelant\PxaProductManager\UserFunction\SolrIndexSingleAttributeValue->getSingleAttributeValue
        identifier = name
    }

Could you tell me if something is being forgotten from my side?

Categories in Subfolders and Relations between Products

I have 2 problems and i’m not sure if it is an error in the extension or intended behavior. I use Typo3 9.5.4 with PHP 7.2 and the latest pxa_product_manager.

Nr. 1
I have a main folder Productstorage and inside this Folder i have sub folder Cars and Boats. I created Categories inside Productstorage like this, main categorie Cars and sub categorie big, medium and little, same with the Boats.

If I create a product inside of Productstorage everything is fine, I can chose a categorie and the product is displayed in the frontend. But if i create the product in one of the sub folders Cars or Boats i can’t chose a categorie because they are not there, it looks like i dont have any categories.

Did I something wrong or is it the intended behavior and everything should be in one folder?

Nr. 2

Its about the relations between products, lets say I have Product 1 and Product 2. When I make Produkt 1 related to Product 2, Product 2 is not automatically related to Product 1, I need to go to Product 2 and chose Product 1 as related.

In my Opinion it would make more sense(and in most Shops it is like this) when Product 1 is chosen to be related to Product 2 then Product 2 should be automatically related to Product 1 without an extra step.

English is not my strong side, I hope it is clear what I tried to describe, if something is not I gladly provide more info.

Filtering with attributes - multilanguage

When adding a new product in the default language (0) everything works.
Now when we translate a product, the field 'l10n_parent' of that (translated) product in the table 'tx_pxaproductmanager_domain_model_attributevalue' remains empty (or zero) afterwards.

This seems to lead to a bug where the filters do not work when we try to use attributes for filtering in the second (translated) language.

If we add the correct value (uid of the default-language record) for 'l10n_parent' into the table 'tx_pxaproductmanager_domain_model_attributevalue' manually the filtering works.
If we do not add the value by hand filtering over attributes does not work...

If Backend User(not admin) tries to add new Product then error with No Attribute Error

Hello PPM Team,

i also got following error, even if i setup just 1 language and deleted the rest.

If i allow a non admin user to try to add a product, the category is not automatic assigned to it,
the product is created but without any category, therefore the user can't see it inside of the Product Manager Backend Menu.

If i add a product as admin it is working.

following code is triggered from file /ext/pxa_product_manager/Classes/Backend/FormDataProvider/ProductEditFormInitialize.php

        if ($attributeHolder->getAttributes()->count()) {
            $this->populateTCA($attributeHolder->getAttributeSets()->toArray(), $result['processedTca']);
            $this->simulateDataValues($attributeHolder->getAttributes()->toArray(), $result['databaseRow']);

            if (is_array($result['defaultLanguageDiffRow'])) {
                $diffKey = sprintf(
                    '%s:%d',
                    $result['tableName'],
                    $result['databaseRow']['uid']
                );

                if (array_key_exists($diffKey, $result['defaultLanguageDiffRow'])) {
                    $this->setDiffData(
                        $result['defaultLanguageDiffRow'][$diffKey],
                        $result['defaultLanguageRow']
                    );
                }
            }
        } else {
            $this->showNotificationMessage('tca.notification_no_attributes_available');
        }

Missing documentation about compare products

There is no documentation about the "compare products" view (how to enable, how to use); plus I don't understand the difference between "Compare view" and "Compare pre-view".

Grouped list view has a missing ViewHelper

I can not display the Grouped list view because the viewhelper LinkViewHelper is missing. It is no longer present in the last version.

TYPO3 9.5.7
Product Manager 9.8.1

Discussion/Change: Attribute sets

Hi,

I think attribute sets should not be bound to a category but instead directly to a product. If you bind attribute sets to categories, you are not able to have categories with different products. In medicine, for example, there are pills and ointments. Let's say we have a category "Pain" and now we have different types of products in this category that cannot have different attributes because the sets are tied to categories and not to products.

I started a branch which moves the attribute sets from categories to products here:
https://github.com/jacobsenj/pxa_product_manager/tree/feature/link-attribute-sets-to-products-insteadof-categories

What do you think about it?

Cheers
Jens

Add link text to attribute type link

I suggest to add a new field to attribute type link (type6) where it is possible to set the link text. Now it displays the attribute name as link text so it is displayed twice.

Single View Page ignored – Still using List View Page

When I'm setting up the List-View-Plugin and defining the product page, it still uses the List-View-Page to show the selected product in single view.

I've already set up the Single-View-Plugin on the product page.

I want to use an own page for the Single-View, because else the content above the List-View-Plugin is also shown on the Single-View-Page.

I'm using:
Typo3 9.5.8
Product Manager 9.9.0

Required argument "demand" is not set for Pixelant\PxaProductManager\Controller\AjaxProductsController->ajaxLazyList.

The extension ran perfectly on my development server. After I moved the website to my client's live server, the lazy list stopped working.

The products are no longer loaded, instead only the loading icon rotates and the console throws an error 500.

I was able to trace the error back to the ajaxLazyListAction, because Ajax gives me the error:

"Required argument" demand "is not set for Pixelant \ PxaProductManager \ Controller \ AjaxProductsController-> ajaxLazyList."

If I display data from ProductManager.LazyLoading.js in the console, however, this is filled and looks exactly the same as on my development server.

Even so, it does not seem to arrive at ajaxLazyList.

All other product modes work (e.g. list view).

Did someone have a similar case?
Does pxa_product_manager need special tools that may run on the old, but not on the new server?

I use:
Typo3 9.5.13
Product Manager 9.9.0
php 7.3.12

List View on Product Detail

i have the grouped list view in the footer of my Site.
it works well except if i am on the product detail page (one static page) then the list in the footer renders the product detail and not the list anymore. Same if i place the list plugin directly in the product detail page.
Is there a config or something that the list always render listing?

Thank you

Feature Request: Custom sort order

There are times, especially when an alphabetical list of products includes numbers in their names, when a custom sort order would be useful. I could fudge it by using Date order and adjusting the dates manually. Now when we have a list like:

  • 6 kilo weight
  • 8 kilo weight
  • 12 kilo weight
    the 12 kilo weight is listed first alphabetically.

It would be nice to be able to control that sort order.

Thank you

Product has no MainImage

Variable {product.mainImage} is empty in single view of a product even if one of the products images is marked as Main Image.

Assignment of subcategories (multilanguage)

My customer has a large product range with categories and subcategories. On the list page in page tree, we chose your Plugin with "List view (Possible navigation)". In the default language everything works fine: the page shows me all available subcategories first, then I can click into the subcategorie to show the related products. Plus I can see the subcategories in backend, tab "Sub-Categories" in the super category.
When we translate the products, the assignment of subcategories does not seem to work. Neither in frontend nor in backend tab "Sub-Categories", the sub categories are available (thus assigned as parent category of the subcategory dataset itself).

Remove SKU from URL

I see in the configuration for realURL mention of "$enableSkuInUrl" in Classes/RealUrl/realurl.php.

Where can I set that to 0?

Question: RouteEnhancers without Category in the Path

Hello,

is it possible to display the "One Level" routes without the argument category_0?
if i leave out the category_title_0 in the routePath it appears (with cHash) as parameter to the url.

How it is now: https://mydomain/products/product-title?tx_pxaproductmanager_pi1%5Bcategory_0%5D=4&cHash=1s387d864drtac359cb147d1c6ea896
what i want: https://mydomain/products/product-title

Thank you

routeEnhancers

I try to use routeEnhancers on Typo3 9.5.4 and pxa_product_manager 9.9.1 but i get error:

Parameter "s718ea0134965a67874a698382ae9a94" for route "tx_pxaproductmanager_pi1_0" must match "[^/]++" ("/mycategory-name" given) to generate a corresponding URL.

How i can resolve it?

I suggest to add another field for to "list view products by categories" and just "list products"

I suggest to add another field (for example: PageId for list display) for to "list view products by categories" and just "list products"

cat_six_step

and here why:

On the page "List categories" I show all categories
cat_one_step

On the page "List product category" I show only one category
cat_two_step

When I click on the product I see detail page of product and it is good
cat_three_step

When I click on another category I see detail page with message "Not found - Product was not found".
I have details page of product separately...
cat_four_step

"Not found - Product was not found"
cat_five_step

It is because category to reference on the page...,
..., What I added for configuration and showing detail product
cat_seven_step

This page is configured only showing detail product
cat_eath_step

so as it is made for example in the ext:news
cat_night_step

Sorry for my English, I hope you understood me...

Module on subpage not return on main single view page

I have 2 product manager modules on home page:
navigation in sidebar and list view in main column
list view is only on home page but navigation is on few subpages where i dont want to see proudcts e.g. About us, Contact, 404 (custom error page)
When i'm on subpage the navigation module has bad linking. It add /404 before /category although i set Product page (empty value = current page) as Home so my link looks like:
my-site.com/404/category but it should go to my-site.com/category
In older version (9.6) of plugin it works well

MySQL 5.7 / MariaDB 10.2.21 - SQL error: incorrect integer value

There's an incompatibility issue with MySQL versions greater 5.7. When editing a product, go to the "Access" Tab and remove a previously added start date. Now, you can't save the data because of the following error:

SQL error: 'Incorrect integer value: '' for column database.tx_pxaproductmanager_domain_model_product.starttime at row 1' (tx_pxaproductmanager_domain_model_product:1)

Prepare test data

  • Large data set for peformance testing
  • Smaller data set for functional tests

Lazy List View – No Single View

When I'm setting up the Lazy-List-View (because I want to use the filters), the products can't be shown in the Single View.

It just reloads the Lazy-List-Page with all products unfiltered again.

In the URL the showAction seems to be called, but nothing happens.
(…?tx_pxaproductmanager_pi1%5Baction%5D=show&tx_pxaproductmanager_pi1%5Bcategory_0%5D=1&tx_pxaproductmanager_pi1%5Bcontroller%5D=Product&tx_pxaproductmanager_pi1%5Bproduct%5D=1&cHash=b3ffd2365cbb1cd33a29f5e602dbbe42#pm%3A%7B"limit"%3A0%7D)

There are no errors in the browser console.

I'm using:
Typo3 9.5.8
Product Manager 9.9.0

npm install does not work

As described in the readme of this project you rely on node.js for a lot of your tooling. However when running npm install this happens:

jjacobsen@J > ~/Projects/extensions/pxa_product_manager (feature/link-attribute-sets-to-products-insteadof-categories) npm install
npm WARN deprecated [email protected]: This module moved to @hapi/hawk. Please make sure to switch over as this distribution is no longer supported and may contain bugs and critical security issues.
npm WARN deprecated [email protected]: This module moved to @hapi/sntp. Please make sure to switch over as this distribution is no longer supported and may contain bugs and critical security issues.
npm WARN deprecated [email protected]: This version has been deprecated in accordance with the hapi support policy (hapi.im/support). Please upgrade to the latest version to get the best features, bug fixes, and security patches. If you are unable to upgrade at this time, paid support is available for older versions (hapi.im/commercial).
npm WARN deprecated [email protected]: This version has been deprecated in accordance with the hapi support policy (hapi.im/support). Please upgrade to the latest version to get the best features, bug fixes, and security patches. If you are unable to upgrade at this time, paid support is available for older versions (hapi.im/commercial).
npm WARN deprecated [email protected]: This version has been deprecated in accordance with the hapi support policy (hapi.im/support). Please upgrade to the latest version to get the best features, bug fixes, and security patches. If you are unable to upgrade at this time, paid support is available for older versions (hapi.im/commercial).
npm ERR! Error while executing:
npm ERR! /usr/local/bin/git ls-remote -h -t https://github.com/FrDH/jQuery.TosRUs.git
npm ERR!
npm ERR! remote: Repository not found.
npm ERR! fatal: Repository 'https://github.com/FrDH/jQuery.TosRUs.git/' nicht gefunden.
npm ERR!
npm ERR! exited with error code: 128

Tested on node Versions v12.12.0 and v10.17.0

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.