feb 01
In Magento il prezzo dei prodotti semplici collegati a un configurabile viene calcolato come differenza dal prezzo del prodotto configurabile.
Per ovviare a questo problema e poter impostare direttamente il prezzo del prodotto semplice, è disponibile su MagentoConnect il modulo SimpleConfigurableProducts di OrganicInternet.
Purtroppo tale modulo è affetto da un bug per cui, quando un prodotto viene inserito nel carrello, non vengono visualizzate le opzioni configurabili che sono state selezionate. Tale comportamento è dovuto al fatto che quando SimpleConfigurableProducts è attivo, nel carrello non viene inserito il prodotto configurabile con le sue opzioni, ma viene inserito direttamente il prodotto semplice.
Riportiamo di seguito la correzione del bug.
Il file che va modificato è app/code/community/OrganicInternet/SimpleConfigurableProducts/Checkout/Block/Cart/Item. Bisogna aggiungere alla fine del file la funzione getProductOptions()
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
| public function getProductOptions()
{
$options = array();
$parent=$this->getConfigurableProductParent();
$attributes=$parent->getTypeInstance()->getConfigurableAttributes();
foreach($attributes as $attribute){
$attribute_id=$attribute->getProductAttribute()->getId();
$attribute_code=$attribute->getProductAttribute()->getAttributeCode();
$childProduct=Mage::getModel('catalog/product')->load($this->getProduct()->getId());
$options[] = array(
'label' => $attribute->getProductAttribute()->getFrontend()->getLabel(),
'value' => $childProduct->getAttributeText($attribute_code),
'print_value' => $childProduct->getAttributeText($attribute_code),
'option_id' => $attribute_id,
'option_type' => $attribute->getType()
);
}
return $options;
} |
Tagged with: Prezzi • Prodotti configurabili
gen 25
Utilizzando i vari moduli che ci sono in rete per importare prodotti e categorie da csv, non è previsto un modo per imporre l’ordinamento alle categorie importare.
Riportiamo di seguito uno script da eseguire a importazione avvenuta. La funzione ricorsiva orderCategories riordina ordina tutto l’albero delle categorie avente radice nella categoria con id $cat_id
< ?php
function orderCategories($cat_id){
$collection=Mage::getModel('catalog/category')-> getCollection()
->addAttributeToFilter('parent_id',array("like"=>$cat_id))
->addAttributeToSelect('url_path')
->setOrder('name','asc')
->load()->getItems();
if (count($collection)==0)
return;
else{
$i=1;
foreach ($collection as $category)
{$category->setPosition($i)->save();
$category_id=$category->getId();
print ($i.". ".$category->getName()."<br />");
flush();
$i++;
orderCategories($category_id);
}
}
}
?>
Per riordinare tutte le categorie del website e dello store di default basta estrarre la Root Category Id
< ?php
require_once 'app/Mage.php';
Mage::app()->setCurrentStore(Mage_Core_Model_App::ADMIN_STORE_ID);
$website=Mage::app()->getWebsite(true);
$store=$website->getDefaultStore();
$category_id=$store->getRootCategoryId();
orderCategories($category_id);
?>
Tagged with: categorie • Importazione • Ordinamento
gen 11
Nel comportamento standard di magento, eventuali prezzi scontati definiti nella sezione “Promotions” sono visualizzati solo ai clienti che ne hanno diritto. Tuttavia in certi casi può essere utile poter mostrare i prezzi scontati a tutti gli utenti: un esempio potrebbe essere quello di mostrare i vantaggi dell’iscrizione al sito.
La visualizzazione dei prezzi scontati si può aggiungere modificando il template /app/design/frontend/default/{template_name}/template/catalog/product/price.phtml
Innanzitutto recuperiamo l’array di tutti i tassi di sconto:
$rules = Mage::getModel('catalogrule/rule')->getCollection()
->addFieldToFilter('is_active', 1)->load();
$discount_amount=array();
foreach($rules as $rule)
{$discount_amount[]=$rule->getDiscountAmount();}
Supponendo che lo sconto che vogliamo pubblicizzare sia in $discount_amount[0], la visualizzazione del prezzo scontato si può ottenere aggiungendo sotto a
<span class="regular-price" id="product-price-<?php echo $_id ?>
<?php echo $this->getIdSuffix() ?>"><?php echo Mage::helper('core')->currency($_price,true,true) ?></span>
<?php endif; ?>
<?php endif; ?>
il seguente codice:
<?php if (!Mage::getSingleton( 'customer/session' )->isLoggedIn()): ?>
<p class="special-price">
<span class="price-label" id="registered-price-label<?php echo $this->getIdSuffix() ?>">
<?php echo $this->__('Registered Price:'); ?></span>
<span class="price" id="registered-product-price-<?php echo $_id ?><?php echo $this->getIdSuffix() ?>">
<?php echo Mage::helper('core')->currency($_finalPrice*(1-$discount_amount[0]/100) ,true,false) ?>
</span>
</p>
<?php endif; ?>
Tagged with: Promozioni • Sconti