Table Rate - Item vs Destination
A quick question with regards to the csv which needs to be created for implementing these rules.
I have a basic rule where for example shipping to Belgium for one item starts at £3.00
Then for every extra item the total goes up by £1.00
So in the csv the item # of items field would be:
- Then shipping price is £3.00
- Then shipping price is £4.00
- Then shipping price is £5.00
And so fourth. However when the quantity is met in the check out (the user have item number over 3 in this example) the shipping price will stay at £5.00
What I need is this £1.00 per item rule on however many items are added to the order.
Is there any way to achieve this rather than just adding many more rows to the csv file with a high cap?
csv table-rates shipping-methods
add a comment |
A quick question with regards to the csv which needs to be created for implementing these rules.
I have a basic rule where for example shipping to Belgium for one item starts at £3.00
Then for every extra item the total goes up by £1.00
So in the csv the item # of items field would be:
- Then shipping price is £3.00
- Then shipping price is £4.00
- Then shipping price is £5.00
And so fourth. However when the quantity is met in the check out (the user have item number over 3 in this example) the shipping price will stay at £5.00
What I need is this £1.00 per item rule on however many items are added to the order.
Is there any way to achieve this rather than just adding many more rows to the csv file with a high cap?
csv table-rates shipping-methods
add a comment |
A quick question with regards to the csv which needs to be created for implementing these rules.
I have a basic rule where for example shipping to Belgium for one item starts at £3.00
Then for every extra item the total goes up by £1.00
So in the csv the item # of items field would be:
- Then shipping price is £3.00
- Then shipping price is £4.00
- Then shipping price is £5.00
And so fourth. However when the quantity is met in the check out (the user have item number over 3 in this example) the shipping price will stay at £5.00
What I need is this £1.00 per item rule on however many items are added to the order.
Is there any way to achieve this rather than just adding many more rows to the csv file with a high cap?
csv table-rates shipping-methods
A quick question with regards to the csv which needs to be created for implementing these rules.
I have a basic rule where for example shipping to Belgium for one item starts at £3.00
Then for every extra item the total goes up by £1.00
So in the csv the item # of items field would be:
- Then shipping price is £3.00
- Then shipping price is £4.00
- Then shipping price is £5.00
And so fourth. However when the quantity is met in the check out (the user have item number over 3 in this example) the shipping price will stay at £5.00
What I need is this £1.00 per item rule on however many items are added to the order.
Is there any way to achieve this rather than just adding many more rows to the csv file with a high cap?
csv table-rates shipping-methods
csv table-rates shipping-methods
edited 7 mins ago
Teja Bhagavan Kollepara
2,96341847
2,96341847
asked Jan 28 '14 at 13:42
user1669256user1669256
3242512
3242512
add a comment |
add a comment |
1 Answer
1
active
oldest
votes
You cannot do that using the table rates.
The table rates will always use the last available value if there is no record in the taabase for a specific configuration.
What you can do is to create your own shipping method. This is not that hard.
See a tutorial here on how to do it..
The only thing you need to customize is the collectRates
method in the shipping model.
Here is how it can look in your case.
public function collectRates(Mage_Shipping_Model_Rate_Request $request)
{
// skip if not enabled
if (!Mage::getStoreConfig('carriers/'.$this->_code.'/active')) {
return false;
}
// this object will be returned as result of this method
// containing all the shipping rates of this method
$result = Mage::getModel('shipping/rate_result');
$method = Mage::getModel('shipping/rate_result_method');
$method->setCarrier($this->_code);
$method->setCarrierTitle('Some title here');
$method->setMethod($this->_code);
$method->setMethodTitle($this->getConfigData('name'));
//get qty in cart
$qty = $request->getPackageQty()
//calculate the price
$price = 2 + $qty; //3 for 1 item, 4 for 2 items and so on. You can even insert here a calculation algorithm based on config values or what ever comes to mind.
$method->setPrice($price);
$result->append($method);
return $result;
}
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%2f14004%2ftable-rate-item-vs-destination%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 cannot do that using the table rates.
The table rates will always use the last available value if there is no record in the taabase for a specific configuration.
What you can do is to create your own shipping method. This is not that hard.
See a tutorial here on how to do it..
The only thing you need to customize is the collectRates
method in the shipping model.
Here is how it can look in your case.
public function collectRates(Mage_Shipping_Model_Rate_Request $request)
{
// skip if not enabled
if (!Mage::getStoreConfig('carriers/'.$this->_code.'/active')) {
return false;
}
// this object will be returned as result of this method
// containing all the shipping rates of this method
$result = Mage::getModel('shipping/rate_result');
$method = Mage::getModel('shipping/rate_result_method');
$method->setCarrier($this->_code);
$method->setCarrierTitle('Some title here');
$method->setMethod($this->_code);
$method->setMethodTitle($this->getConfigData('name'));
//get qty in cart
$qty = $request->getPackageQty()
//calculate the price
$price = 2 + $qty; //3 for 1 item, 4 for 2 items and so on. You can even insert here a calculation algorithm based on config values or what ever comes to mind.
$method->setPrice($price);
$result->append($method);
return $result;
}
add a comment |
You cannot do that using the table rates.
The table rates will always use the last available value if there is no record in the taabase for a specific configuration.
What you can do is to create your own shipping method. This is not that hard.
See a tutorial here on how to do it..
The only thing you need to customize is the collectRates
method in the shipping model.
Here is how it can look in your case.
public function collectRates(Mage_Shipping_Model_Rate_Request $request)
{
// skip if not enabled
if (!Mage::getStoreConfig('carriers/'.$this->_code.'/active')) {
return false;
}
// this object will be returned as result of this method
// containing all the shipping rates of this method
$result = Mage::getModel('shipping/rate_result');
$method = Mage::getModel('shipping/rate_result_method');
$method->setCarrier($this->_code);
$method->setCarrierTitle('Some title here');
$method->setMethod($this->_code);
$method->setMethodTitle($this->getConfigData('name'));
//get qty in cart
$qty = $request->getPackageQty()
//calculate the price
$price = 2 + $qty; //3 for 1 item, 4 for 2 items and so on. You can even insert here a calculation algorithm based on config values or what ever comes to mind.
$method->setPrice($price);
$result->append($method);
return $result;
}
add a comment |
You cannot do that using the table rates.
The table rates will always use the last available value if there is no record in the taabase for a specific configuration.
What you can do is to create your own shipping method. This is not that hard.
See a tutorial here on how to do it..
The only thing you need to customize is the collectRates
method in the shipping model.
Here is how it can look in your case.
public function collectRates(Mage_Shipping_Model_Rate_Request $request)
{
// skip if not enabled
if (!Mage::getStoreConfig('carriers/'.$this->_code.'/active')) {
return false;
}
// this object will be returned as result of this method
// containing all the shipping rates of this method
$result = Mage::getModel('shipping/rate_result');
$method = Mage::getModel('shipping/rate_result_method');
$method->setCarrier($this->_code);
$method->setCarrierTitle('Some title here');
$method->setMethod($this->_code);
$method->setMethodTitle($this->getConfigData('name'));
//get qty in cart
$qty = $request->getPackageQty()
//calculate the price
$price = 2 + $qty; //3 for 1 item, 4 for 2 items and so on. You can even insert here a calculation algorithm based on config values or what ever comes to mind.
$method->setPrice($price);
$result->append($method);
return $result;
}
You cannot do that using the table rates.
The table rates will always use the last available value if there is no record in the taabase for a specific configuration.
What you can do is to create your own shipping method. This is not that hard.
See a tutorial here on how to do it..
The only thing you need to customize is the collectRates
method in the shipping model.
Here is how it can look in your case.
public function collectRates(Mage_Shipping_Model_Rate_Request $request)
{
// skip if not enabled
if (!Mage::getStoreConfig('carriers/'.$this->_code.'/active')) {
return false;
}
// this object will be returned as result of this method
// containing all the shipping rates of this method
$result = Mage::getModel('shipping/rate_result');
$method = Mage::getModel('shipping/rate_result_method');
$method->setCarrier($this->_code);
$method->setCarrierTitle('Some title here');
$method->setMethod($this->_code);
$method->setMethodTitle($this->getConfigData('name'));
//get qty in cart
$qty = $request->getPackageQty()
//calculate the price
$price = 2 + $qty; //3 for 1 item, 4 for 2 items and so on. You can even insert here a calculation algorithm based on config values or what ever comes to mind.
$method->setPrice($price);
$result->append($method);
return $result;
}
answered Jan 28 '14 at 14:18
Marius♦Marius
166k28317677
166k28317677
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%2f14004%2ftable-rate-item-vs-destination%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