Merge pull request #5306 from AmooAti/shipping-method-validation

Shipping method validation
This commit is contained in:
Devansh 2021-11-09 12:17:43 +05:30 committed by GitHub
commit e7da9ed9f6
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
5 changed files with 55 additions and 14 deletions

View File

@ -446,6 +446,10 @@ class Cart
return false; return false;
} }
if (! array_key_exists($shippingMethodCode, Shipping::getShippingMethods())) {
return false;
}
$cart->shipping_method = $shippingMethodCode; $cart->shipping_method = $shippingMethodCode;
$cart->save(); $cart->save();

View File

@ -4,10 +4,24 @@ namespace Webkul\Shipping\Carriers;
abstract class AbstractShipping abstract class AbstractShipping
{ {
/**
* Shipping method carrier code
*
* @var string
*/
protected $code;
/**
* Shipping method code
*
* @var string
*/
protected $method;
abstract public function calculate(); abstract public function calculate();
/** /**
* Checks if payment method is available * Checks if shipping method is available
* *
* @return array * @return array
*/ */
@ -17,7 +31,7 @@ abstract class AbstractShipping
} }
/** /**
* Returns payment method code * Returns shipping method code
* *
* @return array * @return array
*/ */
@ -30,8 +44,17 @@ abstract class AbstractShipping
return $this->code; return $this->code;
} }
public function getMethod()
{
if (empty($this->method)) {
// throw exception
}
return $this->method;
}
/** /**
* Returns payment method title * Returns shipping method title
* *
* @return array * @return array
*/ */
@ -41,7 +64,7 @@ abstract class AbstractShipping
} }
/** /**
* Returns payment method decription * Returns shipping method description
* *
* @return array * @return array
*/ */
@ -51,10 +74,9 @@ abstract class AbstractShipping
} }
/** /**
* Retrieve information from payment configuration * Retrieve information from shipping configuration
* *
* @param string $field * @param string $field
* @param int|string|null $channelId
* @return mixed * @return mixed
*/ */
public function getConfigData($field) public function getConfigData($field)

View File

@ -14,11 +14,18 @@ use Webkul\Checkout\Facades\Cart;
class FlatRate extends AbstractShipping class FlatRate extends AbstractShipping
{ {
/** /**
* Payment method code * Shipping method carrier code
* *
* @var string * @var string
*/ */
protected $code = 'flatrate'; protected $code = 'flatrate';
/**
* Shipping method code
*
* @var string
*/
protected $method = 'flatrate_flatrate';
/** /**
* Returns rate for flatrate * Returns rate for flatrate
@ -37,7 +44,7 @@ class FlatRate extends AbstractShipping
$object->carrier = 'flatrate'; $object->carrier = 'flatrate';
$object->carrier_title = $this->getConfigData('title'); $object->carrier_title = $this->getConfigData('title');
$object->method = 'flatrate_flatrate'; $object->method = $this->method;
$object->method_title = $this->getConfigData('title'); $object->method_title = $this->getConfigData('title');
$object->method_description = $this->getConfigData('description'); $object->method_description = $this->getConfigData('description');
$object->is_calculate_tax = $this->getConfigData('is_calculate_tax'); $object->is_calculate_tax = $this->getConfigData('is_calculate_tax');

View File

@ -13,11 +13,18 @@ use Webkul\Shipping\Facades\Shipping;
class Free extends AbstractShipping class Free extends AbstractShipping
{ {
/** /**
* Payment method code * Shipping method carrier code
* *
* @var string * @var string
*/ */
protected $code = 'free'; protected $code = 'free';
/**
* Shipping method code
*
* @var string
*/
protected $method = 'free_free';
/** /**
* Returns rate for flatrate * Returns rate for flatrate

View File

@ -130,8 +130,9 @@ class Shipping
continue; continue;
} }
$methods[] = [ $methods[$object->getMethod()] = [
'method' => $object->getCode(), 'code' => $object->getCode(),
'method' => $object->getMethod(),
'method_title' => $object->getTitle(), 'method_title' => $object->getTitle(),
'description' => $object->getDescription() 'description' => $object->getDescription()
]; ];