Hybris: Display Custom Promotion only in Product Cockpit - sap-commerce-cloud

I have created a custom promotion in hybris by overriding the default ProductPercentageDiscountPromotion. But I was wondering how to display the new custom promotion only and not the old original one on Product Cockpit.
I found there are two files
1. wizardConfig_PromotionUserRestrction.xml
2. editorArea_Category.xml
These files contain a property "AbstractPromotionRestriction.promotion" which has its parameter entry "excludeCreateTypes" that contains the list of Promotions to exclude eg:
value="ProductBundlePromotion,ProductOneToOnePerfectPartnerPromotion..."
When I write the ProductPercentageDiscountPromotion name in this list and initialize the Hybris system from Admin console, then this old promotion is not visible in Product Cockpit. But I cannot initialize, since it will erase all the project data. I have to update the Hybris system to do this, but it's not working. Any ideas?
PS: I don't have authority to post this question on Hybris Forum.
Many thanks!

Updates in the cockpit xml files (like configuration for editor area, wizard, etc) are successfully applied after:
run an update in /hac + set the check-box for product cockpit during that;
reset user settings in cockpit menu.

Related

How to override a JAMS extension

After I installed the JAMS product for v2019R1, I notice the field SOOrder.customerOrderNbr has a different label. I assume this happens, due to a graph or cache extension. The client wishes to change the label. Since I do not have the JAMS source code, what is the best way?
I have JAMS installed, but it doesn't change my field name, however, my approach would be to:
Add a new customization project
Put a 2 in the "Level" column
Add Screen SO301000
Locate and change the Display Name to your desired text
Publish your project
The key here is using the 2 in the "Level" column to resolve a conflict. See Acumatica Wiki reference for details

Liferay 7 Eclipse IDE override default categories behaviour

I need to create a portlet in order to change the default category behaviour/interface in Liferay 7.
My objective is to duplicate assetcategory table, expand and change its columns, and use this new table as a reference for categories within Liferay backend.
Therefore there are three key points my portlet has to update:
The category organization UI to create/update category tables on
DB. I’m able to create a new Liferay module project (panel-app template) which can present the UI backend interface from the side menu and interact with the DB.
Override default category selection panel within web content
properties panel (metadata > category select). I can create a new
Liferay module project fragment to override the
com.liferay.asset.categories.selector.web, however I’ve noticed I can
select only one file path (eg. META-INF/resources/view.jsp)
Override default asset publisher filter behaviour in order to allow
my custom categories selection. I’ve not yet investigated this
point.
I’m currently stuck at point 2 because after creating a new Liferay module project fragment, set the target Host OSGI Bundle to com.liferay.asset.categories.selector.web (which I believe is the correct one, please correct me if it isn't) and selecting the overridden files as META-INF/resources/view.jsp, I can’t proceed to redraw the category selection interface.
Here my attempts:
Updating the code view.jsp (eg. adding some text string) I can correctly
see them in the portlet.
Removing/commenting all the code in view.jsp an error is shown:
Asset category selector is temporarily unavailable
Selecting all three files available to be overridden in the main
portlet wizard (META-INF/resources/view.jsp, init.jsp and
init-ext.jsp) and updating view.jsp (like the first example) nothing
happen in the portlet
Some screenshot below:
Case 1
Case 2
Case 3
I need to create a portlet in order to change the default category
behaviour/interface in Liferay 7. My objective is to duplicate
assetcategory table, expand and change its columns, and use this new
table as a reference for categories within Liferay backend.
Just this alone sounds like a humongous task, bigger than what would fit into a stackoverflow question.
AssetCategories are used in every single content type, e.g. WebContent, Blog Articles, Message Board Posts, Wiki Pages, Knowledgebase Articles etc.. Replacing such a vital component by your own implementation is something that will safely ruin your next upgrade experience, because there you'd have to do this again, bringing your code to whatever changes will be made in the next version. And this "upgrade" includes Security Patches.
Overall, your premise sounds to me like a x-y problem and I'd rather recommend that you step back from your intended solution and look for other options to meet your business requirements. There surely are some.
My recommendation: Rather add something to the platform than ripping out a very central and generic component, reimplementing it in a business-specific manner. If you need a different filtering than Asset Publisher provides: Build your own Asset Publisher and implement the business specific rules there. Or think again about organizing your content in a different way than you currently organize it.
Unless you're already a Liferay Core Developer and are asking for a hint on how to change the implementation for the next version. But your question history here doesn't look like it.

Dynamic columns in liferay-ui:search-container?

I have tried the liferay-ui:search-container to fetch and display the database table records on UI in a table/grid format. By using the liferay-ui:search-container I am getting the output as shown below,
I am fetching the USER_ table records in the above screen shot.
Problem:
I wanted to make the grid columns dynamic like, I wanted to enable an option for end user to remove the unwanted columns and add the wanted columns in the respective grid/table.
EX:
In the above screen shot the the following columns are showing in a grid.
First Name, Last Name, Screen Name, Job Title, Organization, User Groups
Now If user wants to remove Job Title and wants to add Greetings and Mail Address columns on UI with click events with out touching/ modifying the code.
How can I implement this feature?
Note:
I need to implement this feature for custom models.
Queries:
1) Is there any api/methods to implement/enable this feature?
2) If not how can I do implement the steps? Any suggestions or steps to achieve this task?
This can be achieved by adding a configuration page to your portlet.
You can develop portlet configuration page which can have required options to be configured and save as portlet preferences.
Later on while displaying the search container you can retrieve the portlet preferences and display only those columns which were selected in the configuration form.
Here is a link on how to develop the portlet configuration using portlet preferences: Implementing Configurable Portlet Preferences

Hybris product configuration

I'm having a problem with the product list configuration of hybris. I'm more than sure that the answer of this issue is pretty simple, but I can't solve it. So here is the problem.
I have one homepage with one link, assigned to the navigation bar. Whenever the link is pressed I want to get redirected to a product list page where a list of all products of certain category will be displayed. However, I managed to do this, but anytime I change the name of a certain product something happens and the page stops displaying. It throws an error saying it is looking for the old name of the product I've edited.
For example, if the product name is Product1, the page is displayed, then I go and change the name to Product2 and when I press on the link, it throws an error Product with code 'Product1' not found! If I want this to be fixed, I have to create a new Product1 and I'm more than sure that this is not the right way it should work. Is there any synchronization that I need to do after making changes in the catalog or something of this kind? Any help will be appreciated!
I recommend you try two things that may resolve your issue.
When you make a change to a product, you will more than likely do it to the staged catalog. This is your intermediary to ensure information is correct before going live (especially useful if you have a workflow process in place). In order to synchronise this information, you will need to login to the product cockpit (your-server:9000/productcockpit). Find the staged version of the catalog on the left hand menu, right click on it, and select "Sync Selected Versions". This will transfer your information into the Online catalog.
When you arrive on the product listings page and the search results page, the information contained is more than likely indexed by SOLR. In order for any changes to be reflected, you will need to re-index. To do this:
Go to the HMC and login (your-server:9000/hmc/hybris)
In the navigation menu to the left, click on System > Facet Search > Indexer Operation Wizard
A pop-up window will appear. Select the Indexer operation as update and the Solr configuration to the index associated with your website.
Click start and the re-indexing will begin. It shouldn't take too long
If this fails, then you may need a full re-index instead
I hope this will help; I recommend you set up a Cronjob to re-index periodically in future, to keep your website up to date with your product management.
PLP(Product Listing Page) fetches data from Solr. So whenever you are changing anything that is referred in the PLP, you need to update your indexes in Solr.
As you have changed the product name, update the Solr index from hmc.

Drupal6 - product comparison

Hi
I have not using any shopping cart module, just created a content type (product) and defining several field(attribute) for each product feature.
I want to ask is there any module in Drupal for product comparison or field comparison?
Thanks
No, but there is a way to do it with the Flag module and Views. It will take more work than just turning on a module, but the outcome is the standard product comparison you're looking for. See this article.
The article is no longer online: here the content of the original post.
Ubercart Product Comparison
For me, using Ubercart in Drupal as an e-commerce solution for your website is the way to go. I have been using Ubercart for years now for a number of web design and development projects, and there are a massive amount of contribute modules to beef it up. One feature that I have been keen to work on is a Product Comparison feature, which would allow users to select products and have them display on a page, providing them with a nice and easy layout to easily compare their selected products.
After searching around the web, I found a few articles and posts from people looking for this feature, asking how it could work or if anyone had done it, but couldn’t find anything that said “here it is, this is how it can be done”. So, after a little bit or research and a bit of a play, I have come up with a solution which is not that difficult to achieve and only requires some already existing Drupal modules with just a few tweaks.
Note: This tutorial assumes that you already have a working ecommerce site with Ubercart installed. Best to also try this on a test environment and not a live website.
Step 1. Download Required Modules
Download, install and enable the following modules.
Views (I used 6.x-2.11, I haven’t tested it with any other releases)
Flag (I used 6.x-2.0-beta3, I haven’t tested it with any other releases)
Step 2. Flags configuration – Setting up your “compare”
Once you have enabled the Flags module, go to the flags administration page at /admin/build/flags.
Click the Add link, enter the name of your flag (something like “compare”), and leave the flag type as “node”, and submit.
On the next screen you will need to configure your new flag. Complete the following fields (changing the values if you like). I setup my configuration so only registered users of the website could compare products.
Title – Compare Products
Flag link text – Add to compare
Flagged message - [title] has been added to your compare
Unflag link text – Remove from compare
Unflagged message – [title] has been removed from your compare
Flaggable content – Product
Check “Display login link for anonymous users.” and for anonymous link text add “[login] to add to your compare”
For flag access, check flag and unflag for authenticated users
Under Display options select “Display link on node page” and “JavaScript toggle” as link type
Click submit to save your flag.
With the settings we used, the “flag link text” should now display on your product nodes. Clicking it should make the “flagged message” appear and the link changed to your “unflag link text” using JavaScript.
So what we are doing here is just flagging nodes – it’s actually pretty simple. We are flagging/unflagging them as “compare product”, so you should now be able to (by clicking on the link provided on your products) add and remove products to compare on your website.
Now we have done this, we need to create a page to display our “flagged” products, in which this case is the products we want to compare.
Step 3. Creating out Compare Products Page
Go to the Views Administration page, enabling the Flag module creates a default flag view. You can use this as a reference, or even change this view to what you need, it’s totally up to you. All we need is a view with (at least) the settings explained below.
DEFAULTS
Basic Settings – Use at least the following settings
Title: Product Comparison
Style: Table
Items per page: Unlimited
Access: Authenticated user
Empty text: Full HTML
- You have not yet added any products to compare. Click the “Add to compare” link when viewing a product to add it to this page.
Relationships
Add the following relationship:
Flags: Node flag
- label: compare
- check “Include only flagged content”
- flag: select the flag you created in step 2
- by: current user
Fields – You can put whatever fields here you would like to show up against each product. You must include the Node Title, and ideally you would want to show a thumbnail of the product, its price and description and the unflag link to allow users to remove it from this page. I have the following fields for my compare:
Content Image using an imagecache, linking to product
Node: Title linking to product
Flags: Flag link
- Relationship: select the one you added
Product: Sell Price
Node: Teaser
Filters
Node: Published Yes
AND SAVE
Now add a new page display view and give it a URL, then save. Navigate to your new compare page using the URL you entered. If you haven’t “flagged” any products yet, go do so and once done you should see those products displayed on your Compare Products page!!!
But, there is one slight issue. Because we needed to use Style: Table to get the layout to better suit a compare list, it still doesn’t display it the way we need it too. We want to display each of the products horizontally, with each field label shown on the far left so it is easy to compare our products. To do this we need to retheme the table style for our view.
Step 4. Theme the table output of the view
Under Theme: Information for our view, it displays a list of all the possible templates for the display plugin and for the style plugins. Look for the list titled Style output. This is what we want. It lists the possible templates we can use to change the theming of the style output. The first one it displays is the generic template for the table style output but we don’t want to use this one, because if we do we could effect any other table style view that may be on the site. So best to use the next one across, mine was called views-view-table–flag-compare.tpl.php.
Create a new php file and name the file to the template name you want to use. In my case my file is named views-view-table–flag-compare.tpl.php.
Paste the Drupal 6 code from here http://drupal.org/node/174578 into your template file.
Then place the file in your themes directory – and presto! Your comparison table should be laid out more like a comparison style grid. Below is a screenshot of what my Comparison page looks like after a little bit of extra styling.
Try this module: https://drupal.org/project/comparison
Allows the comparison of the attributes of two or more nodes by generating a table. A checkbox is added to nodes to allow them to be included in the comparison. If two or more nodes are selected a link is added to a page with a comparison table.

Resources