Magento Paypal Problemi

Magento’nun kendi paypal eklentisinde son dönemde ödemeler ile ilgili hata alabilirsiniz. Bu durum Paypal’ın kendi yapısından değişen header gönderme zorunluluğundan kaynaklanıyor. IPN tarafında  postback de magento kendi kodlarında header göndermiyor. (controller/Ipn.php 143. satır) Doğal olarak da paypalın son durumunda ödemelerin statusu processing e dönmüyor. 143. satırdaki

$httpAdapter->write(Zend_Http_Client::POST, $this->_config->getPaypalUrl(), '1.1', array(), $sReq);

Kodunu

$httpAdapter->write(Zend_Http_Client::POST, $this->_config->getPaypalUrl(), '1.1', array('Connection: Close', 'User-Agent: MIN5KARAKTER'), $sReq);

kodu ile değiştirmeniz yeterli olacaktır. Burada User-Agent bölümüne minumum 5 karakterlik rastgele bir değer iletmeniz yeterli olacaktır. Sorun yaşamanız durumunda yorum olarak sorarsanız yardımcı olmaya çalışırım.

Share Button

Magento Firefox Ödeme Problemi

Selam arkadaşlar,

– Magento Onestepcheckout eklentisi kullanıyorsanız,
– Firefox tarayıcıda ödeme sayfasına geldiğinizde tarayıcı patlıyorsa,
– Prototype sürümünüz 1.7 ise

Prototype sürümünüzü güncellediğinizde sorun ortadan kalkacaktır.

Share Button

Artık ölebilir miyim?

“Tanrı bir an için paçavradan bebek olduğumu unutup can vererek beni ödüllendirse, aklımdan geçen her şeyi dile getiremeyebilirdim, ama en azından dile getirdiklerimi ayrıntısıyla aklımdan geçirir ve düşünürdüm. Eşyaların maddi yönlerine değil anlamlarına değer verirdim. Az uyur, çok rüya görür, gözümü yumduğum her dakikada, 60 saniye boyunca ışığı yitirdiğimi düşünürdüm. İnsan aşktan vazgeçerse yaşlanır. Başkaları durduğu zaman yürümeye devam ederdim. Başkaları uyurken uyanık kalmaya gayret ederdim. Başkaları konuşurken dinler, çikolatalı dondurmanın tadından zevk almaya bakardım. Eğer Tanrı bana birazcık can verse, basit giyinir, yüzümü güneşe çevirir, sadece vücudumu değil, ruhumu da tüm çıplaklığıyla açardım. Tanrım, eğer bir kalbim olsaydı nefretimi buzun üzerine kazır ve güneşin göstermesini beklerdim. Gökyüzündeki aya, yıldızlar boyunca Van Gogh resimleri çizer, Benedetti şiirleri okur ve serenatlar söylerdim. Gözyaşlarımla gülleri sular, vücuduma batan dikenlerinin acısını hissederek dudak kırmızısı taç yapraklarından öpmek isterdim. Tanrım bir yudumluk yaşamım olsaydı… Gün geçmesin ki, karşılaştığım tüm insanlara onları sevdiğimi söylemeyeyim. Tüm kadın ve erkekleri, en sevdiğim insanlar oldukları konusunda birer birer ikna ederdim. Ve aşk içinde yaşardım. Erkeklere, yaşlandıkları zaman aşkı bırakmalarının ne kadar yanlış olduğunu anlatırdım. Çünkü insan aşkı bırakınca yaşlanr. Çocuklara kanat verirdim. Ama uçmayı kendi başlarına öğrenmelerine olanak sağlardım. Yaşlılara ise ölümün yaşlanma ile değil unutma ile geldiğini öğretirdim. Ey insanlar! Sizlerden ne kadar da çok şey öğrenmişim. Tüm insanların, mutluluğun gerçekleri görmekte saklı olduğunu bilmeden, dağların zirvesinde yaşamak istediğini öğrendim. Yeni doğan küçük bir bebeğin, babasının parmağını sıkarken aslında onu kendisine sonsuza dek kelepçeyle mahkûm ettiğini öğrendim. Sizlerden çok şey öğrendim. Ama bu öğrendiklerim pek işe yaramayacak. Çünkü hepsini bir çantaya kilitledim. Mutsuz bir şekilde… Artık ölebilir miyim?”

#GabrielGarciaMarquez

Share Button

RSYNC Kurulum ve Kullanımı

Bu yazıdan yararlanarak ssh ile local servera direk “ssh root@hariciserver” komutunu verdiğimde doğrudan bağlanabilecek şekilde işlemleri gerçekleştirdim. Ardından RSYNC için gerekli araştırma ve uygulamalara başladım. RSYNC serverlar arasında değişen veya silinen dosyaları taşımak için kullanılan bir ara yazılımdır diyebilirim. RSYNC ile deployment yapabilir, backuplarınızı serverlar arası taşıyabilirsiniz. Aşağıdaki linklerden yararlanarak “RSYNC nedir” ve “RSYNC nasıl kurulur” sorularınıza cevap bulabilirsiniz.

http://www.syslogs.org/rsync-ile-dizin-senkronizasyon-ve-incremental-backup-islemleri/
http://www.thegeekstuff.com/2010/09/rsync-command-examples/
https://calomel.org/rsync_tips.html
http://www.thegeekstuff.com/2011/07/rsync-over-ssh-without-password/

Share Button

SSH ile Sunucular Arası Şifresiz Bağlantı

Bugün uğraştığım konulardan biri SSH ile şifre istemeden bağlantı gerekliliğiydi. Local server da cron ile senkronizasyon (RSYNC – Bu yazıda buna dair kaynakları paylaştım) işlemi yapmak istedim. Ancak komut sonucu şifre istediği ve elle girmeyeceğim için böyle bir ihtiyaç doğdu. Aşağıdaki linklerden yararlanarak SSH ile şifresiz bağlantı kurmayı gerçekleştirdim.

http://linuxamination.blogspot.in/2013/06/generate-ssh-keys.html
http://www.sezaiyilmaz.com/2008/07/30/ssh-anahtar-kullanimi-ileri-duzey-ssh/
http://www.thegeekstuff.com/2008/06/perform-ssh-and-scp-without-entering-password-on-openssh/
http://ikizil.wordpress.com/2013/08/23/ssh-keygen-ve-ssh-copy-id-kullanarak-sifre-olmadan-ssh-giris-yapma/

Share Button

Magento Ürünlere Video Ekleme

Video eklenmis sayfa

Başlığı gördüğünüzde bunda ne var description bölümüne videonun embed kodunu alır koyarım diyenler olacaktır. Farklı bir yöntem ile standart bir alana her ürüne göre farklı bir tanımla koymaktan bahsedeceğim. Youtube popüler olduğu için youtube üzerinden gideceğim ancak vimeo içinde aynı yöntemi uygulayabilirsiniz.

app/design/frontend/temadizini/temadizini/template/catalog/product/view.phtml

Üstte yazmış olduğum dosyayı açıyorsunuz

 <div class="product-name">
                <h1><?php echo $_helper->productAttribute($_product, $_product->getName(), 'name') ?></h1>
            </div>

Hemen altına aşağıdaki

<div class="videos">
 <iframe width="330" height="250" src="http://www.youtube.com/embed/<?php echo $_product->getVideo() ?>" frameborder="0" allowfullscreen></iframe>
</div>

kodu ekliyorsunuz.

Şimdi sırada videomuzu eklemek için panelde alan açacağız.

Menüden Attribute (Özellik) ekleme alanından (resim 1 ve resim 2) video alanımızı oluşturuyoruz.

Alanlardan ilkine video yazmanız yeterli olacaktır. Alanımız yazı alanı olacak. (resim 3) (Özellik alanına bir sürü şey ekleyebilirsiniz. Evet-Hayır seçeneği, sayısal değer vs. gibi.) Ardından ürünü, hangi ürün özelliği grubuna koyacağımızı seçiyoruz. Ben örnek sayfa için RAM grubunun özelliklerine ekleyeceğim için oraya taşıma işlemini gerçekleştirdim. Sürükle&Bırak yaparak soldan sağ (bilgisayar ekranına göre sol :)) tarafa ekleyebilirsiniz.

Magento Ürüne Özellik Ekleme

Ardından kaydedip buradan çıkıyoruz. Ürün yönetimi sayfasından özellik seçeneğinden RAM seçip, ürünleri filtreliyor ve bir tane ürünü seçiyoruz. Karşınıza video alanı eklenmiş sayfa geliyor. Ardından Youtube dan url nin son kısmını alıyoruz. Örnek url http://www.youtube.com/watch?v=B2qDWFvCUC8 bu  videodan v= den sonrasını yani B2qDWFvCUC8  bu kısmı kopyalıyoruz.

Eklediğiniz ürün sayfasına gidip videonuzun çıktığını görebilirsiniz.

Ne Öğrenmeliydik?

Burda size sadece ürüne video eklemekten bahsetmiş olsam da ürün özelliklerini kullanarak farklı şeyler de yapabilirsiniz. Ürünlere has özellikleri buradan ekleyebilirsiniz. Renk, boyut, yaş veya beden olabilir. Sizlerde fikirlerinizi benimle paylaşırsanız sevinirim.

Share Button

Magento Kod ile Sipariş Statüsü Değiştirme

Dışardan siparişleriniz ile ilgili müdahale etmeniz gereken durumlar oluşabilir. Örneğin B2B çalıştığınızı düşünelim web servis ile siparişlerinizi dışarıdan alıp bunların durumlarınıda değiştirmek isteyebilirsiniz. Bu durumda aşağıdaki kod parçası işinizi görecektir.

 
    // Sipariş id si ne göre order nesnesini yükle
    $order = Mage::getModel('sales/order')->loadByIncrementId($siparisNo);
    // Sipariş state özelliğini complete yap
    $order->setData('state', "complete");
    // Sipariş statusu complete yap
    $order->setStatus("complete");
    // Daha sonra panelden history bölümüne bakmak gerekebilir. history ekle
    $history = $order->addStatusHistoryComment('Sipariş otomatik olarak kapatılmıştır.', false);
    // Siparişi veren müşteri mail ile bilgilendir "true" değeri gönderilirse mail gider. 
    $history->setIsCustomerNotified(false);
    // Siparişi kaydet
    $order->save();

Ayrıca magentonun diğer statüleri de şunlardır
(Kaynağı=> http://docs.magentocommerce.com/Mage_Sales/Mage_Sales_Model_Order.html);

STATE_CANCELED = ‘canceled’
STATE_CLOSED = ‘closed’
STATE_COMPLETE = ‘complete’
STATE_HOLDED = ‘holded’
STATE_NEW = ‘new’
STATE_PAYMENT_REVIEW = ‘payment_review’
STATE_PENDING_PAYMENT = ‘pending_payment’
STATE_PROCESSING = ‘processing’

Share Button

Magento Configurable Ürünün Simple Ürünleri

Magento da configurable product ın alt simplelarına erişmek isteyeceğiniz yerler olabilir. Bunun için aşağıdaki kod işinizi görecektir.

<?php
    $product = Mage::getModel('catalog/product')->load($productId); 
    $childProducts = Mage::getModel('catalog/product_type_configurable')
                     ->getUsedProducts(null,$product);   
    foreach($childProducts as $child) {
        print $child->getName; // Normal product verilerini burada kullanabilirsiniz.

    }

Not: İngilizce kelimeler kullandığım için kusura bakmayın başka türlü anlattığımda karışıklık çıkıyor.

Share Button

DevFest Women Etkinliği

DevFest Turkey - to the power of women

2 Mart pazar günü DevFest Women etkinliği düzenleniyor. Etkinlik Bahçeşehir Üniversitesi Beşiktaş kampüsünde olacak. 4 salonda sabah 9:45 de başlayacak ve akşam 17:45 gibi son bulacak. Sadece kadın konuşmacıların olacağı bu etkinliği kaçırmamanızı öneriyorum. Etkinliğe burdan ücretsiz katılabilir ve buradan da detaylı bilgiye ulaşabilirsiniz. Kısmet olursa bende bu hafta sonu dinleyici olarak etkinliğe katılmayı düşünüyorum.

Share Button

#PHPKonf Ardından

IMG_3885

22 Şubat cumartesi günü Bahçeşehir Üniversitesinde düzenlenen @PHPkonf a katıldım. Etkinlik bir çok arkadaş edinmenin yanında etkilieyici sunumlar ile birlikte güzel bir gün geçirmemize vesile oldu.

Sunumların tamamı gerçekten çok güzeldi. Sunum yapan arkadaşların tamamı Hüseyin’in dediği gibi “kulağımıza su kaçırmayı” başardı. Etkinliğin diğer güzel tarafıda birbirinden güzel insanlar tanımak oldu. Bu hususta tüm herkesle birebir tanışıklığı olan Mustafa sağolsun hiç üşenmeden tanıdığı tüm değerli insanlarla beni tanıştırdı. Çok güzel buram buram geek kokulu sohbetlerimiz oldu. Müjdeyi de vereyim PHPKonf’un 2. si de düzenlenecek. Sanırım bu 2. konferans için daha büyük bir yer ayarlamak gerekebilir. Zira salon tamamen doldu ve ayakta kalan arkadaşlarımız da oldu. Paylas.com etkinliği canlı yayınladı. Etkinliğin videolarını yakında paylaşacaklardır.

Sunumlardan bir kaç samimi cümle;

@yuxel : “PHP-TR ekibinin yönetim şekli Hibrittir!”

@hmert: “Kulağınıza su kaçırmaya geldim.”

@ibrahimgunduz34: “Php konferansını trollemeye geldim. Aslında python yazıyorum”

Share Button