Jump to content
  • 0

Kod rabatowy / voucher poza koszykiem


Kuras

Question

11 answers to this question

Recommended Posts

  • 0

Trudne...

 

To może łatwiejsze... podświetlone kody rabatowe pojawiają się w koszyku jak coś jest w nim.

Jak zrobić aby podświetlone kody rabatowe były cały czas widoczne na stronie koszyka... niezależnie czy coś w nim jest czy brak produktów.

 

???

Link to comment
Share on other sites

  • 0

w chwili obecnej nie ma możliwości wyświetlenia gdzieś listy kodów rabatowych, bo po prostu taka funkcja nie istnieje.

Jedynie w koszyku.

 

A skoro chcesz ją wyświetlać w koszyku ZAWSZE, to modyfikacja plików będzie niezbędna.

shopping-cart.tpl

 

chodzi o kod:
 

{if $displayVouchers}
						<p id="title" class="title_offers">{l s='Take advantage of our exclusive offers:'}</p>
						<div id="display_cart_vouchers">
						{foreach $displayVouchers as $voucher}
							{if $voucher.code != ''}<span onclick="$('#discount_name').val('{$voucher.code}');return false;" class="voucher_name">{$voucher.code}</span> - {/if}{$voucher.name}<br />
						{/foreach}
						</div>
					{/if}

umieścić go należy gdzieś poza warunkiem sprawdzającym czy w koszyku są produkty, czy nie.

Link to comment
Share on other sites

  • 0

Bo powiedzcie mi proszę, czy to ma sens aby kody brabatowe pojawiły się tylko wtedy jak coś jest w koszyku?

I tylko na stronie koszyka.

 

Dużo lepiej byłoby gdyby kody pojawiały się na stronie price-drop albo z boku... bo zachęcie to do kupienia produktu.

 

Zgadza się?

Link to comment
Share on other sites

  • 0

Początek wpisu jest o tym aby wyświetlić kody kuponów rabatowych na innych stronach... np na home.

Potem we wpisie piszę, że jeśli nie na innej stronie to choćby w koszyku jak nic nie ma.

Ale jak widzę, nie mamy takiej wiedzy...

 

 

skoro nie ma produktu to niema do czego kuponu zastosować.

 

Zastanówmy się... gdybym wiedział, że jest do wykorzystania kupon rabatowy, nie będąc w koszyku to by mnie to bardzo zainteresowało.

Np. Wchodzę na stronę produktu X i ma informację, że kupując X i Y i wpisując kod dostanę Z. A że miałem kupić X a Yiem jestem również zaintersowany to chętnie skorzystam z promocyjnego kodu bo zyskam Z.

Niestety nie będę o tym wiedział do czasu jak dodam X i przejdę do koszyka.

A ja właśnie chce poinformować ogół nie wchodząc do koszyka, że istniej kod kuponu rabatowego.

 

 

a jaki jest sens wyświetlania tego jak nie ma produktu w koszyku ?

 

Od cały sens. Ma to sens czy nie ma? ;-)

Link to comment
Share on other sites

  • 0

zacząć trzeba od tego, że wyświetlane będą tylko kody z ustawioną opcją:

sUaKkKe.png

i to jest jedyna możliwość wyświetlenia kodów, które są dostępne. Nie ma żadnego modułu, który pozwalałby wyświetlać dostępne kody w różnych częściach sklepu.

 

Jeżeli chcesz koniecznie mieć taką funkcjonalność, musisz utworzyć swój kod który to zrobi, nie ma na to innej rady.

 

kod jest prosty, wystarczy pętla foreach na statycznej funkcji:

CartRule::getCartsRuleByCode("%")

następnie możesz sobie wyświetlić tylko te kody, które mają zaznaczoną opcję "highlight" (patrz obrazek wyżej)

{if $kod.highlight==1}
{$kod.code}
{/if}

kod wklejasz do plików .tpl tam, gdzie chcesz wyświetlić tę listę.

Link to comment
Share on other sites

  • 0

To ja zrobiłem tak... może się komuś to przyda.

Zapraszam programistów do weryfikacji kodu...

 

W pliku ParentOrderController.php jest coś takiego jak "Get available cart rules..."

 

Dodałem ten fragment kodu do pliku PricesDropController.php

 

Teraz PricesDropController.php wygląda tak (fragment kodu)

                $available_cart_rules = CartRule::getCustomerCartRules($this->context->language->id, (isset($this->context->customer->id) ? $this->context->customer->id : 0), true, true, true, $this->context->cart);
		$cart_cart_rules = $this->context->cart->getCartRules();
		foreach ($available_cart_rules as $key => $available_cart_rule)
		{
			if (!$available_cart_rule['highlight'] || strpos($available_cart_rule['code'], 'BO_ORDER_') === 0)
			{
				unset($available_cart_rules[$key]);
				continue;
			}
			foreach ($cart_cart_rules as $cart_cart_rule)
				if ($available_cart_rule['id_cart_rule'] == $cart_cart_rule['id_cart_rule'])
				{
					unset($available_cart_rules[$key]);
					continue 2;
				}
		}
		
		$this->context->smarty->assign(array(
			'products' => Product::getPricesDrop($this->context->language->id, (int)$this->p - 1, (int)$this->n, false, $this->orderBy, $this->orderWay),
			'add_prod_display' => Configuration::get('PS_ATTRIBUTE_CATEGORY_DISPLAY'),
			'nbProducts' => $nbProducts,
			'homeSize' => Image::getSize(ImageType::getFormatedName('home')),
			'comparator_max_item' => Configuration::get('PS_COMPARATOR_MAX_ITEM'),
			'voucherAllowed' => CartRule::isFeatureActive(),
			'displayVouchers' => $available_cart_rules
		));

Zapisałem pliki i umieściłem go (aby było ładnie) w /override/controllers/front/

 

Wygląda, że działa :-)

 

Oczywiście w prices-drop.tpl należy wstawić pętle...

{foreach $displayVouchers as $voucher}
        {$voucher.code}
        {$voucher.name}
{/foreach}

...aby wyświetlić podświetlone kody rabatowe na stronie prices-drop.

Link to comment
Share on other sites

  • 0

Cześć! Ja bym chciał odkopać temat i zadać odwrócone pytanie.

W jaki sposób usunąć ze strony koszyka dostępne kody, tzn.: nie chcę podpowiadać klientom jakie mam dostępne kody rabatowe. Chcę aby korzystali z nich tylko ci klienci, którzy je posiadają.

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...