Semakin
Customer

SemaShipping PPL

SemaShipping PPL for VirtueMart Joomla 4 / 5

Joomla 4 / 5 Version 1.1.0 VirtueMart
SemaShipping PPL for VirtueMart

Coming soon

We are still finishing this extension — it is not on sale yet. The planned price is €45 per year. The description below covers the upcoming version 1.0.0.

PPL in VirtueMart

Pickup points, ParcelBoxes and home delivery — right in the cart

One plugin. Map in the cart, shipment export, label and cancellation from the admin panel.

PPL is one of the largest carriers in the Czech Republic — thousands of pickup points, ParcelBoxes and home delivery. SemaShipping PPL brings the whole carrier straight into VirtueMart: from picking a point on the map in the cart to exporting the shipment, printing the label and cancelling it again when needed. No extra component, no template changes.

How it works

Why You Need It

Shipping is the last step where an order can still be lost. If the customer cannot pick a specific pickup point, they leave — and if shipments are then retyped by hand into the carrier portal, you pay for it in time and mistakes.

What customers expect in the cart

  • Picking a specific pickup point on a map, not just a carrier name
  • ParcelBoxes alongside regular pickup points
  • The option to have the parcel delivered straight to their address
  • Cash on delivery when they do not want to pay upfront
  • A chosen point that does not disappear when the payment changes

What manual handling costs

  • Retyping addresses from orders into the carrier portal
  • Typos in the data that only surface at the driver
  • Watching cash-on-delivery amounts and variable symbols by hand
  • Labels printed from a different system than the shop
  • Shipments that never ship and stay open at PPL

What SemaShipping PPL Solves

You install one ZIP, fill in the Client ID and Client Secret for the CPL API and create a shipping method in VirtueMart. Done. No extra component, no programming, no monthly fees.

Pickup points and delivery

  • PPL map widget 2.0 — an interactive map for picking a pickup point right in the cart
  • Pickup points and ParcelBoxes — the widget can show both, or just one of them
  • Home delivery — a separate shipping method without the map, address taken from the order
  • COD-capable points only — for cash-on-delivery orders you can offer only points that accept it
  • The selection survives the cart — the chosen point is kept across payment changes and cart recalculations

Order fulfilment

  • Shipment export — create the shipment at PPL with one click from the order detail
  • Bulk export — tick the orders in the list and send them as a single batch
  • Label printing — PDF, ZPL, PNG, JPEG and SVG; merged A4 sheet with four label positions
  • Automatic cash on delivery — the plugin switches the product code to its COD variant and fills in the amount, currency and variable symbol
  • Shipment cancellation — one by one or in bulk; PPL requires cancelling shipments that are never handed over
  • Order number on the label — sent as an external number, printed by PPL and passed on to invoicing

Setup and operation

  • Sender from VirtueMart — the address comes from the vendor and can be overridden in the configuration
  • Shipping cost — base cost, package fee, tax rate, free shipping above a threshold
  • Method limits — countries, blocked countries, minimum and maximum weight
  • Multiple shipping methods — one plugin serves pickup points and home delivery side by side
  • API call log — audit trail of requests and responses with credentials masked
  • Multilingual — Czech, Slovak and English included
  • Automatic updates — via SemaHub, straight from the Joomla admin

How It Works

For the customer

1

Chooses PPL

In the cart they pick PPL among the shipping methods — either to a pickup point or straight to their address.

2

Picks a pickup point

The PPL widget 2.0 map opens. The customer finds a pickup point or a ParcelBox, confirms it — and sees it right next to the shipping method.

3

Completes the order

The chosen point is stored with the order and survives a payment change or a cart update. There is nothing to pick twice.

For the shop operator

  • One setup — the Client ID and Client Secret for the CPL API are entered once in the plugin configuration, together with the map key.
  • Export with one click — create the shipment at PPL from the order detail, or in bulk from the order list.
  • Label ready to print — PDF on an A4 sheet or one per page, ZPL for thermal printers — without logging into the PPL portal.
  • Clean-up after cancelled orders — a shipment that will not ship is cancelled with one click, any time before you hand the parcel over.
  • Audit trail — every API call is logged together with the response, credentials masked.

Configuration

ParameterDescription
API environmentProduction or test CPL API
Client ID and Client SecretCPL API credentials (OAuth2), kept on the server
Map API keyWidget 2.0 key, bound to the shop domain
Sender addressFrom the VirtueMart vendor, overridable field by field
COD payment IDsPayment method IDs that are cash on delivery
Delivery typePickup point (with map) or home delivery
PPL product codeThe code from your contract, separately for normal and COD shipments
Point types on the mapAll / pickup points only / ParcelBoxes only, optionally COD-capable points only
Label formatPDF, ZPL, PNG, JPEG, SVG; A4 sheet or a single label, position 1–4
Shipping costBase cost + package fee, free shipping above a threshold
Method limitsCountries, blocked countries, minimum and maximum weight
Status for bulk exportWhich order status fills the export queue

Technical Specifications

PropertyValue
Extension typeVirtueMart shipment plugin
Elementsemappl
Joomla4.x, 5.x
VirtueMart4.x
PHP8.0+
PPL APICPL API (myAPI2), REST JSON, OAuth2
WidgetPPL map widget 2.0
LanguagesCzech, Slovak, English
LicenseGPL v2+
Automatic updatesYes (via SemaHub)

Frequently Asked Questions

Do I need a contract with PPL?

Yes. The plugin connects to the CPL API under your customer number — you need the Client ID and Client Secret issued by PPL.

Is the map key the same as the Client ID?

No. The map widget has its own key from the PPL client section and it is bound to your shop domain. The CPL API has no API key at all, it authenticates via OAuth2.

How does the plugin detect cash on delivery?

You list the COD payment method IDs in the configuration. The plugin then switches the product code to its COD variant (for example SMAR to SMAD) and fills in the amount, currency and variable symbol.

Can I offer pickup points and home delivery at the same time?

Yes. Create two shipping methods — one of the “pickup point” type with the map, another of the “home delivery” type with the matching product code.

Why is the shipment number missing right after the export?

The CPL API processes shipments in asynchronous batches. The plugin waits for the result itself; when PPL needs more time, the order stays in the “processing” state and the Refresh status button fills the number in.

What if PPL rejects the shipment?

The API error is shown directly in the admin. A rejected shipment never exists at PPL, the order returns to the not-exported queue and you can export it again after fixing the data. In a bulk batch the plugin drops the faulty shipments and sends the rest.

Do I have to cancel a shipment that will not ship?

Yes, PPL requires it — otherwise the shipment stays on their books as waiting to be handed over. Cancel it with one click from the order or in bulk, any time before you physically hand the parcel to the driver.

Is the order number printed on the label?

Yes. It is sent as an external number with the CUST code; PPL prints it on the label and passes it on to invoicing.

Can I print to a thermal printer?

Yes. Besides PDF the plugin produces ZPL, PNG, JPEG and SVG. For PDF you choose between an A4 sheet with four labels and a single label per page.

Can the plugin handle many orders at once?

Yes. In the order list you tick what should go to PPL and the plugin sends it as one batch — including bulk label download and bulk cancellation.

Are export records deleted on uninstall?

No. The #__sema_ppl_log table is kept with its data — it is the audit trail of what was sent to PPL.

Do SemaShipping PPL and SemaShipping Packeta clash on one site?

No. Both extensions run side by side, keep their admin controls separate and are operated the same way.

PPL® is a registered trademark of PPL CZ s.r.o., a DHL Group company. This product is an independent extension and is not affiliated with, or endorsed by, PPL CZ s.r.o. or DHL Group.

Powered by SemaHub

Interested in working together?

Get in touch and let's discuss your project. We'll be happy to help you choose the right solution.