Стоимость доставки с учетом продукта


У меня есть три продукта, которые работают должным образом, однако я хотел бы добавить стоимость доставки для каждого продукта отдельно, есть ли способ отобразить стоимость доставки с использованием функций magento по умолчанию или мне нужно использовать какой-нибудь плагин (бесплатные плагины). У каждого продукта разные сборы за доставку, я провел некоторые исследования и разработки и попробовал их, используя функцию веса продукта в таблицах ставок в magento. Пока ничего не работает, пожалуйста, скажите мне, чего мне не хватает или как эта функциональность может быть достигнута. Я открыт для всех вариантов, кроме платных плагинов.

Author: Man S., 2016-09-15

1 answers

Вы можете использовать это расширение: https://www.magentocommerce.com/magento-connect/category-and-product-shipping.html [проверено], как только вы получили ключ расширения,

Небезопасно использовать Magento connect для установки расширения, перейдите по этой ссылке для получения дополнительной информации.

В худшем случае, если вы хотите немедленного решения, в качестве альтернативы вы можете установить расширение через 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 [не проверено]

 1
Author: Baby in Magento, 2017-03-07 13:57:43