Custom delivery provider process() not called

Help for integrating the Laravel package
Forum rules
Always add your Laravel, Aimeos and PHP version as well as your environment (Linux/Mac/Win)
Spam and unrelated posts will be removed immediately!
kdim95
Advanced
Posts: 207
Joined: 26 Aug 2022, 12:17

Custom delivery provider process() not called

Post by kdim95 » 30 Jun 2023, 14:13

Laravel framework version: 10.13.5
Aimeos Laravel version: ~2023.04
PHP Version: 8.2.7
Environment: Linux

Hello, the process() method in my custom provider is not being called.

I have this cronjob set (with my own artisan and PHP paths of course, I'm sure it's executing properly because I receive emails):
* * * * * php /path/to/artisan aimeos:jobs "order/export/csv order/email/delivery order/email/payment order/email/voucher order/service/delivery subscription/export/csv customer/email/account"

This is the cut version of my provider:

Code: Select all

<?php

namespace Aimeos\MShop\Service\Provider\Delivery;

class MyProvider
	extends \Aimeos\MShop\Service\Provider\Delivery\Base
	implements \Aimeos\MShop\Service\Provider\Delivery\Iface
{
    /**
     * Sends the order details to the ERP system for further processing.
     *
     * @param \Aimeos\MShop\Order\Item\Iface $order Order invoice object to process
     */
    public function process( \Aimeos\MShop\Order\Item\Iface $order ) : \Aimeos\MShop\Order\Item\Iface
    {
		file_put_contents( 'log.txt', print_r( $order, true ) );
        return $order;
    }
}
Currently it should create a log.txt in the /public when directory when it's called with the order object, but it's not working.

It should work when order/service/delivery is called right? I'm calling the job manually, but process() doesn't seem to get triggered.

User avatar
aimeos
Administrator
Posts: 7907
Joined: 01 Jan 1970, 00:00

Re: Custom delivery provider process() not called

Post by aimeos » 02 Jul 2023, 09:01

The method has been renamed in 2023.04 to push():
https://github.com/aimeos/aimeos-core/c ... 01b82ced85
Professional support and custom implementation are available at Aimeos.com
If you like Aimeos, Image give us a star

kdim95
Advanced
Posts: 207
Joined: 26 Aug 2022, 12:17

Re: Custom delivery provider process() not called

Post by kdim95 » 04 Jul 2023, 13:48

I still can't get it to create a log file from the push() method:

Code: Select all

namespace Aimeos\MShop\Service\Provider\Delivery;

class MyProvider
	extends \Aimeos\MShop\Service\Provider\Delivery\Base
	implements \Aimeos\MShop\Service\Provider\Delivery\Iface
{
	public function push( iterable $orders ) : \Aimeos\Map
	{
		file_put_contents( 'log-push.txt', 'test' );
		return map( $orders )->setStatusDelivery( \Aimeos\MShop\Order\Item\Base::STAT_PENDING );
	}
}

User avatar
aimeos
Administrator
Posts: 7907
Joined: 01 Jan 1970, 00:00

Re: Custom delivery provider process() not called

Post by aimeos » 06 Jul 2023, 10:47

Pre-requisites that anything is executed:
- A delivery option with your provider set up in the admin backend
- An order with that delivery option and payment status of "authorized" or "received"

See: https://github.com/aimeos/ai-controller ... #L270-L305
Professional support and custom implementation are available at Aimeos.com
If you like Aimeos, Image give us a star

Post Reply