Skip to content

A module to add new pick up shipping methods for OpenMage.

License

Notifications You must be signed in to change notification settings

kyrena/openmage-shippingmax

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

15 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Stop russian war. 🇺🇦 Free Ukraine!

shippingmax

A module to add new pick up shipping methods for OpenMage.

Composer dependencies:

Included dependencies:

External services:

  • Nominatim: addresses geocoding (results are stored in database)
  • DaData: addresses geocoding (results are stored in database, only for RU and KZ), account required

New configuration options

In System / Configuration / Delivery times, you can configure delivery times by country of delivery. You are seeing a * in section head? This is because all times are not yet configured.

In System / Configuration / Shipping Methods / General, you can hide and clear configuration for a custom selection of unused shipping methods. You are seeing a * in section head? This is a mark to inform you that the shipping method is available for the default country of the current store view.

In System / Configuration / Customer / Address Templates, templates are managed everywhere automatically with adamlc/address-format, phone numbers are formatted with giggsey/libphonenumber-for-php.

New shipping methods (pick up)

Shipping methods are available for a selection of countries, depending on order weight and amount. All details are displayed in shipping methods configuration (you can also read content of <default> tag in config.xml).

Screenshot

You will love debugging URLs for pick up shipping methods. You opened a link and you see the map while the shipping method is disabled but have a title? It's not a bug, it's a feature.

The lists of pick up points are retrieved regularly from internet (via a cron job) and saved in var/shippingmax/*.dat. When cron jobs are disabled, lists are retrieved on demand (when a customer open the map, if the cache file doesn't exist or if the cache file has expired).

The country of the customer shipping address is used on the map, and can't be changed on the map.

This module doesn't generate any labels.

Demo links may not work, don't panic, it's not a bug.

Name Logo/Link Info
Chrono Relais online demo: 42100, Saint-Étienne, FR
api: account required
Colis Privé online demo: 42100, Saint-Étienne, FR
api: account required
Mondial Relay online demo: 42100, Saint-Étienne, FR
api: account required
DPD FR Relais online demo: 38500, Voiron, FR
api: free
InPost IT online demo: 00121, Roma, IT
api: free
InPost GB online demo: KA1 2QA, Kilmarnock, GB
api: free
InPost PL online demo: 22-100, Chełm, PL
api: free
Pocztex online demo: 50-307, Wrocław, PL
api: free
Packeta/Zásilkovna online demo: 547 01, Náchod, CZ
api: account required
Boxberry don't work with this country, it's an enemy of your freedom
online demo: 664003, Иркутск, RU
api: free (demo token included with default configuration)
5post don't work with this country, it's an enemy of your freedom
online demo: 127299, Москва, RU
api: account required
PickPoint don't work with this country, it's an enemy of your freedom
online demo: 140000, Люберцы, RU
api: account required
Shiptor don't work with this country, it's an enemy of your freedom
online demo: 454000, Челябинск, RU
api: free
Store delivery online demo: 07200, Aubenas, FR
source of data: a TSV file
Store locator online demo
source of data: a TSV file

Do you want more? Contact us, perhaps we can work together to add new methods! For example: Colissimo, Relais Colis, Swiss Post, GLS, UPS...

Customization

For one step checkout modules, you must edit your shipping methods template, for example with:

<?php foreach ($shippingRateGroups as $code => $rates): ?>
	[...]
	<?php foreach ($rates as $rate): ?>
		[...]
		<?php if ($this->helper('shippingmax')->isSpecial($code)): ?>
			<?php echo Mage::getBlockSingleton('shippingmax/selected')
				->setTemplate('kyrena/shippingmax/selected.phtml')
				->setData('code', $code)
				->toHtml() ?>
		<?php else: ?>
			[...]
			<input type="radio" name="shipping_method"
				value="<?php echo $rate->getCode() ?>" ...
			[...]
		<?php endif ?>
		[...]
	<?php endforeach ?>
<?php endforeach ?>

To display delivery times, you must edit your template with:

<?php $shippingDate = $this->helper('shippingmax')->getShippingDate($rate->getCode()) ?>
<?php if (!empty($shippingDate)): ?>
	<?php echo $shippingDate ?>
<?php endif ?>

Copyright and Credits

  • Current version: 3.3.1 (16/06/2023)
  • Compatibility: OpenMage 19.x / 20.x / 21.x, PHP 7.2 / 7.3 / 7.4 / 8.0 / 8.1 / 8.2
  • Client compatibility: Firefox 36+, Chrome 32+, Opera 19+, Edge 16+, Safari 9+
  • Translations: English (en), French (fr-FR/fr-CA), German (de), Italian (it), Portuguese (pt-PT/pt-BR), Spanish (es) / Chinese (zh), Czech (cs), Dutch (nl), Greek (el), Hungarian (hu), Japanese (ja), Polish (pl), Romanian (ro), Russian (ru), Slovak (sk), Turkish (tr), Ukrainian (uk)
  • License: GNU GPL 2+

If you like, take some of your time to improve the translations, go to https://bit.ly/2HyCCEc.

Installation

With composer:

  • composer remove owebia/magento1-module-advanced-shipping
  • search and remove all owebia/shipping files and directories
  • composer require kyrena/openmage-shippingmax
  • clear cache

Without composer:

  • search and remove all owebia/shipping files and directories
  • download latest release and extract src/* directories
  • here adamlc/address-format, giggsey/libphonenumber-for-php and azuyalabs/yasumi are not required and not used, so I suggest you remove <customer>...</customer> block in our system.xml
  • clear cache