Feat: Hiding unused shipping types and removing unused fulfillment types
This commit is contained in:
@@ -3,18 +3,14 @@
|
||||
namespace Modules\Core\Shipping\Contracts;
|
||||
|
||||
/**
|
||||
* Optional contract a shipping rate driver implements to declare whether
|
||||
* it fulfils via carrier delivery or in-store pickup — e.g.
|
||||
* Every shipping rate driver this module registers implements this to
|
||||
* declare whether it fulfils via carrier delivery or in-store pickup —
|
||||
* Modules\Core\Shipping\Carriers\Acs\AcsRateDriver and BoxNowRateDriver
|
||||
* are unambiguously carrier-only, so this is a hardcoded fact about the
|
||||
* driver, not something a merchant should have to configure per row.
|
||||
*
|
||||
* table-rate-shipping's own generic drivers (flat-rate, ship-by,
|
||||
* free-shipping) don't implement this — they're genuinely ambiguous (a
|
||||
* merchant could configure one for either carrier delivery or store
|
||||
* pickup), so Modules\Core\Shipping\Support\FulfillmentType::resolve()
|
||||
* falls back to ShippingMethod.data['fulfillment_type'] (still merchant-
|
||||
* overridable) only for drivers that don't implement this contract.
|
||||
* are unambiguously carrier-only, Modules\Core\Shipping\Carriers\
|
||||
* StorePickup\StorePickupRateDriver unambiguously store-pickup, so this
|
||||
* is a hardcoded fact about each driver, never something a merchant
|
||||
* configures per row. See Modules\Core\Shipping\Support\FulfillmentType::
|
||||
* resolve(), the single source of truth this feeds.
|
||||
*/
|
||||
interface DeclaresFulfillmentType
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user