Category: Software

Using Command Query Responsibility Segregation to speed up data-driven web applications

Typical web applications spend most of their time reading data from a data storage (i.e. a database) which is then processed and converted to HTML for the desired frontend visualization. Furthermore, when relying on programming languages such as PHP that are essentially based on the “shared nothing principle” the performance overhead for consecutive processing of […]

Magento Newsletter Unsubscribe Form

One of the most missed functions in Magento 1 is a newsletter unsubscribe form. Although, by default you can generate newsletter unsubscribe links to be used for instance in newsletters sent out to subscribers there’s no nice out-of-the-box way to integrate a newsletter unsubscribe form in Magento 1. Which is why there already exist some extensions […]

Delete orders in Magento

When developing and testing your Magento store you will potentially create a lot of test orders. In addition, when creating/testing extensions you might need to reset order-related entries, e.g. when experiencing SQL integrity constraint violations such as SQLSTATE[23000]: Integrity constraint violation: 1062 Duplicate entry ‘0’ for key ‘PRIMARY’, query was: INSERT INTO `sales_order_tax` (`order_id`, `code`, `title`, `percent`, […]

Mass import products to Magento multi-store setup

So, you are about to import a large amount of products into Magento. Well, there are a couple of different approaches available. First, you could use the ancient Data Flow import based on specific profiles. Then, you could use the improved Data Import version, which still is (very) resource consuming. Lastly, there is magmi – […]

WordPress Rating-Widget shows blank reporting graph when using SSL

By default, the free version of the WordPress Rating-Widget does not officially “support” SSL/https setups. In reality, there are no problems using it on SSL setups except when it comes to the reporting graph which is loaded via a http connection set in the configuration, thus causing CORS to kick and prohibit non-safe external requests: […]

Automatically clean product texts in Magento

So someone copied text from a PDF document and pasted it into the Magento product description (or short description) text field. Unfortunately, the copied text included non-printable control characters in the Unicode range from \x00—\x1F and \x80-\x9f (e.g. DEL, NUL, VT, etc.) thus breaking other extensions from functioning properly, or prohibiting your data export to […]

Overloading constructors and functions in PHP

Since I was recently asked whether it’s possible to overload constructors in PHP, or functions in general, here is the quick answer: No, not in the common sense of “overloading”, i.e. creating multiple versions of the same function name with different implementations and arguments. Thus, the following is not possible by default in PHP: Pattern-based […]

Automatically copy images from parent configurable product to variants in Magento

By default Magento does not copy images from parent configurable products to their child variants, i.e. associated products. So you need to manually set images for child products once they are associated with the parent configurable product, which can be rather time consuming and (let’s face it) annoying if you deal with a broader range […]

Magento M2E Pro Newsletter Subscription Extension released

Note: The terms and conditions for using this extension are currently being reviewed to further conform to eBay’s terms and conditions. Thus, this extension is temporarily disabled on Magento Connect until the approval process is completed. Both Interact today released the M2E Pro Newsletter Subscription extension. This extension takes care of automatically subscribing your eBay […]

Generate hreflang alternate tags in TYPO3

Here is a quick TypoScript snippet that generates hreflang alternate tags in TYPO3. Take note of the following parameters: special.value: set IDs of languages available, e.g. 0 stdWrap.cObject.value: specify the locale corresponding to special.value, e.g. de-AT stdWrap.typolink.additionalParams: specify the special.value values for each locale set TypoScript code to generate hreflang alternate tags Here’s the snippet […]

Setting up OpenVPN on Tomato firmware for WRT54GL and configure for Tunnelblick client

Setting up OpenVPN on a Tomato based router (e.g. WRT54GL) is actually pretty easy once you know the steps involved in generating the required server and client certificates. First, let’s download easy-rsa from Github, which makes the process of generating the required artefacts a lot easier and start with the server setup. Once we have […]