Description
SoftSquare Shipping Gateway for WooCommerce is a TCS Pakistan shipping plugin that connects your WooCommerce store to TCS for shipment booking, shipment tracking, shipping label generation, COD delivery, and day-to-day shipment management, without anyone retyping an address into a courier portal.
This is an independent third-party integration developed and maintained by SoftSquare. It is not affiliated with, endorsed by, sponsored by, or officially supported by TCS. TCS is a trademark of its respective owner and is used here only to describe the courier this plugin connects WooCommerce to.
This plugin does not talk to TCS directly; it works through the SoftSquare service, which is required for booking, printing or tracking. See External Services below for exactly what is sent and when.
Features
Everything listed here is implemented in the plugin. Nothing is planned or partial.
- Book a TCS shipment directly from a WooCommerce order, or automatically when an order reaches a status you choose
- Cancel a TCS booking, re-book it with corrected details, or book a TCS reverse pickup
- TCS COD (cash-on-delivery) support, with the amount to collect taken from the order total or set per order
- Generate and print a TCS shipping label (consignment note) as a PDF, stored locally so reprints are instant
- Bulk-book TCS shipments and bulk-print TCS shipping labels from the orders list
- Track a TCS consignment from the WooCommerce order screen, and from a public TCS tracking page via the
[tcs_tracking]shortcode - Hourly TCS shipment status refresh, plus a signed webhook the service can call the moment a status changes
- Move the WooCommerce order status automatically when TCS delivers or returns a parcel
- Email the customer, the store, or both when a TCS shipment’s status changes, optionally through your own SMTP server
- A searchable list of TCS Pakistan destinations at checkout, bundled with the plugin, so every order carries a station code TCS recognises
- Enter and test your TCS account credentials from the WooCommerce settings screen
- An activity log of every call the site makes to the SoftSquare/TCS gateway, with credentials redacted
Configuration
All settings for connecting WooCommerce to TCS Pakistan live under SoftSquare Shipping Settings in the WordPress admin.
- TCS account — your API username, password and bearer token, your TCS account number and cost centre. These are issued by TCS, not by SoftSquare or by this plugin.
- Collection address — where parcels are picked up from. A booking is refused without it.
- Booking defaults — service code, currency, default weight, what goes in the content description.
- Store behaviour — which payment methods count as COD, which order statuses trigger an automatic booking, whether to show the TCS city field at checkout.
- Status emails and Sending mail (SMTP) — who is told when a parcel moves, and which mail server sends it.
Press Test connection after saving. It asks the service to authenticate against TCS there and then, and reports what TCS said.
Usage
Open any WooCommerce order. The TCS shipment panel on the right will book the parcel, and from then on shows the consignment number, the current status and a button to print the consignment note.
To book several at once, tick them in the orders list and choose Book with TCS from the bulk actions menu.
For customers, put the [tcs_tracking] shortcode on a page. Activating the plugin creates a draft page called Track your order containing it; publish that page to turn it on. The shortcode accepts [tcs_tracking accent="#7b2d52" width="900px"] if you want it to match your theme more closely than it manages on its own.
External Services
This plugin relies on one external service and cannot work without it.
Service: SoftSquare Shipping Gateway
Operated by: SoftSquare
Endpoint: https://app.softsquare.io
Why it is used. The service holds your TCS credentials and performs the courier API calls. Your WordPress site never contacts TCS directly. This exists so that one set of courier credentials can serve a store without those credentials being used from the store’s own server.
What is sent, and when.
When you press “Connect this site” under SoftSquare Shipping Settings: the site URL and its domain, so the service can register the site and issue a signing secret. The service then fetches a one-time random token back from this site to prove the domain is yours. Nothing is sent to SoftSquare before you press this button.
When you save the settings screen: the TCS credentials you entered (API username, password, bearer token), your TCS account number, customer number and cost centre code, your collection address (name, street address, postcode, city, country, mobile number), and your booking defaults. This is the only time credentials are transmitted, and only because you pressed Save.
When an order is booked — either by pressing Book, by a bulk action, or automatically when an order reaches a status you configured: the order number and reference, and for the recipient: first and last name, full shipping address including city, postcode and country, phone number, and email address. Also the COD amount, order total, currency, parcel weight and piece count, service code, cost centre, and a description of the contents. If “Include SKUs” is on, each line item’s description, quantity, unit price and SKU are included.
When you print a label: the consignment number.
When you track a parcel, and hourly for parcels still in transit: the consignment number.
When a visitor uses the tracking shortcode: only the consignment number they typed. No customer or order data is sent for a public tracking lookup.
When you cancel, re-book or book a reverse pickup: the consignment number, and for a re-booking the same order data as the original booking.
No analytics, usage statistics or telemetry are sent. No data is sent on a schedule except the hourly status check described above, which carries consignment numbers only.
Terms of service: https://softsquare.io/wp-term
Privacy policy: https://softsquare.io/wp-privacy
Privacy
The customer data this sends, and when, is listed in full under External Services above; this section covers what that means for your own privacy obligations.
Data is only ever sent as a result of an action you or your configuration initiated: pressing Book, running a bulk action, saving settings, or an order reaching a status you chose to auto-book on. Nothing is sent when a customer simply places an order unless you turned automatic booking on.
If you are subject to GDPR or a similar regime, you should name SoftSquare as a processor in your privacy policy, alongside TCS as the carrier.
Stored on your own site: an activity log of every call made to the service, with credentials redacted but the rest of the request and response kept as sent — so a booking call’s log entry includes the same recipient name, address, phone number and order details that went to the gateway. This log is only visible to users who can manage WooCommerce, is kept for 30 days by default (configurable), and can be cleared at any time from SoftSquare Shipping Activity log. Also stored: consignment numbers and courier status against each order; and label PDFs in wp-content/uploads/ssg-labels/, protected by a random filename and served only to users who can already view the order. Uninstalling deletes the settings, the activity log and the stored labels. Consignment numbers on orders are kept, because they are the record of a real shipment.
Security
TCS credentials are entered by the merchant and stored in the WordPress options table with the plugin’s other settings. They are sent to the SoftSquare service over HTTPS when you save the settings screen, and are held there — the plugin does not need them again to book a parcel.
Credentials are never printed in full in the admin. A saved value shows only its length, and for the bearer token the first and last few characters, which is enough to tell a wrong credential from one that was truncated on the way in. Credentials are stripped from the activity log before it is written, and never appear in an error message shown to a customer.
Requests from this site to the service are signed with HMAC-SHA256. The webhook the service calls back on is signed the same way and verified with hash_equals before anything is acted on.
No credentials are hard-coded anywhere in this plugin.
Credits
Developed and maintained by SoftSquare — https://softsquare.io/
TCS is a trademark of its respective owner. SoftSquare Shipping Gateway for WooCommerce is an independent third-party integration and is not affiliated with, endorsed by, sponsored by, or officially supported by TCS.
Screenshots







Installation
- Install and activate WooCommerce. This plugin does nothing without it.
- Upload the plugin through Plugins Add New Upload Plugin, or install SoftSquare Shipping Gateway for WooCommerce directly from the WordPress plugin directory.
- Activate it, then go to SoftSquare Shipping Settings and press Connect this site. The site registers itself with the SoftSquare service and proves it owns the domain. No key to paste.
- Go to SoftSquare Shipping Settings and enter your TCS API credentials and collection address to start booking TCS shipments.
FAQ
-
Is this an official TCS plugin?
-
No. SoftSquare Shipping Gateway for WooCommerce is an independent third-party integration developed and maintained by SoftSquare. TCS is a trademark of its respective owner, and this plugin is not affiliated with, endorsed by, sponsored by, or officially supported by TCS.
-
Does this plugin integrate WooCommerce with TCS Pakistan?
-
Yes. It connects your WooCommerce store to TCS Pakistan through the SoftSquare service, so orders can be booked, tracked and managed as TCS shipments without leaving WordPress.
-
Can I book TCS shipments from WooCommerce?
-
Yes. Book a TCS shipment from the order screen, in bulk from the orders list, or automatically when an order reaches a status you choose.
-
Can I track TCS shipments?
-
Yes. Track a TCS consignment from the WooCommerce order screen, from a public tracking page via the
[tcs_tracking]shortcode, or let the plugin check hourly on its own for shipments still in transit. -
Does it support TCS COD shipments?
-
Yes. Cash-on-delivery orders are booked with the amount to collect taken from the order total, or you can set a different amount per order.
-
Can I generate TCS shipping labels?
-
Yes. A TCS shipping label (consignment note) can be printed as a PDF as soon as a shipment is booked, individually or in bulk, and is stored locally so reprints are instant.
-
Can TCS shipment booking be automated?
-
Yes. Choose the WooCommerce order statuses that should trigger a TCS booking automatically — for example, as soon as an order becomes Processing — and the plugin books it without anyone opening the order.
-
Do I need a TCS account?
-
Yes. You need your own TCS COD API credentials — an API username, password and bearer token, plus an account number and cost centre. TCS issues these. Neither this plugin nor SoftSquare can create them for you.
-
Do I need a SoftSquare account?
-
You do not create one by hand. Press “Connect this site” under SoftSquare Shipping Settings and the plugin registers your site with the SoftSquare service and proves it owns the domain. There is no sign-up form, no key to paste, and no account to pay for before the plugin will work — and nothing is sent to SoftSquare until you press that button.
-
Does the plugin send customer information to an external service?
-
Yes. Booking a parcel sends the recipient’s name, address, phone number and email to the SoftSquare service, which passes what TCS needs to TCS. This is what makes a delivery possible. The External Services section above lists everything that is sent and when.
-
Can I use it without the SoftSquare service?
-
No. The service is what talks to TCS. Without it the plugin can store settings but cannot book, print or track. If you run your own copy of the service, point the plugin at it with the
SSGW_SERVICE_URLconstant inwp-config.php. -
Does it work with High-Performance Order Storage?
-
Yes. The plugin reads and writes order data through the WooCommerce CRUD API and declares compatibility with both HPOS and the block-based cart and checkout.
-
What happens to my data if I uninstall?
-
Settings, the activity log and stored label PDFs are deleted. Consignment numbers and courier statuses on your orders are kept, so you can still answer a customer asking where their parcel went. Nothing is deleted from the SoftSquare service.
Reviews
There are no reviews for this plugin.
Contributors & Developers
“SoftSquare Shipping Gateway for WooCommerce” is open source software. The following people have contributed to this plugin.
ContributorsTranslate “SoftSquare Shipping Gateway for WooCommerce” into your language.
Interested in development?
Browse the code, check out the SVN repository, or subscribe to the development log by RSS.
Changelog
1.2.4
- Connecting to the SoftSquare service is now a deliberate action: press “Connect this site” under SoftSquare Shipping Settings. Nothing is sent to SoftSquare automatically on activation or on an admin page load anymore.
- The plugin’s text domain now matches the plugin slug (
softsquare-shipping-gateway-for-woocommerce), as WordPress.org requires. - Removed the duplicate “Tested up to” declaration from the plugin header — it is now declared in this readme only.
- Fixed the Settings link on the Plugins screen, which pointed at the wrong page slug.
- No functional changes beyond how the initial connection is triggered — existing settings, bookings and consignment numbers are kept, and already-connected sites are unaffected.
1.2.3
- Corrective release for the WordPress.org review: menu-icon CSS is now added through
wp_add_inline_style()instead of an inline<style>tag, internal PHP class/function/constant names now use theSSGW_/ssgw_prefix instead of the collision-proneSSG_/ssg_, and the plugin now declares compatibility up to WordPress 7.1. No functional changes, and no stored setting, order metadata, database table, hook, AJAX action or REST route was renamed — existing installations are unaffected.
1.2.2
- Renamed to SoftSquare Shipping Gateway for WooCommerce for clarity on the WordPress.org plugin directory. No functional changes — existing settings, bookings and consignment numbers are kept.
1.2.1
- Renamed to SoftSquare Shipping Gateway and prepared for the WordPress plugin directory.
- Labels are stored locally, so reprinting one no longer needs a round trip to the service.
- A bundled, searchable list of TCS destinations at checkout, so the field cannot disappear when the network does.
- Tracking results are no longer stored by page caches.
- Saved credentials are masked more strictly in the admin.
- Removed a byte-order mark from the main plugin file.
1.0.0
- First release.