diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..aaeec82 --- /dev/null +++ b/.gitignore @@ -0,0 +1,2 @@ +/vendor/ +/cache/ diff --git a/composer.json b/composer.json new file mode 100644 index 0000000..96d8946 --- /dev/null +++ b/composer.json @@ -0,0 +1,14 @@ +{ + "name": "smccabe/contribution-stats", + "description": "Pulls the Drupal 8 Commerce module list and stats.", + "require": { + "guzzlehttp/guzzle": "^7.4", + "cheprasov/php-cli-args": "^3.0" + }, + "require-dev": { + "squizlabs/php_codesniffer": "^3.6" + }, + "autoload": { + "psr-4": { "ContribStats\\": "src/" } + } +} diff --git a/composer.lock b/composer.lock new file mode 100644 index 0000000..d39773b --- /dev/null +++ b/composer.lock @@ -0,0 +1,654 @@ +{ + "_readme": [ + "This file locks the dependencies of your project to a known state", + "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies", + "This file is @generated automatically" + ], + "content-hash": "e24758de40fbd5ab298f583580b56a50", + "packages": [ + { + "name": "cheprasov/php-cli-args", + "version": "3.0.0", + "source": { + "type": "git", + "url": "https://github.com/cheprasov/php-cli-args.git", + "reference": "f40272d6ca038023ce0f3fa927490f0c3dcfa652" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/cheprasov/php-cli-args/zipball/f40272d6ca038023ce0f3fa927490f0c3dcfa652", + "reference": "f40272d6ca038023ce0f3fa927490f0c3dcfa652", + "shasum": "" + }, + "require": { + "php": ">=5.5" + }, + "require-dev": { + "phpunit/phpunit": "4.8.*" + }, + "type": "library", + "autoload": { + "psr-0": { + "CliArgs\\": "src" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Alexander Cheprasov", + "email": "acheprasov84@gmail.com" + } + ], + "description": "Easy way to gets options from the command line argument list", + "homepage": "http://github.com/cheprasov/php-cli-args", + "support": { + "issues": "https://github.com/cheprasov/php-cli-args/issues", + "source": "https://github.com/cheprasov/php-cli-args/tree/v3.0.0" + }, + "time": "2019-02-02T19:40:45+00:00" + }, + { + "name": "guzzlehttp/guzzle", + "version": "7.4.0", + "source": { + "type": "git", + "url": "https://github.com/guzzle/guzzle.git", + "reference": "868b3571a039f0ebc11ac8f344f4080babe2cb94" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/guzzle/guzzle/zipball/868b3571a039f0ebc11ac8f344f4080babe2cb94", + "reference": "868b3571a039f0ebc11ac8f344f4080babe2cb94", + "shasum": "" + }, + "require": { + "ext-json": "*", + "guzzlehttp/promises": "^1.5", + "guzzlehttp/psr7": "^1.8.3 || ^2.1", + "php": "^7.2.5 || ^8.0", + "psr/http-client": "^1.0", + "symfony/deprecation-contracts": "^2.2" + }, + "provide": { + "psr/http-client-implementation": "1.0" + }, + "require-dev": { + "bamarni/composer-bin-plugin": "^1.4.1", + "ext-curl": "*", + "php-http/client-integration-tests": "^3.0", + "phpunit/phpunit": "^8.5.5 || ^9.3.5", + "psr/log": "^1.1 || ^2.0 || ^3.0" + }, + "suggest": { + "ext-curl": "Required for CURL handler support", + "ext-intl": "Required for Internationalized Domain Name (IDN) support", + "psr/log": "Required for using the Log middleware" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "7.4-dev" + } + }, + "autoload": { + "psr-4": { + "GuzzleHttp\\": "src/" + }, + "files": [ + "src/functions_include.php" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Graham Campbell", + "email": "hello@gjcampbell.co.uk", + "homepage": "https://github.com/GrahamCampbell" + }, + { + "name": "Michael Dowling", + "email": "mtdowling@gmail.com", + "homepage": "https://github.com/mtdowling" + }, + { + "name": "Jeremy Lindblom", + "email": "jeremeamia@gmail.com", + "homepage": "https://github.com/jeremeamia" + }, + { + "name": "George Mponos", + "email": "gmponos@gmail.com", + "homepage": "https://github.com/gmponos" + }, + { + "name": "Tobias Nyholm", + "email": "tobias.nyholm@gmail.com", + "homepage": "https://github.com/Nyholm" + }, + { + "name": "Márk Sági-Kazár", + "email": "mark.sagikazar@gmail.com", + "homepage": "https://github.com/sagikazarmark" + }, + { + "name": "Tobias Schultze", + "email": "webmaster@tubo-world.de", + "homepage": "https://github.com/Tobion" + } + ], + "description": "Guzzle is a PHP HTTP client library", + "keywords": [ + "client", + "curl", + "framework", + "http", + "http client", + "psr-18", + "psr-7", + "rest", + "web service" + ], + "support": { + "issues": "https://github.com/guzzle/guzzle/issues", + "source": "https://github.com/guzzle/guzzle/tree/7.4.0" + }, + "funding": [ + { + "url": "https://github.com/GrahamCampbell", + "type": "github" + }, + { + "url": "https://github.com/Nyholm", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/guzzlehttp/guzzle", + "type": "tidelift" + } + ], + "time": "2021-10-18T09:52:00+00:00" + }, + { + "name": "guzzlehttp/promises", + "version": "1.5.1", + "source": { + "type": "git", + "url": "https://github.com/guzzle/promises.git", + "reference": "fe752aedc9fd8fcca3fe7ad05d419d32998a06da" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/guzzle/promises/zipball/fe752aedc9fd8fcca3fe7ad05d419d32998a06da", + "reference": "fe752aedc9fd8fcca3fe7ad05d419d32998a06da", + "shasum": "" + }, + "require": { + "php": ">=5.5" + }, + "require-dev": { + "symfony/phpunit-bridge": "^4.4 || ^5.1" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.5-dev" + } + }, + "autoload": { + "psr-4": { + "GuzzleHttp\\Promise\\": "src/" + }, + "files": [ + "src/functions_include.php" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Graham Campbell", + "email": "hello@gjcampbell.co.uk", + "homepage": "https://github.com/GrahamCampbell" + }, + { + "name": "Michael Dowling", + "email": "mtdowling@gmail.com", + "homepage": "https://github.com/mtdowling" + }, + { + "name": "Tobias Nyholm", + "email": "tobias.nyholm@gmail.com", + "homepage": "https://github.com/Nyholm" + }, + { + "name": "Tobias Schultze", + "email": "webmaster@tubo-world.de", + "homepage": "https://github.com/Tobion" + } + ], + "description": "Guzzle promises library", + "keywords": [ + "promise" + ], + "support": { + "issues": "https://github.com/guzzle/promises/issues", + "source": "https://github.com/guzzle/promises/tree/1.5.1" + }, + "funding": [ + { + "url": "https://github.com/GrahamCampbell", + "type": "github" + }, + { + "url": "https://github.com/Nyholm", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/guzzlehttp/promises", + "type": "tidelift" + } + ], + "time": "2021-10-22T20:56:57+00:00" + }, + { + "name": "guzzlehttp/psr7", + "version": "1.8.3", + "source": { + "type": "git", + "url": "https://github.com/guzzle/psr7.git", + "reference": "1afdd860a2566ed3c2b0b4a3de6e23434a79ec85" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/guzzle/psr7/zipball/1afdd860a2566ed3c2b0b4a3de6e23434a79ec85", + "reference": "1afdd860a2566ed3c2b0b4a3de6e23434a79ec85", + "shasum": "" + }, + "require": { + "php": ">=5.4.0", + "psr/http-message": "~1.0", + "ralouphie/getallheaders": "^2.0.5 || ^3.0.0" + }, + "provide": { + "psr/http-message-implementation": "1.0" + }, + "require-dev": { + "ext-zlib": "*", + "phpunit/phpunit": "~4.8.36 || ^5.7.27 || ^6.5.14 || ^7.5.20 || ^8.5.8 || ^9.3.10" + }, + "suggest": { + "laminas/laminas-httphandlerrunner": "Emit PSR-7 responses" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.7-dev" + } + }, + "autoload": { + "psr-4": { + "GuzzleHttp\\Psr7\\": "src/" + }, + "files": [ + "src/functions_include.php" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Graham Campbell", + "email": "hello@gjcampbell.co.uk", + "homepage": "https://github.com/GrahamCampbell" + }, + { + "name": "Michael Dowling", + "email": "mtdowling@gmail.com", + "homepage": "https://github.com/mtdowling" + }, + { + "name": "George Mponos", + "email": "gmponos@gmail.com", + "homepage": "https://github.com/gmponos" + }, + { + "name": "Tobias Nyholm", + "email": "tobias.nyholm@gmail.com", + "homepage": "https://github.com/Nyholm" + }, + { + "name": "Márk Sági-Kazár", + "email": "mark.sagikazar@gmail.com", + "homepage": "https://github.com/sagikazarmark" + }, + { + "name": "Tobias Schultze", + "email": "webmaster@tubo-world.de", + "homepage": "https://github.com/Tobion" + } + ], + "description": "PSR-7 message implementation that also provides common utility methods", + "keywords": [ + "http", + "message", + "psr-7", + "request", + "response", + "stream", + "uri", + "url" + ], + "support": { + "issues": "https://github.com/guzzle/psr7/issues", + "source": "https://github.com/guzzle/psr7/tree/1.8.3" + }, + "funding": [ + { + "url": "https://github.com/GrahamCampbell", + "type": "github" + }, + { + "url": "https://github.com/Nyholm", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/guzzlehttp/psr7", + "type": "tidelift" + } + ], + "time": "2021-10-05T13:56:00+00:00" + }, + { + "name": "psr/http-client", + "version": "1.0.1", + "source": { + "type": "git", + "url": "https://github.com/php-fig/http-client.git", + "reference": "2dfb5f6c5eff0e91e20e913f8c5452ed95b86621" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/php-fig/http-client/zipball/2dfb5f6c5eff0e91e20e913f8c5452ed95b86621", + "reference": "2dfb5f6c5eff0e91e20e913f8c5452ed95b86621", + "shasum": "" + }, + "require": { + "php": "^7.0 || ^8.0", + "psr/http-message": "^1.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.0.x-dev" + } + }, + "autoload": { + "psr-4": { + "Psr\\Http\\Client\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "PHP-FIG", + "homepage": "http://www.php-fig.org/" + } + ], + "description": "Common interface for HTTP clients", + "homepage": "https://github.com/php-fig/http-client", + "keywords": [ + "http", + "http-client", + "psr", + "psr-18" + ], + "support": { + "source": "https://github.com/php-fig/http-client/tree/master" + }, + "time": "2020-06-29T06:28:15+00:00" + }, + { + "name": "psr/http-message", + "version": "1.0.1", + "source": { + "type": "git", + "url": "https://github.com/php-fig/http-message.git", + "reference": "f6561bf28d520154e4b0ec72be95418abe6d9363" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/php-fig/http-message/zipball/f6561bf28d520154e4b0ec72be95418abe6d9363", + "reference": "f6561bf28d520154e4b0ec72be95418abe6d9363", + "shasum": "" + }, + "require": { + "php": ">=5.3.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.0.x-dev" + } + }, + "autoload": { + "psr-4": { + "Psr\\Http\\Message\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "PHP-FIG", + "homepage": "http://www.php-fig.org/" + } + ], + "description": "Common interface for HTTP messages", + "homepage": "https://github.com/php-fig/http-message", + "keywords": [ + "http", + "http-message", + "psr", + "psr-7", + "request", + "response" + ], + "support": { + "source": "https://github.com/php-fig/http-message/tree/master" + }, + "time": "2016-08-06T14:39:51+00:00" + }, + { + "name": "ralouphie/getallheaders", + "version": "3.0.3", + "source": { + "type": "git", + "url": "https://github.com/ralouphie/getallheaders.git", + "reference": "120b605dfeb996808c31b6477290a714d356e822" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/ralouphie/getallheaders/zipball/120b605dfeb996808c31b6477290a714d356e822", + "reference": "120b605dfeb996808c31b6477290a714d356e822", + "shasum": "" + }, + "require": { + "php": ">=5.6" + }, + "require-dev": { + "php-coveralls/php-coveralls": "^2.1", + "phpunit/phpunit": "^5 || ^6.5" + }, + "type": "library", + "autoload": { + "files": [ + "src/getallheaders.php" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Ralph Khattar", + "email": "ralph.khattar@gmail.com" + } + ], + "description": "A polyfill for getallheaders.", + "support": { + "issues": "https://github.com/ralouphie/getallheaders/issues", + "source": "https://github.com/ralouphie/getallheaders/tree/develop" + }, + "time": "2019-03-08T08:55:37+00:00" + }, + { + "name": "symfony/deprecation-contracts", + "version": "v2.4.0", + "source": { + "type": "git", + "url": "https://github.com/symfony/deprecation-contracts.git", + "reference": "5f38c8804a9e97d23e0c8d63341088cd8a22d627" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/deprecation-contracts/zipball/5f38c8804a9e97d23e0c8d63341088cd8a22d627", + "reference": "5f38c8804a9e97d23e0c8d63341088cd8a22d627", + "shasum": "" + }, + "require": { + "php": ">=7.1" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-main": "2.4-dev" + }, + "thanks": { + "name": "symfony/contracts", + "url": "https://github.com/symfony/contracts" + } + }, + "autoload": { + "files": [ + "function.php" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Nicolas Grekas", + "email": "p@tchwork.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "A generic function and convention to trigger deprecation notices", + "homepage": "https://symfony.com", + "support": { + "source": "https://github.com/symfony/deprecation-contracts/tree/v2.4.0" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2021-03-23T23:28:01+00:00" + } + ], + "packages-dev": [ + { + "name": "squizlabs/php_codesniffer", + "version": "3.6.1", + "source": { + "type": "git", + "url": "https://github.com/squizlabs/PHP_CodeSniffer.git", + "reference": "f268ca40d54617c6e06757f83f699775c9b3ff2e" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/squizlabs/PHP_CodeSniffer/zipball/f268ca40d54617c6e06757f83f699775c9b3ff2e", + "reference": "f268ca40d54617c6e06757f83f699775c9b3ff2e", + "shasum": "" + }, + "require": { + "ext-simplexml": "*", + "ext-tokenizer": "*", + "ext-xmlwriter": "*", + "php": ">=5.4.0" + }, + "require-dev": { + "phpunit/phpunit": "^4.0 || ^5.0 || ^6.0 || ^7.0" + }, + "bin": [ + "bin/phpcs", + "bin/phpcbf" + ], + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "3.x-dev" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Greg Sherwood", + "role": "lead" + } + ], + "description": "PHP_CodeSniffer tokenizes PHP, JavaScript and CSS files and detects violations of a defined set of coding standards.", + "homepage": "https://github.com/squizlabs/PHP_CodeSniffer", + "keywords": [ + "phpcs", + "standards" + ], + "support": { + "issues": "https://github.com/squizlabs/PHP_CodeSniffer/issues", + "source": "https://github.com/squizlabs/PHP_CodeSniffer", + "wiki": "https://github.com/squizlabs/PHP_CodeSniffer/wiki" + }, + "time": "2021-10-11T04:00:11+00:00" + } + ], + "aliases": [], + "minimum-stability": "stable", + "stability-flags": [], + "prefer-stable": false, + "prefer-lowest": false, + "platform": [], + "platform-dev": [], + "plugin-api-version": "2.0.0" +} diff --git a/contribstats b/contribstats new file mode 100755 index 0000000..c0a399c --- /dev/null +++ b/contribstats @@ -0,0 +1,19 @@ +#!/usr/bin/php + 'rszrama', - 'damz' => 'Damien Tournoud', - 'damien' => 'Damien Tournoud', - 'pedro.cambra' => 'pcambra', - 'andy' => 'andyg5000', - 'nmd.matt' => 'mglaman', - 'amateescue' => 'amateescu', - 'torgospizza' => 'torgosPizza', - 'rszrama et al' => 'rszrama', - 'redben in http' => 'redben', - 'my.baileys' => 'mr.baileys', - 'GoZOo' => 'GoZ', - 'pasi.kauraniemi' => 'mitrpaka', - 'mikeNCM' => 'mlutz', -]; -$projects = [ - 'commerce' => [ - 'repo' => 'https://git.drupal.org/project/commerce.git', - 'branch' => '8.x-2.x', - ], - 'commerce_shipping' => [ - 'repo' => 'https://git.drupal.org/project/commerce_shipping.git', - 'branch' => '8.x-2.x', - ], -]; -ensure_repos($projects); - -$range = '--since="2017-01-01 00:00:00" --until="2017-12-31 23:59:59"'; -foreach ($projects as $project_name => $project) { - $contributors = []; - $commits = []; - exec('git -C projects/' . $project_name . ' log --format="%ae||%s" --no-merges ' . $range, $commits); - foreach ($commits as $key => $commit) { - list($author, $subject) = explode("||", $commit); - $matches = []; - if (preg_match('/by (\w+\,?.*?):/', $subject, $matches)) { - foreach (explode(', ', $matches[1]) as $user) { - $user = isset($mappings[$user]) ? $mappings[$user] : $user; - if (!isset($contributors[$user])) { - $contributors[$user] = 0; - } - $contributors[$user] += 1; - } - } - else { - // The commit message isn't formatted with attribution. - $author = explode('@', $author); - $author = isset($mappings[$author[0]]) ? $mappings[$author[0]] : $author[0]; - if (!isset($contributors[$author])) { - $contributors[$author] = 0; - } - $contributors[$author] += 1; - } - } - - unset($contributors['git']); - arsort($contributors); - print json_encode([ - 'project' => $project_name . ' ' . $project['branch'], - 'total_contributors' => count($contributors), - 'total_commits' => count($commits), - 'contributors' => $contributors, - ], JSON_PRETTY_PRINT | JSON_UNESCAPED_SLASHES | JSON_UNESCAPED_UNICODE); -} - -function ensure_repos(array $projects) { - if (!is_dir('projects')) { - mkdir('projects'); - } - - foreach ($projects as $project_name => $project) { - $project_path = 'projects/' . $project_name; - if (is_dir($project_path)) { - exec('git -C ' . $project_path . ' checkout ' . $project['branch']); - exec('git -C ' . $project_path . ' pull origin ' . $project['branch']); - } - else { - exec('git clone --branch ' . $project['branch'] . ' ' . $project['repo'] . ' ' . $project_path); - } - } -} diff --git a/list-contrib.php b/list-contrib.php deleted file mode 100644 index 11ada57..0000000 --- a/list-contrib.php +++ /dev/null @@ -1,16 +0,0 @@ -loadHTML($html); -$elements = $doc->getElementsByTagName('span'); -$modules = []; -foreach ($elements as $element) { - if (strpos(strtolower($element->nodeValue), 'commerce') !== FALSE) { - $modules[$element->nodeValue] = $element->firstChild->getAttribute('href'); - } -} -print count($modules) . ' modules:' . PHP_EOL; -print json_encode($modules, JSON_PRETTY_PRINT | JSON_UNESCAPED_SLASHES | JSON_UNESCAPED_UNICODE); \ No newline at end of file diff --git a/module-list.json b/module-list.json new file mode 100644 index 0000000..a1a5a5e --- /dev/null +++ b/module-list.json @@ -0,0 +1,2274 @@ +{ + "e-Commerce": "ecommerce", + "e-Commerce PayFlow Pro": "payment_payflowpro", + "e-Commerce Sale": "sale", + "e-Commerce Inventory": "ec_inventory", + "e-Commerce Location": "ec_location", + "vcs.co.za ecommerce payment module": "ec_vcservices", + "e-Commerce | TrustCommerce Payments": "trustcommerce", + "e-Commerce - CommWeb Payment Gateway": "commweb", + "e-Commerce Google Checkout": "gcheckout", + "Signup Ecommerce Integration": "signup_ecommerce", + "e-Commerce | Autopay": "ec_autopay", + "Role Subscription e-Commerce Paid Subscription Management": "role_subscription", + "e-Commerce Statistics (ec_stats)": "ec_stats", + "e-Commerce SKU Inventory (ec_skuinv)": "ec_skuinv", + "osCommerce": "oscommerce", + "Ecommerce Node Access Product (Abandoned)": "ec_nodeaccess", + "SMS payment gateway for Drupal eCommerce (mobillcash)": "mobillcash", + "eWay payment gateway for e-Commerce": "ec_eway", + "ec_linkpoint, Linkpoint payment method using e-commerce api": "ec_linkpoint", + "e-Commerce - Ogone payment gateway": "ec_ogone", + "e-Commerce recurring transactions": "ec_recurring", + "e-Commerce role purchasing support": "ec_roles", + "e-Commerce | User Account": "ec_useracc", + "e-Commerce | Authorize.net Payments": "ec_authorize_net", + "ec_mobillcash mobile phone SMS payment gateway for Drupal eCommerce API ": "ec_mobillcash", + "CCNOW payment gateway for Drupal eCommerce API": "ec_ccnow", + "ec_paperpayments accept and track cheques/bank drafts/postal orders for Drupal eCommerce API": "ec_paperpayments", + "ec_ClickandBuy payment module for Drupal eCommerce": "ec_clickandbuy", + "e-Commerce | Donation": "ec_donate", + "e-Commerce Address Extra": "ec_address_extra", + "ecommerce auctions": "ec_auction", + "HSBC (CPI) payment gateway module for Drupal eCommerce API ": "ec_hsbc", + "e-Commerce File Downloads": "ec_file", + "e-Commerce Webform Products": "ec_webform", + "freeCommerce": "freecommerce", + "e-Commerce | Shipping API": "ec_ship", + "Commerce Core": "commerce", + "e-Commerce | FedEx Shipping": "ec_fedex", + "e-Commerce | UPS Shipping": "ec_ups", + "e-Commerce | USPS Shipping": "ec_usps", + "Licensing Ecommerce": "ec_licensing", + "osCommerce Authentication ": "oscommerse_auth", + "Ecwid Ecommerce Shopping Cart": "ecwid_shopping_cart", + "Ecommerce for India": "ecommerce_india", + "commerce_xml": "commerce_xml", + "Commerce Bulk Product Creation": "commerce_bpc", + "Commerce Affiliate": "commerce_affiliate", + "Commerce PayPal": "commerce_paypal", + "Commerce Paypoint": "commerce_paypoint", + "Commerce Worldpay": "commerce_worldpay", + "Commerce Authorize.Net": "commerce_authnet", + "Commerce MoIP": "commerce_moip", + "Commerce CyberSource": "commerce_cybersource", + "Commerce extra panes": "commerce_extra_panes", + "Commerce PagSeguro": "commerce_pagseguro", + "Commerce Pagamento Digital": "commerce_pagtodigital", + "e-Commerce Domain Access": "ec_domain", + "e-Commerce | Moneris Payments": "ec_moneris", + "Commerce Bank Transfer": "commerce_bank_transfer", + "Commerce Adyen": "commerce_adyen", + "Hotel Booking System for Drupal Commerce": "cm_hotel", + "Commerce Feeds": "commerce_feeds", + "Commerce Checkout Login": "commerce_checkout_login", + "SagePay Form Integration for Drupal Commerce": "commerce_sagepay_form", + "SagePay Direct Integration for Drupal Commerce": "commerce_sagepay_direct", + "SagePay Server Integration for Drupal Commerce": "commerce_sagepay_server", + "SagePay Token Integration for Drupal Commerce": "commerce_sagepay_token", + "e-Commerce | Invoice": "ec_invoice", + "CommerceML2 - 1c export/import service": "cmlservice", + "Drupal Commerce 3D Secure Support": "commerce_3d_secure", + "Commerce Sagepay": "1072866", + "Commerce Shipping": "commerce_shipping", + "Commerce Chinapay": "commerce_chinapay", + "drupalcommerce_sandbox": "1081200", + "Commerce sermepa": "commerce_sermepa", + "Commerce Postfinance ePayment": "commerce_postfinance", + "Commerce Subscription": "commerce_subscription", + "commerce_google_checkout": "1091950", + "Commerce Delivery": "commerce_delivery", + "Drupal Commerce Quickbooks Webconnect": "commerce_qb_webconnect", + "Commerce Product Key": "commerce_product_key", + "Axis Commerce": "1109322", + "Commerce Features": "commerce_features", + "Commerce Product Option": "commerce_option", + "Commerce Coupon": "commerce_coupon", + "Commerce Ogone": "commerce_ogone", + "Commerce File": "commerce_file", + "Commerce Price Table": "commerce_price_table", + "Commerce Offer": "1123256", + "Commerce order comment": "commerce_order_comment", + "Commerce Stock": "commerce_stock", + "Commerce VBO Integration": "1134100", + "Commerce Fieldgroup Panes": "commerce_fieldgroup_panes", + "Development version for (possibly abandoned?) commerce_bpc": "1136024", + "Commerce Google Analytics": "commerce_google_analytics", + "Commerce Migrate": "commerce_migrate", + "Commerce Product Bundle": "commerce_product_bundle", + "Commerce eWAY": "commerce_eway", + "Commerce Cart Options": "1146154", + "Commerce Contextual Administration": "1148260", + "Commerce PDF Invoice": "commerce_pdf_invoice", + "Commerce Product Attributes": "commerce_product_attributes", + "Commerce Roles": "1154764", + "Commerce (Product Display Manager)": "commerce_product_display_manager", + "Commerce Netcash": "commerce_netcash", + "Commerce platnosci.pl": "commerce_platnosci_pl", + "Commerce Recurring": "1162096", + "Commerce Invoice": "commerce_invoice", + "Commerce Cheque": "commerce_cheque", + "Commerce Devel": "commerce_devel", + "Commerce Paygate": "commerce_paygate", + "Commerce Payflow Pro": "commerce_payflow_pro", + "Commerce Alipay": "commerce_alipay", + "Commerce Checkout Redirect": "commerce_checkout_redirect", + "CZ/SK Company Field for Commerce": "1174230", + "googletorp's commerce sandbox": "1176472", + "Commerce Multiple Add to Cart": "1177500", + "Commerce DIBS": "1178080", + "Commerce Linkpoint Api": "1179820", + "Commerce Finnish Payments": "commerce_finnish_payments", + "Commerce First Data": "commerce_firstdata", + "Commerce AutoSKU": "commerce_autosku", + "Commerce payment 4b": "1185468", + "Commerce templates": "1186150", + "Commerce Addressbook": "commerce_addressbook", + "Commerce Eurobank": "commerce_eurobank", + "commerce_addressbook": "1191712", + "Commerce Downloads Feature": "commerce_downloads_feature", + "Commerce 2Checkout.com": "1192384", + "Commerce - EBS Payment Gateway": "1192522", + "Commerce Safety Pay": "1193574", + "Commerce shipping flatrate": "1194120", + "Commerce POS": "1195272", + "Commerce Skrill (Formerly Moneybookers)": "commerce_moneybookers", + "Commerce product reference edit": "1195846", + "Ryan's Commerce Addressbook": "1197690", + "Commerce Punto Web(MasterCard SecureCode)": "1198182", + "Commerce Sandbox": "1198696", + "Fork of commerce_addressbook": "1201210", + "Ryan's Commerce Sandbox": "1202362", + "Google Analytics Ecommerce": "google_analytics_ecommerce", + "Commerce Beanstream": "commerce_beanstream", + "Commerce Ideal": "1212906", + "CommerceGate": "1214066", + "Not Commerce Purchase Order": "1221552", + "Commerce Reorder": "commerce_reorder", + "Commerce Quickpay": "1226438", + "Commerce VBO Views": "commerce_vbo_views", + "Commerce Stock Custom Rules": "1229306", + "Commerce Marketplace": "1232160", + "Commerce Signup": "1232882", + "Commerce Migrate UC File S3": "1233708", + "Commerce Correios": "commerce_correios", + "Commerce Cielo": "commerce_cielo", + "Commerce QuikPay": "1240908", + "Commerce Migrate Ubercart User Migration": "1241072", + "Commerce FIA-NET": "commerce_fianet", + "commerce_gc": "1246398", + "Commerce Physical Product": "commerce_physical", + "Commerce payment by invoice": "1250646", + "Commerce Email": "commerce_email", + "Drupal Commerce Payment Icons": "commerce_payment_icons", + "Commerce Exports": "1253600", + "Commerce Price FlexyFormatter": "commerce_price_flexyformatter", + "Commerce Atos": "commerce_atos", + "Commerce Shipping Flat Rate": "commerce_shipping_flat_rate", + "Commerce Boleto": "commerce_boleto", + "Commerce Product Reference View Widget": "product_reference_view", + "Commerce Reports": "1256520", + "Commerce Credits": "commerce_credits", + "Commerce IPay88": "commerce_ipay88", + "Commerce userpoints": "commerce_userpoints", + "Commerce European Union VAT": "commerce_eu_vat", + "Commerce Mail In Payment": "1263570", + "Commerce Multicurrency": "commerce_multicurrency", + "commerce_lto": "1265444", + "Commerce Purchase Order": "commerce_purchase_order", + "Commerce Product limit": "1268568", + "Commerce Quantity control using rules": "1269302", + "Commerce Wishlist": "commerce_wishlist", + "Commerce Repair": "commerce_repair", + "Commerce Services": "1275216", + "commerce compact cart": "1278896", + "Commerce subscription products": "commerce_sp", + "Commerce Affiliates Orders": "1279128", + "XML Sitemap Commerce Product": "1279350", + "Commerce Invoice Receipt": "commerce_invoice_receipt", + "Commerce Datacash": "commerce_datacash", + "Drupal Commerce Extra Price Formatters": "commerce_extra_price_formatters", + "Liqpay for Drupal Commerce": "1282754", + "Commerce Purchase Relationships": "1282902", + "Services Commerce": "1283494", + "Alipay for drupal 7's ecommerce module": "1284906", + "Commerce No Payment": "commerce_no_payment", + "Commerce Stock Management": "1287128", + "Commerce NAB Transact": "commerce_nab_transact", + "Commerce price by components": "commerce_price_components", + "Commerce W1": "1291248", + "Commerce Checkout Progress": "commerce_checkout_progress", + "Commerce Extra Rules Conditions": "commerce_conditions", + "Commerce Paydollar": "commerce_paydollar", + "Commerce ConnectShip": "commerce_connectship", + "Commerce Checkout Pages": "dc_co_pages", + "Commerce Canadian Taxes": "commerce_canadian_taxes", + "Scrapped -- Commerce U-P-S": "1294980", + "Commerce UPS": "commerce_ups", + "Commerce Sales": "1295970", + "Commerce Package": "1296274", + "Commerce Shipping Quotes": "1296336", + "Commerce Reports (Google Charts)": "1296710", + "Commerce Multibanco (CompraFácil)": "commerce_comprafacil", + "iDEAL For Drupal Commerce": "idealcommerce", + "Commerce Cart Ajax": "dc_cart_ajax", + "Commerce Billing Information Populate": "1300116", + "Commerce Payment Network": "commerce_payment_network", + "Commerce Registration": "commerce_registration", + "Commerce Installments": "commerce_installments", + "Commerce Reporting": "commerce_reports", + "Commerce Bundle Stock": "1304984", + "Commerce Add to Cart Extras": "commerce_add_to_cart_extras", + "Commerce Physical UI": "1308148", + "Commerce ePayment": "commerce_epayment", + "Commerce Also Purchased": "1310996", + "Commerce robokassa": "commerce_robokassa", + "Commerce BaoKim": "commerce_baokim", + "Commerce Cash on Delivery": "commerce_cod", + "Commerce Rentals": "1312552", + "Commerce Card on File": "commerce_cardonfile", + "Commerce Price History": "commerce_price_history", + "Commerce direct buy": "commerce_direct_buy", + "Commerce Examples": "commerce_examples", + "VT Commerce Catalog": "vt_commerce_catalog", + "VT Commerce Image": "vtcommerce_image", + "Commerce Custom Line Items (Types)": "commerce_custom_line_items", + "Commerce Quantity Plus-Minus": "1327170", + "Commerce add to cart popup": "1329692", + "Commerce Paybox (Verifone e-commerce)": "commerce_paybox", + "Commerce Shipping USPS": "commerce_shipping_usps", + "Commerce Shipping UPS": "commerce_shipping_ups", + "Commerce Klarna": "commerce_klarna", + "Commerce Giftwrap": "commerce_giftwrap", + "Commerce coupon sandbox": "1334552", + "Commerce Flat Rate": "commerce_flat_rate", + "Commerce Post Affiliate Pro": "commerce_post_affiliate_pro", + "Commerce Authorize.Net SIM/DPM Payment Methods": "commerce_authnet_simdpm", + "Commerce Order Reference": "commerce_order_reference", + "Commerce Recurring Framework": "commerce_recurring", + "Commerce EzyPay": "commerce_ezypay", + "Commerce Order Types": "commerce_order_types", + "Commerce Node Checkout": "commerce_node_checkout", + "Commerce Recommender": "commerce_rec", + "Commerce one page": "1341870", + "Commerce Payout": "1342892", + "Commerce Extra": "commerce_extra", + "Dwolla for Drupal Commerce": "dwolla", + "Commerce manual payment deferred": "1347276", + "Commerce Shipping Australia Post": "1347922", + "Commerce decimal quantities": "commerce_decimal_quantities", + "Wazala eCommerce": "wazala", + "Commerce Panels": "1349452", + "Commerce Paypoint Gateway Hosted": "1349628", + "Commerce Maksuturva": "commerce_maksuturva", + "Commerce EBS Payment Gateway": "commerce_ebs", + "Commerce CCAvenue Payment Gateway": "commerce_ccavenue", + "Commerce Moneris": "commerce_moneris", + "Commerce Canada Post": "commerce_canadapost", + "Commerce Saferpay": "commerce_saferpay", + "Commerce Discount Campaign Feature": "1357008", + "Commerce Auriga": "commerce_auriga", + "Commercegate Gateway": "1357298", + "Commerce Taxonomy Field Product Attribute": "1357524", + "Commerce transactional stock feature": "1360184", + "Commerce Buckaroo Payment": "commerce_buckaroo", + "Commerce Price Savings Formatter": "commerce_price_savings_formatter", + "Commerce Eurobank Redirect": "1364916", + "Commerce MultiSafepay": "commerce_multisafepay", + "uc_matcommerce": "1367642", + "Commerce ajax add to cart form": "1368778", + "Commerce Customizable Products": "commerce_custom_product", + "Commerce Inline Product Form Fork": "1370796", + "Commerce Stripe": "commerce_stripe", + "Commerce Minimum & Maximum Order Amount": "commerce_moa", + "Commerce Shipping by Weight": "1374058", + "Commerce Organic Group Subscribe": "1377898", + "Commerce LiqPay (API v1.2)": "1378668", + "Commerce Colissimo": "commerce_colissimo", + "Apachesolr Commerce": "apachesolr_commerce", + "Commerce pay in person": "commerce_pay_in_person", + "Commerce Virtual Merchant": "1380684", + "Commerce PayU": "commerce_payu", + "Commerce Freightquote": "1391726", + "Commerce SecurePay(.com.au)": "commerce_securepayau", + "Commerce paylink": "1393524", + "Commerce POS Cash Count": "1396002", + "Commerce POS Reports": "1396008", + "Commerce Datatrans": "commerce_datatrans", + "Commerce Nets Payment Gateway": "commerce_nets", + "Commerce Australia": "commerce_australia", + "Commerce credits payment": "1402622", + "Commerce credits transfer": "1404382", + "Commerce Libertyreserve": "commerce_libertyreserve", + "Commerce Nodecopy": "commerce_nodecopy", + "Commerce Addressbook Sandbox": "1409158", + "Commerce ePay.bg": "1415384", + "Commerce Checkout.fi Payments": "1416202", + "Commerce Payment Novalnet": "novalnet", + "Commerce Credits Flag": "commerce_credits_flag", + "Commerce Zarinpal": "1417614", + "Commerce Backorder": "1419472", + "Commerce UUID": "commerce_uuid", + "Commerce 2CheckOut": "commerce_2checkout", + "Commerce Suomen Verkkomaksut": "1423110", + "Commerce Abandoned Cart Notification": "commerce_notification", + "Washington State Sales Tax for Drupal Commerce": "1425322", + "Commerce Realex": "1425816", + "Commerce Price Table Processor for Feeds": "1426446", + "Commerce Emporiki": "commerce_emporiki", + "Newsletter commerce": "newsletter_commerce", + "Commerce WorldPay Business Gateway": "1433370", + "Commerce Payment: Suomen Verkkomaksut": "commerce_suomenverkkomaksut", + "Commerce Paypal WPP rewrite": "1442708", + "Commerce Order Invoice": "commerce_order_invoice", + "Commerce Catalog": "1444900", + "Commerce Auction": "commerce_auction", + "Commerce Shipping Bring": "1446606", + "Commerce Checkout.fi": "commerce_checkout_fi", + "Commerce tax report": "1449886", + "Commerce Cart Expiration": "commerce_cart_expiration", + "Commerce coupon fixed amount": "commerce_coupon_fixed_amount", + "Commerce coupon percentage": "commerce_coupon_pct", + "Commerce FedEx": "commerce_fedex", + "Commerce Coffee": "commerce_coffee", + "BPC Commerce file": "1457982", + "Commerce Payment NganLuong": "1458280", + "Commerce Realex / Global Payments": "commerce_realex", + "Commerce NewLeaf": "1460620", + "Commerce Bitcoin": "commerce_bitcoin", + "Commerce Taxonomy Reference": "1462604", + "Galleria Commerce": "1469928", + "commerce_alipay": "1470020", + "Extend Drupal Commerce Products": "1470430", + "Commerce ad hoc payment": "commerce_adhoc_payment", + "Commerce payment balance validation": "commerce_payment_balance_validation", + "Commerce coupon batch": "commerce_coupon_batch", + "Drupal Commerce Shipwire API module": "1477272", + "Commerce reverse payments": "commerce_reverse_payments", + "Novalnet Payment Module - Drupal Commerce": "commerce_novalnet", + "Commerce Postal Code Filter": "commerce_postal_code_filter", + "Commerce Migrate Ubercart Shipping": "commerce_migrate_ubercart_shipping", + "Commerce Migrate Ubercart Line Items": "1488584", + "e-commerce pricing table for data feeds": "1490300", + "Commerce VirtueMart.net": "commerce_virtuemart", + "Commerce Shipping as Billing": "1492526", + "Commerce Fast Checkout": "1493240", + "Commerce Aramex ": "1494552", + "Commerce Justpay": "commerce_justpay", + "Commerce X-Pay ": "commerce_x_pay", + "Commerce DPS": "commerce_dps", + "Commerce Google Checkout": "1497002", + "Commerce CIMB Clicks": "commerce_cimbclicks", + "Commerce MEPS FPX": "commerce_mepsfpx", + "Commerce Order Installment": "1502028", + "Commerce Pagosonline": "commerce_pagosonline", + "Commerce Netbanx": "commerce_netbanx", + "Commerce Registry": "commerce_registry", + "Commerce ACH": "1510140", + "Commerce Netherlands Currency Display": "1512162", + "Commerce Dutch VAT": "1515012", + "commerce_node_checkout": "1515056", + "commerce_single_page_purchase": "1515088", + "commerce_donation": "1515092", + "Commerce Userpoints Grant": "1515550", + "Commerce Product Entity Sync": "1516510", + "Commerce Mijireh": "1520002", + "Commerce Campaign Monitor": "commerce_campaignmonitor", + "Commerce USPS": "commerce_usps", + "Commerce Payment Merchant e-Solutions": "1529108", + "Commerce Payment MIGS": "1529406", + "Commerce Add To Cart Filter": "commerce_atc_filter", + "Commerce JetPay": "1529848", + "Commerce Extra Tokens": "commerce_extra_tokens", + "Commerce WeDeal": "commerce_wedeal", + "Commerce Reservations": "1537398", + "Commerce Custom Order Status": "commerce_custom_order_status", + "Commerce SP PayPal": "commerce_sp_paypal", + "Commerce Product Clone": "commerce_product_clone", + "Commerce Fedex": "1541092", + "Commerce 4B": "commerce_4b", + "Commerce Order Manager": "1543040", + "Commerce Paypal Express Checkout": "commerce_paypal_ec", + "Commerce TouchNet uPay": "1545694", + "Payment for Drupal Commerce": "payment_commerce", + "Commerce CM-CIC": "commerce_cmcic", + "Commerce Webform": "commerce_webform", + "Commerce Gift Aid": "commerce_giftaid", + "Commerce Actions": "1552220", + "Commerce PayFast": "commerce_payfast", + "Commerce Funds": "commerce_funds", + "Commerce Yandex.Metrics": "commerce_yandex_metrics", + "Commerce Google Merchant Integration": "commerce_gmerchant", + "Commerce Authorize.Net Fork": "1557990", + "Commerce DPS PX Fusion": "1558452", + "Commerce Fancy Attributes": "commerce_fancy_attributes", + "Commerce product order history": "1559572", + "Registration Commerce": "registration_commerce", + "Commerce Payson Agent Integration": "commerce_payson", + "Commerce File Batch Process": "commerce_file_batch", + "Commerce Bespoke": "1562142", + "Commerce Mailchimp Sil": "1565276", + "Commerce Heidelpay": "commerce_heidelpay", + "VoIPCommerce": "voipcommerce", + "Commerce Options Field": "commerce_options_field", + "Commerce Stock Status": "1570672", + "Commerce Tickets": "commerce_tickets", + "Compass: Commerce Dashboard & Analytics": "commerce_compass", + "Commerce Message Pane": "commerce_message_pane", + "Commerce Product key development sandbox": "1587340", + "Commerce Views Display": "commerce_views_display", + "Commerce Pagseguro Reloaded": "1587886", + "Commerce easypay": "1587946", + "Commerce Payback": "1588182", + "Entity cache for Drupal Commerce": "commerce_entitycache", + "BassisJimmyJam's fork of Commerce Order Invoice": "1589216", + "Commerce discount sandbox": "1592088", + "Commerce Transferuj.pl": "commerce_transferuj_pl", + "Commerce Dispatch": "commerce_dispatch", + "Commerce PagOnline": "commerce_pagonline", + "Commerce Discrete Quantity Discount": "1595096", + "Commerce External Links": "1596882", + "Commerce ajax cart edit": "1597470", + "Commerce Secure Hosting": "commerce_securehosting", + "Commerce Contributions": "commerce_contributions", + "Commerce NganLuong": "1603698", + "Commerce Payleap": "commerce_payleap", + "Commerce taxonomy catalog": "commerce_catalog", + "Commerce Credit Voucher": "1608282", + "e-Commerce Mailcheck": "1609046", + "Commerce Cybersource Hosted Order Page (HOP) module": "commerce_cybersource_hop", + "Commerce checkout button text": "1615410", + "Commerce Pay by Invoice": "1616466", + "Commerce PayWay Net": "commerce_payway_net", + "Commerce Skipjack": "commerce_skipjack", + "Commerce Recurly": "1619178", + "Commerce Draft Carts": "1620236", + "Commerce Cart View Override": "commerce_cart_view_override", + "Commerce Services resources": "commerce_services", + "Commerce EasyOrder": "1621960", + "Commerce Direct Debit": "commerce_directdebit", + "Commerce Sale Price": "commerce_saleprice", + "Commerce CiviCRM ": "commerce_civicrm", + "CommerceCiviCRM": "1636092", + "Commerce Popular Products": "commerce_popular_products", + "Commerce product page": "1643530", + "Commerce line item page": "commerce_line_item_page", + "Commerce Checkout Admin": "commerce_checkout_admin", + "Commerce Migrate Ubercart": "commerce_migrate_ubercart", + "Commerce Discount": "commerce_discount", + "Commerce Stock Record": "1651594", + "commerce_donate": "1653284", + "GiroConnect: Payment gateway for Ubercart and Commerce": "giroconnect", + "Commerce Europabank (unofficial)": "commerce_europabank", + "campaignmonitor_commerce": "1666078", + "Commerce Invoices": "commerce_invoices", + "Commerce Estonian payments": "commerce_ep", + "Commerce Product Popularity": "commerce_productpopularity", + "Commerce Express Checkout": "commerce_express_checkout", + "Commerce rules pane": "commerce_rules_pane", + "Commerce Tax Reference": "commerce_tax_reference", + "Commerce Norway VAT": "commerce_no_vat", + "Commerce Switzerland VAT": "commerce_ch_vat", + "Commerce Iceland VAT": "commerce_is_vat", + "Commerce Donate": "commerce_donate", + "Commerce order confirm": "commerce_order_confirm", + "Commerce Immediate Login": "1676742", + "Commerce Simple Invoice": "1680086", + "Commerce Shipping EU": "1682554", + "Commerce External Payment": "1683108", + "Commerce Checkout Buttons": "commerce_checkout_buttons", + "Commerce User Merge": "commerce_usermerge", + "Commerce calculated price extras": "1686666", + "Commerce Customizable Add to Cart": "1687512", + "Commerce Options Stock": "commerce_options_stock", + "Commerce Coupon by product reference": "commerce_couponprodref", + "Commerce File Bundle": "commerce_file_bundle", + "Commerce Pasargad": "1696668", + "Commerce line item addon": "1698966", + "Commerce Fedex Shipping Module": "1701240", + "Commerce Mellat": "1702928", + "Commerce PayPaad": "1703496", + "Commerce EasyPaybg": "commerce_easypaybg", + "Commerce_Securepay": "commerce_securepay", + "Webform Commerce": "1706994", + "Commerce Auto Product Display": "1707838", + "Commerce Button-Lösung": "commerce_buttonloesung", + "Commerce Checkout Pane Payment": "commerce_checkout_pane_payment", + "Commerce Discount Products": "1711692", + "Commerce Postepay": "1711844", + "Commerce Yandex.Money P2P": "commerce_yandex_money", + "Commerce Feeds multitype": "commerce_feedsmulti", + "Commerce Product Manager": "1720354", + "Commerce bpost": "commerce_bpost", + "Commerce add to cart confirmation": "commerce_add_to_cart_confirmation", + "Commerce WinBIZ": "commerce_winbiz", + "Commerce InternetSecure": "1733502", + "Bank of Maldives Payment Gateway for Drupal Commerce": "1734514", + "Commerce Shipping Matrix": "1736626", + "Commerce BBVA": "commerce_bbva", + "Commerce Fat Zebra": "commerce_fatzebra", + "Commerce coupon fixed distributed": "1743616", + "Commerce Tenpay": "1753978", + "Commerce PayPal WPP 3-D Secure": "1760684", + "Commerce Centinel": "1760698", + "Commerce 3-D Secure API": "1760700", + "Realex Real Auth Redirect - Drupal Commerce": "1760900", + "Commerce: Availability": "1762222", + "Commerce JQueryMenu Catalog": "1765574", + "Commerce Order Counter": "commerce_order_counter", + "Commerce License Key": "1768630", + "Commerce PayGate PayWeb": "1772114", + "Commerce Waitlist": "1772176", + "Commerce Keyclient": "commerce_keyclient", + "Commerce shipping price intervals": "1773736", + "Commerce Return Merchandise Authorization": "commerce_rma", + "Commerce Product Lock": "1779308", + "Commerce BarclayCard ePDQ": "commerce_epdq", + "Commerce Contribution": "1781688", + "Commerce PrivatBank (Privat24)": "1782240", + "Commerce Search API Sandbox": "1782604", + "Commerce Gestpay": "commerce_gestpay", + "Commerce Product Reference Admin": "1786010", + "Aegir Commerce Integration": "commerce_hosting", + "Commerce userpoints discounts": "1787934", + "Commerce Product Expiration": "1790820", + "Commerce Gift Certificates": "1791702", + "Commerce Econt": "1793110", + "Commerce Kiala": "commerce_kiala", + "Commerce MIGS Merchant": "commerce_migs_merchant", + "Commerce Be2Bill": "commerce_be2bill", + "Commerce taxonomy product select": "1799844", + "Commerce Purolator Shipping": "1800756", + "Commerce Booking": "commerce_booking", + "Commerce table rate": "1800994", + "Commerce Periship": "commerce_periship", + "commerce_compare": "1802970", + "Commerce IATS": "commerce_iats", + "Commerce Shipping Weight Tariff": "commerce_shipping_weight_tariff", + "Commerce VisaNet Peru": "commerce_payment_visanet_peru", + "Commerce CM CIC Cybermut": "1804494", + "Commerce Kickstart Scenario": "1807520", + "Commerce Minimum Order Quantity and Increment": "1808850", + "Commerce Stamps.com": "commerce_stamps_com", + "Commerce Card on File Revisions": "1809132", + "Commerce pick-pack pont": "commerce_pickpackpoints", + "Commerce Caledon": "commerce_caledon", + "Commerce Card on File (Forked)": "1810130", + "(deprecated) Commerce Custom Product Line Item (field, read default)": "1810868", + "(HBD) Commerce Custom Product Field": "1810878", + "commerce static checkout url": "commerce_static_checkout_url", + "Commerce BitPay": "commerce_bitpay", + "Commerce Contribute": "1815574", + "Commerce payment received": "commerce_paymentreceived", + "Commerce Coupon by Terms": "1822436", + "Commerce StoneEdge": "1822438", + "Commerce Supplier Stock": "1822442", + "Commerce Multibanco (Ifthen Software)": "1823218", + "Commerce USAePay": "commerce_usaepay", + "commerce_store": "1826034", + "Commerce Services Extra": "1829820", + "Commerce MailChimp": "commerce_mailchimp", + "commerce I agree": "1830642", + "Commerce order2pdf": "commerce_order2pdf", + "Commerce Gopay": "1831634", + "Commerce Backoffice": "commerce_backoffice", + "Commerce Search API": "commerce_search_api", + "Commerce Moodle Integration": "commerce_moodle", + "Commerce E-Conomic": "1834212", + "Commerce Profile2": "commerce_profile2", + "Commerce Touchnet uPay Payment Gateway": "commerce_touchnet_upay", + "Mollie Commerce": "1838456", + "AllPlayers.com fork of Commerce Recurring Framework": "1838752", + "Commerce Coupon Credit": "1839962", + "Commerce Paymill": "commerce_paymill", + "Commerce Card on File Terminal": "1840930", + "Commerce Braintree": "commerce_braintree", + "Commerce Bluepay (Deprecated)": "1841220", + "Commerce Ecard": "commerce_ecard", + "Commerce Ajax Add to Cart": "dc_ajax_add_cart", + "Commerce Empty Cart": "1844864", + "Commerce Product URLs": "commerce_product_urls", + "Commerce Rules Extra": "commerce_rules_extra", + "Commerce Cost": "1849686", + "Commerce Qiwi": "1850052", + "Commerce Currency Settings": "commerce_currency_settings", + "Commerce Estcard": "commerce_estcard", + "Commerce Australia Post": "commerce_auspost", + "Commerce Hosted PCI": "commerce_hosted_pci", + "Commerce Price Extra": "commerce_price_extra", + "Commerce Price Decimals Formatter": "commerce_price_decimals_formatter", + "commerce product display clone extend": "1853396", + "Commerce Eurobank (Redirect)": "commerce_eurobank_redirect", + "Commerce Alphabank Redirect": "commerce_alphabank_redirect", + "Commerce Winbank Redirect": "commerce_winbank_redirect", + "Commerce Line Item Edit": "1858212", + "Commerce Order Details": "1858214", + "Commerce Partial": "1858218", + "Commerce Shipping Report": "1858352", + "Commerce Check": "commerce_check", + "Commerce Migrate OSC": "1859470", + "Commerce Quotes": "1860944", + "Commerce Toman": "1861440", + "Commerce Ordernumber Sort": "1861714", + "Export Orders for Commerce": "1863908", + "commerce_dropship": "1864488", + "Commerce Amount Coupon": "1864598", + "Commerce Message": "commerce_message", + "Commerce Donation": "1865908", + "Commerce Purolator": "1865952", + "Commerce Multiship": "1865956", + "Commerce Everyday": "commerce_everyday", + "Commerce Epaybg": "commerce_epaybg", + "Commerce Discount with VAT": "1871090", + "Commerce American Express Payment Gateway (Amex)": "commerce_amex", + "Commerce Packing Old": "1873204", + "Commerce Pay2Pay": "1873772", + "Commerce Fulfilment via OMS": "commerce_fulfilment_oms", + "Commerce Quantum Gateway": "commerce_quantum", + "Commerce Realex Redirect Payments": "commerce_realex_redirect", + "Commerce Shop": "1875574", + "Currency for Drupal Commerce": "currency_commerce", + "Commerce Pesapal": "1877722", + "Commerce CartaSi XPay": "commerce_cartasi_xpay", + "Commerce Fulfilment": "commerce_fulfilment", + "Commerce Order Tracking": "1879374", + "Commerce TotalApps": "1879524", + "Commerce Payseal ICICI": "commerce_icici", + "commerce_prepaid_cards": "1882304", + "Commerce Coupon Userpoints": "commerce_coupon_userpoints", + "commerce_prepaid_cards_payment": "1882742", + "Commerce Pricing Attributes": "commerce_pricing_attributes", + "Commerce Product Add-on": "commerce_pado", + "Commerce Single Page Checkout": "1886778", + "Commerce Payu India": "1886888", + "Commerce Webmoney": "1887378", + "Commerce Receipt": "1887390", + "Commerce Paypal IPN Rules integration": "commerce_paypal_ipn_rules_integration", + "Commerce Andazsolutions": "commerce_andazsolutions", + "Commerce Manual Line Item": "1890528", + "Commerce Single Page": "1891418", + "Commerce Split Checkout": "1891426", + "Commerce Webpay": "1891432", + "Commerce eWAY Multi": "commerce_eway_multi", + "Commerce TNT": "commerce_tnt", + "Commerce Cart Message": "commerce_cartmessage", + "Commerce GPG": "commerce_gpg", + "Commerce iTransact": "commerce_itransact", + "Commerce Merchant Warrior": "1902760", + "Commerce DocData": "1903594", + "Commerce Invoice Print": "commerce_invoice_print", + "Commerce Paypal China": "paypalcn", + "Commerce Gallery": "1904566", + "Commerce Est": "1905430", + "Commerce Mobilpay": "commerce_mobilpay", + "Commerce Pickup": "commerce_pickup", + "Commerce Profile2 Checkout Pane": "commerce_p2cp", + "Commerce EntityForm": "1907348", + "Commerce Brazilian IDs": "1907474", + "Commerce Bradesco": "1907516", + "Commerce Single Address": "commerce_single_address", + "Commerce Payment Confirm": "commerce_payment_confirm", + "Commerce ibis": "1908244", + "Commerce Comparer": "1908654", + "Commerce GGe4": "1910392", + "Commerce Bcash": "1914792", + "Commerce Egopay": "1914862", + "Commerce Custom Product Pricing": "1915570", + "commerce_migrate_ubercart_taxonomy": "1915924", + "commerce_migrate_ubercart_shipping": "1915930", + "commerce_migrate_physical_product": "1915936", + "Quoting without Commerce": "1916314", + "commerce_migrate_ubercart": "1916470", + "Commerce price interval": "1917304", + "Commerce Xero": "commerce_xero", + "Commerce Credomatic": "commerce_credomatic", + "Pushtape Commerce": "1919326", + "commerce_svea": "1919556", + "Commerce PAYONE": "commerce_payone", + "Commerce simple": "commerce_simple", + "Commerce Admin Order Advanced": "commerce_admin_order_advanced", + "Commerce Correos": "1923296", + "Commerce Consorzio Triveneto payment gateway integration": "commerce_constriv", + "Commerce Saman": "1925128", + "commerce taxonomy conditions": "commerce_taxonomy_conditions", + "Commerce Upsell": "commerce_upsell", + "Appixia Drupal Commerce Integration": "1926976", + "Commerce Empty Cart Paths": "commerce_empty_cart_paths", + "XT-Commerce Session integration": "1930588", + "Commerce User Profile Pane": "commerce_user_profile_pane", + "Drupal Commerce SagePay Integration": "commerce_sagepay", + "Commerce Coupon - Per user redemption": "1932088", + "Commerce Elavon": "commerce_elavon", + "Commerce BGPost": "1933172", + "Commerce Add to Cart radio input form": "commerce_add_to_cart_radio", + "Commerce invoice types": "1935320", + "Commerce Partial Payment": "commerce_partial_payment", + "Commerce PDFTemplate Invoice": "commerce_pdftemplate", + "Commerce Transbank Webpay": "commerce_webpay", + "DruStack Commerce": "drustack_commerce", + "Salsa Commerce": "salsa_commerce", + "Commerce Views Pane": "commerce_views_pane", + "Commerce Cash on Delivery with extra fees": "1941748", + "Commerce Shipping Postal Code Weight": "commerce_shipping_postal_code_weight", + "Commerce Fees": "commerce_fees", + "Commerce Klarna Checkout": "commerce_klarna_checkout", + "Commerce Add to cart button": "1945900", + "Commerce GoCardless": "commerce_gocardless", + "Commerce Custom Product Line Item": "1947762", + "Commerce Product Min/Max": "1947986", + "Commerce Freshbooks": "1950000", + "Commerce Marketplace": "1950386", + "Commerce propay": "1950946", + "Commerce Point of Sale (POS)": "commerce_pos", + "Commerce Card on File 2.0 merge": "1954984", + "Commerce Rent": "1955084", + "Commerce WorldCash": "commerce_worldcash", + "Commerce HDFC": "1957756", + "Commerce Line Item Cart Form": "commerce_line_item_cart_form", + "Registration Waitlist for Drupal Commerce Registration": "1958922", + "Commerce Free Shipping": "commerce_free_shipping", + "Commerce Authcache": "commerce_authcache", + "Commerce NMI": "commerce_nmi", + "Commerce VWO Revenue": "commerce_vwo_revenue", + "Commerce CTools Extra": "1964002", + "e-Commerce Devel": "1965064", + "Commerce Feeds GUID": "1970072", + "Good Relations for Drupal Commerce (schema.org compatible)": "commerce_goodrelations", + "Commerce Exactor": "commerce_exactor", + "Commerce BIG FISH Paymentgateway": "commerce_bigfish_paymentgateway", + "Commerce Migs 3rd Party Hosted Gateway": "1977086", + "Commerce Neteller": "commerce_neteller", + "Commerce JCC": "1978578", + "Commerce-Marketplace": "commerce_marketplace", + "Commerce bean": "commerce_bean", + "Commerce Unleashed": "commerce_unleashed", + "Commerce Khipu": "commerce_khipu", + "Commerce Checkout by Amazon": "commerce_cba", + "Commerce Recurring Order": "1986218", + "Commerce Santander eRaty": "commerce_eraty", + "Commerce Cart for Later": "1989452", + "Cashie Commerce": "1990346", + "Commerce RedeCard": "1990398", + "Commerce VAT": "commerce_vat", + "Commerce Piwik": "1992906", + "Commerce Payment EAN": "commerce_payment_ean", + "Commerce Guys Marketplace": "commerceguys_marketplace", + "Commerce Conversion Tracking": "commerce_conversiontracking", + "Commerce Pre-order": "commerce_preorder", + "Commerce Przelewy24": "commerce_przelewy24", + "Commerce Interkassa": "2005200", + "Commerce PayWay2 SOAR": "commerce_payway2_soar", + "Commerce Store Credit": "2007802", + "Commerce Perfect Money": "2008368", + "Commerce Interkassa Payment": "commerce_interkassa", + "Commerce Views Product in Cart filter": "2008848", + "commerce_marketplaces": "2008902", + "commerce_priceminister": "2008906", + "Commerce Pin": "commerce_pin", + "Commerce One Click Buy": "commerce_one_click_buy", + "Commerce Coupon Free Shipping": "2013162", + "Commerce Billy": "commerce_billy", + "Commerce Orphaned Line Items": "2016427", + "Commerce Tax Canada": "2017369", + "Moneybird Commerce": "moneybird_commerce", + "Commerce Pakistan": "2023411", + "Advanced Commerce Cart Ajax": "2024869", + "Commerce iVeri": "2025875", + "Commerce Colissimo (Commerce So Colissimo Flexibility)": "commerce_socolissimo", + "Commerce French Donate": "2026873", + "Commerce Socolissimo": "2029335", + "Scald Commerce Product": "scald_commerce_product", + "Commerce order management system": "2030049", + "Commerce DrupalGap": "commerce_drupalgap", + "Fork of Commerce eWay module": "2031275", + "Commerce FedEx Shipping": "2031587", + "Commerce clone product variation": "commerce_clone_product_variation", + "Date Restrictions for Commerce Line Items": "date_restrictions_commerce_line_item", + "CommerceEcont": "2033003", + "Commerce product comparison": "commerce_product_comparison", + "Commerce Currency Locale": "2035115", + "Commerce CyberSource SASOP": "commerce_cybersource_sasop", + "Commerce Credits Transaction": "commerce_credits_transaction", + "Commerce pretty shipping": "commerce_prettyshipping", + "Commerce Event Tickets": "2035995", + "Drupal Commerce Connector for AvaTax": "commerce_avatax", + "Commerce License": "commerce_license", + "Commerce WorldNet": "commerce_worldnet", + "Commerce Jambopay": "2042275", + "Commerce SP Paymill": "commerce_sp_paymill", + "Commerce Set Paid Field": "2045247", + "Commerce Agree Terms": "commerce_agree_terms", + "Commerce SOColissimo Simplicité": "commerce_socolissimo_simplicity", + "Commerce Privat24": "commerce_privat24", + "Commerce Rewards": "commerce_rewards", + "Commerce Stock Notify": "2047369", + "SOFORT Banking for Drupal Commerce": "commerce_sofortbanking", + "Commerce Viva Payments": "commerce_vivapayments", + "HoneyPot For Commerce": "2051775", + "Commerce TaxCloud": "2051969", + "Commerce NZPost": "commerce_nzpost", + "Commerce Shipwire": "commerce_shipwire", + "Commerce Dunning": "commerce_dunning", + "Commerce Giftcard": "2054311", + "Commerce Yandex fast order": "2054395", + "Commerce Payway": "commerce_payway", + "Commerce Shipstation": "commerce_shipstation", + "AcroMedia Drupal Commerce XLS Import": "2056039", + "Commerce Order History for Clients": "2056535", + "Commerce Paytrace": "2058179", + "Commerce Paytrace Services": "2058185", + "Commerce Goal": "commerce_goal", + "Commerce pay with a tweet": "commerce_pay_with_a_tweet", + "Commerce Yotpo": "commerce_yotpo", + "Commerce AWeber": "2060621", + "Commerce Discount Coupons": "2060935", + "Commerce CECA": "commerce_ceca", + "commerce_ozinbopay": "2062785", + "Commerce yescredit": "2063039", + "Novalnet Payment Module - Commerce Kickstart": "commerce_kickstart_novalnet", + "Commerce Payment Invoice": "2064583", + "CRM Core Profile Commerce Items": "crm_core_profile_commerce_items", + "commerce checkout page inc": "2064841", + "Commerce iPay.by": "2065817", + "Nosto Personalization for Drupal Commerce": "commerce_nosto_tagging", + "Commerce Bulk Discount": "commerce_bulk_discount", + "Commerce Quickorder": "2069219", + "Commerce Yandex.Market": "2070573", + "Commerce CAVN": "2070709", + "Commerce Marketplace MangoPay": "2072127", + "Commerce PayuLatam": "commerce_payulatam", + "Commerce dressing room": "commerce_dressing_room", + "Commerce Product Bundler": "2076577", + "Commerce EMS": "2078953", + "Opigno Commerce App": "opigno_commerce_app", + "Commerce Quick Purchase": "commerce_quick_purchase", + "Commerce Payment: Paytrail": "commerce_paytrail", + "Commerce Shipping Deadline": "2083965", + "Commerce pay by check": "2084407", + "Commerce HDFC Payment Gateway": "commerce_hdfc", + "Commerce Related Lines": "commerce_related_lines", + "Commerce Ceneo Trusted Opinions": "commerce_ceneo_trusted_opinions", + "Commerce CheckPay PostNL": "commerce_checkpay", + "Commerce Discount Extra": "commerce_discount_extra", + "Commerce Postmaster": "commerce_postmaster", + "Commerce First Data Global Gateway e4": "commerce_firstdata_gge4", + "Commerce Restrict Area": "commerce_restrict_area", + "Commerce Stripe Connect": "2090639", + "Commerce Braintree JS": "2092519", + "Commerce Cardsave": "2093219", + "Commerce Basic Line Item": "commerce_basic_line_item", + "Commerce Quickbooks Webconnect": "2094911", + "Commerce License Billing": "commerce_license_billing", + "Maroc Telecommerce Ubercart": "2095421", + "Commerce iDEAL Lite": "commerce_ideal_lite", + "MOVED Commerce QBMS (QuickBooks Merchant Service)": "commerce_qmbs", + "Commerce QBMS (QuickBooks Merchant Service)": "commerce_qbms", + "Commerce BTC": "commerce_btc", + "Commerce Billy Mail": "commerce_billy_mail", + "Commerce economic": "economic", + "Commerce Lot": "2099907", + "Commerce Stalcupbucks": "2100053", + "Commerce Event Ticket": "commerce_event_ticket", + "Commerce HDFC FSSNET Payment Method": "2101867", + "Commerce Ajax Cart": "commerce_ajax_cart", + "Metatag: Commerce": "2102725", + "Commerce TradeGecko": "commerce_tradegecko", + "Commerce Shipping Rate Field": "commerce_shipping_field", + "Commerce Reviews": "2104315", + "Commerce Estimate": "commerce_estimate", + "Intuit Payment Processor for commerce": "commerce_intuit", + "Commerce Blockchain": "commerce_blockchain", + "Commerce Coinbase": "commerce_coinbase", + "Commerce Recurring Framework Bonus": "commerce_recurring_bonus", + "Commerce CyberSource Secure Acceptance Web/Mobile": "commerce_cybersource_sawm", + "Commerce discount gift": "2109189", + "Commerce FuturePay": "commerce_futurepay", + "Commerce Credit card on Delivery": "commerce_ccod", + "Commerce Clear Cart": "2110297", + "Commerce Checkout Complete Page": "2111003", + "Commerce GC": "commerce_gc", + "commerce_poc": "2111647", + "Mirrors Commerce": "2112331", + "commerce add line item to cart": "commerce_add_line_item_to_cart", + "Commerce Checkout Register": "2115745", + "Commerce Parsian": "2116293", + "Commerce Refund": "2116925", + "Commerce Search": "commerce_search", + "Commerce Vend": "commerce_vend", + "Commerce Checkout Complete Registration": "commerce_checkout_complete_registration", + "Commerce Marketplace Sauce": "commerce_marketplace_sauce", + "Commerce Login Step": "commerce_login_step", + "Commerce coupon date": "2120313", + "Commerce Barcode Scanner": "commerce_barcode_scanner", + "Commerce CIB": "commerce_cib", + "Commerce Admin Notification": "2124613", + "Commerce Rounding": "commerce_rounding", + "Commerce Quick add to cart": "commerce_quickadd", + "Commerce Order Locking": "commerce_order_locking", + "Commerce Payment Plan": "2127359", + "Commerce Merchant": "2129947", + "Commerce Maksekeskus": "commerce_mk", + "Commerce CloudIQ": "2130813", + "Commerce Product Simple Add-ons": "2132089", + "Commerce Balanced Payments": "commerce_balanced_payments", + "Commerce JNE Shipping": "2133207", + "Commerce Recipient": "commerce_recipient", + "Commerce ShipWorks": "2134627", + "Commerce Steps": "2134677", + "Commerce UKMail": "commerce_ukmail", + "Commerce variation multi add": "2138275", + "Commerce Procurement": "2139015", + "Commerce Virtex": "commerce_virtex", + "Commerce ProdNodeLink": "commerce_prodnodelink", + "Commerce BluePay Hosted Forms": "2144659", + "Commerce Layaway": "2144859", + "Commerce Cart Form Checkout Pane": "commerce_cart_form_checkout_pane", + "Commerce Coupon Redeem": "2147091", + "Commerce Attributes Date": "commerce_attributes_date", + "Commerce Omnipay": "commerce_omnipay", + "commerce_billing": "2148485", + "Commerce Webpaybel": "2148837", + "Commerce Currency Field": "commerce_currency", + "Commerce delivery times": "2152365", + "Dibs Payment window for Drupal commerce": "commerce_dibs_payment_window", + "Commerce Checkout Page Manager": "commerce_checkout_pm", + "Commerce coupon percentage line item": "2154833", + "Commerce First Time Customer Discount": "commerce_discount_firsttime", + "Commerce Cart Summary Block": "2155917", + "acdx commerce products": "2156373", + "Commerce Klik & Pay Payment System Integration": "2156693", + "Commerce License Node": "commerce_license_node", + "Commerce Bundle": "commerce_bundle", + "Litle Payment Gateway for Drupal Commerce": "commerce_litle", + "Commerce Payzippy Payment gateway": "2161569", + "Drupal Commerce Connector for TaxRates": "commerce_taxrates", + "Commerce remove tax": "commerce_remove_tax", + "Commerce Availability": "commerce_availability", + "commerce_unionpay": "2164979", + "Commerce Charity Clear Hosted Form": "commerce_payment_charityclear_hostedform", + "Commerce PesoPay": "commerce_pesopay", + "Commerce WePay": "commerce_wepay", + "Commerce Product Reference SKU List Widget": "2167885", + "aviindub commerce stripe": "2168115", + "Commerce Free Price Formatter": "commerce_free_price_formatter", + "Commerce Cielo-US": "2169169", + "Commerce Cetelem": "2170067", + "Commerce Multi Stock": "2170693", + "Commerce Payline": "2171545", + "Commerce Litle": "2171619", + "Commerce PaytoStudy": "2176851", + "Commerce Live Stock": "commerce_live_stock", + "Commerce Offsite Payment": "commerce_osp", + "Commerce Single Page Checkout Downtune": "2179743", + "Commerce Cardsave Direct": "commerce_cardsave", + "commerce_payline": "2179893", + "Commerce Message Helper": "commerce_messagehelper", + "Commerce VAT included": "commerce_vat_included", + "Commerce eParcel": "commerce_eparcel", + "Commerce Cart Favicon": "commerce_cart_favicon", + "Commerce Shipping Jump": "2184061", + "Commerce Default Tax Rate": "commerce_default_tax_rate", + "Commerce Auction Autobid": "2185173", + "Commerce Shipment": "commerce_shipment", + "Commerce OpenERP": "commerce_openerp", + "Commerce Checkout Information": "commerce_checkout_information", + "Commerce Special Price": "2187493", + "Commerce Simplenews Checkout integration": "commerce_simplenews_checkout", + "Commerce Stock By Role": "2188395", + "Commerce Order Status By Role": "2188711", + "Commerce Order User UI": "2189095", + "Commerce Onlymoney": "2191079", + "Commerce Fidelity Paygate": "2192407", + "Drupal Commerce Interswitch WebPAY": "2192409", + "Commerce Checkout AJAX": "commerce_checkout_ajax", + "Commerce Tradedoubler": "commerce_tradedoubler", + "Commerce Packing Slip": "commerce_packing_slip", + "Commerce ADS": "commerce_ads", + "commerce_discount": "2199593", + "Commerce DPS Account To Account": "commerce_dps_account_to_account", + "Commerce Shipping Parcel2go": "2202859", + "Commerce Multivendor Shipping": "commerce_multivendor_shipping", + "Commerce SimplePay": "commerce_simplepay", + "Commerce VoguePay": "commerce_voguepay", + "Commerce Moolah": "commerce_moolah", + "Commerce Commonwealth (CBA)": "commerce_commonwealth", + "Commerce Discount Fields": "commerce_discount_fields", + "Commerce Custom Offline Payments": "commerce_cop", + "Commerce Unique Identification Number": "2210109", + "Membership Entity Commerce": "membership_entity_commerce", + "Commerce Sage Payment Solutions": "2212597", + "commerce_paytpv": "2212901", + "Commerce Points": "2214637", + "Commerce Buy One Click": "commerce_buy_one_click", + "Commerce Invoicing": "2215875", + "Commerce Shipping DHL": "commerce_shipping_dhl", + "Commerce SecurePay Direct Post": "2217573", + "Commerce Status Access": "2217873", + "Drupal Commerce Payment Transaction Fields": "commerce_payment_fields", + "Commerce File Bulk": "2219819", + "Commerce Payfirma": "commerce_payfirma", + "Commerce PayU Hu": "2220319", + "Commerce Separate Capture": "2220335", + "Commerce Order Complete Notify": "2220855", + "Commerce Drush": "commerce_drush", + "Commerce GGe4 Payments": "2222625", + "Commerce Dotpay": "2223349", + "Commerce Checkout AdWords": "2224217", + "Commerce Better Cart Conversion": "commerce_better_cart_conversion", + "Commerce BlueSnap": "bluesnap", + "Commerce Multicurrency provider for RUB": "commerce_multicurrency_rub", + "Commerce Multicurrency provider for BYR": "commerce_multicurrency_byr", + "Commerce Multicurrency provider for KZT": "commerce_multicurrency_kzt", + "Commerce Multicurrency provider for UAH": "commerce_multicurrency_uah", + "UUID Features Commerce": "2226957", + "Commerce Stock Notifications": "commerce_stock_notifications", + "Commerce Monetaweb": "commerce_monetaweb", + "Commerce Discount Product Category": "commerce_discount_product_category", + "Commerce product reference format display all": "2229485", + "Commerce Add to Cart Ajax": "2230241", + "Commerce Authorize.Net Card Present": "commerce_authnet_card_present", + "Commerce I&M Bank": "2230987", + "Commerce PSA": "2232329", + "Commerce Stock Reserve": "commerce_stock_reserve", + "Commerce export": "commerce_export", + "Commerce shipping custom details": "commerce_shipping_cd", + "commerce_multistore": "2236331", + "Commerce Discount Free Order": "commerce_discount_free_order", + "Commerce Product Dimensions": "commerce_product_dimensions", + "Commerce SendFromChina": "2248889", + "Commerce PayU Romania": "2251309", + "commerce_paypal_simple ": "2253699", + "Commerce Stock Calculation": "commerce_stock_calculation", + "Commerce Stock Sources": "commerce_stock_sources", + "Commerce reports bysource": "2257279", + "Commerce order refund": "2257299", + "Commerce Migrate Magento": "2258121", + "Commerce Card on File Recurring": "2260137", + "Shipwire Commerce": "shipwire_commerce", + "Commerce Mollie": "commerce_mollie", + "Commerce Cart Accessories": "2262083", + "Commerce Recurring Bill": "2262253", + "Commerce Google Tag Manager": "commerce_google_tag_manager", + "Commerce Cart Stats": "commerce_cart_stats", + "Commerce Order Weight Token": "commerce_order_weight_token", + "Commerce BIPS": "2267345", + "Commerce TNSPay": "commerce_tnspay", + "Commerce Flo2Cash": "2267889", + "Commerce Cart to Basket": "commerce_cart_to_basket", + "Commerce Parcel Monkey": "commerce_parcel_monkey", + "Commerce Startrack": "commerce_startrack", + "Commerce Fast Ajax Add to Cart": "2270819", + "Commerce SecureNet": "2271073", + "Saffron - Sage Accounts connector for Drupal Commerce": "saffron", + "Commerce Deploy Backend": "commerce_deploy_backend", + "Commerce Deploy Checkout": "commerce_deploy_checkout", + "Commerce Deploy Customer": "commerce_deploy_customer", + "Commerce Deploy Product": "commerce_deploy_product", + "Commerce Deploy Promotions": "commerce_deploy_promotions", + "Commerce Deploy Shipping": "commerce_deploy_shipping", + "Commerce Heureka": "2271805", + "Commerce EST Direct": "2271885", + "Commerce DrupalGap Stripe": "commerce_drupalgap_stripe", + "Commerce Account Balance": "commerce_account_balance", + "Commerce Shopper Groups": "2275221", + "Commerce SAPI popular products": "2276585", + "Commerce proportional VAT": "commerce_vat_proportional", + "Commerce Multicurrency provider for RON": "commerce_multicurrency_ron", + "Commerce TrustPay": "2278355", + "Commerce Line Item Recipients": "commerce_line_item_recipients", + "Commerce SEPA": "2287017", + "commerce_product_selector": "2288677", + "Commerce ComproPago": "compro_pago", + "Commerce UPS Address Validation": "2290431", + "Commerce Packing (LAFF)": "2290689", + "Commerce Product Reference Flag": "commerce_product_reference_flag", + "Commerce Flag Wishlist": "2293269", + "Commerce Custom Views Add To Cart": "commerce_custom_views_add_to_cart", + "Commerce Checkout AJAX Pages": "commerce_cap", + "Transact Pro payment module for Drupal Commerce": "propayment_commerce", + "Commerce Payment Simple UI": "commerce_payment_simpleui", + "Commerce SwipeHQ": "commerce_swipehq", + "commerce_orangemoney": "2304385", + "Commerce DPD": "2307525", + "Commerce Shipping Country": "commerce_shipping_country", + "Commerce Multicurrency For Yahoo Finance": "commerce_multicurrency_yah", + "Commerce Priceminister": "commerce_priceminister", + "commerce_paystand": "2311461", + "Commerce Webpay.by": "2312511", + "commerce_passkey_reglink": "2312743", + "Commerce Shipping Quote Weight": "commerce_shipping_quote_weight", + "commerce_bncr": "2313673", + "Commerce Product Units": "2314213", + "Commerce Redhen": "commerce_redhen", + "Commerce Cart Tokens": "2320659", + "Commerce Checkout Context Router": "2321107", + "Commerce Payment CardPay": "2321171", + "Commerce Compare Popup": "2322953", + "commerce_worldcash": "2324823", + "Commerce Stripe Connect Field": "2325763", + "commerce_notification fork": "2326341", + "Commerce 99bill payment": "2327107", + "Commerce Tenpay Payment": "2327111", + "Commerce Shipping Zero Price": "2327181", + "Commerce License OG": "commerce_license_og", + "Commerce Paranoia": "commerce_paranoia", + "Commerce Inpay": "2329077", + "Commerce Deposit": "2330071", + "Commerce Shipping Quick Estimate": "2333095", + "Commerce FirstData Connect": "commerce_firstdata_connect", + "Commerce Amazon Fulfillment": "commerce_amazon_fulfillment", + "Commerce Search API Entity Translation": "commerce_search_api_et", + "Commerce numbers2words": "2335475", + "Commerce Exclusive Coupons": "2335583", + "Commerce NoCart": "commerce_nocart", + "Commerce Order Cleanup": "commerce_order_cleanup", + "Commerce Pricelist": "commerce_pricelist", + "Commerce Fixed Quantity": "commerce_fixed_quantity", + "Commerce Checkout Multilane": "commerce_checkout_multilane", + "Commerce Username Update": "commerce_username_update", + "CommerceML": "commerceml", + "Commerce Fancourier": "commerce_fancourier", + "Commerce Costs Profits": "commerce_costs_profits", + "Commerce Cart Context": "commerce_cart_context", + "Commerce Shift4": "2343633", + "Commerce Lease Calculator": "2343637", + "Commerce User Profile View Pane": "2345911", + "Moip Commerce Integration": "moipng", + "Commerce SmartPay": "commerce_smartpay", + "Commerce Fancy Image Attributes": "commerce_fancy_image_attributes", + "Commerce Novaposhta": "2349511", + "Commerce PayU TR": "2350665", + "Drupal Commerce 2.x Extra Files": "2351279", + "Commerce Line Item Manager": "commerce_line_item_manager", + "Commerce Box": "commerce_box", + "Commerce Status Alert": "2354317", + "Commerce Ogone Terminal": "commerce_ogone_terminal", + "Commerce NETbilling": "commerce_netbilling", + "commerce_express_checkout_2": "2362975", + "Commerce VoguePay Module": "2364109", + "Commerce Ingenico": "commerce_ingenico", + "Commerce Vantiv": "commerce_vantiv", + "Commerce PayU.ru": "2368249", + "Commerce Checkout Field Group": "commerce_checkout_field_group", + "Platron payment module commerce": "2369033", + "Replicate Commerce": "replicate_commerce", + "Commerce Dragonpay": "commerce_dragonpay", + "Commerce Closure": "commerce_closure", + "Commerce PreOrder": "2373851", + "commerce bulk 2 cart": "2375195", + "Commerce SMSpay": "commerce_smspay", + "Commerce Search API SKU Forward": "commerce_search_api_sku_forward", + "Commerce Baggage Freight": "commerce_baggage_freight", + "Commerce Zaakpay": "2378735", + "Commerce Payment: Suomen Verkkomaksut Notify": "2378843", + "Commerce Direcpay": "commerce_direcpay", + "commerce_warehouse": "2379171", + "Commerce Akeneo": "commerce_akeneo", + "Commerce Axis Bank Payment Gateway": "commerce_axisbank", + "Commerce Order States": "2383041", + "Commerce TechProcess": "2383473", + "Commerce Schema.org": "commerce_schemaorg", + "Simplify Commerce": "simplify_commerce", + "Commerce DPD Shipping": "commerce_dpd", + "Commerce ETS Emoney": "commerce_ets", + "Commerce Featured Products": "2387865", + "Commerce CitrusPay": "2388303", + "Commerce Veritrans": "commerce_veritrans", + "Commerce Recommender Upgrade": "2389269", + "Commerce YellowPay": "commerce_yellowpay", + "Commerce Wishlist v2": "2389371", + "Ingenico for Drupal Commerce": "ingenico_commerce", + "Drupal commerce goodie bag": "2390357", + "Commerce Company Association": "2390733", + "commerce sendcloud": "commerce_sendcloud", + "Taxamo for Commerce": "commerce_taxamo", + "Drupal Commerce CP Web Payment Gateway": "2396011", + "Commerce Paguelofacil": "2397205", + "Commerce OG": "2398049", + "Commerce Custom Checkout pages paths(not supported)": "commerce_custom_checkout_pages_paths", + "Commerce Checkout paths": "commerce_checkout_paths", + "Commerce Bank Account on File": "commerce_bankonfile", + "Commerce Bagatelles": "2400679", + "Drupal Commerce Judopay Integration": "commerce_judopay", + "Commerce Payment Edit": "commerce_payment_edit", + "Drupal Commerce DOTGO Integration": "dotgo_commerce", + "Commerce Instamojo Payment Gateway": "commerce_instamojo", + "Commerce AJAX Checkout": "2403251", + "Commerce Card on File Terminal": "commerce_cardonfile_terminal", + "Commerce Weight Rate": "2403785", + "Commerce PayUMoney": "payumoney", + "The Russian currency symbol for commerce ": "2405209", + "Commerce EuPlatesc": "2405743", + "Commerce Discount Product Relation": "commerce_discount_product_relation", + "Commerce VIP Discount": "2407991", + "Commerce Canpar": "commerce_canpar", + "Commerce Finnish Smartpost": "finnish_smartpost", + "Commerce Wishlist v3": "2409853", + "Commerce Default Product Variant": "commerce_default_product_variant", + "Commerce License Billing Credit Card": "2413455", + "Commerce Stocked Default": "commerce_stocked_default", + "Commerce Payment TatraPay": "2413521", + "Commerce GoPay Payments": "2413909", + "Commerce legal": "2414967", + "Commerce Chase Orbital": "commerce_chaseorbital", + "Commerce License Sharing": "2416853", + "Commerce surcharge": "commerce_surcharge", + "Commerce OTP Hungary": "commerce_otp", + "Commerce options as images": "commerce_options_as_images", + "Commerce Shipping 3.x": "2421073", + "Commerce Sanitize": "2422729", + "Commerce SecurePay AU Direct Post method": "2422731", + "Commerce Panelizer": "2425363", + "Commerce eCollect": "commerce_ecollect", + "Commerce Multicurrency provider for MDL": "2427779", + "Commerce License Billing Paypal": "2428355", + "Commerce RBK Money": "commerce_rbkmoney", + "Commerce Juspay": "2430729", + "Commerce Region / Language chooser": "2444299", + "Commerce Custom Continue": "2444973", + "Commerce Calc Discount VAT": "2444995", + "Commerce Cardinity (old)": "2445027", + "Commerce Order Force Delete": "commerce_order_force_delete", + "Commerce Views Better Balance": "commerce_views_better_balance", + "Commerce Verified Reviews": "commerce_verified_reviews", + "Commerce Discount Quantity": "commerce_discount_quantity", + "Course Commerce": "course_commerce", + "eCommerce Integration": "2450825", + "Commerce Packing": "2451999", + "Commerce Conekta": "commerce_conekta", + "Commerce Refund Line Item": "commerce_refund_line_item", + "Commerce mTransfer": "2452687", + "Commerce Checkout Combine Status Messages": "2455053", + "Commerce VUB": "2455593", + "Commerce Payment Settings Switcher": "commerce_payment_settings_switcher", + "Commerce PB Online": "2456945", + "Commerce CSOB Webpay": "2458955", + "Commerce PBD": "commerce_pbd", + "Commerce Valutec": "2461595", + "Commerce Wirecard": "commerce_wirecard", + "Commerce shipping rate": "commerce_shipping_rate", + "Commerce shipping Province weight": "commerce_shipping_province_weight", + "Commerce per user price": "commerce_per_user_price", + "Commerce Order Form": "commerce_order_form", + "Commerce Marketplace Ogone": "commerce_marketplace_ogone", + "Commerce Alignet": "commerce_alignet", + "Commerce Interswitch": "commerce_interswitch", + "Commerce Marketplace Paypal": "commerce_marketplace_paypal", + "Commerce Desjardins": "2471096", + "Commerce License Billing - Patched": "2471164", + "Commerce Coupon Rules": "2471301", + "Commerce gift": "2473261", + "Commerce Global Payments": "2473563", + "Shopify eCommerce": "shopify", + "Commerce Interswitch WebPay Payments": "2475073", + "Commerce Fraud": "commerce_fraud", + "Commerce Reset": "commerce_reset", + "Commerce License Video Embed": "commerce_license_video_embed", + "Commerce POLi Payments": "commerce_poli", + "Commerce Payment Split": "commerce_payment_split", + "Commerce Multicurrency Reverse": "2483543", + "commerce_email_notify": "2483889", + "Commerce License Cancel": "commerce_license_cancel", + "Commerce Pay": "commerce_pay", + "Commerce Order Reminder": "commerce_order_reminder", + "Commerce Affirm": "commerce_affirm", + "Dynamic widget for commerce line item field": "commerce_line_item_widget", + "Commerce SEUR": "commerce_seur", + "Commerce Account Balance Payment Gateway": "2488894", + "Commerce OO": "2489194", + "Commerce Conversant": "2490180", + "Commerce GoPay gw": "2490192", + "Commerce discount weight": "commerce_discount_weight", + "Commerce discount cumulative": "commerce_discount_cumulative", + "Internationalization for commerce product": "i18n_commerce_product", + "Commerce Pass Courses": "2494253", + "EE Commerce": "ee_commerce", + "Commerce Todo Pago": "commerce_todopago", + "Commerce PayU India Payment Gateway": "commerce_payu_india", + "Commerce Weixin Pyament": "commerce_weixin_payment", + "Commerce MultiSafepay JSON": "2498759", + "Commerce Sauce": "2499363", + "Commerce Reorder Lineitem": "2501091", + "Commerce XLS Import": "commerce_xls_import", + "Commerce Deploy Core": "commerce_deploy_core", + "Commerce Fulfillment": "commerce_fulfillment", + "Commerce Product Display Attribute Selection": "commerce_pdas", + "Commerce Childcare Voucher": "commerce_childcare_voucher", + "Commerce Views": "commerce_views", + "Commerce Hipay": "commerce_hipay", + "Commerce Migrate Magento Stores": "commerce_migrate_magento", + "Commerce Panes Manager": "commerce_panes_manager", + "Commerce License Billing Coinbase": "2513248", + "Commerce Chronopost": "2513786", + "commerce_gmo_pg": "2513806", + "Commerce discount slice": "commerce_discount_slice", + "Commerce Marketplace Card on File": "commerce_marketplace_cardonfile", + "Commerce Cobros En Linea": "commerce_cel", + "Commerce Andreani": "commerce_andreani", + "Commerce Etrans": "commerce_etrans", + "Commerce Urbano": "commerce_urbano", + "Commerce Chase": "commerce_chase", + "Commerce Direct-to-Cart": "commerce_dtc", + "Commerce Price Alerts": "2530962", + "Commerce Auto-Checkout": "commerce_auto_checkout", + "Commerce Braintree (Ver 3)": "2534858", + "Drupal Commerce Product availability By Pincode": "2534924", + "Commerce Pagos Net": "commerce_pagos_net", + "Commerce Multicurrency Sort": "2535374", + "Commerce Puntuarte": "2536952", + "Commerce Address templates": "address_templates", + "Commerce Entity+": "commerce_entity_plus", + "Commerce POS Registrations": "2539864", + "Commerce Views Cache": "2540000", + "Commerce Checkout Password": "commerce_checkout_password", + "Commerce VirtualMerchant": "commerce_virtualmerchant", + "Commerce Customer Contact": "commerce_customer_contact", + "Commerce NetCommerce Reconciliation": "commerce_netcommerce_reconciliation", + "Commerce Checkout Product List": "commerce_checkout_products_list", + "Commerce Cart Empty": "commerce_cart_empty", + "Clientside Validation Commerce": "2545780", + "Commerce TaxJar": "commerce_taxjar", + "Commerce Enhanced Ecommerce": "2547051", + "Commerce pre-calculated price field": "commerce_pc_field", + "Commerce Omniva": "commerce_omniva", + "Commerce Checkout.Com Payment Gateway": "commerce_checkoutpayment", + "Commerce Leaddyno": "2549937", + "Commerce Addressbook Extra": "commerce_addressbook_extra", + "Commerce KBC Paypage": "commerce_kbcpaypage", + "Commerce Faircoin": "commerce_faircoin", + "Commerce Cashback": "2551905", + "Commerce Sberbank Payment": "2552427", + "Commerce Ogone Alias": "2553643", + "Commerce Wallet": "2554891", + "Commerce My Delivery Times": "commerce_my_delivery_times", + "Commerce Zuora": "commerce_zuora", + "Commerce Brightpearl": "commerce_brightpearl", + "Commerce Page Manager": "commerce_page_manager", + "Commerce Shipping Cart Estimate": "commerce_shipping_cart_estimate", + "Payplug Commerce": "payplug_commerce", + "Commerce Option Extra Charge": "2565693", + "Commerce Marketplace Stripe": "2567023", + "Commerce save address to address on file": "2568799", + "Commerce Tech Process": "commerce_techprocess", + "Commerce Cartmaker": "2570379", + "Commerce Cart Estimate": "commerce_cart_estimate", + "Bundle Copy Commerce": "bundle_copy_commerce", + "Commerce PlatiOnline": "2571997", + "Commerce Coupon Extend": "2573817", + "Commerce Responsive UI": "commerce_responsive_ui", + "Commerce Bundle Helper": "2575161", + "Commerce Shipment Message": "2575189", + "Endicia for Drupal Commerce": "endicia_commerce", + "Commerce Previewable Email Templates": "commerce_pet", + "Commerce Order Timeout": "2577473", + "Commerce honeypot": "2577921", + "Commerce Easy Config": "2579169", + "Commerce Payphone": "2579679", + "Commerce mPAY24": "commerce_mpay24", + "Commerce Fastway Couriers": "commerce_fastway", + "Commerce Delete Cart": "commerce_delete_cart", + "Commerce 1C exchange": "2590131", + "Commerce Cart Link": "commerce_cart_link", + "Commerce LiqPayAPI": "commerce_liqpayapi", + "Commerce Manual Payment": "commerce_manual_payment", + "Commerce Culqi": "2598386", + "Commerce Shipment Message Integration": "2598474", + "Commerce Flo2Cash Gateway": "commerce_flo2cash", + "Commerce Google Shopping": "commerce_google_shopping", + "Commerce Product Queue": "2605116", + "Commerce price tax alternative": "2605630", + "Commerce shipping GLS": "commerce_shipping_gls", + "eBay commerce": "ebay_commerce", + "Commerce BluePay": "commerce_bluepay", + "Commerce Simple Addressbook": "commerce_simple_addressbook", + "Commerce TransFirst": "2612224", + "Commerce WeChatPay": "commerce_wechatpay", + "commerce cashback wallet": "2614808", + "Commerce Behat": "commerce_behat", + "Commerce Payment Select": "2620152", + "Commerce Ajax Cart Form": "2621602", + "Commerce PagaMasTarde": "2623446", + "Commerce Redsýs": "commerce_redsys", + "Commerce PSiGate": "commerce_psigate", + "Commerce VAT Line Item Value": "2627976", + "Commerce Line Item Debitentry": "2627990", + "Commerce Amazon MWS": "2629252", + "Commerce RajaOngkir": "commerce_rajaongkir", + "Commerce ubrr payment module": "2630222", + "Card Payments by Commerce Cardinity": "commerce_cardinity", + "Commerce QuickLook": "commerce_quicklook", + "commerce_payment_setcom": "2632020", + "Commerce Fibank": "2634234", + "Commerce Shipworks Connector": "2635148", + "Commerce Paymaster": "2637588", + "Commerce combo discount": "2637754", + "Commerce Clearance": "2639172", + "Commerce Paypal - Patched": "2640792", + "Commerce WxPay": "2641404", + "Commerce Ebay": "2642908", + "Commerce Avangard": "commerce_avangard", + "Commerce Billdesk": "commerce_billdesk", + "Commerce Popup Cart": "commerce_popup_cart", + "Commerce Paytabs (abandoned)": "2656560", + "commerce_billy_mail_attachment": "2656778", + "Commerce Wishlists as Orders": "2659242", + "Commerce Donation Checkout Pane": "2659776", + "Commerce speedy": "2660334", + "Commerce Pay With Amazon": "commerce_pwa", + "Commerce Quickbooks Online UI": "commerce_qbo_ui", + "Commerce Billy PDF Extend": "2666760", + "Commerce Payment Methods Field": "2666872", + "Commerce Order Extra Fields": "commerce_order_extra_fields", + "Commerce COD Fee": "2668834", + "Commerce Order Merge": "commerce_order_merge", + "Commerce My Account": "2672798", + "Mobikwik Wallet for Drupal Commerce": "2673366", + "Commerce SzamlazzHu": "2675084", + "Commerce GetMango": "2675920", + "CCH SureTax sales tax module for commerce ": "suretax", + "Commerce Invite Discount": "2677134", + "Commerce Product Kit": "commerce_product_kit", + "Commerce discount Gift Choice": "commerce_discount_gift_choice", + "Commerce GPG Checkout": "2678792", + "Commerce Price Components Order": "2678796", + "UUID Features Commerce Product": "uuid_features_commerce_product", + "Commerce PaySec": "2680327", + "Commerce G2S": "commerce_g2s", + "Commerce Liqpay": "commerce_liqpay", + "Commerce GlobalONE": "commerce_globalone", + "Commerce SenangPay Payment": "2684231", + "Commerce Payment Alter": "commerce_payment_alter", + "Commerce PagBrasil": "commerce_pagbrasil", + "Commerce PagSeguro Checkout Transparente": "commerce_pagseguro_transparente", + "commerce_alipay_global": "2686871", + "Commerce Target2Sell": "commerce_target2sell", + "Commerce Sift Science": "commerce_siftscience", + "Commerce Sift Science Stripe": "commerce_siftscience_stripe", + "Commerce Marketplace Coupon": "commerce_marketplace_coupon", + "Commerce Marketplace Discount": "commerce_marketplace_discount", + "Commerce Marketplace Hipay": "commerce_marketplace_hipay", + "Commerce Marketplace Stock Reserve": "commerce_marketplace_stock_reserve", + "Commerce Marketplace Stock": "commerce_marketplace_stock", + "Commerce TaxCloud Integration": "commerce_taxcloud", + "Commerce Discount Sale Price": "commerce_discount_saleprice", + "Commerce Cart Merge": "2691517", + "commerce_electrum": "2696055", + "Commerce Reference Widget": "commerce_reference_widget", + "Commerce Stock Sort": "2696963", + "Commerce Dynamics GP": "2697951", + "Commerce Tax Services": "2697987", + "Commerce Payment Terminal Rules Action": "2699755", + "Commerce Cart Empty Paths": "commerce_cart_empty_paths", + "Commerce Razorpay": "2702647", + "Commerce Cart Multiple": "commerce_cart_multiple", + "Commerce Cart Alternative": "2705035", + "Commerce Price Formatters": "commerce_price_formatters", + "Commerce Order Orgranic Groups Integration": "commerce_order_og", + "Commerce Popup Cart in Drupal8": "2708195", + "Commerce Chilexpress": "commerce_chilexpress", + "Commerce iyzico": "2711325", + "Commerce Payment GPG": "2712459", + "Commerce Quantity Increments": "commerce_quantity_increments", + "Commerce Card": "commerce_card", + "Metropago Commerce": "2716149", + "Commerce AuthNet eCheck": "2716153", + "Commerce quotation": "2716607", + "Commerce Omani Rial": "commerce_omr", + "Commerce Order Sub-total": "commerce_order_total", + "Commerce POS Stripe Payment Getaway": "2718723", + "Commerce Extra Login Page Plus": "commerce_extra_plus", + "Commerce iDevAffiliate": "commerce_idevaffiliate", + "Commerce HDFC VAS": "2720735", + "commerce_userpoints_formatter": "2723415", + "commerce_line_item_context": "2723469", + "Commerce POS Authorize.Net Card Present": "commerce_pos_authorize_dot_net_card_present", + "commerce_action_names": "2724899", + "commerce_autosku_rules": "2724905", + "commerce_extra_panes_views": "2724913", + "commerce_line_item_form_collapse": "2724915", + "commerce_trusted_shops": "2727623", + "Commerce Semantics3": "2728927", + "Commerce Square": "commerce_squareup", + "Commerce Message Config": "2730259", + "Commerce OpenBoleto": "commerce_openboleto", + "RedHen Commerce Addressbook": "redhen_commerce_addressbook", + "Commerce Giftcard by Mail": "commerce_gc_by_mail", + "Commerce Currency BYN": "commerce_currency_byn", + "AmeriCommerce (formerly Spark Pay)": "feeds_spark_pay", + "Commerce Authorize ARB": "commerce_authorize_arb", + "Commerce Paymentree": "commerce_paymentree", + "Commerce Kyash": "commerce_kyash", + "Commerce Discount Usage Statistics": "2747253", + "Commerce 2.x Playground": "2747499", + "Commerce Paytm": "2747719", + "Commerce Commdoo": "commerce_commdoo", + "Commerce Product Display Limit": "2751481", + "Commerce Referral Discount": "commerce_referral_discount", + "Scrambler commerce": "2753581", + "Commerce Line Item Revision": "commerce_line_item_revision", + "Commerce Discount Notification": "commerce_discount_notification", + "Commerce Forte": "commerce_forte", + "Commerce Blackout Dates": "commerce_blackout_dates", + "Commerce Out Of": "commerce_outof", + "Commerce Recipient+": "commerce_recipient_plus", + "Commerce Special Box": "commerce_special_box", + "Commerce Recurring Product": "commerce_recurring_product", + "Commerce Shipment Tracking": "commerce_shipment_tracking", + "Commerce Braintree Web": "2761941", + "Commerce Repeat Order": "commerce_repeat_order", + "Commerce Restrict Language": "commerce_restrict_language", + "Commerce Delete Permissions": "commerce_deletepermissions", + "Commerce Cart Pane": "commerce_cp", + "Commerce Stacking Dimensions": "2765639", + "Commerce Product Clear Feeds Hash": "commerce_product_clear_feeds_hash", + "Commerce Swiss Post barcode": "commerce_swisspost_barcode", + "Commerce Raiffeisen (Serbia)": "2769723", + "Commerce Open Payment Platform": "commerce_opp", + "Commerce Mycelium Gear": "2773081", + "Commerce Payeezy": "commerce_payeezy", + "commerce_return_request": "2774749", + "Commerce Discount Display Condition": "commerce_discount_display_condition", + "Commerce SoftBank Payment Service": "commerce_sbpayment", + "Commerce Product Display Clone": "2777127", + "Commerce Stock History": "commerce_stock_history", + "Commerce Ticket": "commerce_ticket", + "Mailchimp E-Commerce": "mailchimp_ecommerce", + "Commerce Utilities": "commerce_utils", + "Commerce Discount Payment Method": "commerce_discount_payment_method", + "Commerce Commission": "commerce_commission", + "commerce_wishlist": "2789647", + "Commerce Add2Cart Permissions": "2794925", + "Commerce PayFort": "commerce_payfort", + "Commerce FreeAgent": "commerce_freeagent", + "Commerce Recurring Services": "2799405", + "Commerce Jio Money": "commerce_jiomoney", + "Commerce Authorize.net ARB": "commerce_authnet_arb", + "Commerce Product Popup": "2805517", + "Commerce IML": "commerce_iml", + "OroCommerce B2B e-commerce": "b2b", + "Commerce Admitad": "commerce_admitad", + "Commerce Sisow": "2811541", + "Commerce dataLayer": "2811941", + "Commerce PayU Webcheckout": "commerce_payu_webcheckout", + "Commerce Mangopay": "commerce_mangopay", + "Commerce Pay2go": "commerce_pay2go", + "Commerce ECPay": "commerce_ecpay", + "Commerce Quickbooks Enterprise": "2817343", + "Commerce Vipps": "commerce_vipps", + "Commerce Satispay": "commerce_satispay", + "Commerce Payzapp": "2818201", + "Commerce Jivosite": "commerce_jivosite", + "Commerce Wishlist Option": "commerce_wishlist_option", + "Commerce PayPal RT": "2822396", + "Commerce Mondial Relay": "commerce_mondialrelay", + "Commerce InstaPagos": "2826408", + "Commerce track order": "2826531", + "Commerce BIGINT": "commerce_bigint", + "Commerce Variation Add to Cart": "commerce_variation_add_to_cart", + "Commerce PostNL": "2828740", + "Commerce Price Updater": "commerce_price_updater", + "Commerce Paytrek": "2829001", + "Commerce License Billing Pricing": "cl_billing_pricing", + "Commerce Registrants": "2830355", + "Commerce add to cart multiple formatter": "2830368", + "Feeds Commerce Shared Source": "2830715", + "Commerce Amazon Pay": "commerce_amazon_lpa", + "Commerce Shipping incremental weight": "commerce_shipping_incremental_weight", + "Commerce Mpesa": "2834227", + "Commerce Vauchar": "commerce_vauchar", + "Commerce Variation Cart Form": "commerce_variation_cart_form", + "commerce alipay f2f": "2837895", + "Commerce Worldline": "commerce_worldline", + "Commerce Cart Blocks": "commerce_cart_blocks", + "Commerce fedex freight": "2839832", + "Commerce Shopping Hours": "commerce_shopping_hours", + "Commerce GdeSlon": "commerce_gdeslon", + "Commerce Bitpayir": "commerce_bitpayir", + "commerce_discount_fpq": "2842310", + "Commerce Payflow": "2843655", + "Commerce WeChat Pay": "commerce_wechat_pay", + "Commerce Tax Service": "2844428", + "Commerce AvaTax Tax Service": "2844436", + "Commerce order number": "commerce_order_number", + "Commerce Order Summary": "2846074", + "Commerce Shipping Lite": "2846075", + "Commerce GLS HU Shipping": "commerce_gls_hu", + "Commerce PromisePay": "2846772", + "Commerce Purchase on account": "commerce_purchase_on_account", + "Commerce Stock Backorderable": "2848270", + "Commerce Apple Pay (Stripe)": "commerce_applepay", + "Commerce PAYONE for D8": "2849906", + "Commerce Criteo": "commerce_criteo", + "Commerce ArCa": "2851134", + "PayUmoney for Drupal Commerce": "commerce_payumoney", + "Commerce Shipping on Review Page": "commerce_shipping_on_review", + "Commerce Price Tokens": "2854058", + "Commerce Payplug": "commerce_payplug", + "Commerce Abandoned Carts": "commerce_abandoned_carts", + "Commerce RBS Payment": "commerce_rbspayment", + "Commerce Razorpay Payment Integration": "commerce_razorpay", + "Commerce Currency Switcher": "commerce_currency_switcher", + "Commerce Square Connect": "commerce_square", + "Drupal Commerce Bucks Net Integration": "commerce_bucksnet", + "Commerce sale rank.": "commerce_sale_rank", + "Simplify Commerce for D8": "simplifycommerce", + "Commerce Pay.JP": "commerce_payjp", + "Commerce ClicToPay": "clictopay", + "Commerce Paystack": "commerce_paystack", + "WorldCore commerce": "worldcore_commerce", + "Moltin - A smarter way to build ecommerce applications": "moltin", + "CommercePaytm": "commercepaytm", + "CommercePayu": "commercepayu", + "Commerce Shipping Econt": "commerce_econt", + "Commerce sandboxes": "commerce_sandbox", + "Commerce atom": "commerce_atom", + "Mongo Commerce": "mongocommerce", + "Commerce PIM": "commerce_pim", + "Commerce Omise": "commerce_omise", + "Commerce Combine Carts": "commerce_combine_carts", + "Commerce Paymentwall": "commerce_paymentwall", + "Commerce Shippo": "shippo", + "Commerce Shipping AJAX": "2872870", + "VisualN Commerce": "visualn_commerce", + "Commerce Google Customer Reviews": "commerce_google_customer_reviews", + "Commerce Multicurrency provider for TRY": "commerce_multicurrency_try", + "Commerce Ajaxify add to cart": "ajaxify_add_cart", + "Commerce packing slips pdf": "commerce_packing_slips_pdf", + "Commerce Iyzico payment gateway": "2876206", + "Commerce Australia Post (Drupal 8)": "2876488", + "Commerce Discount [Up to Order Products Subtotal]": "commerce_discount_subtotal", + "Commerce Purchase Order Manager (commerce_pom)": "commerce_pom", + "Commerce E-Dinar": "edinar", + "Commerce Braintree Marketplace": "commerce_braintree_marketplace", + "Commerce Exit Bee": "commerce_exitbee", + "Commerce Country Store": "commerce_country_store", + "Commerce ekomi": "commerce_ekomi", + "Commerce Atol Integration": "d7c_atol", + "Membership Entity Commerce Prorate": "membership_entity_commerce_prorate", + "Commerce Quick Edit": "commerce_quick_edit", + "Drupal Commerce TaxJar": "drupal_commerce_taxjar", + "Commerce Images (commerce_images)": "commerce_images", + "Commerce Cart AJAX D8": "2886575", + "Commerce Bangkok Bank iPay": "commerce_bangkokbank", + "Commerce License UI": "2887935", + "Commerce Simple Order System": "commerce_sos", + "Commerce Membership": "commerce_membership", + "Commerce Url Hash": "commerce_url", + "Commerce ePayco": "commerce_epayco", + "Commerce Checkout URL": "commerce_checkout_url", + "Commerce PayGate PayHost": "commerce_paygate_payhost", + "Commerce Shipping Price Matrix": "commerce_shipping_price_matrix", + "Hiecor Secure Payment - Drupal Commerce Addon": "hiecor_commerce", + "Commerce Tpay": "commerce_tpay", + "Commerce DPS PxPay": "commerce_dps_pxpay", + "Commerce not flat rate": "commerce_not_flat_rate", + "Commerce Payment Onsite Gateway": "commerce_payment_onsite_gateway", + "Commerce Translation": "commerce_translation", + "Commerce Payment Onsite": "commerce_payment_onsite", + "Commerce Price Rules": "commerce_price_rules", + "Commerce Price Rule": "commerce_price_rule", + "Commerce EasyPost": "commerce_easypost", + "Commerce choose price old": "ccp", + "Commerce choose price": "commerce_choose_price", + "commerce_payme": "commerce_payme", + "Commerce Quote Cart": "2901908", + "Commerce Cart Checkout Panes": "2902109", + "Commerce postcode delivery": "commerce_postcode_delivery", + "Commerce Xero Invoice": "2902420", + "Commerce Addon": "commerce_addon", + "Commerce Barion": "commerce_barion", + "Commerce License Fix": "commerce_license_fix", + "Commerce Enchanced ECommerce": "commerce_enchanced_ecommerce", + "Commerce Google Trusted Store": "2904810", + "Commerce loyalty points": "commerce_loyalty_points", + "Commerce: Product taxonomy filter": "product_taxonomy_filter", + "Commerce Payment Transaction Revision": "commerce_payment_transaction_revision", + "Commerce Product MinMax": "commerce_product_minmax", + "Commerce License OG Role": "commerce_license_og_role", + "Commerce PayU Russia": "2906647", + "Commerce Single Price Formatter": "commerce_single_price_formatter", + "Commerce Multistore": "commerce_multistore", + "Commerce Profile Checkout Pane": "commerce_profile_pane", + "Commerce Swedbank Payment Portal": "commerce_payment_spp", + "Commerce Royalpay": "commerce_royalpay", + "Commerce cryptocurrency payment methods": "custom_it_cryptonator", + "Commerce Paypal Payments Pro": "2909597", + "Commerce Custom Fees": "2909745", + "Commerce KOMTET Kassa ": "commerce_komtet_kassa", + "Commerce Order: User revision": "commerce_order_user_revision", + "Commerce Marketplace One click buy": "commerce_marketplace_one_click_buy", + "Commerce product permissions by type": "commerce_product_permissions_by_type", + "Commerce GoCardless (new API)": "2910927", + "Commerce Store Domain": "commerce_store_domain", + "Commerce Payment TB CardPay": "commerce_payment_tb_cardpay", + "Commerce China Payments": "commerce_cnpay", + "Commerce License Entity Field": "commerce_license_entity_field", + "Commerce add to cart confirmation extras": "commerce_add_to_cart_confirmation_extras", + "Commerce User Points": "commerceuserpoints", + "Commerce MANGOPAY Direct PayIn": "commerce_mangopay_dpi", + "Commerce Shipping Stepped By Item": "commerce_shipping_stepped_by_item", + "Commerce claim gift aid": "commerce_claim_gift_aid", + "Commerce Rental": "commerce_rental", + "Commerce Multiple Payments": "commerce_multi_payment", + "Commerce Extended Attributes": "commerce_xattributes", + "Commerce GoCardless Payment": "commerce_gocardless_payment", + "Commerce Zarinpal": "commerce_zarinpal", + "Commerce Paycom": "commerce_paycom", + "Commerce sales popup": "commerce_sales_popup", + "Commerce Tripletex": "commerce_tripletex", + "E-Commerce Mellat": "mellat_gateway", + "Acquia Commerce Manager": "acquia_commercemanager", + "Commerce Payir": "commerce_payir", + "Commerce Reports Retroactive": "2922873", + "Commerce Saman Gateway": "ms_commerce_saman", + "Commerce DIBS integration": "commerce_dibs", + "Commerce Pasargad": "commerce_pasargad", + "Commerce Order Tracker": "2925950", + "Commerce Tax Plus": "commerce_tax_plus", + "Commerce Product Personalization": "commerce_product_personalization", + "Commerce Customization": "commerce_customization", + "Commerce Singlestep": "2926811", + "Commerce Coupon Bulk Import": "commerce_coupon_bulk_import", + "Commerce Moyasar": "commerce_moyasar", + "Commerce stepped proportional pro-rata": "commerce_prorater_stepped_proportional", + "Commerce LiqPay Payment": "commerce_liqpay_gateway", + "Commerce PayTabs": "commerce_paytabs", + "Commerce Chequeasy": "commerce_chequeasy", + "Commerce Costs": "commerce_cost", + "Commerce PayPal PLUS": "commerce_paypalplus", + "Commerce ML API": "cmlapi", + "Commerce ML Exchange": "cmlexchange", + "Commerce ML Migrations": "cmlmigrations", + "Commerce PayZen": "commerce_payzen", + "Commerce Auto Clear Cart": "2932480", + "Commerce Redirect to Checkout": "2932484", + "Commerce Atom Payment": "commerce_atom_payment", + "Commerce EPN Payment Gateway": "commerce_epn", + "Commerce Tax -- Washington State": "commerce_tax_wa", + "Commerce MyCard": "commerce_mycard", + "Commerce ShipEngine": "commerce_shipengine", + "Btester Commerce": "bt_commerce", + "Commerce Shipping Express": "commerce_shipping_express", + "Commerce Express": "commerce_express", + "Commerce Trustpay Payments": "trustpay", + "Commerce Discount Userpoints": "commerce_discount_userpoints", + "Commerce Organization": "2934965", + "Easy Commerce": "easycommerce", + "Commerce Delivery Time": "2935722", + "Commerce Simple Hierarchical Select": "commerce_shs", + "Commerce Extended Quantity": "commerce_xquantity", + "Commerce Toolbar": "commerce_toolbar", + "Commerce Currency Decimals": "commerce_currencydecimals", + "Commerce Pagseguro Transparente": "commerce_pagseguro_transp", + "Commerce billy cancel": "commerce_billy_cancel", + "Commerce Bulk": "commerce_bulk", + "Commerce layout blocks": "commerce_layout_blocks", + "Commerce Cart Extra Views": "2940024", + "Commerce QuickPay gateway": "commerce_quickpay_gateway", + "Commerce PhonePe": "phonepe integration with commerce", + "Commerce PhonePe Integration": "commerce_phonepe", + "Unlock unpaid commerce order": "unlock_unpaid_commerce_order", + "Commerce RNG": "2940732", + "Commerce Import": "commerceimport", + "Commerce ECPay AllInOne": "commerce_ecpay_allinone", + "Commerce Demo": "commerce_demo", + "Commerce Shipping Per Product": "2942691", + "Commerce Valitor": "commerce_valitor", + "Commerce EuPlatesc Payment Gateway": "commerce_euplatesc", + "Commerce Product Review": "commerce_product_review", + "commerce_ajax": "2944090", + "Commerce Printful": "commerce_printful", + "Commerce Inventory": "commerce_inventory", + "Commerce Bring": "commerce_bring", + "Commerce Cloudpayments": "2944676", + "Commerce GDPR": "commerce_gdpr", + "Commerce Extra Items": "commerce_extra_items", + "Commerce ML Starter": "cmlstarter", + "Commerce Events": "2945793", + "Sendwithus commerce": "sendwithus_commerce", + "Commerce Price Multicurrency Formatter": "2947181", + "Commerce add to cart matrix": "commerce_add_to_cart_matrix", + "Commerce guest registration": "commerce_guest_registration", + "Commerce Webform Order": "commerce_webform_order", + "Commerce Store Theme": "2949591", + "Commerce Add To Cart Link": "commerce_add_to_cart_link", + "Commerce Authorize.Net Accept": "commerce_authnet_accept", + "Commerce Billbee": "commerce_billbee", + "Commerce Product Menu UI": "commerce_product_menu_ui", + "Commerce SDEK": "commerce_sdek", + "Commerce Boxberry": "commerce_boxberry", + "Commerce Rave": "commerce_rave", + "Commerce Coinpayments": "commerce_coinpayments", + "Commerce Klaviyo": "commerce_klaviyo", + "Commerce XEM": "commerce_xem", + "Commerce wayforpay gateway": "commerce_wayforpay", + "Commerce Checkout Order Fields": "commerce_checkout_order_fields", + "Commerce cashpresso": "commerce_cashpresso", + "Commerce Inventory: Square": "commerce_inventory_square", + "Commerce Attribute Price": "commerce_attribute_price", + "Commerce KITE": "commerce_kite", + "Commerce Peach Payments Integration": "commerce_peach", + "commerce_trade_price": "2956706", + "Commerce payment dibs": "commerce_payment_dibs", + "FONDY — Drupal Commerce Payment Gateway": "commerce_fondy", + "Commerce Currency Resolver": "commerce_currency_resolver", + "Categories for Commerce Cart": "commerce_cart_categories", + "Commerce Amazon MWS D8": "commerce_amws", + "Commerce Condition Kit": "commerce_condition_kit", + "ShippyPro - Drupal Commerce Shipping Integration": "shippypro", + "Commerce Cart API": "commerce_cart_api", + "Commerce Stripe Payment Request": "commerce_stripe_payment_request", + "Commerce Cart Flyout": "commerce_cart_flyout", + "Commerce Anotherlane": "2962618", + "Domain Commerce Discount": "2964611", + "Commerce Admin Checkout": "commerce_admin_checkout", + "Commerce Cart Countdown Timer": "commerce_cart_countdown", + "Commerce MoIP Payment": "commerce_moip_payment", + "Commerce Factura Electronica CR": "2968181", + "Commerce ShippingEasy": "2969285", + "Commerce Verifone": "commerce_verifone", + "Commerce Nordea": "commerce_nordea", + "Commerce Monetico": "commerce_monetico", + "Commerce Replicate": "commerce_replicate", + "Commerce Sberbank Acquiring": "commerce_sberbank_acquiring", + "Commerce Cart Advanced": "commerce_cart_advanced", + "Commerce QualPay": "commerce_qualpay", + "Commerce Shipping Correios": "2973186", + "Commerce Checkout API": "commerce_checkout_api", + "Commerce NestPay": "2974191", + "Commerce File 8.x-1.x": "2975782", + "Commerce Paymetric": "commerce_paymetric", + "Commerce Supay": "commerce_supay", + "Commerce Bambora": "commerce_bambora", + "Commerce Canada Post D8": "2977889", + "Commerce Instamojo Payment Gateway D8": "2978803", + "Commerce eGHL": "commerce_eghl", + "Commerce Discount Time": "commerce_discount_time", + "Commerce BTCPay": "commerce_btcpay", + "Commerce UDS Game": "2981360", + "Commerce Order API": "commerce_order_api", + "Commerce Three Step Redirect": "commerce_three_step_redirect", + "Commerce OCI checkout": "commerce_oci_checkout", + "Commerce Giropay Payment": "commerce_giropay", + "Commerce Order PDF": "commerce_order_pdf", + "Commerce Worldwide Express - WWEX Freight Shipment": "commerce_wwex", + "Commerce Kupindo XML": "kupindo_simple_xml", + "Commerce Klarna Payments": "commerce_klarna_payments", + "Commerce Simple Stock": "commerce_simple_stock", + "Commerce order flag": "commerce_order_flag", + "Commerce Pays.cz": "commerce_payscz", + "Commerce MXMerchant": "2991503", + "Commerce Salesforce Connector Module": "salesmodule", + "Commerce Salesforce Integrator": "commerce_salesforce_integrator", + "commerce colissimo shipping": "commerce_colissimo_shipping", + "Commerce Confirm Leave": "commerce_confirm_leave", + "Commerce Coupon Conditions": "commerce_coupon_conditions", + "Commerce HyperPay": "commerce_hyperpay", + "Commerce NextEngine": "commerce_nextengine", + "Commerce Recent Purchase Popup": "commerce_recent_purchase_popup", + "Varbase Commerce (Merchandise)": "varbase_commerce", + "Commerce ML Starter DEMO": "cmlstarter_demo", + "Commerce KlikandPay": "2997033", + "Commerce Lending Works": "commerce_lendingworks", + "Commerce Equivalency Weight": "commerce_equiv_weight", + "Commerce Payment Refund": "commerce_refund", + "Commerce Instamojo": "2999977", + "Commerce Paybear": "commerce_paybear", + "Commerce Smart Importer": "commerce_smart_importer", + "Commerce IDPay": "commerce_idpay", + "Commerce Views Reports": "commerce_view_reports", + "Opigno Commerce": "opigno_commerce", + "Commerce Global Payments (Realex)": "commerce_globalpayments", + "Commerce Aramex API": "commerce_aramex_api", + "Commerce Direct Debit D8": "3005285", + "Commerce Payment Encryption": "commerce_payment_encrypt", + "Commerce Wishlist API": "commerce_wishlist_api", + "Commerce Decoupled Checkout": "commerce_decoupled_checkout", + "Commerce refund log": "commerce_refund_log", + "commerce_swisscom_easypay": "commerce_swisscom_easypay", + "Commerce License Access Control": "commerce_license_access_control", + "Commerce Product Type Fees": "commerce_product_type_fees", + "Commerce2 Paydollar": "3009977", + "Commerce Order Reports": "commerce_order_reports", + "Porting [commerce_2checkout] Commerce 2CheckOut to Drupal 8": "3011650", + "Googalytics Commerce": "ga_commerce", + "Commerce Backordered": "3012093", + "Commerce Viral Loops": "commerce_vl", + "Commerce Currencies Price": "commerce_currencies_price", + "Commerce iPay88 payment Gateway": "ipay88_commerce", + "Commerce Red Dot Payment": "commerce_reddotpayment", + "Commerce Order auto-validation": "commerce_order_autovalidate", + "Product Builder for Drupal Commerce": "product_builder", + "Commerce Mautic": "commerce_mautic", + "Commerce Adyen API": "commerce_adyen_api", + "Commerce Balance": "commerce_balance", + "qualpay-commerce-drupal7": "drupal7_commerce", + "Commerce Paydollar Offsite": "3018317", + "Commerce Enhanced Product": "enhanced_product", + "Commerce Cart Refresh": "commerce_cart_refresh", + "Commerce attachments": "3019657", + "Access Conditions Commerce": "access_conditions_commerce", + "Condition Plugins Commerce": "condition_plugins_commerce", + "Commerce GoCardless Client": "commerce_gc_client", + "Commerce Single Euro Payments Area (SEPA)": "commerce_sepa", + "Commerce Collect.js": "commerce_collect_js", + "Commerce Webpay.by Payment gateway": "commerce_webpay_by", + "Trisbee Commerce Payments": "commerce_trisbee", + "Commerce PartPay": "commerce_partpay", + "Commerce Ifthenpay (referências Multibanco, MB WAY e cartões de crédito)": "commerce_ifthenpay", + "Commerce Clic": "commerce_clic", + "Commerce ECPay Invoice": "commerce_ecpay_invoice", + "Commerce Spgateway": "commerce_spgateway", + "Commerce RL Carriers": "commerce_rl_carriers", + "Commerce Atos WOPA": "commerce_atos_wopa", + "Commerce Variation Add-on": "commerce_vado", + "Commerce simplestock": "commerce_simplestock", + "Commerce Order Item Check Off": "commerce_oco", + "Commerce Approve": "commerce_approve", + "Commerce fix orders": "commerce_fix_orders", + "Commerce orders fix": "commerce_orders_fix", + "Bulk Update Fields - Commerce": "bulk_update_fields_commerce", + "Commerce Paypal Donate": "commerce_paypal_donate", + "Commerce Yandex Metrika Ecommerce": "commerce_yandex_metrika_ecommerce", + "Commerce Apple Pay": "3028542", + "Feeds commerce stock": "feeds_stock", + "Commerce CMI": "commerce_cmi", + "Commerce TurtleCoin": "commerce_turtlecoin", + "Commerce Quantity Pricing": "commerce_quantity_pricing", + "Commerce product reservation": "commerce_product_reservation", + "Commerce Remove Cart Vat Tax": "commerce_remove_vat", + "Commerce Ajax cart message": "commerce_ajax_cart_message", + "commerce_masterworks": "3031257", + "Wallee Commerce: Payment and Invoicing": "wallee", + "Commerce Multicurrency provider for Fixer": "commerce_multicurrency_fixer", + "Commerce order update": "commerce_order_update", + "Commerce Sezzle pay": "commerce_sezzle_pay", + "Commerce ECPay Shipping": "3032920", + "Commerce Mastercard": "commerce_mastercard", + "Commerce CoinGate": "commerce_coingate", + "Commerce Replace Order": "commerce_replace_order", + "BigCommerce": "bigcommerce", + "PayTabs Commerce": "3034748", + "Commerce Print": "commerce_print", + "Commerce Instamojo D8": "commerce_instamojo_d8", + "Commerce Shipping Paczkomaty": "commerce_shipping_paczkomaty", + "Commerce Product Variation CSV": "commerce_product_variation_csv", + "Commerce recurring shipping support": "commerce_recurring_shipping", + "CSV Importer - Commerce": "csv_importer_commerce", + "Commerce Recurring Metered Billing": "commerce_recurring_metered", + "Commerce Forte ACH": "3037754", + "Commerce Attributes": "3038173", + "Commerce HubSpot": "commerce_hubspot", + "Commerce Addtoany Field": "3041534", + "CRM Core Commerce": "crm_core_commerce", + "Commerce Barion Payment": "commerce_barion_payment", + "Commerce Customers Also Bought": "commerce_customers_also_bought", + "Commerce Payment Extra": "commerce_payment_extra", + "Paysto payment getaway for Commerce": "commerce_paysto", + "Commerce Quantity Options": "commerce_quantity_options", + "Commerce Email (sandbox)": "3046538", + "Commerce Cart Redirection": "commerce_cart_redirection", + "Drupal Commerce Bluesnap": "commerce_bluesnap", + "Commerce Order Item Addon": "commerce_oiaddon", + "Group Commerce": "gcommerce", + "Commerce Product Variation Table": "commerce_pvt", + "Commerce privatbank payparts": "commerce_privatbank_payparts", + "Commerce Paylands": "commerce_paylands", + "eCommerceWebformOrder": "3049835", + "Commerce setting lock": "commerce_setting_lock", + "Commerce Deposits": "commerce_deposits", + "Commerce Paykings": "commerce_paykings", + "Commerce priced attributes": "3054916", + "Commerce ML Merchant": "cmlmerchant", + "Commerce Nexi XPay": "commerce_nexi_xpay", + "Commerce BCC Address Token": "commerce_bcc_address_token", + "Commerce Discount Campaign": "discount_campaign", + "Commerce vPay": "commerce_vpay", + "Commerce Atos SIPS": "commerce_atos_sips", + "Commerce iDEAL Payment Gateway": "commerce_ideal", + "Commerce checkout link": "commerce_checkout_link", + "Commerce Smart Invoice": "commerce_smart_invoice", + "Commerce Iyzipay Payment Gateway": "iyzipay", + "Commerce Stripe: Payment Request Button": "commerce_stripe_payment_request_button", + "Commerce Event Trigger API": "commerce_eta", + "Commerce Extras": "3063741", + "Commerce Tigo Money": "commerce_tigo_money", + "Commerce Sheets": "commerce_sheets", + "Commerce WebPayPlus (MIT)": "commerce_webpayplus", + "Commerce8 Quick Add to Cart": "commerce_quick_add_to_cart", + "Contextual Commerce": "3065581", + "Commerce SimplePay by OTP": "commerce_otpsp", + "Commerce Bill": "commerce_bill", + "Commerce Wirecard WPP": "commerce_wirecard_wpp", + "Commerce Single Store Cart": "commerce_single_store_cart", + "Commerce Reactions": "commerce_reactions", + "Commerce Product Reminder": "commerce_product_reminder", + "Commerce SlimPay ": "commerce_slimpay", + "Commerce Stripe Payment Intent": "commerce_stripe_pi", + "Commerce OnePAY.VN": "commerce_onepayvn", + "Commerce MoMo": "commerce_momo", + "Commerce License Pay to Publish": "3075767", + "Commerce Tax Field": "3075981", + "Commerce Axerve": "3076050", + "Commerce VNPAY": "3076632", + "Commerce InvoiceXpress": "commerce_invoicexpress", + "Commerce Partial Payments": "commerce_partial_payments", + "Commerce Checkout.com": "commerce_checkoutcom", + "Commerce CheckAge": "commerce_checkage", + "Commerce TrustedShops": "commerce_trustedshops", + "Commerce Marketplace Terms And Conditions": "3082137", + "Commerce Exchange Rates": "commerce_exchange_rates", + "Tasty Backend Commerce": "tasty_backend_commerce", + "Commerce Exchanger": "commerce_exchanger", + "Commerce PEI ": "commerce_pei", + "e-Commerce (D8/9)": "ec", + "Commerce Coupon Single": "commerce_coupon_single", + "Commerce EVO Payments": "commerce_evo", + "Commerce Dellin (Деловые Линии)": "commerce_dellin", + "Commerce Midtrans": "commerce_midtrans", + "Commercetools": "commercetools", + "Commerce Recurring Plan Change UI": "commerce_recurring_pcui", + "Commerce Paga+Tarde (now Pagantis)": "commerce_pagamastarde", + "Commerce Distribution": "distribution", + "Commerce Decoupled Stripe": "commerce_decoupled_stripe", + "Commerce AlePay": "3089218", + "Commerce Vendor": "commerce_vendor", + "Commerce Product Tax": "commerce_product_tax", + "Commerce Fatourati": "commerce_fatourati", + "Commerce CMI MA": "commerce_cmi_ma", + "Commerce ezPay": "commerce_ezpay", + "Commerce Memberships": "commerce_memberships", + "Commerce Donations": "commerce_donations", + "Commerce Bambora Europe": "commerce_bambora_europe", + "Commerce Conekta Gateway": "commerce_conekta_gateway", + "Commerce Store Override": "commerce_store_override", + "Commerce Stripe Payment Intent Payment Request": "commerce_stripe_pi_payment_request", + "Group Commerce Marketplace [DEPRECATED]": "gcmp", + "Commerce MultiSafepay payments": "commerce_multisafepay_payments", + "Non Commerce SalesTax": "3099266", + "commerce_paysimple": "3100170", + "Commerce Paysimple": "commerce_paysimple", + "Commerce Paylike": "commerce_paylike", + "Commerce 7 Razorpay": "commerce7_razorpay", + "Commerce Custom Shipping By Weight": "commerce_custom_shipping_by_weight", + "Commerce Webform Order Demo": "3102752", + "Commerce RNG 2": "commerce_rng", + "Commerce2 Paybox": "commerce2_paybox", + "Commerce Product Revision Delete": "commerce_product_revision_delete", + "Commerce Product Bulk Variations": "3104497", + "Commerce Shipping Weight": "commerce_shipping_by_weight", + "Commerce Text Pane": "3104732", + "Commerce Group [DEPRECATED]": "commerce_group", + "Commerce BtoB Customer account": "commerce_btob_customer_account", + "Commerce Import Products & Variations": "commerce_import", + "Commerce API": "commerce_api", + "Commerce Exchanger CryptoCompare": "commerce_exchanger_cryptocompare", + "Commerce Promo Link": "commerce_promo_link", + "Commerce Product Tax Conditions": "commerce_product_tax_exempt", + "Commerce SinoPac": "commerce_sinopac", + "Commerce NZ": "commerce_nz", + "Commerce Events Seats": "commerce_events_seats", + "Commerce Gift Card": "commerce_giftcard", + "commerce korapay": "korapay", + "Commerce AddToCart Ajax": "commerce_addtocart_ajax", + "Commerce Omnikassa": "commerce_omnikassa", + "Commerce Option D8": "3111714", + "commerce_suretax": "3111857", + "Commerce Payment Synchronization": "3112499", + "Commerce Multiorder": "commerce_multiorder", + "Commerce Snapshot": "3112858", + "Commerce Tools": "ct", + "Commerce Quality of Life": "3114186", + "Commerce Direct Tax Field": "commerce_direct_tax_field", + "Commerce DHL": "commerce_dhl", + "Commerce Stock Units": "3116010", + "Commerce Views Connector": "3116317", + "Commerce Multicurrency provider for HMRC": "commerce_multicurrency_hmrc", + "Commerce SecurePayAU": "3117013", + "Commerce Dashboard": "commerce_dashboard", + "Commerce Toilet Paper": "commerce_toiletpaper", + "Commerce Ship to PSSC": "commerce_ship_to_pssc", + "Commerce Order Action Reassign Owner": "commerce_order_action_reassign_owner", + "Commerce Item Discount UI": "commerce_item_discount_ui", + "Commerce SagePay integration (Opayo)": "commerce_sage", + "Click & Pledge DrupalCommerce": "clickandpledge_drupalcommerce", + "Commerce Product Feeds API": "commerce_product_feeds", + "Commerce Promotion Plus": "3124853", + "Commerce Stripe iDEAL": "commerce_stripe_ideal", + "Commerce Payrexx": "commerce_payrexx", + "Commerce Dostavista": "commerce_dostavista", + "Commerce Promotional Terms and Conditions": "commerce_promo_tc", + "Commerce Xumm": "xumm", + "Commerce Secure Trading": "commerce_securetrading", + "Commerce Exchanger HNB": "commerce_exchanger_hnb", + "Commerce block tracking order": "3129038", + "Commerce Promotion Giveaway": "commerce_promotion_giveaway", + "Commerce Ingenico GlobalConnect": "commerce_ingenico_gc", + "Commerce Store Gateways": "commerce_store_gateways", + "Commerce Ticketing": "commerce_ticketing", + "Commerce product bundels (Obsolete! Not in use!)": "commerce_product_bundels", + "Commerce Product Bundles": "commerce_product_bundles", + "commerce_recurly": "commerce_recurly", + "Commerce NP": "3131690", + "Commerce Novaposhta Shipping": "commerce_novaposhta", + "Commerce synflag suite": "commerce_synflag_suite", + "Commerce Cashfree Payment": "commerce_cashfree_payment", + "Commerce SKU Field": "commerce_sku_field", + "Commerce SMT": "3134607", + "Commerce Payment Information Extra": "commerce_payment_information_extra", + "Commerce Click and Collect": "commerce_cac", + "Commerce Shipping Pickup": "commerce_shipping_pickup", + "Commerce FinDock": "commerce_findock", + "Commerce Product Bundle License": "commerce_product_bundle_license", + "Commerce Telr": "commerce_telr", + "Drupal Commerce Donation": "commerce_donation", + "Commerce Licence Group": "commerce_licence_group", + "Commerce License Group": "commerce_license_group", + "Commerce Price by Role": "3149537", + "Commerce Cart Modal": "commerce_cart_modal", + "Commerce Tax Covid": "commerce_tax_covid", + "Commerce Klarna Checkout External Payment": "commerce_klarna_checkout_external_payment", + "Commerce KNET": "commerce_knet", + "Commerce Cart Popup ": "commerce_cart_popup", + "School Commerce": "school_commerce", + "Commerce Free Shipping Rate": "3153761", + "Commerce Devel Generate": "3154511", + "Commerce Zebra": "commerce_zebra", + "Commerce CardConnect": "commerce_cardconnect", + "Commerce Post Luxembourg": "commerce_postlu", + "Commerce Donation Flow": "commerce_donation_flow", + "Commerce BridgePay": "commerce_bridgepay", + "Commerce App": "commerce_app", + "commerce paykun": "3160980", + "Commerce Paylane Payment": "commerce_paylane_payment", + "Commerce Zibal": "3163224", + "Commerce Ukrposhta Shipping": "3166343", + "Commerce Klarna Checkout (sandbox)": "3167668", + "Commerce ShipBob": "commerce_shipbob", + "Commerce Capita": "commerce_capita", + "Salesforce Commerce Stock Mapping": "salesforce_commerce_stock", + "Commerce Byjuno": "commerce_byjuno", + "Commerce Webouse EasyPay": "commerce_easypay", + "Commerce Swiss Post": "commerce_swiss_post", + "Commerce Banca Intesa": "commerce_banca_intesa", + "Commerce Marketplace Premium Merchant": "3170717", + "commerce_wompi": "commerce_wompi", + "Commerce CDEK": "commerce_cdek", + "Commerce comfort attributes": "commerce_comfort_attributes", + "Commerce Purolator Shipping Service": "commerce_purolator_shipping_service", + "Commerce MaxMind": "commerce_maxmind", + "Commerce BeGateway": "commerce_begateway", + "Commerce PayPalPlus": "3176390", + "Commerce One-Click Checkout": "commerce_oneclick_checkout", + "Commerce Exchanger NBU": "commerce_exchanger_nbu", + "Commerce GP Webpay": "commerce_gpwebpay", + "Commerce Stripe Sofort": "commerce_stripe_sofort", + "Commerce Payment Custom Title": "commerce_payment_custom_title", + "Commerce EveryPay": "commerce_everypay", + "Commerce shipping same as billing": "commerce_shipping_same_as_billing", + "Poster POS Commerce Integration": "poster_integration", + "Commerce Wallee": "commerce_wallee", + "Commerce Recruiting": "commerce_recruiting", + "Commerce price debug": "commerce_price_debug", + "commerce zipmoney": "3185084", + "Commerce Statistic": "commerce_statistic", + "Commerce eBay Interactive": "commerce_ebay", + "YandexKassa / YooMoney Drupal Commerce Gateway": "yandex_checkout", + "Commerce EditionGuard": "commerce_editionguard", + "Commerce Card Reporting": "commerce_card_reporting", + "Commerce SagePay D8": "commerce_sagepay_d8", + "Commerce Free Shipping Indicator": "commerce_free_shipping_indicator", + "Commerce Chase HPF": "3190357", + "Drupal AlternativeCommerce (Basket)": "basket", + "Commerce Shipstation Export": "commerce_shipstation_export", + "Commerce Cart Dialog": "commerce_cart_dialog", + "Commerce Business-to-Business [DEPRECATED]": "commerce_b2b", + "Commerce Group": "commerceg", + "Commerce B2B": "commerceg_b2b", + "Commerce Customer Group": "commerceg_customer", + "Group Commerce Organization": "group_commerce", + "Commerce Exchanger Privat Bank": "3193477", + "Commerce Loyalty Condition": "commerce_loyalty_condition", + "Commerce Group Marketplace": "cgmp", + "Commerce Customer": "commerce_customer", + "Commerce Tax Exemption": "commerce_tax_exemption", + "Drupal commerce admin Recipt Mail": "admin_receipt_mail", + "Commerce PBZ": "commerce_pbz", + "Commerce GlobalPay Redeban": "commerce_globalpay_redeban", + "Commerce Add To Cart Pop-Up Form": "commerce_add_to_cart_popup_form", + "Commerce Quaderno": "commerce_quaderno", + "Commerce Product Limits": "commerce_product_limits", + "Paysera Commerce payment gateway": "paysera_commerce", + "Commerce Packeta ( Zásielkovňa / Zásilkovna )": "commerce_packeta", + "Commerce E-xact": "commerce_exact", + "Commerce Invoice Payment": "commerce_invoice_payment", + "Commerce Tax Exemption AvaTax Connector": "commerce_tax_exemption_avatax", + "Commerce Sell Once": "commerce_sell_once", + "Commerce Fee": "commerce_fee", + "Switips commerce": "switips_commerce", + "Commerce Afterpay": "commerce_afterpay", + "Commerce product taxonomy filter": "commerce_product_taxonomy_filter", + "Commerce Product Group": "commerceg_product_group", + "eWAY Commerce2": "eway_commerce2", + "Commerce Payment Visma Pay": "commerce_payment_vismapay", + "Commerce Sage Payments": "commerce_sage_payments", + "Commerce Groupon": "commerce_groupon", + "Commerce Concardis": "commerce_concardis", + "paytabscom/drupal_commerce": "paytabs_drupal_cmmerce", + "Commerce Domain": "commerce_domain", + "Commerce maxiPago": "commerce_maxipago", + "Commerce MakesYouLocal": "commerce_makesyoulocal", + "commerce_sap_b1": "3211323", + "Commerce Unzer": "commerce_unzer", + "Commerce Promotion Views": "commerce_promotion_views", + "Commerce Feefo": "commerce_feefo", + "Commerce Multisafepay Recurring": "commerce_multisafepay_recurring", + "Commerce n-genius": "commerce_n_genius", + "Commerce Shipping extra weight rate": "commerce_shipping_extra_weight_rate", + "Commerce Product Restriction": "commerce_product_restriction", + "Commerce Tuya Pay": "3215653", + "Commerce First Atlantic Commerce (FAC)": "commerce_fac", + "AlternativeCommerce PayPal Checkout": "basket_paypal", + "Commerce Conditions Plus": "commerce_conditions_plus", + "Commerce ConcordPay Payment": "commerce_concordpay", + "AlternativeCommerce NovaPoshta API": "basket_novaposhta", + "Commerce Payin-Payout": "commerce_payin_payout", + "Commerce Cart Skip": "commerce_cart_skip", + "Commerce Store Switch": "commerce_store_filter", + "Commerce Product Variation Radio Widget": "cpv_radio_widget", + "Commerce Redsys Payment": "commmerce_redsys_payment", + "Commerce Redsys Payment Gateway": "commerce_redsys_payment", + "Commerce Store Wizard": "commerce_store_wizard", + "Commerce Packaging": "commerce_packaging", + "Commerce Craftgate": "commerce_craftgate", + "Commerce Stripe Alipay": "commerce_stripe_alipay", + "Commerce Product Bundle Recurring": "commerce_product_bundle_recurring", + "Commerce Customer Profile Visible": "commerce_customer_profile_visible", + "Commerce Paybox Payment": "commerce_paybox_payment", + "Commerce Factuursturen": "commerce_factuursturen", + "Commerce Product Quantity": "commerce_product_quantity", + "Commerce Ajax ATC (Add to cart)": "commerce_ajax_atc", + "Commerce 2C2P": "commerce_2c2p", + "Midtrans Commerce": "midtrans_commerce", + "Commerce Stripe Bancontact": "commerce_stripe_bancontact", + "commerce_yookassa": "commerce_yookassa", + "commerce ajax cart fields": "commerce_ajax_fields", + "Commerce CiviCRM Event Registration": "commerce_civicrm_event_registration", + "Commerce Ticketing Scanner": "commerce_ticketing_scanner", + "Commerce Helcim": "commerce_helcim", + "Commerce Endicia": "commerce_endicia", + "Commerce Shipping Label": "commerce_shipping_label", + "Commerce Mpesa STK": "commerce_mpesa", + "Commerce Shipping Carrier": "commerce_shipping_carrier", + "Commerce Shipping Pickup Foxpost Hungary": "commerce_shipping_pickup_foxpost", + "Commerce Shipping Pickup Magyar Posta": "commerce_shipping_pickup_hupost", + "Commerce Shipping Pickup Pick Pack Pont": "commerce_shipping_pickup_pickpackpont", + "Commerce Shipping Pickup GLS CsomagPont": "commerce_shipping_pickup_gls_csomagpont", + "Commerce Refund Order Item": "commerce_refund_order_item", + "Commerce Ticketing Check-in": "commerce_ticketing_checkin", + "Commerce Signifyd": "commerce_signifyd", + "Commerce Wechat payment": "commerce_wechat", + "Commerce Alipay Pay": "commerce_alipayment", + "Commerce Ajaxify": "commerce_ajaxify", + "Commerce Sepordeh": "commerce_sepordeh" +} \ No newline at end of file diff --git a/src/ContribParser/ContribParser.php b/src/ContribParser/ContribParser.php new file mode 100644 index 0000000..95c1600 --- /dev/null +++ b/src/ContribParser/ContribParser.php @@ -0,0 +1,94 @@ + 'rszrama', + 'damz' => 'Damien Tournoud', + 'damien' => 'Damien Tournoud', + 'pedro.cambra' => 'pcambra', + 'andy' => 'andyg5000', + 'nmd.matt' => 'mglaman', + 'amateescue' => 'amateescu', + 'torgospizza' => 'torgosPizza', + 'rszrama et al' => 'rszrama', + 'redben in http' => 'redben', + 'my.baileys' => 'mr.baileys', + 'GoZOo' => 'GoZ', + 'pasi.kauraniemi' => 'mitrpaka', + 'mikeNCM' => 'mlutz', + ]; + $projects = [ + 'commerce' => [ + 'repo' => 'https://git.drupal.org/project/commerce.git', + 'branch' => '8.x-2.x', + ], + 'commerce_shipping' => [ + 'repo' => 'https://git.drupal.org/project/commerce_shipping.git', + 'branch' => '8.x-2.x', + ], + ]; + ContribParser::EnsureRepos($projects); + + $range = '--since="2017-01-01 00:00:00" --until="2017-12-31 23:59:59"'; + foreach ($projects as $project_name => $project) { + $contributors = []; + $commits = []; + exec('git -C projects/' . $project_name . ' log --format="%ae||%s" --no-merges ' . $range, $commits); + foreach ($commits as $key => $commit) { + list($author, $subject) = explode("||", $commit); + $matches = []; + if (preg_match('/by (\w+\,?.*?):/', $subject, $matches)) { + foreach (explode(', ', $matches[1]) as $user) { + $user = isset($mappings[$user]) ? $mappings[$user] : $user; + if (!isset($contributors[$user])) { + $contributors[$user] = 0; + } + $contributors[$user] += 1; + } + continue; + } + + // The commit message isn't formatted with attribution. + $author = explode('@', $author); + $author = $mappings[$author[0]] ?? $author[0]; + if (!isset($contributors[$author])) { + $contributors[$author] = 0; + } + $contributors[$author] += 1; + } + + unset($contributors['git']); + arsort($contributors); + print json_encode([ + 'project' => $project_name . ' ' . $project['branch'], + 'total_contributors' => count($contributors), + 'total_commits' => count($commits), + 'contributors' => $contributors, + ], JSON_PRETTY_PRINT | JSON_UNESCAPED_SLASHES | JSON_UNESCAPED_UNICODE); + } + } + + static function ensureRepos(array $projects) + { + if (!is_dir('projects')) { + mkdir('projects'); + } + + foreach ($projects as $project_name => $project) { + $project_path = 'projects/' . $project_name; + if (is_dir($project_path)) { + exec('git -C ' . $project_path . ' checkout ' . $project['branch']); + exec('git -C ' . $project_path . ' pull origin ' . $project['branch']); + continue; + } + + exec('git clone --branch ' . $project['branch'] . ' ' . $project['repo'] . ' ' . $project_path); + } + } +} diff --git a/src/ListContrib/ListContrib.php b/src/ListContrib/ListContrib.php new file mode 100644 index 0000000..d6c2a86 --- /dev/null +++ b/src/ListContrib/ListContrib.php @@ -0,0 +1,62 @@ +get($url); + $data = json_decode($response->getBody()); + + $url = $data->next ?? null; + // The next links are broken in the API and we need to fix them manually + $url = str_replace('node?', 'node.json?', $url); + $modules = $data->list; + + foreach ($modules as $module) { + $name = $module->title; + $machine_name = $module->field_project_machine_name; + + // If it isn't a commerce module, we don't care about it. + if (strpos(strtolower($name), 'commerce') === false) { + continue; + } + + $commerce_modules[$name] = $machine_name; + } + } + + $output_format = 'text'; + if (isset($args['o']) || isset($args['output-format'])) { + $output_format = isset($args['o']) ? $args['o'] : $args['output-format']; + } + + switch ($output_format) { + case 'json': + print json_encode( + $commerce_modules, + JSON_PRETTY_PRINT | JSON_UNESCAPED_SLASHES | JSON_UNESCAPED_UNICODE + ); + break; + case 'text': + print_r($commerce_modules); + print 'Total Modules: ' . count($commerce_modules) . PHP_EOL; + break; + default: + print 'The output format you specified is not valid'; + } + } +} diff --git a/src/NewReleases/NewReleases.php b/src/NewReleases/NewReleases.php new file mode 100644 index 0000000..7f8b848 --- /dev/null +++ b/src/NewReleases/NewReleases.php @@ -0,0 +1,95 @@ + [ + 'default' => null + ], + 'last' => [ + 'default' => null, + ], + 'clear-cache' => 'c', + ]; + + $cli_args = new CliArgs($config); + + $last = $cli_args->getARg('last'); + $last_timestamp = null; + if (isset($last)) { + $last_timestamp = strtotime("-" . $last. " day", time()); + } + + $client = new \GuzzleHttp\Client(); + + $modules = json_decode(file_get_contents('module-list.json')); + + $newReleases = []; + foreach ($modules as $name => $machine_name) { + $filename = 'cache/' . $machine_name; + $filename_nid = $filename . '_nid'; + $filename_releases = $filename . '_releases'; + + // Load the nid if it doesn't exist or download flag is set. + if (!file_exists($filename_nid)) { + $response = $client->get( + 'https://www.drupal.org/api-d7/node.json?field_project_machine_name=' . $machine_name + ); + + $contents = json_decode($response->getBody())->list[0]->nid; + file_put_contents($filename_nid, $contents); + } + + $nid = file_get_contents($filename_nid); + + // Load the release data if it doesn't exist or the download flag is set. + if (!file_exists($filename_releases)) { + $response = $client->get('https://www.drupal.org/api-d7/node.json?field_release_project=' . $nid); + $contents = $response->getBody(); + file_put_contents($filename_releases, $contents); + } + + $releases = json_decode(file_get_contents($filename_releases))->list; + + foreach ($releases as $release) { + // Skip anything older than last X days + if ($last_timestamp && $last_timestamp > $release->created) { + continue; + } + + $newReleases[] = [ + 'timestamp' => $release->created, + 'name' => $name, + 'url' => 'https://www.drupal.org/project/' . $machine_name, + 'version' => $release->field_release_version, + 'usage' => $release->release_usage ?? 0, + 'description' => $release->field_release_short_description, + ]; + } + } + + usort($newReleases, function ($a, $b) { + return $b['usage'] <=> $a['usage']; + }); + + print "| Date| Name | Version | Installs | Description\n"; + print "| ---- | --------- | ------- | -------- | ----- |\n"; + + $limit = $cli_args->getARg('limit'); + $i = 0; + foreach ($newReleases as $release) { + $date = date('F j, Y', $release['timestamp']); + print "| {$date} | {$release['name']} | {$release['version']} | {$release['usage']} | {$release['description']} |\n"; + $i++; + if (isset($limit) && $i >= $limit) { + break; + } + } + } +}