sarga/packages/Webkul/Shipping/src/Carriers/FlatRate.php

68 lines
1.8 KiB
PHP
Executable File

<?php
namespace Webkul\Shipping\Carriers;
use Config;
use Webkul\Checkout\Models\CartShippingRate;
use Webkul\Shipping\Facades\Shipping;
use Webkul\Checkout\Facades\Cart;
/**
* Class Rate.
*
*/
class FlatRate extends AbstractShipping
{
/**
* Shipping method carrier code
*
* @var string
*/
protected $code = 'flatrate';
/**
* Shipping method code
*
* @var string
*/
protected $method = 'flatrate_flatrate';
/**
* Returns rate for flatrate
*
* @return CartShippingRate|false
*/
public function calculate()
{
if (! $this->isAvailable()) {
return false;
}
$cart = Cart::getCart();
$object = new CartShippingRate;
$object->carrier = 'flatrate';
$object->carrier_title = $this->getConfigData('title');
$object->method = $this->method;
$object->method_title = $this->getConfigData('title');
$object->method_description = $this->getConfigData('description');
$object->is_calculate_tax = $this->getConfigData('is_calculate_tax');
$object->price = 0;
$object->base_price = 0;
if ($this->getConfigData('type') == 'per_unit') {
foreach ($cart->items as $item) {
if ($item->product->getTypeInstance()->isStockable()) {
$object->price += core()->convertPrice($this->getConfigData('default_rate')) * $item->quantity;
$object->base_price += $this->getConfigData('default_rate') * $item->quantity;
}
}
} else {
$object->price = core()->convertPrice($this->getConfigData('default_rate'));
$object->base_price = $this->getConfigData('default_rate');
}
return $object;
}
}