Soruların cevapları
Verilerin formatlanmasından kim sorumludur, örneğin fiyatlar. Magento API ve ön uç çerçevesi?
Magento API, verilere ve iş mantığına erişim sağlar . Verileri / fiyatları biçimlendirme sunum mantığının bir parçasıdır , bu nedenle, bu şekilde, istediğiniz şekilde bilgi sunma konusunda daha fazla esnekliğe sahipsiniz (Magento'da yapmak zorunda kalmadan).
Örneğin, yerel ayarları belirlemek ve uygun verileri sağlamak için javascript'i kullanabilirsiniz. Aşağıdakileri kontrol edin:
navigator.language
toLocaleString ()
Veya, Magento'dan 3. parti sisteme veya veri analiz aracına fiyatları ithal etmeyi bile seçebilirsiniz ve fiyatların para birimi biçimine göre biçimlendirilmesi yalnızca "para birimi dönüştürme" işlemini çözene kadar içe aktarma işlemini keser.
Ürün resimlerini yeniden boyutlandırmak ve önbellekten kim sorumludur? Çünkü yerel Magento 2 API'sinde yeniden boyutlandırma veya önbellek sistemi yoktur.
Kesinlikle. Yukarıda söylediğim gibi, Magento verilere erişim sağlar (sunum mantığı olmadan). Nasıl kullanacağınız size kalmış.
Örneğin, uyarlamalı görüntünün http://adaptive-images.com/details.htm yeniden boyutlandırılmasını tercih edebilirsiniz , böylece orijinal görüntüyü kolayca kullanabilir ve istediğiniz şeyi yapabilirsiniz.
Görüntüleri nasıl önbelleğe alacağınızı seçebilir, görüntüleri azaltmak için kayıplı veya kayıpsız sıkıştırma kullanmak mı istiyorsunuz?
Gelecekteki yükseltme amacıyla yeni özel yalıtılmış API oluşturmam veya yerel olarak genişletmem gerekir mi?
Sunum mantığı için kullanılacak API'nizi yapmanızı tavsiye ederim ve gelecekteki Magento2 API yükseltmesinden etkilenmeyeceğinizden% 99,9 (tahminimce) olacaksınız.
CMS ve Magento API'sini birleştirmek için fazladan bir katman kullanmanız önerilir mi?
Şiddetle tavsiye edilir. Ancak, ekstra katman ek bir uygulama olmak zorunda değildir; Magento2 modülü de olabilir. Bu konuda iyi olan şey, istediğiniz şekilde birleştirmek için özgür olmanızdır; Proxy katmanınızı istediğiniz dili / teknolojiyi kullanarak oluşturabilirsiniz.
Tecrübe kazancınızı paylaştığınız için teşekkür ederim.
Burada kullanabileceğiniz birçok yaklaşım var. Bunun hakkında fikrimi paylaşacağım .
Başsızlığa Yaklaşımım
İlk önce onu iki katmana bölerdim: proxy katmanı ve sunum katmanı .
Proxy katmanı
Dikkate almanız gereken ilk şey, Proxy katmanı oluşturmaktır. Sahne arkasından, ne istersen Magento API, CMS API, ERP API, x API kullanabilirsin ...
Proxy katmanında, verileri istediğiniz gibi kullanmak ve düzenlemek ücretsizdir. Burada, önbellek katmanını ve ayrıca veri biçimlendirmesi, müşteri takibi, çeşitli otomasyonlar vb. İçin ek işlevler uygulayabilirsiniz.
Proxy katmanı PHP'de kodlanmış olmak zorunda değildir; Java, NodeJS ile kodlanmış olabilir, hatta bütün bir proxy katmanı sağlamak için AWS API Ağ Geçidi, AWS SQS ve Lambda'yı bile kullanabilirsiniz.
Kullanabileceğiniz yaklaşımlardan biri, Fabrizio Branca tarafından http://fbrnc.net/blog/2015/10/super-scaling-magento adresinde açıklanmaktadır.
Sunum katmanı
Sunum katmanı müşteri platformuna bağlıdır; Mobil Uygulama için kullanacaksanız, proxy API'sini nasıl kullanmanız gerektiği konusunda her şey açık ve net.
Bir web uygulaması için, pek çok olasılık var. Kullanabilirsiniz:
- HTML çıktısı sağlamak için PHP şablon motorlarından (Smarty, Twig, Dwoo ... gibi) herhangi birini kullanabileceğiniz standart PHP çözümü (herhangi bir çerçeve tarafından desteklenir)
- Java / NodeJS / hangi dilde aşina olursanız olun
- Tüm HTML'yi oluşturacak ve uygun API'leri ajax aracılığıyla veriyle doldurmak için çağıracak javascript tabanlı bir çözüm
- Bu yaklaşımların herhangi bir melezi / birleşimi yukarıdan
Bu kitap listesi tarafından değil , sadece birkaç kombinasyon paylaştım. Gerçekte, hayal gücünüz tek sınırdır.
Son düşünceler
Müşteriye daha iyi bir deneyim sağlayabildiği için javascript tabanlı çözümü kullanın, sayfa yükleri için daha küçük yük, müşterinin bir sonraki işlemlerini tahmin edebiliyorsanız spekülatif veri yükleme bile yapabilirsiniz.
AMA, tamamen javascript çözümü ile sorun SEO. Verilerinizin tümü Ajax üzerinden yüklenmişse, Google muhtemelen onu ayrıştıramaz.
Çözüm, örneğin / katalog / ayakkabılara çarptığınızda, ilk yükte tüm HTML sayfasını hizmet edecek bir karma uygulama yapmaktır. Sitede daha fazla gezinti için, yalnızca gerekli blokları almak için ajax kullanabilirsiniz.
Yaklaşımlardan biri, örneğin PhantomJS kullanarak sayfanızın anlık görüntülerini oluşturmaktır . Bunun için birkaç ücretli çözüm de var: