ОТВЕТ: Укажите сумму до "Цели" для бесплатной доставки


У меня уже работает веб-сайт Magento CE 1.8.1, на котором работают два магазина, и еще больше. Мой клиент попросил меня найти способ сообщить клиенту, сколько еще ему нужно потратить, прежде чем он получит право на "Бесплатную доставку" (промежуточный итог 49 долларов или более - только для США).

Солнцезащитная одежда Tuga - Солнцезащитные купальники UPF 50+ для детей и взрослых

Я осмотрел "magento connect" и не увидел ничего, что могло бы это сделать. Вот мои идеи/требования для этого "микро-расширения"

1) Где-то на странице/сайте/блоке отображается баннер с надписью "Бесплатная стандартная доставка для заказов в США на сумму 49 долларов или более" сверху, а ниже отображается своего рода "счетчик", показывающий "Вам нужно всего лишь XX.XX больше, чтобы пройти квалификацию!"

2) Это должно быть для конкретного покупателя, поэтому ему потребуется подключиться к файлам cookie или чему-то, что используется для того, чтобы любые "гостевые" или "зарегистрированные" пользователи были отделены от других, даже с того же IP-адреса

3) В области баннера можно щелкнуть, чтобы отобразить подробную информацию о предоставленной информации о доставке. Можно нажать на область "$XX.XX для участия", чтобы отправить их в обзор корзины покупок

Я не прошу, чтобы расширение было создано отсюда, но если кто-нибудь может указать мне, какую кодировку использовать, чтобы вывести "промежуточный итог" для корзины с *математикой, чтобы получить сумму, и показывать только 0 долларов, когда сумма будет достигнута, вместо того, чтобы считать в отрицательные суммы. Я могу разобраться с остальным или иметь разработчик/фрилансер доработает остальное.

Спасибо за любую помощь, которую вы, ребята и девушки, можете оказать!


Наконец-то публикую свое решение, которое, похоже, работает на любой странице, в любом месте:

<?php 
$quote = Mage::getSingleton('checkout/session')->getQuote();
$freeShippingValue = Mage::getStoreConfig('carriers/freeshipping/free_shipping_subtotal');
if ($quote->getSubtotal() < $freeShippingValue):
$subtotalamt = Mage::getSingleton('checkout/session')->getQuote()->getSubtotal();
$sumtotal = $freeShippingValue - $subtotalamt;
Mage::helper('checkout')->formatPrice($sumtotal);?>
<p>Free US Ground Shipping with <span style="color: #CC2727;">$<?php print (number_format($sumtotal, 2, '.', '')); ?></span> 
more added to your cart.</p>
<?php endif ?>

Это отобразит: Free US Ground Shipping with $XX.00 more added to your cart.

Не стесняйтесь изменять текст по мере необходимости. Бесплатная сумма доставки с автоматическим обновлением по мере сохранения в конфигурации.

Author: Steven J, 2014-05-13

1 answers

Вы можете получить стоимость, необходимую для бесплатной доставки, следующим образом:

$freeShippingSubtotal = Mage::getStoreConfig('carriers/freeshipping/free_shipping_subtotal');

Вы можете получить промежуточный итог товаров в корзине следующим образом:

$cartSubtotal = Mage::getSingleton('checkout/session')->getQuote()->getSubtotal();

Теперь вы можете создать пользовательский блок (или даже использовать core/template) с пользовательским шаблоном, в котором вы можете выполнить математические вычисления.

 4
Author: Marius, 2014-06-05 07:18:46