Стоимость доставки с учетом продукта
У меня есть три продукта, которые работают должным образом, однако я хотел бы добавить стоимость доставки для каждого продукта отдельно, есть ли способ отобразить стоимость доставки с использованием функций magento по умолчанию или мне нужно использовать какой-нибудь плагин (бесплатные плагины). У каждого продукта разные сборы за доставку, я провел некоторые исследования и разработки и попробовал их, используя функцию веса продукта в таблицах ставок в magento. Пока ничего не работает, пожалуйста, скажите мне, чего мне не хватает или как эта функциональность может быть достигнута. Я открыт для всех вариантов, кроме платных плагинов.
1 answers
Вы можете использовать это расширение: https://www.magentocommerce.com/magento-connect/category-and-product-shipping.html [проверено], как только вы получили ключ расширения,
В худшем случае, если вы хотите немедленного решения, в качестве альтернативы вы можете установить расширение через FTP (например, FileZilla). Вы можете вставить ключ расширения в этот неофициальный ссылка, и вы можете загрузить файлы расширений. Дайте мне знать, если вы обнаружите какие-либо проблемы в этом.
Примечание: Поскольку это неофициальный сайт третьей стороны, нет никаких гарантий безопасности. но я протестировал множество расширений, у меня не возникло никаких проблем с безопасностью....
Наряду с определением стоимости доставки для каждого продукта, это также поможет рассчитать стоимость доставки для каждой категории....
public function collectRates(Mage_Shipping_Model_Rate_Request $request)
{
$shippingCarrierTitle = $this->getConfigData('title');
if (!isset($shippingCarrierTitle) || $shippingCarrierTitle=='') {
$shippingCarrierTitle = 'My Shipping Title';
}
$methodTitle = $this->getConfigData('method_title');
if (!isset($methodTitle) || $methodTitle=='') {
$methodTitle = 'My Shipping Name';
}
$defaultShipping = $this->getConfigData('shipping_rate');
//Default Shipping Rate defined in admin setting
$shippingaction = $this->getConfigData('shipping_action');
// shipping_action Defined in setting: product shipping or category shipping
$qtyBasedShipping = $this->getConfigData('shippingaction_type');
//1=>Yes multiply with qty, 0=> not depned on qty
$finalShippingPrice = 0; //Final Shipping which implement on order
$cartProductQty = Mage::getSingleton('checkout/cart')->getItemsCount();
if ($request->getAllItems()) {
foreach ($request->getAllItems() as $item) {
$orderProductQty = $item->getQty();
if ($item->getProduct()->isVirtual() || $item->getParentItem()) {
continue;
}
if ($item->getHasChildren()) {
$productSku = $item->getProduct()->getData('sku');
} else {
$productSku = $item->getSku();
}
$finalShippingPrice = $this->calculateshipping(
$shippingaction,
$defaultShipping,
$orderProductQty,
$qtyBasedShipping,
$finalShippingPrice,
$productSku
);
}
}
if (isset($finalShippingPrice) && $finalShippingPrice == 0) {
} else if (isset($finalShippingPrice)
&& ($finalShippingPrice < 0 || $finalShippingPrice=='')
) {
if (isset($defaultShipping) && $defaultShipping != 0) {
if ($qtyBasedShipping == 1) {
//Multiply with qty of product
$finalShippingPrice += $defaultShipping * $cartProductQty;
} else {
//Not depend on qty of product
$finalShippingPrice += (float)$defaultShipping;
}
}
}
if ($request->getFreeShipping() === true) {
$finalShippingPrice = '0.00';
}
$result = Mage::getModel('shipping/rate_result');
$method = Mage::getModel('shipping/rate_result_method');
$method->setCarrier($this->_code);
$method->setCarrierTitle($shippingCarrierTitle);
$method->setMethod($this->_code);
$method->setMethodTitle($methodTitle);
$method->setPrice($finalShippingPrice);
//$method->setCost($this->getConfigData('shipping_rate'));
$result->append($method);
return $result;
}
Еще одно расширение : https://www.magentocommerce.com/magento-connect/flat-rate-shipping-per-product-6.html [не проверено]