26 lines
1.1 KiB
PHP
26 lines
1.1 KiB
PHP
<?php
|
|
|
|
namespace Modules\Core\Shipping\Contracts;
|
|
|
|
/**
|
|
* A shipping rate driver implements this to say a person is physically
|
|
* present at handoff to collect cash — true for a courier like
|
|
* Modules\Core\Shipping\Carriers\Acs\AcsRateDriver, false for an
|
|
* unattended parcel locker network like Modules\Core\Shipping\Carriers\
|
|
* BoxNow\BoxNowRateDriver, where no one is there to take payment. Checked
|
|
* by Modules\Core\Checkout\Services\CheckoutService::getPaymentMethods()
|
|
* for cash-on-delivery specifically (Modules\Core\Payment\Drivers\
|
|
* CashOnDeliveryPaymentDriver) — separate from Modules\Core\Shipping\
|
|
* Contracts\DeclaresFulfillmentType, which only distinguishes carrier vs.
|
|
* store_pickup and can't tell ACS and Box Now apart (both 'carrier').
|
|
*
|
|
* Not implemented at all means "no" — a driver with no opinion here
|
|
* (any of table-rate-shipping's own generic drivers, if one were ever
|
|
* re-added) is treated as not supporting cash collection, the safer
|
|
* default for a driver this module knows nothing about.
|
|
*/
|
|
interface SupportsCashCollection
|
|
{
|
|
public function collectsCash(): bool;
|
|
}
|