Check if free shipping method is active programmatically in Magento 2
In my custom module I've created model/carrier.php
to add custom shipping method, one of my custom shipping method will show up if magento free shipping method is not active, is there a way to do this?
Model/carrier.php
public function collectRates(RateRequest $request)
{
$method = $this->_rateMethodFactory->create();
if($free_shipping_method != 'Active'){ //???
$method->setCarrier('test');
$method->setCarrierTitle('test');
/* Use method name */
$method->setMethod('test');
$method->setMethodTitle('England is My City');
$method->setCost('30');
$method->setPrice('30');
}
}
magento2 shipping-methods free-shipping
add a comment |
In my custom module I've created model/carrier.php
to add custom shipping method, one of my custom shipping method will show up if magento free shipping method is not active, is there a way to do this?
Model/carrier.php
public function collectRates(RateRequest $request)
{
$method = $this->_rateMethodFactory->create();
if($free_shipping_method != 'Active'){ //???
$method->setCarrier('test');
$method->setCarrierTitle('test');
/* Use method name */
$method->setMethod('test');
$method->setMethodTitle('England is My City');
$method->setCost('30');
$method->setPrice('30');
}
}
magento2 shipping-methods free-shipping
add a comment |
In my custom module I've created model/carrier.php
to add custom shipping method, one of my custom shipping method will show up if magento free shipping method is not active, is there a way to do this?
Model/carrier.php
public function collectRates(RateRequest $request)
{
$method = $this->_rateMethodFactory->create();
if($free_shipping_method != 'Active'){ //???
$method->setCarrier('test');
$method->setCarrierTitle('test');
/* Use method name */
$method->setMethod('test');
$method->setMethodTitle('England is My City');
$method->setCost('30');
$method->setPrice('30');
}
}
magento2 shipping-methods free-shipping
In my custom module I've created model/carrier.php
to add custom shipping method, one of my custom shipping method will show up if magento free shipping method is not active, is there a way to do this?
Model/carrier.php
public function collectRates(RateRequest $request)
{
$method = $this->_rateMethodFactory->create();
if($free_shipping_method != 'Active'){ //???
$method->setCarrier('test');
$method->setCarrierTitle('test');
/* Use method name */
$method->setMethod('test');
$method->setMethodTitle('England is My City');
$method->setCost('30');
$method->setPrice('30');
}
}
magento2 shipping-methods free-shipping
magento2 shipping-methods free-shipping
edited Aug 12 '17 at 7:00
Prince Patel
13.7k55279
13.7k55279
asked Aug 11 '17 at 9:49
Shell SuiteShell Suite
8451721
8451721
add a comment |
add a comment |
1 Answer
1
active
oldest
votes
You need to add the following code in your custom shipping module (carrier.php).
/**
* @var MagentoOfflineShippingModelCarrierFreeshipping
*/
protected $_freeshipping;
public function __construct(
MagentoOfflineShippingModelCarrierFreeshipping $freeshipping
) {
$this->_freeshipping = $freeshipping;
}
public function collectRates(RateRequest $request)
{
if (!$this->getConfigFlag('active') || $this->_freeshipping->getConfigData('active')) {
return false;
}
/** @var MagentoShippingModelRateResult $result */
$result = $this->_rateResultFactory->create();
/** @var MagentoQuoteModelQuoteAddressRateResultMethod $method */
$method = $this->_rateMethodFactory->create();
$method->setCarrier($this->_code);
$method->setCarrierTitle($this->getConfigData('title'));
$method->setMethod($this->_code);
$method->setMethodTitle($this->getConfigData('name'));
$amount = $this->getShippingPrice();
$method->setPrice($amount);
$method->setCost($amount);
$result->append($method);
return $result;
}
Hope this answer will help you. let me know you have any further issue.
Thanks
add a comment |
Your Answer
StackExchange.ready(function() {
var channelOptions = {
tags: "".split(" "),
id: "479"
};
initTagRenderer("".split(" "), "".split(" "), channelOptions);
StackExchange.using("externalEditor", function() {
// Have to fire editor after snippets, if snippets enabled
if (StackExchange.settings.snippets.snippetsEnabled) {
StackExchange.using("snippets", function() {
createEditor();
});
}
else {
createEditor();
}
});
function createEditor() {
StackExchange.prepareEditor({
heartbeatType: 'answer',
autoActivateHeartbeat: false,
convertImagesToLinks: false,
noModals: true,
showLowRepImageUploadWarning: true,
reputationToPostImages: null,
bindNavPrevention: true,
postfix: "",
imageUploader: {
brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
allowUrls: true
},
onDemand: true,
discardSelector: ".discard-answer"
,immediatelyShowMarkdownHelp:true
});
}
});
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fmagento.stackexchange.com%2fquestions%2f188793%2fcheck-if-free-shipping-method-is-active-programmatically-in-magento-2%23new-answer', 'question_page');
}
);
Post as a guest
Required, but never shown
1 Answer
1
active
oldest
votes
1 Answer
1
active
oldest
votes
active
oldest
votes
active
oldest
votes
You need to add the following code in your custom shipping module (carrier.php).
/**
* @var MagentoOfflineShippingModelCarrierFreeshipping
*/
protected $_freeshipping;
public function __construct(
MagentoOfflineShippingModelCarrierFreeshipping $freeshipping
) {
$this->_freeshipping = $freeshipping;
}
public function collectRates(RateRequest $request)
{
if (!$this->getConfigFlag('active') || $this->_freeshipping->getConfigData('active')) {
return false;
}
/** @var MagentoShippingModelRateResult $result */
$result = $this->_rateResultFactory->create();
/** @var MagentoQuoteModelQuoteAddressRateResultMethod $method */
$method = $this->_rateMethodFactory->create();
$method->setCarrier($this->_code);
$method->setCarrierTitle($this->getConfigData('title'));
$method->setMethod($this->_code);
$method->setMethodTitle($this->getConfigData('name'));
$amount = $this->getShippingPrice();
$method->setPrice($amount);
$method->setCost($amount);
$result->append($method);
return $result;
}
Hope this answer will help you. let me know you have any further issue.
Thanks
add a comment |
You need to add the following code in your custom shipping module (carrier.php).
/**
* @var MagentoOfflineShippingModelCarrierFreeshipping
*/
protected $_freeshipping;
public function __construct(
MagentoOfflineShippingModelCarrierFreeshipping $freeshipping
) {
$this->_freeshipping = $freeshipping;
}
public function collectRates(RateRequest $request)
{
if (!$this->getConfigFlag('active') || $this->_freeshipping->getConfigData('active')) {
return false;
}
/** @var MagentoShippingModelRateResult $result */
$result = $this->_rateResultFactory->create();
/** @var MagentoQuoteModelQuoteAddressRateResultMethod $method */
$method = $this->_rateMethodFactory->create();
$method->setCarrier($this->_code);
$method->setCarrierTitle($this->getConfigData('title'));
$method->setMethod($this->_code);
$method->setMethodTitle($this->getConfigData('name'));
$amount = $this->getShippingPrice();
$method->setPrice($amount);
$method->setCost($amount);
$result->append($method);
return $result;
}
Hope this answer will help you. let me know you have any further issue.
Thanks
add a comment |
You need to add the following code in your custom shipping module (carrier.php).
/**
* @var MagentoOfflineShippingModelCarrierFreeshipping
*/
protected $_freeshipping;
public function __construct(
MagentoOfflineShippingModelCarrierFreeshipping $freeshipping
) {
$this->_freeshipping = $freeshipping;
}
public function collectRates(RateRequest $request)
{
if (!$this->getConfigFlag('active') || $this->_freeshipping->getConfigData('active')) {
return false;
}
/** @var MagentoShippingModelRateResult $result */
$result = $this->_rateResultFactory->create();
/** @var MagentoQuoteModelQuoteAddressRateResultMethod $method */
$method = $this->_rateMethodFactory->create();
$method->setCarrier($this->_code);
$method->setCarrierTitle($this->getConfigData('title'));
$method->setMethod($this->_code);
$method->setMethodTitle($this->getConfigData('name'));
$amount = $this->getShippingPrice();
$method->setPrice($amount);
$method->setCost($amount);
$result->append($method);
return $result;
}
Hope this answer will help you. let me know you have any further issue.
Thanks
You need to add the following code in your custom shipping module (carrier.php).
/**
* @var MagentoOfflineShippingModelCarrierFreeshipping
*/
protected $_freeshipping;
public function __construct(
MagentoOfflineShippingModelCarrierFreeshipping $freeshipping
) {
$this->_freeshipping = $freeshipping;
}
public function collectRates(RateRequest $request)
{
if (!$this->getConfigFlag('active') || $this->_freeshipping->getConfigData('active')) {
return false;
}
/** @var MagentoShippingModelRateResult $result */
$result = $this->_rateResultFactory->create();
/** @var MagentoQuoteModelQuoteAddressRateResultMethod $method */
$method = $this->_rateMethodFactory->create();
$method->setCarrier($this->_code);
$method->setCarrierTitle($this->getConfigData('title'));
$method->setMethod($this->_code);
$method->setMethodTitle($this->getConfigData('name'));
$amount = $this->getShippingPrice();
$method->setPrice($amount);
$method->setCost($amount);
$result->append($method);
return $result;
}
Hope this answer will help you. let me know you have any further issue.
Thanks
answered 10 mins ago
ShankarShankar
7526
7526
add a comment |
add a comment |
Thanks for contributing an answer to Magento Stack Exchange!
- Please be sure to answer the question. Provide details and share your research!
But avoid …
- Asking for help, clarification, or responding to other answers.
- Making statements based on opinion; back them up with references or personal experience.
To learn more, see our tips on writing great answers.
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fmagento.stackexchange.com%2fquestions%2f188793%2fcheck-if-free-shipping-method-is-active-programmatically-in-magento-2%23new-answer', 'question_page');
}
);
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown