Programlı olarak fiyat değişikliği ile sepete ürün Ekle
Sepeti programlı bir ürün eklemek istiyorum. Ayrıca, sepete eklendiğinde ürünün fiyatını değiştirmek istiyorum.
Sanırım, benim ürünün fiyatı 100 dolar. Sepete eklendiğinde 90 dolar için değiştirmek istedim.
Sepete ürün ekledim. Ancak, ürünün fiyatını değiştirmek için kuramıyorum.
Mümkün mü?
Burada sepete ürün ekleme kod:-
$cart = Mage::getSingleton('checkout/cart');
try {
$cart->addProduct($product, array('qty' => 1));
$cart->save();
}
catch (Exception $ex) {
echo $ex->getMessage();
}
CEVAP
Profesyonel çekirdek kod içine biraz kazma sonra, $item->setCustomPrice() $item->setOriginalPrice() olması için $item->getProduct()->setIsSuperMode(true) kullanmak gerekir.
Burada checkout_cart_product_add_after checkout_cart_update_items_after olayları dinleyen bir Gözlemci içinde kullanabileceğiniz bazı örnek kod. Kod mantıklı checkout_cart_product_add_after yalnızca bir öğe denir ve checkout_cart_update_items_after sepeti tüm öğeleri denir hariç aynıdır. Bu kodu ayrı bir örnek olarak 2 yöntem içine sadece yineleniyor.
Olay: checkout_cart_product_add_after
/**
* @param Varien_Event_Observer $observer
*/
public function applyDiscount(Varien_Event_Observer $observer)
{
/* @var $item Mage_Sales_Model_Quote_Item */
$item = $observer->getQuoteItem();
if ($item->getParentItem()) {
$item = $item->getParentItem();
}
// Discounted 25% off
$percentDiscount = 0.25;
// This makes sure the discount isn't applied over and over when refreshing
$specialPrice = $item->getOriginalPrice() - ($item->getOriginalPrice() * $percentDiscount);
// Make sure we don't have a negative
if ($specialPrice > 0) {
$item->setCustomPrice($specialPrice);
$item->setOriginalCustomPrice($specialPrice);
$item->getProduct()->setIsSuperMode(true);
}
}
Olay: checkout_cart_update_items_after
/**
* @param Varien_Event_Observer $observer
*/
public function applyDiscounts(Varien_Event_Observer $observer)
{
foreach ($observer->getCart()->getQuote()->getAllVisibleItems() as $item /* @var $item Mage_Sales_Model_Quote_Item */) {
if ($item->getParentItem()) {
$item = $item->getParentItem();
}
// Discounted 25% off
$percentDiscount = 0.25;
// This makes sure the discount isn't applied over and over when refreshing
$specialPrice = $item->getOriginalPrice() - ($item->getOriginalPrice() * $percentDiscount);
// Make sure we don't have a negative
if ($specialPrice > 0) {
$item->setCustomPrice($specialPrice);
$item->setOriginalCustomPrice($specialPrice);
$item->getProduct()->setIsSuperMode(true);
}
}
}

Programlı olarak NORMAL ve tam tersi i...
Ne kadar kapsayıcı bir görünüm için bi...
Görünüm doldurma programlı olarak Ekle...
3, nasıl dinlenme uygulaması olarak ay...
Nasıl android Uygulama programlı olara...