Introducing Subscriptions

28.01.2018
by HELO Store

The time has come to make a change. We are migrating from one-time payments to a subscription tier on all of our current and future paid products for CS-Cart and Wordpress.

What does it mean?

For you, the customer, this means that in order to have access to future upgrades, you will have to renew your software upgrade subscription.

Nevertheless, you will continue to have access to your latest products versions indefinitely, regardless if you renew your subscription or not.

In short, the idea is simple: if you do not need to upgrade a product, or if the product itself doesn't offer anything new, there's no need to renew your subscription.

For us, this strategy will provide us more sustainability, the ability to deliver better products and release new upgrades in a shorter time.

This will also allow us to better focus our efforts on products that require continuous maintenance, either by popular demand among our customer base, or by their inherent complexity.

Now what..?

We highly appreciate and value having you as our customer, and because of that, we don't want this change to take you by surprise. Hence, we are offering you a complimentary 12 months software upgrade subscription to all of the products in this order!

Therefore, at this time, you do not have to take any action. :)

HELOstore around the world

01.12.2016
by HELO Store

Starting from 6 October 2016, HELOstore has fully transitioned to digital nomadism, and is now traveling & coding around the world.

Check out the travel stories at https://TheNomadicYear.com.

Practice your HTML and CSS knowledge

08.12.2015
by HELO Store

We have developed an in-house trivia / quizz game to help our trainees to practice and improve their CSS and HTML knowledge and skills, and to ease the pain of memorizing hundreds of tags, properties, values and definitions.
The game is now public under the name "Ophmisu Trivia" and is available for anyone to play at https://ophmisu.com/

Moreover, the project is open-source and available in 2 components:

- the Web client, written in PHP (Symfony2) and JavaScript (AngularJS, Socket.IO) - https://github.com/wsergio/ophmisu-client-web

- the server, written in JavaScript (Node.JS, Socket.IO, MariaDB or MySQL) - https://github.com/wsergio/ophmisu

Happy practicing!

CloudFlare, SSL, cURL and fixing the "no common encryption algorithm" error

01.11.2015
by HELO Store

Description

CloudFlare is using Elliptic Curve Cryptography (ECC) cryptography, rather than more traditional RSA algorithm. ECC cryptography produces shorter keys which are as strong as their equivalent RSA keys. Some of the advantages derived from having shorter keys include: lower CPU usage and lower memory usage.
The customers' websites behind CloudFlare, with SSL enabled, also use ECC certificates.


Problem

Now the real problem is with cURL and NSS, (especially older versions) which are not handling ECC certificates very well.

[w@disruptive]$ curl --verbose https://helostore.com
* Rebuilt URL to: https://helostore.com/
* Trying 104.28.18.28...
* Connected to helostore.com (104.28.18.28) port 443 (#0)
* Initializing NSS with certpath: sql:/etc/pki/nssdb
* CAfile: /etc/pki/tls/certs/ca-bundle.crt
 CApath: none
* NSS error -12286 (SSL_ERROR_NO_CYPHER_OVERLAP)
* Cannot communicate securely with peer: no common encryption algorithm(s).
* Closing connection 0
curl: (35) Cannot communicate securely with peer: no common encryption algorithm(s).


Solution

A. If you already have a recent version of curl (>= 7.36), you're good to go: you only need to specify the right cipher for CloudFlare's front ECC SSL certificate: ecdhe_ecdsa_aes_128_gcm_sha_256.
Otherwise, skip to point B. to update curl.


If you're using curl in PHP, you can do that like so

curl_setopt($ch, CURLOPT_SSL_CIPHER_LIST, 'ecdhe_ecdsa_aes_128_gcm_sha_256');


If you're running directly the cli version, you just need to specify the cipher as an argument:

[w@disruptive adls]$ curl --verbose https://helostore.com --cipher ecdhe_ecdsa_aes_128_gcm_sha_256
* Rebuilt URL to: https://helostore.com/
* Trying 104.28.18.28...
* Connected to helostore.com (104.28.18.28) port 443 (#0)
* Initializing NSS with certpath: sql:/etc/pki/nssdb
* CAfile: /etc/pki/tls/certs/ca-bundle.crt
 CApath: none
* ALPN, server accepted to use http/1.1
* SSL connection using TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256
* Server certificate:
* subject: CN=sni22058.cloudflaressl.com,OU=PositiveSSL Multi-Domain,OU=Domain Control Validated
* start date: Oct 08 00:00:00 2015 GMT
* expire date: Dec 30 23:59:59 2015 GMT
* common name: sni22058.cloudflaressl.com
* issuer: CN=COMODO ECC Domain Validation Secure Server CA 2,O=COMODO CA Limited,L=Salford,ST=Greater Manchester,C=GB
> GET / HTTP/1.1
> Host: helostore.com
> User-Agent: curl/7.45.0
> Accept: */*
>
< HTTP/1.1 200 OK
< Server: cloudflare-nginx
...

If HTTP response was 200 (HTTP/1.1 200 OK), your problem is solved. Otherwise, try point B. and/or C.


B. Old versions of curl contain some bug(s) [1][2] that will interfere with ECC certificates, so let's update curl to a newer version (>= 7.36):

rpm -Uvh http://www.city-fan.org/ftp/contrib/yum-repo/city-fan.org-release-1-13.rhel6.noarch.rpm
yum update -y curl php-curl



You can now chec curl's version with

[w@disruptive adls]$ curl --versi
curl 7.45.0 (x86_64-redhat-linux-gnu) libcurl/7.45.0 NSS/3.19.1 Basic ECC zlib/1.2.7 libidn/1.32 libssh2/1.6.0
Protocols: dict file ftp ftps gopher http https imap imaps ldap ldaps pop3 pop3s rtsp scp sftp smb smbs smtp smtps telnet tftp
Features: AsynchDNS IDN IPv6 Largefile GSS-API Kerberos SPNEGO NTLM NTLM_WB SSL libz UnixSockets Metalink


C. If point A. didn't do the trick, you may need to update the NSS library, which requires the NSPR API (whatever that is).
So, first install NSPR following these instructions: http://www.linuxfromscratch.org/blfs/view/svn/gene...
After that, go ahead and install NSS: http://www.linuxfromscratch.org/blfs/view/svn/post...


Hopefully that went just swell and you can return to point A. and try that again.



Related bugs:


[1] https://bugzilla.redhat.com/show_bug.cgi?id=105877...
[2] https://bugzilla.redhat.com/show_bug.cgi?id=118570...



Related resources:


* if you're dealing with other ciphers, check the these cipher-suites lists for the right algorithm string:
(NSS) https://git.fedorahosted.org/cgit/mod_nss.git/plai...
(OpenSSL) https://www.openssl.org/docs/manmaster/apps/cipher...
* if you're interested in CloudFlare's study ECC vs. RSA:
https://blog.cloudflare.com/ecdsa-the-digital-sign...

Configure CS-Cart and Mandrill

22.10.2015
by HELO Store

Mandrill is a reliable, scalable, and secure delivery API for transactional emails from websites and applications. It's ideal for sending data-driven transactional emails, including targeted e-commerce and personalized one-to-one messages.

You can use Mandrill to send all the CS-Cart emails without the need of installing any additional add-ons. To do just that, navigate to the email settings: Settings > E-mails and configure the parameters as follows:


Method of sending e-mails:
via SMTP server
SMTP host: smtp.mandrillapp.com:587
SMTP username: [email protected]
SMTP password: <your-API-password-generated-by-mandrill> (find_your API key)
Use Encrypted Connection: TLS
Use SMTP authentication:

Save the configuration and you should be ready to send all your emails via Mandrill service.

Good luck!

Fixing the CS-Cart pagination issue with Firefox

20.10.2015
by HELO Store

Description

This is a general issue with older CS-Cart versions (< 4.0, confirmed: 3.0.4, 3.0.5) and new versions of Firefox.

This behavior is not really a "bug" nor a CS-Cart issue per se, but a deprecated feature in Firefox, as certain browsers (like Chrome) do not replicate this behavior.

The issue was isolated to file: /lib/js/history/jquery.history.js. The jQuery History Plugin's function is to offer backward and forward navigation in JavaScript applications via browsers buttons "Next" and "Back". Both customer and administrator areas are effected by this issue since they both use this javascript file. More specifically, all pages that contain pagination (links to pages 1, 2, 3...) are affected, and, therefore, I highly recommend you to patch file above as soon as possible.

This plugin is not longe maintained by its creator and, in subsequent CS-Cart versions, it was completely removed replaced.

Solution

To patch up this issue replace this line:

return $.browser.mozilla ? hash : decodeURIComponent(hash);

.. with this line:

return decodeURIComponent(hash); // <-- patch, patch, ws@da: Poopsilon, Mozilla!

I hope this solves your problem. Good luck!


Related bug reports:

http://forum.cs-cart.com/topic/42155-admin-page-link-in-order-page-does-not-work-in-ie/

http://stackoverflow.com/questions/33134806/cs-cart-pagination-in-backend-orders/33238799#33238799

http://forum.cs-cart.com/topic/42230-переход-на-следующую-страницу-в-категориях-не-р/

https://bugzilla.mozilla.org/show_bug.cgi?id=135309

https://bugzilla.mozilla.org/show_bug.cgi?id=483304

Install ImageMagick on CentOS 7

25.09.2015
by HELO Store
ImageMagick® is a software suite to create, edit, compose, or convert bitmap images. It can read and write images in a variety of formats (over 200) including PNG, JPEG, JPEG-2000, GIF, TIFF, DPX, EXR, WebP, Postscript, PDF, and SVG. Use ImageMagick to resize, flip, mirror, rotate, distort, shear and transform images, adjust image colors, apply various special effects, or draw text, lines, polygons, ellipses and Bézier curves.

ImageMagick can be installed from a repository or from the source code. This installation guide describe only the first option - installing from a repository. This is usually the easy option.

Installing ImageMagick from Remi's repository

Firstly, you should install the EPEL repository, if you haven't done that already.

wget http://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm
sudo rpm -Uvh epel-release-latest-7.noarch.rpm

Secondly, install Remi's repository.

wget http://rpms.famillecollet.com/enterprise/remi-release-7.rpm
sudo rpm -Uvh remi-release-7.rpm

By default, Remi's repository is disabled. So, to use it in our next commands, we'll make use of the --enablerepo argument to enable the repository.


Next, let's install ImageMagick's dependencies. Note that this may take a while.

sudo yum install -y gcc php-devel php-pear

And now, we're going to install ImageMagick from Remi's repository.

sudo yum install --enablerepo=remi -y ImageMagick ImageMagick-devel

Finally, you can type the following to find out if ImageMagick has been installed:

identify -version

If you see something like this, then you're set!

Version: ImageMagick 6.7.8-9 2014-06-10 Q16 <a href="http://www.imagemagick.org">http://www.imagemagick.org</a>
Copyright: Copyright (C) 1999-2012 ImageMagick Studio LLC
Features: OpenMP

References

  1. The official ImageMagick website.

This article is not yet finished. Please contact us if you need help on this topic.