PHP Classes

PHP Shipping Calculator: Calculate shipping fees based on the distance

Recommend this page to a friend!
  Info   View files Documentation   View files View files (6)   DownloadInstall with Composer Download .zip   Reputation   Support forum   Blog (1)    
Last Updated Ratings Unique User Downloads Download Rankings
2023-12-27 (5 months ago) RSS 2.0 feedNot enough user ratingsTotal: 68 This week: 1All time: 10,316 This week: 95Up
Version License PHP version Categories
shipping-calculator 1.2MIT/X Consortium ...7.0E-Commerce, Geography, Finances, PHP 7, B...
Description 

Authors

Ujah Chigozie
Nanoblock Technology


Contributor

This package can calculate shipping fees based on the distance.

It can take as parameters the coordinates of the business origin location and destination location of products that need to be shipped, as well as the cost per kilometer or miles.

The package calculates the distance between the two locations and multiplies the cost per kilometer to return the cost to ship a product.

It also converts calculated cost to formatted currency, converts kilometer to mile, and goes back to kilometer.

Innovation Award
PHP Programming Innovation award nominee
November 2023
Number 4
Many businesses now are selling goods via the Internet with e-commerce systems.

When the goods are physical products, one aspect of the product's cost to the customer is the shipping cost.

The calculation of the shipping costs can be complex, depending on the cost of operation of the shipping carrier company.

This package provides a simple method of calculating shipping costs in PHP code that considers the geographic coordinates of the origin and destination location of the products to be shipped and the cost to deliver the products per kilometer of distance.

Manuel Lemos
Picture of Ujah Chigozie peter
  Performance   Level  
Name: Ujah Chigozie peter <contact>
Classes: 25 packages by
Country: Nigeria Nigeria
Innovation award
Innovation award
Nominee: 11x

Documentation

Class Shipping Calculator

Determines the shipping fee based on the customer's longitude and latitude to the business location.

Functions

  • Calculates the distance between business and customer locations
  • Determines the shipping fee based on the provided charge per distance.
  • Determines the estimated traveling time based on distance and speed

Installation Guide via Composer:

composer require nanoblocktech/shipping-calculator

Usages

use Luminova\ExtraUtils\ShippingCalculator;

$calculator = new ShippingCalculator();

// Set business and customer locations

$calculator->setOrigin(6.47427, 7.56196); // Business location (Enugu Airport Nigeria)
$calculator->setDestination(6.51181, 7.35535); // Customer location (Udi Nigeria)
$calculator->setCharge(100); // Initial shipping cost per distance km, or ml

// Calculate distance and return new ShippingDistance instance class

$distance = $calculator->getDistance();

// Get the estimated time information

$time = $calculator->getTime();

// Get your calculated information

echo "Distance: $distance->toDistance() \n";
echo "Distance[km|ml]: $distance->toString() \n";
echo "Shipping Fee: $distance->getCurrency(2)\n";
echo "Shipping Fee: $distance->getCharges()\n";

Methods

ShippingCalculator

Setting up your calculations $calculator = new ShippingCalculator(ShippingCalculator::KM);

Methods And Param | Descriptions --------------------------------------------------------|----------------------------------------------------- setOrigin(float latitude, float longitude): self | Set the origin location latitude and longitude setDestination(float latitude, float longitude): self | Set the destination location latitude and longitude setCharge(float amount): self | Set initial shipping charge per calculation distance setSpeed(int speed): self | Set speed in units per hour, to calculate estimated time. getDistance(): ShippingDistance | Calculate the distance between the origin/destination and return distance instance.

ShippingDistance

The method which $distance = $calculator->getDistance(); is returned

Methods And Param | Descriptions --------------------------------------------------------|----------------------------------------------------------------------------------------- toDistance(): float | Get the calculated distance between the origin and destination latitude and longitude. toString(): string | Get the distance as a string (e.g., '10km'). toCurrency(int decimals = 2, string symbol): string | Convert the distance to currency format with optional currency symbol and decimal places. toMile(): float | Convert the distance from kilometer to miles. toKilometer(): float | Convert the distance from miles to kilometers. getCurrency(int decimal = 2): string | Get the calculated currency value based on the distance and initial amount. getCharges(): float | Get the calculated charges getTime(): ShippingTime | Get distance time instance

ShippingTime

The method which $time = $distance->getTime(); is returned

Methods And Param | Descriptions --------------------------------------------------------|----------------------------------------------------------------------------------------- toTime(): float | Get the calculated time required to cover the distance. toHours(): int | Convert the total time to hours. toSeconds(): int | Get the total time in seconds. toMinutes(): int | Convert the total time to minutes. toDays(): int | Convert the total time to days. toString(): string | Get a formatted string representation of the total time. toObject(): object | Get an object representation of the total time.


  Files folder image Files  
File Role Description
Files folder imagesrc (3 files)
Accessible without login Plain text file composer.json Data Auxiliary data
Accessible without login Plain text file LICENSE Lic. License text
Accessible without login Plain text file README.md Doc. Documentation

  Files folder image Files  /  src  
File Role Description
  Plain text file ShippingCalculator.php Class Class source
  Plain text file ShippingDistance.php Class Class source
  Plain text file ShippingTime.php Class Class source

 Version Control Unique User Downloads Download Rankings  
 100%
Total:68
This week:1
All time:10,316
This week:95Up