Skip to content

Instantly share code, notes, and snippets.

View jorgehernandezSF's full-sized avatar

Jorge Hernandez jorgehernandezSF

  • Salesforce.com
View GitHub Profile
@jorgehernandezSF
jorgehernandezSF / topsellertile.properties
Last active May 1, 2019 20:39
Top Seller Tile component type: resource bundle that is needed to localize Shop Now button.
button.shop_now=Shop Now
@jorgehernandezSF
jorgehernandezSF / topsellertile.js
Created April 24, 2019 03:02
Top Seller Tile component type: rendering script
'use strict';
/**
* Script file for rendering an assets.topsellertile component
*/
//Initialize constants
const Template = require('dw/util/Template');
const HashMap = require('dw/util/HashMap');
const URLUtils = require('dw/web/URLUtils');
@jorgehernandezSF
jorgehernandezSF / topsellertile.json
Created April 23, 2019 21:58
Top Seller Tile component type: meta definition
{
"name": "Tile: Product Top Seller",
"description": "Image, text overlay, 'Shop Now' control that links user to a PDP of the best selling product in a category; Image is defined by the selected product",
"group": "assets",
"attribute_definition_groups": [
{
"id": "search_params",
"name": "Search Parameters",
"description": "Please select a category to search for a top seller.",
"attribute_definitions": [
@jorgehernandezSF
jorgehernandezSF / topsellertile_es
Last active September 25, 2020 04:23
This is a component localization file for the BM UI. It should be placed in bm_pagedesigner cartridge (or another one added to BM cartridge path).
name=Tile para el producto que mas vende
description=Este componente muestra el producto que mas se vende basado en la regla de clasification "top sellers"
attribute_definition_group.search_params.name=Parametros para busqueda
attribute_definition_group.search_params.description=Parametros para busqueda: escoja una categoria del sitio
attribute_definition.category.name=Categoria
@jorgehernandezSF
jorgehernandezSF / nodecorator.isml
Created August 19, 2019 16:07
This is a sample decorator that can be used inside PD UI to remove header and footer.
<iscontent type="text/html" charset="UTF-8" compact="true"/>
<!DOCTYPE html>
<html>
<head>
<meta name="viewport" content="width=device-width, initial-scale=1">
</head>
<body>
<isreplace/>
</body>
</html>
@jorgehernandezSF
jorgehernandezSF / Page.js
Last active September 25, 2020 04:23
Page.js version that redirects to homepage when the page is not visible: not published yet, not visible for locale, or not visible for a user group, etc.
'use strict';
var server = require('server');
server.extend(module.superModule);
var consentTracking = require('*/cartridge/scripts/middleware/consentTracking');
var pageMetaData = require('*/cartridge/scripts/middleware/pageMetaData');
var PageMgr = require('dw/experience/PageMgr');
server.append('Show', consentTracking.consent, function (req, res, next) {
@jorgehernandezSF
jorgehernandezSF / PageRenderHelper.js
Last active September 25, 2020 04:23
PageRenderHelper that removes header/footer on the BM Page Designer UI, but not on the storefront.
'use strict';
var RegionModelRegistry = require('*/cartridge/experience/utilities/RegionModelRegistry.js');
function parseRenderParameters(renderParametersJson) {
var renderParameters = {};
if (renderParametersJson) {
try {
renderParameters = JSON.parse(renderParametersJson);
} catch (e) {
@jorgehernandezSF
jorgehernandezSF / mixedlayout.isml
Created May 1, 2019 03:55
Mixed Layout page type script
<iscontent type="text/html" charset="UTF-8" compact="true"/>
<isdecorate template="${pdict.decorator}">
<isscript>
var assets = require('*/cartridge/scripts/assets.js');
assets.addCss('/css/layout.css');
assets.addCss('/css/pagedesigner-bootstrap.min.css');
</isscript>
<!--- the page markup --->
<div class="container-fluid page-container px-2">
@jorgehernandezSF
jorgehernandezSF / mixedlayout.js
Created May 1, 2019 03:10
Mixed Layout page type script
'use strict';
var Template = require('dw/util/Template');
var HashMap = require('dw/util/HashMap');
var PageRenderHelper = require('*/cartridge/experience/utilities/PageRenderHelper.js');
/**
* Render logic for the mixedlayout.
*
* @param {dw.experience.PageScriptContext} context The page script context object.
@jorgehernandezSF
jorgehernandezSF / mixedlayout.json
Last active September 25, 2020 04:23
Mixed Layout page type meta definition
{
"name":"Mixed Page Layout",
"description":"Page Layout with a fixed set of banner and tile regions and a flexible main region",
"region_definitions":[
{
"id":"banner",
"name":"Banner Region",
"max_components":1,
"component_type_exclusions": [
{ "type_id": "layouts.1column" },