Yireo - Developer training

Open main menu
SalesBlock 2

Magento 2 Extension

SalesBlock 2

Stop wasting time on orders that you need to reverse anyway

Already used in more than 123 shops
  • 100% open source and well-written
  • compliant with modern Magento standards
  • Free with no strings attached
  • Community collaboration via GitHub
FREE

Latest release: 2.1.0

No more spam orders

Whether they are spam orders, orders placed by unfair competition or by customers that you simply don't want to serve, our SalesBlock extension makes it easy to prevent orders from being placed based upon simple rules.

Define your own rules

Our SalesBlock extension allows to create simple rules that block a specific customer or guest order. Rules are easily managed through the backend, where you can also set a frontend message per rule, so that customers that are denied access receive a properly formatted warning.

Jisse Reitsma

This extension has been created by Jisse Reitsma

This extension has been written - with love - by Jisse Reitsma, founder of Yireo, three times Magento Master, partner of ExtDN, trainer and author. Jisse has been in the Magento ecosystem for many years and has created numerous Magento extensions. He also has been pushing better coding practices, like CI/CD, clean coding, coding standards and testing.

Packages & pricing

This extension is hosted on GitHub:
https://github.com/yireo/Yireo_SalesBlock2

SalesBlock 2

Create rules from your backend

The Yireo SalesBlock extension allows you to add rules quickly to your backend. Each rule has a couple of rules that help you block specific order attempts: You can block by IP, block by email. And using our additional modules, you can also block by other methods.

SalesBlock 2

Block orders in the frontend

Once a customer tries to place an order that matches a rules criteria, that order is denied. Our extension give friendly warnings on why the transaction is denied. It is up to you to tune the message to friendly tell spammers to go elsewhere.

SalesBlock 2

Create your own rule matches

Are the supplied criteria for identifying a spam order (by email, by IP, by region) not enough? Then you can hire us or other developers to create new add-on extensions that match your specific need. Our code is well-written, clean and setup to be extensible.

Stop spam orders from being placed

Our SalesBlock extension helps you reduce fake orders

Quick Start

Get up and running with your Yireo extension

Installation via composer URL

We recommend to install Magento 2 extensions via composer. See the Composer project for instructions on how to get composer up and running. Once composer is installed, use the following command to install our extension.

composer require yireo/magento2-salesblock2

This will make composer download the package from Packagist. After the composer installation has finished, use the following commands to enable the module within Magento:

bin/magento module:enable Yireo_SalesBlock2
bin/magento cache:clean
bin/magento setup:upgrade

After these commands, the extension is ready for use in Magento. If you were already logged into the Magento Admin Panel, make sure to logout and log back in again, before proceeding. Do not forget to grab yourself a manual copy of our extension as a backup.

Installation add-ons

Do make sure to install one or more of the following packages as well. They are available on Packagist and GitHub:

composer require yireo/magento2-salesblock2-by-ip
composer require yireo/magento2-salesblock2-by-email
composer require yireo/magento2-salesblock2-by-geo

Without those additional packages, this extension does nothing. Once the package is installed, also enable the corresponding module:

bin/magento module:enable Yireo_SalesBlock2ByIp 
bin/magento module:enable Yireo_SalesBlock2ByEmail 
bin/magento module:enable Yireo_SalesBlock2ByGeo

Manual installation

Please note that we strongly recommend using composer instead. If you bump into issues with this manual procedure, the first thing we need to ask is whether you have installed all dependencies, as mentioned in the composer.json file of this extension. If the composer.json file of this extension mentions requirements, you need to fulfill these requirements. This could involve checking for PHP requirements but also installing third party add-ons. Sounds difficult? Yes! That's why we can only recommend you to use composer. The manual installation does NOT make your life easier, even if you think it does.

Do use composer: It allows for dependency tracking and in the end, prevents breaking your site. However, in some cases, it might be required to do a non-composer installation. For these exceptional situations, download the module ZIP from our site (under the tab File Downloads). Next, create a folder with the following name and copy to the ZIP contents to it:

app/code/Yireo/SalesBlock2

After the files have been uploaded, confirm that all files are in place. For instance, you should have a file like app/code/Yireo/SalesBlock2/etc/module.xml. Next, use the following commands to enable the module within Magento:

bin/magento module:enable Yireo_SalesBlock2
bin/magento cache:clean
bin/magento setup:upgrade

After these commands, the extension is ready for use in Magento. If you were already logged into the Magento Admin Panel, make sure to logout and log back in again, before proceeding. Do not forget to grab yourself a manual copy of our extension as a backup.

Installation add-ons

Do make sure to install one or more of the following packages as well. They are available on Packagist and GitHub:

composer require yireo/magento2-salesblock2-by-ip
composer require yireo/magento2-salesblock2-by-email
composer require yireo/magento2-salesblock2-by-geo

Without those additional packages, this extension does nothing. Once the package is installed, also enable the corresponding module:

bin/magento module:enable Yireo_SalesBlock2ByIp 
bin/magento module:enable Yireo_SalesBlock2ByEmail 
bin/magento module:enable Yireo_SalesBlock2ByGeo

Downloads

Head over to the GitHub repository for downloads: https://github.com/yireo/Yireo_SalesBlock2

Frequently Asked Questions

No, it is not. As a policy, all our Yireo software is unencrypted - we do not make use of technologies like ionCube or ZendOptimizer. All PHP-code is open source, but for commercial extensions the code is only given to paying customers.

You probably would like to know if this extension is working under a specific Magento version 2.X.Y. However, from a technical point of view, the question is wrong: The major Magento version 2.X.Y is not semantical but instead used for marketing purposes. It doesn't give any guarantees.

Instead, we maintain compatibility with the actual modules that lie underneath (like Magento_Catalog or the Magento Framework). And version management for these dependencies is handled via composer. We strongly advice you to rely on composer to answer the question whether our extension works under a specific Magento version. This is the only way to guarantee compatibility in a professional way.

Alternatively, study our CHANGELOG for details on the progress we made.

This extension is offered for free. Feel free to go the GitHub repository (see the link under Quick Start> Downloads) and open an Issue there. Please note that this is a voluntary open source project. The more helpful you are in describing the issue at hand, the more likely volunteers can come in to help you with the issue.

Support

Getting support

If you run into problems, we are happy to help you out with the following resources:

  • Check FAQ on this page
  • See our Quick Start on this page
  • Open an Issue in the GitHub repository
    • Be as descriptive in your issue as possible
    • Do everything you can to troubleshoot the issue yourself
    • Understand that you are asking others to give up their free time

We usually respond in 24 hours but understand this is all done on a voluntary basis. Also note that we require you to collaborate together with us. Interpret errors as best as you can, before claiming our time. Free software does not automatically lead into free support as well.

Extensibility

EmailTester is written following standards like PSR-2, MEQP2, ECG and ExtDN. This extension does not make any overrides, but uses core events like controller_action_predispatch to intercept order attempts.

Compatible with other extensions

Our extension has been tested with the following extensions:

Roadmap

We have a major feature on our roadmap, which will allow for easy extension of the SalesBlock forms (based on UiComponents) and rules. This allows for additional modules to add their own matching strategy on top of SalesBlock. With this, we will add useful add-on modules like geo-based blocking and time-based blocking. We'll keep you updated!

Supported Magento versions

  • 2.2 (2.2.5, 2.2.6, 2.2.7, 2.2.8, 2.2.9, 2.2.10)
  • 2.3 (2.3.2, 2.3.3, 2.3.4, 2.3.5, 2.3.5-p1, 2.3.5-p2, 2.3.6, 2.3.7, 2.3.7-p1)
  • 2.4 (2.4.0, 2.4.1, 2.4.2, 2.4.2-p1, 2.4.2-p2, 2.4.3)
The supported PHP versions equal the versions supported by Magento itself

Requirement details

  • magento/framework: ^101.0|^102.0|^103.0
  • magento/module-backend: ^100.0|^101.0|^102.0
  • magento/module-checkout: ^100.0
  • magento/module-cms: ^100.0|^101.0|^102.0|^103.0|^104.0
  • magento/module-store: ^100.1|^101.0
  • magento/module-quote: ^100.1|^101.0|^102.0
  • psr/log: ^1.0
  • ext-json: *
  • ext-pcre: *

Changelog

All notable changes to this project will be documented in this file.

The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.

[Unreleased]

  • Remove PHP dep from composer

[2.1.0] - 18 February 2021

Fixed
  • Code compliance with Magento PHPCS
  • Fixed issue with Guest Checkout email not being properly picked up
Added
  • Added additional event observer to guarantee blocking of guest orders
  • Debugging with var/log/yireo_salesblock.log file

[2.0.4] - 24 November 2020

Fixed
  • Issue when checkout is accessed directly
  • Removed deprecated observer
  • Set items_count to 0 as well to force "no-items" in cart

[2.0.3] - 29 July 2020

Added
  • Magento 2.4 compatibility

[2.0.2] - 15 July 2019

Added
  • config.xml with default settings
  • Handy methods in rule repository
  • Strict typing in rule repository and interface
  • Integration test for rule repository
  • Integration test for rule helper with simulation of IP and email matching

[2.0.1] - 4 July 2019

Added
  • Add KeepAChangeLog support
  • Move configuration to separate Yireo section

[2.0.0] - November 2018

Added
  • Magento 2.3 compatibility
  • Major rewrite to decouple rules from main module

[1.0.1] - August 2018

Added
  • Create separate Configuration class instead of using Helper
  • Add message in grid when module is disabled through setting

[1.0.0] - August 2018

Added
  • Public release
  • Composer support

[0.0.3] - June 2019

Added
  • Beta testing on limited sites
  • Improved exception handling

[0.0.2] - November 2017

Added
  • Main migration of functionality
  • Setup UiComponents
  • Basic Integration Tests

[0.0.1] - September 2017

Added
  • First draft
ExtDN

We are a proud member of ExtDN

ExtDN forms a network of Magento extension developers, that strive for a better extension quality - both on a technical level and from an end-users point of view. With industry leaders like Fooman and aHeadworks, ExtDN lifts up the Magento extension space to a new level. And Yireo is proud to be part of this.

Do not miss out on what we say

This will be the most interesting spam you've ever read

We don't write too commercial stuff, we focus on the technology (which we love) and we regularly come up with innovative solutions. Via our newsletter, you can keep yourself up to date on all of this coolness. Subscribing only takes seconds.

Sign up for the Yireo newsletter

Training

Extensions

GitHub organizations

Legal information

Other Yireo sites

Get Social

About Yireo