Tuesday, 23 August 2016

Magento Enterprise Edition 2.1- Experience Commerce without Limits

Magento 2 is transforming the commerce field dramatically with the new experience it offers to those who rely on it. Due to the new powerful features of the next generation platform, marketers and merchants are able to do more and reach more as a team.

Magento Enterprise Edition 2.1 clears all the boundaries and gives you to create an unique shopping experience and takes your business to next level.  Built for rapid and cost-effective innovation, the platform combines rich, out-of-the-box functionality, enterprise performance and scale, and powerful business tools to keep you ahead of increasingly complex commerce operations and growing customer demands.

Features Highlights of Magento EE 2.1
Magento EE 2.1 has more exiting features which helps to speed up the performance and reduces development and deployment efforts with more customization flexibility.

Powerful Admin Experience
Work efficiently with a modern and intuitive user interface. A dashboard lets you monitor your business with quick access to sales, order, search term and best-selling product data. Enhanced navigation and search makes it easy to find information, and you can configure and save different views of order and customer management screens to speed up day-to-day tasks.

Responsive Design Themes
Provides built in touch-friendly and easily customizable with SEO features.  The responsive themes adapt and adjust how menus, images, checkout and other features are displayed to fit desktop, laptop, tablet, and mobile device screens.

Customer Segmentation and Personalization
Create personalized shopping experiences that boost conversion rates by dynamically displaying content, promotions, and pricing to specific customers based on properties such as their location, gender, order history, lifetime purchase value, wish list items, and more. You can also target unknown site visitors based on the products they have viewed or items in their cart.

Dynamic Rule-Based Product Relations
You can set your own automated rules to show-case up-sell, cross-sells and related products to each customer segments. Rules are easily administered through a condition-based tool allowing you to effortlessly target product suggestions to increase sales and average order values.

Content Staging and Preview
Your business team can easily mange wide range of contents without involving any developer. Preview all changes by date or store view to guarantee a flawless shopper experience and optimize the timing and impact of site updates by managing all changes through a timeline dashboard. Automatically deploy updates at scheduled times for greater efficiency.

Enhanced payment options
Enhanced payment options of Magento Enterprise Edition 2.1 boost conversion rates like never before! Customers can now make a purchase with PayPal in overlay window of the merchant's account without actually even leaving your store.

Manage huge catalogs and easily scale search capacity as queries grow with integrated Elasticsearch technology. Set-up is fast and global deployments are simple with support for 33 languages out of the box. Elasticsearch offers suggestions for customer misspellings, support for stop words and attribute weighting, and synonym management via the Magento Admin to increase relevancy and conversions.

 Visual Merchandising
Optimize product category pages to drive higher sales by arranging products with a simple drag-and-drop interface or sorting rules that order products by best seller, color, highest margin, or newest addition. Save time by setting rules to automatically assign products to specific categories based on their attributes, such as brand, price, or date created.

Multiple Master Databases
Provides provision to scale the database tier of Magento application by using seperate master database to support checkout, order Management and catalog data. This ensures merchandising and order management activities never impact the shopper’s ability to browse and make purchases on the website.

Flexible Deployment Options
Choose to deploy your Magento software in whatever environment suits your goals and operations best, including cloud, 3rd party hosting, and on premises. New Magento cloud service, Enterprise Cloud Edition, enables rapid deployment of fully customizable, secure, and scalable web storefronts on a redundant, AWS-based hosting and managed services infrastructure that is optimized for performance and resilience.

Varnish Page Caching
Speed up your site performance, decrease response time and reduce load on servers with integrated Varnish page caching. Magento fully supports and provides Varnish configuration files out-of-the-box to make it easy to implement.

Hope this article helps you to know some additional out-of-the-box features in  Magento Enterprise Edition 2.1.

Ideaapplied Technologies provides Magento eCommerce portal development service with complete project management suite. You can visit us at ideaapplied.com to know more about our services.

Salt-stack connect minion to a different master

This is a guide if you want to connect a minion from one master to a different master.


You have a minion ex. minion1 and it is currently connected to master1. Now for some reason you want to connect to a different master ex master2. I had this requirement when I had to create a clone of a live ec2 instances minions which is already connected to live-master and I had to connect it to a master which we use for development i.e. dev-master.

NOTE:  I am assuming the OS to be Ubuntu

The following are the steps.
  • SSH into minion and Shutdown salt-minion on the minion instance using sudo service salt-minion stop (Optional)
  • Restart master2 in open mode(This is temporary, This will make it easier) by doing the following
    • In master2 (/etc/salt/master) configuration set open_mode: True
    • Restart salt-master using sudo service salt-master restart
  • Change ID(Optional), master IP/HOST and master_finder of minion by doing the following
    • ssh to minion
    • do sudo vim /etc/salt/minion
    • search for id: and change it if needed.
    • search for master: IP/HOST, change the IP or HOST for the master2
    • search for master_finger: and delete the property. This is newly added so It may not be there in configuration.
    • Remove key for old master(master1) server rm /etc/salt/pki/minion/minion_master.pub
    • Restart minion sudo service salt-minion restart
  • Change open_mode to False or remove the property(by default is False) and restart master2.

This should allow the minion to connect to the master2. Now there are things which you would need to change depending on the requirement. Like I was creating a different environment by cloning liveand we have a grain named circle set for the environments like devstaging or live. So had to change the grain to livetest.
salt '*.livetest.example.com' grains.setval circle livetest
Hope it helps.

Any suggestions or questions are welcome.

Ideaapplied Technologies provides comprehensive QA services. Visit us at ideaapplied.com to know more about our services

Wednesday, 10 August 2016

Salt-stack mysql use root user from any host

I recently had a problem while installing mysql on a server using salt-stack.

The scenario is that there is a server where I install mysql and other servers should be able to access it. Now these are ec2 instances and the security group is setup such a way that only server having certain security group can access the mysql server. So even if I open mysql for any host, There would not be any security issues.

The problem was that I was not able to login to root user from any other server because the root user login was only allowed from the localhost if I do the following.

    - installed
    - pkgs:
      - mysql-server
      - python-mysqldb
    - running
    - name: mysql
    - enable: True
    - require:
      - pkg: mysql-server
    - watch:
      - file: /etc/mysql/my.cnf
    - present
    - name: root
    - password: {{ pillar['mysql']['server']['root_password'] }}
    - require:
      - service: mysql
So what I had to do for the servers to login as root user into mysql database from any host including localhost is to add another user.preset for root again with % as host.

    - name: root
    - host: '%'
    - password: {{ pillar['mysql']['server']['root_password'] }}
    - connection_user: root
    - connection_pass: {{ pillar['mysql']['server']['root_password'] }}
    - connection_charset: utf8
    - saltenv:
      - LC_ALL: "en_US.utf8"
    - require:
      - service: mysql
This works for any user which should be accessible from any host including localhost.
Any questions or suggestions are welcome.

Ideaapplied Technologies provides comprehensive QA services. Visit us at ideaapplied.com to know more about our services

Thursday, 4 August 2016

salt-cloud install a specific version of salt-minion

This is a guide to install a specific version of salt-minion package on new minions being bootstrapped using salt-cloud.
This is not specific for any OS or destro but I was using Ubuntu 14.04.
salt-cloud uses salt-bootstrap.sh script (https://github.com/saltstack/salt-bootstrap) which installs every dependencies and salt-minion on the newly created instance. This file is usually located at /usr/lib/python2.7/dist-packages/salt/cloud/deploy/bootstrap-salt.sh.
Version and/or Source can be specified in the cloud.profile configuration as below.
In /etc/salt/cloud.profiles.d/someprofile.conf

  provider: aws
  image: ami-xxxxxx
  size: m1.small
    - SG1
    - SG2
      circle: staging
      type: app
  script_args: git v2015.5.2

The last property script_args value will be passed to the bootstrap script. The above values tells to install salt-minion version v2015.5.2 from github(not the Ubuntu repo).
The values can be any of the following.
Installation types:

- stable (default, It installs from OS Repository e.g Deb/RPM)
- stable [version] (ubuntu specific)
- daily  (ubuntu specific)
- testing (redhat specific)
- git (Installs from github repository)


- stable
- stable 2015.5
- daily
- testing
- git
- git develop
- git v2015.5.3
- git 8c3fadf15ec183e5ce8c63739850d543617e4357

Custom/Edited script can also be used instead of the default bootstrap-salt.sh
Just copy the /usr/lib/python2.7/dist-packages/salt/cloud/deploy/bootstrap-salt.sh or download https://github.com/saltstack/salt-bootstrap/blob/develop/bootstrap-salt.sh and put it under/etc/salt/cloud.deploy.d/. If the file is named bootstrap-salt.sh then no change required in the profile configuration. If the file name is something different like custom-bootstrap.sh then added the following in the configuration file.
In /etc/salt/cloud.profiles.d/someprofile.conf

  provider: aws
  image: ami-xxxxxx
  size: m1.small
    - SG1
    - SG2
      circle: staging
      type: app
  script: custom-bootstrap.sh # This can also be an absolute path.
  script_args: git v2015.5.2

Hope it helps.
Any questions or suggestions are welcome.

Ideaapplied Technologies provides comprehensive QA services. Visit us at ideaapplied.com to know more about our services