PHPackages                             seravo/woo-pakettikauppa - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [Utility &amp; Helpers](/categories/utility)
4. /
5. seravo/woo-pakettikauppa

AbandonedWordpress-plugin[Utility &amp; Helpers](/categories/utility)

seravo/woo-pakettikauppa
========================

Integrates Pakettikauppa with WooCommerce and provides Prinetti, Matkahuolto, DB Schenker et al shipping options.

3.9.3(2y ago)233413[3 issues](https://github.com/Pakettikauppa/woo-pakettikauppa/issues)[2 PRs](https://github.com/Pakettikauppa/woo-pakettikauppa/pulls)GPL-3.0PHP

Since Jul 11Pushed 1y ago1 watchersCompare

[ Source](https://github.com/Pakettikauppa/woo-pakettikauppa)[ Packagist](https://packagist.org/packages/seravo/woo-pakettikauppa)[ Docs](http://seravo.com)[ RSS](/packages/seravo-woo-pakettikauppa/feed)WikiDiscussions master Synced 3d ago

READMEChangelog (10)Dependencies (1)Versions (93)Used By (0)

[![Pakettikauppa](https://camo.githubusercontent.com/ab6096d2a18758855f916d794c0d9e5246fa921314fdf84f6daa66423f97098c/68747470733a2f2f7777772e70616b657474696b61757070612e66692f6c6f61642f70616b657474696b61757070612d6c6f676f2e706e67)](https://camo.githubusercontent.com/ab6096d2a18758855f916d794c0d9e5246fa921314fdf84f6daa66423f97098c/68747470733a2f2f7777772e70616b657474696b61757070612e66692f6c6f61642f70616b657474696b61757070612d6c6f676f2e706e67)

Pakettikauppa WordPress plugin for WooCommerce
==============================================

[](#pakettikauppa-wordpress-plugin-for-woocommerce)

[![Build Status](https://camo.githubusercontent.com/4df0b1ce01a7756d7fd7dc96bb2a19456cf0d512bf335374087a6c190dae69e5/68747470733a2f2f7472617669732d63692e6f72672f53657261766f2f776f6f2d70616b657474696b61757070612e7376673f6272616e63683d6d6173746572)](https://travis-ci.org/Seravo/woo-pakettikauppa) [![Latest Stable Version](https://camo.githubusercontent.com/8ff07081c10f8a75e600bc685401f9445375ca71369d967bda3059ff8cdc46f6/68747470733a2f2f706f7365722e707567782e6f72672f73657261766f2f776f6f2d70616b657474696b61757070612f762f737461626c65)](https://packagist.org/packages/seravo/woo-pakettikauppa) [![Total Downloads](https://camo.githubusercontent.com/0db3875d3ed4b9566380b39a758e3966d6dcb03678af5d1243293ca32c72581b/68747470733a2f2f706f7365722e707567782e6f72672f73657261766f2f776f6f2d70616b657474696b61757070612f646f776e6c6f616473)](https://packagist.org/packages/seravo/woo-pakettikauppa) [![Latest Unstable Version](https://camo.githubusercontent.com/3833638ecdfbc5ea7f517c06b18623b228fd66a79a7e63f4b3c7cd35cd389d56/68747470733a2f2f706f7365722e707567782e6f72672f73657261766f2f776f6f2d70616b657474696b61757070612f762f756e737461626c65)](https://packagist.org/packages/seravo/woo-pakettikauppa) [![License](https://camo.githubusercontent.com/1ce972cbdb46f40be87329ea6b7d5633dc58e72de949080ceddd0a34e5e2488d/68747470733a2f2f706f7365722e707567782e6f72672f73657261766f2f776f6f2d70616b657474696b61757070612f6c6963656e7365)](https://packagist.org/packages/seravo/woo-pakettikauppa)

Maturity
========

[](#maturity)

> This software is now available for General Availability.

Installation
============

[](#installation)

This plugin can be installed via [WordPress.org plugin directory](https://wordpress.org/plugins/woo-pakettikauppa/), WP-CLI or Composer:

```
wp plugin install --activate woo-pakettikauppa
# OR
wp plugin install --activate https://github.com/Seravo/woo-pakettikauppa/archive/master.zip
# OR
composer require seravo/woo-pakettikauppa
```

The plugin requires WooCommerce &gt;=4.4 to be installed, with shipping zones configured and this plugin activated and settings set.

Naturally the store owner also needs to have a merchant account at [Pakettikauppa](https://www.pakettikauppa.fi/).

> *Note!* If you already have shipping contracts with Posti, Matkahuolto or DB Schenker with reduced prices, you can contact the customer support of Pakettikauppa to get those contracts via Pakettikauppa so you can use the WooCommerce Pakettikauppa plugin with your current shipping contracts.

> *Important!* Before you start using this plugin, please check with your hosting provider that you have directory listing disabled. For more information about directory listing, check the documentation for [Apache](https://wiki.apache.org/httpd/DirectoryListings) or [Nginx](https://nginx.org/en/docs/http/ngx_http_autoindex_module.html).

Features
========

[](#features)

- Integrates [Pakettikauppa](https://www.pakettikauppa.fi/) with WooCommerce
- Based on the official [Pakettikauppa API library](https://github.com/Pakettikauppa/api-library)
- Supports WooCommerce shipping zones (though Pakettikauppa is currently only available in Finland)
- Store owners can specify themselves any fixed rate for a shipping or have free shipping if the order value is above a certain limit
- Customers can choose to ship products to an address or to any pickup point available from the Pakettikauppa shipping methods
- Store owner can generate the shipping label in one click
- Store owners and customers get tracking code links and status information
- Test mode available that uses the testing API

Screenshots
===========

[](#screenshots)

[![Checkout in twentynineteen theme](.wordpress-org/screenshot-1.png)](.wordpress-org/screenshot-1.png)[![Order confirmation in twentynineteen theme](.wordpress-org/screenshot-2.png)](.wordpress-org/screenshot-2.png)[![Order screen in admin](.wordpress-org/screenshot-3.png)](.wordpress-org/screenshot-3.png)[![Setup wizard](.wordpress-org/screenshot-4.png)](.wordpress-org/screenshot-4.png)

Changelog
=========

[](#changelog)

See git history.

For developers
==============

[](#for-developers)

Pull requests are welcome!

Before submitting your patch, please make sure it is of high quality:

- Follow the [WordPress Codex plugin writing recommendations](https://codex.wordpress.org/Writing_a_Plugin) and also check the [WordPress Plugin Handbook](https://developer.wordpress.org/plugins/)
- Follow the specific [WooCommmerce plugin recommendations](https://docs.woocommerce.com/document/create-a-plugin/)
- Test the code on a clean WordPress/WooCommmerce installation with standard [dummy data](https://docs.woocommerce.com/document/importing-woocommerce-dummy-data/)
- Make sure the test suite passes locally and on Travis-CI
- Check that the code style is valid when tested with the phpcs.xml included in this project

Developer docs
--------------

[](#developer-docs)

Please note that the official docs at  contain partially outdated information. For more information, see wiki at  or dive directly into the source using [GitHub search](https://github.com/woocommerce/woocommerce/search?utf8=%E2%9C%93&q=extends+WC_Shipping_Method&type=) to find up-to-date examples on how to extend the shipping method class.

Running a local development environment
---------------------------------------

[](#running-a-local-development-environment)

To develop woo-pakettikauppa (or any WordPress plugin) you need to have a running WordPress installation. If you want to use [Seravo/WordPress](https://github.com/Seravo/wordpress) as a local development environment clone it to your computer and fire it up in Vagrant or Docker following its instructions. Once done, you will have a clean and pretty empty WordPress site.

Assuming you have the local development environment running in directory `wordpress` and this plugin is checked out next to it, you can use [entr](http://eradman.com/entrproject/) and [rsync](https://rsync.samba.org/) to automatically sync the `woo-pakettikauppa` contents into the local development environment:

```
find * | entr rsync -vr . ../wordpress/htdocs/wp-content/plugins/woo-pakettikauppa | ts

```

This is handy, as no matter what happens to the local development environment the git checkout of `woo-pakettikauppa` is always protected from harm and you can have your text editor and git tools running in that directory always in the same way.

### Running tests in local development environment

[](#running-tests-in-local-development-environment)

There are preconfigured phpcs.xml and phpunit.xml files in the project, so running tests is very easy:

```
vagrant$ cd /data/wordpress/htdocs/wp-content/plugins/woo-pakettikauppa/
vagrant$ phpcs
vagrant$ phpunit --verbose

```

Note that the phpcs and phpunit versions in the local development version might differ from the versions used in the CI system and thus produce different results.

Travis CI and automatic testing
-------------------------------

[](#travis-ci-and-automatic-testing)

This project has a `.travis-ci.yml` definition which can be used by anybody. Just follow these steps:

1. Create an account at [Travis-CI.org](https://travis-ci.org/) by logging in with your Github.com account.
2. Make sure you have a fork of this repository in your own Github.com account.
3. Open the [Travis-CI.org settings page](https://travis-ci.org/account/repositories) and click "Sync repositories" [![Travis CI: Sync repositories](.github/travis-ci-sync.png)](.github/travis-ci-sync.png)
4. Search for `woo-pakettikauppa` in your repository list and enable automatic testing for the repository it. [![Travis CI: Activate](.github/travis-ci-repo-active.png)](.github/travis-ci-repo-active.png)
5. Initially the page `https://travis-ci.org//woo-pakettikauppa` will be empty, but as soon as you push your first commit Travis-CI will run the first built. You can also manually trigger a build to get it started. [![Travis CI: Trigger manual build](.github/travis-ci-manual-trigger.png)](.github/travis-ci-manual-trigger.png)

### Debugging failed Travis CI jobs

[](#debugging-failed-travis-ci-jobs)

First read carefully all the output of the failed jobs. Most of the time the reason to the failure is clearly stated.

You can also simulate the tests Travis CI runs by running inside the local development environment the same commands that [.travis.yml](.travis.yml) runs:

```
vagrant$ cd /data/wordpress/htdocs/wp-content/plugins/woo-pakettikauppa/
vagrant$ SNIFF=1 ./tests/install-tests.sh
vagrant$ SNIFF=1 ./tests/run-tests.sh

```

To control what tests are run by setting variables like 'SNIFF' and others. See [.travis.yml](.travis.yml) for all options used in current matrix.

Travis CI has published [travis-build](https://github.com/travis-ci/travis-build) for converting the `.travis.yml` file into a `.sh` script you can run if you feel adventurous. They also offer a [debug build mode](https://docs.travis-ci.com/user/running-build-in-debug-mode/) that can be used to debug failed builds via SSH directly on Travis' servers.

Translating
-----------

[](#translating)

If you add new translatable strings or edit existing once, you have to regenerate `woo-pakettikauppa.pot` under `core/languages`. Easiest way to do it is use wp-cli:

```
wp i18n make-pot . core/languages/woo-pakettikauppa.pot

```

Branching and releases
----------------------

[](#branching-and-releases)

### Development always targets master branch

[](#development-always-targets-master-branch)

All bugfixes and new features are developed on separate git branches. Work-in-progress can be marked by appending "WIP:" to the commit message or the pull request title. Once a feature is ready, a pull request is opened for comments and review. Pull requests should not include any updates to the changelog or version number, as those are done separately at release time to match the actual release. Making a pull request implies that comments and review are requested, so wait at least 24h after making a new PR so others have time to respond.

Very small bugfixes that don't need any reviews (e.g. fixing spelling errors) can be applied directly on master. Note that all commits must pass CI, so Travis-CI needs to see a commit on some branch first and Github needs to register that commit as passing CI. Then those commits can be merged directly on master by a developer who has write access to master, without making a separate pull request on Github.

As this is a WordPress plugin, there can only be one version released. Thus there are no separate maintenance release branches (once 2.1.x has been released, the next release must be 2.1.y or higher, there cannot be any maintenance releases for 2.0.x).

### Making a new release

[](#making-a-new-release)

All improvements on land on master, and when the current master is tested and deemed fit for a release, the release itself include:

- Make a temporary branch where you bump the version number and update the changelog, ensure CI passes
- Send an email to  as a heads-up about the upcoming release
- Wait for 1-2 work days
- Merge the temporary branch on master and tag it using git (don't use Github's release features, it can mess up the git tag references)
- This repository hooks into , Packagist and all release actions happen automatically based on the git tag

Architecture
------------

[](#architecture)

The plugin is written so that it can be easily forked to a whitelabel version, containing only a subset of shipping providers and a custom branding. This is achieved by using an abstract class as a factory for the plugin component. Each component can be replaced by simply overloading a method.

The `Woo_Pakettikauppa_Core\Core` class is responsible for loading all components, and it serves as a bridge between the components. The instance is passed to most subclasses of the plugin, such as `Woo_Pakettikauppa_Core\Admin`, which keep a reference to it under `$this->core`.

The subclasses are responsible for doing the actual heavy lifting. `Admin` handles operations in wp-admin, `Frontend` handles frontend, `Shipment` is used for creating shipment labels, etc.

`Text` is bit of a special case, it's only real purpose is to serve as a key-value store for strings that require translation. Currently the plugin has `__` and `_e` calls scattered all over it – in the future, all of them should live in `Text`. The advantage of doing so is being able to replace any text in the whitelabel forks.

### Templates

[](#templates)

The plugin have some template files, which is displaying via `wc_get_template` function, so they can be overrided in the theme. To do that, need copy files from Pakettikauppa plugin directory (`/wp-content/plugins/woo-pakettikauppa/templates/pakettikauppa`) to Wordpress theme directory (`/wp-content/themes//woocommerce/pakettikauppa`).

###  Health Score

39

—

LowBetter than 86% of packages

Maintenance26

Infrequent updates — may be unmaintained

Popularity20

Limited adoption so far

Community20

Small or concentrated contributor base

Maturity78

Established project with proven stability

 Bus Factor2

2 contributors hold 50%+ of commits

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Every ~24 days

Recently: every ~76 days

Total

79

Last Release

967d ago

Major Versions

1.1.8 → 2.0.02019-03-05

2.4.0 → 3.0.12020-11-05

### Community

Maintainers

![](https://www.gravatar.com/avatar/c8f6762f3f88e0fd935c325980505195229a4f2fc7e4aa6fb1858d00a8117423?d=identicon)[Seravo](/maintainers/Seravo)

---

Top Contributors

[![joosev](https://avatars.githubusercontent.com/u/14106091?v=4)](https://github.com/joosev "joosev (297 commits)")[![markakk](https://avatars.githubusercontent.com/u/71830881?v=4)](https://github.com/markakk "markakk (160 commits)")[![ottok](https://avatars.githubusercontent.com/u/668724?v=4)](https://github.com/ottok "ottok (58 commits)")[![pampyras](https://avatars.githubusercontent.com/u/3141103?v=4)](https://github.com/pampyras "pampyras (48 commits)")[![krista001](https://avatars.githubusercontent.com/u/94827035?v=4)](https://github.com/krista001 "krista001 (33 commits)")[![k1sul1](https://avatars.githubusercontent.com/u/2719615?v=4)](https://github.com/k1sul1 "k1sul1 (16 commits)")[![smilesLT](https://avatars.githubusercontent.com/u/69295779?v=4)](https://github.com/smilesLT "smilesLT (13 commits)")[![serter](https://avatars.githubusercontent.com/u/1519376?v=4)](https://github.com/serter "serter (6 commits)")[![POJanne](https://avatars.githubusercontent.com/u/49387932?v=4)](https://github.com/POJanne "POJanne (3 commits)")[![modex9](https://avatars.githubusercontent.com/u/20166429?v=4)](https://github.com/modex9 "modex9 (2 commits)")[![ikajaste-pgo](https://avatars.githubusercontent.com/u/91941333?v=4)](https://github.com/ikajaste-pgo "ikajaste-pgo (2 commits)")

---

Tags

ecommercefi-pluginpakettikauppashippingwoocommercewordpresswordpresswpseravowoocommercePakettikauppamatkahuoltopostiprinettischenker

### Embed Badge

![Health badge](/badges/seravo-woo-pakettikauppa/health.svg)

```
[![Health](https://phpackages.com/badges/seravo-woo-pakettikauppa/health.svg)](https://phpackages.com/packages/seravo-woo-pakettikauppa)
```

###  Alternatives

[justcoded/wordpress-theme-boilerplate

WordPress theme boilerplate with better code structure and OOP support.

563.9k1](/packages/justcoded-wordpress-theme-boilerplate)[balbuf/composer-wp

Manage WordPress core, plugins, and themes with composer.

173.6k](/packages/balbuf-composer-wp)[typisttech/wp-admin-notices

A simplified OOP implementation of the WordPress admin notices

141.2k](/packages/typisttech-wp-admin-notices)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
