Magento Forum

Ideiglenes csoport (group) váltás
 
EronarDiaras
Member
 
Total Posts:  37
Joined:  2012-01-27
 

Egy olyan kiegészítést kellene létrehoznom, hogy ha egy nem regisztrált vagy regisztrált vásárló megad egy kódot(10-20 ilyen kód lenne rögzítve), akkor az adott vásárlása erejéig csoportot vált, pl: wholesale vagy retailer csoportba kerül… (elvileg csak ez a két csoport lesz, amibe a kóddal át tud lépni)

Van ötletetek, hogy merre induljak el? Milyen fájlok módosítására lehet szükség? Esetleg van már ilyesmi ingyenes bővítmény?

 
Magento Community Magento Community
Magento Community
Magento Community
 
EronarDiaras
Member
 
Total Posts:  37
Joined:  2012-01-27
 

Eddig itt tartok:

A modul config.xml-je:

<?xml version="1.0"?>
<config>
  <global>
    <
models>
        <
Wrcouponprices_Kupon>
             <class>
Wrcouponprices_Kupon_Model</class>
        </
Wrcouponprices_Kupon>
    </
models>
    <
events>
      <
catalog_product_get_final_price>
        <
observers>
          <
wrcouponprices_kupon_price_observer>
            <
type>singleton</type>
            <class>
Wrcouponprices_Kupon_Model_Price_Observer</class>
            <
method>apply_discount_percent</method>
          </
wrcouponprices_kupon_price_observer>
        </
observers>
      </
catalog_product_get_final_price>
    </
events>
  </global>
</
config>

\app\code\local\Wrcouponprices\Kupon\Model\Price\Observer.php

<?php
class Wrcouponprices_Kupon_Model_Price_Observer
    {
    
public function __construct()
        
{
        }

    
public function apply_discount_percent($observer)
        
{
        $event 
$observer->getEvent();
        
$product $event->getProduct();
            
{
            $finalprice
=$product->getPrice();
            if (
Mage::getSingleton('customer/session')->gethucuponvalid()>0)
                
{
                $tier_price 
$product->getTierPrice();

$resource Mage::getSingleton('core/resource');
$query 'SELECT * FROM '.$resource->getTableName('catalog/product').'_tier_price';
$_tier_prices $resource->getConnection('core_read')->fetchAll($query);

                foreach (
$_tier_prices as $one_tier_price)
                    
{
                    
if ($one_tier_price["customer_group_id"]==Mage::getSingleton('customer/session')->gethucuponvalid() and $one_tier_price["entity_id"]==$product->getId())
                        
{
                        $finalprice 
$one_tier_price["value"];
                        
}
                    }
                }
            $product
->setFinalPrice($finalprice);
            
}

        
return $this;
        
}
    }

app\design\frontend\default\blank\template\checkout\cart.phtml

...
<
form id="wrcouponpricescatalog-form" action="http://lit.darkrpg.hu/checkout/cart/" method="post">
    <
div class="discount">
        <
h2>Kedvezmény kód</h2>
        <
div class="discount-form">
            <
label for="coupon_code">Adja meg a kupon kódját ha rendelkezik vele.</label>
            <
input type="hidden" name="wrcouponpricescatalog-remove" id="wrcouponpricescatalog-remove-coupone" value="0"/>
            <
div class="input-box">
                <
input class="input-text" id="wrcouponpricescatalog-coupon-code" name="wrcouponpricescatalog-coupon-code" value=""/>
            </
div>
            <
input name="wrcouponpricescatalog-coupon-code-submit" type="submit" class="button" value="Beváltás" />
            <!--
            <
button type="button" title="Beváltás" class="button" onclick="wrcouponpricescatalog-form.submit(false)" value="Beváltás">
                <
span>
                    <
span>Beváltás</span>
                </
span>
            </
button>
            -->
        </
div>
    
<?php
    
if (isset($_POST["wrcouponpricescatalog-coupon-code"])===true)
        
{
        
switch($_POST["wrcouponpricescatalog-coupon-code"])
            
{
            
case "aaa":
                        
Mage::getSingleton('customer/session')->sethucuponvalid(2);
                        
?><div style="clear:both; color:#008800;">Sikeres nagykereskedÅ‘i kupon beváltás</div><?php
                        
break;
            case 
"bbb":
                        
Mage::getSingleton('customer/session')->sethucuponvalid(3);
                        
?><div style="clear:both; color:#008800;">Sikeres kiskereskedÅ‘i kupon beváltás</div><?php
                        
break;
            default:    
?><div style="clear:both; color:#880000;">Sikertelen kupon beváltásKérem próbálkozzon Ãºjraügyelve a kis-nagybetűkreIlletve ellenÅ‘rizzenem járt-e már le a kupon Ã©rvényesége!</div><?php
            } 
// switch
        
}
    ?>

    
<div style="clear:both;">Sikeres beváltást követÅ‘en kérem <strong>kattintson a "Bevásárlókosár frissítése" gombra</strong>, ha már tartalmaz termékeket a kosara!</div>
    <
div style="clear:both;">Teszt kódok"aaa" Nagyker"bbb" Viszonteladó</div>
    </
div>
</
form>
...

Ez így működik is, csodás… Egy gondom van vele: Hogy tudom a $_POST feldolgozást minden elé rakni? Ha lehet úgy, hogy ne kelljen phtml-be írni, meg core-ba… Azaz a modul könyvtárán belül hogy tudom megoldani, hogy mindenek elÅ‘tt dolgozza fel a rendszer az a switch-et, amiben eldöntöm, hogy jó volt-e a kód?

Ez azért lenne fontos, mert most úgy működik, hogy beírja a kódot, ráklikkel a “Beváltás” gombra, ami elküldi post-ban ugyanennek az oldalnak (kosár) a kódot. És itt a kosár közepn elkapja a switch és feldolgozza. No de ekkorra már kiszámolódtak az árak és emiatt ha jó is volt a kód, újra be kell tölteni az oldalt (kosár), hogy érvényesüljön a hatása…

Illetve nem vagyok benne biztos, hogy az \app\code\local\Wrcouponprices\Kupon\Model\Price\Observer.php résznél jó, ha ezt adom vissza, ha nem volt kuponkódbeváltás:

$finalprice=$product->getPrice();
Azaz biztos ezt kell visszaadnom, ha nem akarok módosítani az árakon???
 
Magento Community Magento Community
Magento Community
Magento Community
Magento Community
Magento Community
Back to top