Teknomers | Dünyadan Güncel Teknoloji | Oyun | Müzik | Film | Spor HaberleriTeknomers | Dünyadan Güncel Teknoloji | Oyun | Müzik | Film | Spor HaberleriTeknomers | Dünyadan Güncel Teknoloji | Oyun | Müzik | Film | Spor Haberleri
Yazı Tipi BoyutlandırıcıAa
  • Anasayfa
  • Teknoloji
    • Siber Güvenlik
    • Yapay Zeka
    • Donanım
    • Bilim
  • Yazılım
  • Savunma & İstihbarat
  • Oyun
  • Yaşam
    • Finans
    • Sinema
    • Dünyadan Haberler
  • İş Birliği
Okuma: Aimeos e-ticaret projelerini bir fork oluşturmadan nasıl özelleştirilir
Paylaş
Yazı Tipi BoyutlandırıcıAa
Teknomers | Dünyadan Güncel Teknoloji | Oyun | Müzik | Film | Spor HaberleriTeknomers | Dünyadan Güncel Teknoloji | Oyun | Müzik | Film | Spor Haberleri
Ara
Bizi Takip Et
  • Hakkımızda
  • Gizlilik politikası
  • Tanıtım Yazısı ve Backlink Hizmeti
© 2026 Teknomers. All Rights Reserved.

Anasayfa » Aimeos e-ticaret projelerini bir fork oluşturmadan nasıl özelleştirilir

Yazılım

Aimeos e-ticaret projelerini bir fork oluşturmadan nasıl özelleştirilir

teknomers
Son güncelleme: 21 Temmuz 2026 15:34
teknomers
Paylaş
Paylaş

Bir dosyayı vendor/ altında düzenlemek, günümüzün sorununu çözebilir ancak bir sonraki güncellemede sorun yaratabilir.

İlk değişiklik genellikle zararsız görünür: bir blok ürün sayfasında taşınır, bir sipariş kuralı eklenir, ürünlerin yüklenme şekli ayarlanır. Birkaç değişiklikten sonra, mağaza özel bir çatala bağımlı hale gelir ve her Composer güncellemesi üçlü bir fark ile başlar.

Aimeos, her tür değişim için ayrı bir yer sağlar. İfadeler çeviri yapılandırmasında, sayfa kompozisyonu sayfa yapılandırmasında, iş kuralları dekoratörlerde yer alabilir. Daha büyük özellikler kendi Composer paketlerinde yaşayabilir.

Yeni bir gereksinim geldiğinde, bunu karşılayacak en dar katmanı bulmakla başlayın.


En Küçük Genişletme Noktasını Seçin

Bir sınıf yazmadan önce, gereksinimi sahiplenen katmanı tanımlayın.

GereksinimKullanım
Bir etiket, sayfa boyutu veya özellik anahtarını değiştirinconfig/shop.php
Bir vitrin bileşenini ekleyin veya kaldırınsayfa yapılandırması
Laravel sayfa kabuğunu değiştirinbir aşırı yazılmış Blade görünümü
Mağaza stilini değiştirinözel bir tema
Bileşen markup’ını değiştirinbir şablon aşırı yazması
Proje spesifik ürün verilerini saklayınözellikler veya nitelikler
Mevcut mantığın etrafına davranış ekleyinbir dekoratör
Bir uygulamayı tamamen değiştirinbir yapılandırılmış sınıf değiştirme
Yeni depolama, davranış veya entegrasyon ekleyinbir proje spesifik Aimeos genişlemesi

Problemi çözebilen ilk satırı kullanın. Yapılandırma değişikliği için bir alt sınıf yaratmak veya bir kontrolörü kopyalamak yerine bir dekoratör yeni davranış ekleyebilir.


Yapılandırma ile Başlayın

Laravel entegrasyonu, mağaza yapılandırmasını config/shop.php dosyasında açığa çıkarır. İç içe geçmiş diziler, Aimeos bileşenleri ve kontrolörlerinin yapısını takip eder, bu nedenle bir ayarın yeri, sistemin hangi kısmını etkilediğini belirler.

Diyelim ki bir mağaza sayfa başına 24 ürün, ürün listelerinde sepete ekleme butonu olmadan, iki seviyeli mega menü ve “Tedarikçiler” yerine “Markalar” istiyor. İlgili yapılandırma kısa:

'client' => [
            'html' => [
                'catalog' => [
                    'lists' => [
                        'basket-add' => false,
                        'size' => 24,
                    ],
                ],
            ],
        ],

        'controller' => [
            'frontend' => [
                'catalog' => [
                    'levels-always' => 2,
                ],
            ],
        ],

        'i18n' => [
            'en' => [
                'client' => [
                    'Suppliers' => ['Brands'],
                ],
            ],
        ],
        

Hiçbir hizmet sağlayıcı, dinleyici veya kopyalanmış bileşen yer almıyor.

Bazı yapısal değişiklikler ortam anahtarlarıdır. Çok dilli yollar, satıcıya özel siteler ve satıcı kaydı, yönlendirme katmanını yeniden inşa etmeden etkinleştirilebilir:

SHOP_MULTILOCALE=true
SHOP_MULTISHOP=true
SHOP_REGISTRATION=true

Birçok proje için config/shop.php, özelleştirmelerin başlayacağı yerdir.


Sayfaları Bileşenlerden Oluşturun

Bir vitrin sayfası bileşenlerden oluşturulur. Ürün detay sayfası, dil seçimi, mini sepet, kategori navigasyonu, arama, bir sahne alanı, ürünün kendisi ve henüz görüntülenen ürünler gibi oturum tabanlı listeleri içerebilir.

Liste config/shop.php dosyasında yaşamaktadır:

'page' => [
            'catalog-detail' => [
                'locale/select',
                'basket/mini',
                'catalog/tree',
                'catalog/search',
                'catalog/stage',
                'catalog/detail',
            ],
        ],
        

Bu versiyon catalog/session satırını hariç tutar. Sayfa artık en son görüntülenen ve sabit ürün alanını hazırlamaz, ancak ürün detay bileşeni dokunulmaz kalır.

Mevcut bir bileşeni bir sayfaya ekleyebilir veya bir Laravel rotası oluşturup gereken Aimeos bileşenlerini Shop facade’i aracılığıyla render edebilirsiniz.

Laravel genişletme kılavuzu, mevcut sayfa bölümlerini, rotaları ve facade entegrasyonunu belgelemiştir.


Sayfa Kabuk Markup’ını ve Temayı Ayrı Tutun

Aimeos, sunumu üç katmana ayırır. Blade görünümleri, çevresindeki Laravel sayfasını tanımlar, bileşen şablonları vitrin markup’ını oluşturur ve temalar CSS, JavaScript, fontlar ve resimleri sağlar.

Tam bir ürün detay sayfası kabuğunu değiştirmek için, ilgili paket görünümünü uygulama’nın vendor görüşü dizinine kopyalayın:

resources/views/vendor/shop/catalog/detail.blade.php

Laravel, uygulama kopyasını tercih eder, böylelikle paket dosyası dokunulmaz kalır.

Sayfa kabuğu zaten doğruysa ama ürün markup’ı değilse, yalnızca proje genişletmesinde ilgili şablonu aşırı yazın:

templates/client/html/catalog/detail/body.php

Aynı adlı proje şablonu, varsayılanın üzerinde öncelik kazanır. Özel bir resim galerisi yalnızca catalog/detail/image.php gerektirebilir; tüm detay bileşeninin bir kopyasını gerektirmez.

HTML yapısı zaten doğruysa, bir tema yeterlidir. Aimeos, bileşen başına catalog-detail.css ve basket-mini.js gibi varlıkları saklar, böylece sayfalar yalnızca kullandıkları bileşenlerin varlıklarını yükler.

Aşırı yazmanın boyutu, güncellemeler sırasında önemlidir. Örneğin, image.php yerine body.php‘yı değiştirmek, daha az üst akış kodu karşılaştırma bırakır.

Geliştirme sırasında, yapılandırma veya şablon değişiklikleri görünmüyorsa Aimeos ve derlenmiş Blade önbelleklerini temizleyin:

php artisan aimeos:clear
php artisan view:clear

Resmi kılavuzlar, şablon aşırı yazmaları ve özel temalar ile ilgili bilgileri kapsamaktadır.


İş Kurallarını Dekoratörlerle Ekleyin

Pek çok proje kuralı, yalnızca mevcut davranışın etrafında çalıştırılmasını gerektirir. Tipik örnekler arasında bölgesel kullanılabilirlik kontrolü, audit olayı, harici bir hizmetten gelen veriler veya bir öğe saklanmadan önceki doğrulama yer alır.

Bir dekoratör, mevcut nesneyi sarar, yalnızca ilgili yöntemleri değiştirir ve geri kalanını devreder.

Örneğin, bir ürün kontrolörü dekoratörü, get() üzerinden bireysel olarak alınan ürünleri, Laravel projesine ait bir uygulama servisine karşı kontrol edebilir:

namespace Aimeos\Controller\Frontend\Product\Decorator;

        use App\Commerce\AvailabilityRule;
        use Aimeos\MShop\Product\Item\Iface;

        final class Availability extends Base
        {
            public function get(string $id): Iface
            {
                $item = parent::get($id);

                app(AvailabilityRule::class)->assertPurchasable($item);

                return $item;
            }
        }
        

AvailabilityRule sıradan bir Laravel uygulama kodudur. Dekoratör, bunu Aimeos ürün kontrolörü ile bağlar.

Sınıf,

src/Controller/Frontend/Product/Decorator/Availability.php

Şu şekilde config/shop.php dosyasında kaydedilir:

'controller' => [
            'frontend' => [
                'product' => [
                    'decorators' => [
                        'local' => ['Availability'],
                    ],
                ],
            ],
        ],
        

Sadece get() değişir. Ürün aramaları, toplama ve kalan kontrolör API’si, orijinal uygulama üzerinden devam eder. Bu örnek, yalnızca doğrudan ürün alımını güvence altına alır. Eğer kural, bir ürünün satın alma durumunu belirliyorsa, bunun sepet veya ödeme aşamalarında da tekrar gerçekleşmesi sağlanmalıdır.

HTML istemcileri ve veri yöneticileri aynı deseni destekler. Birden fazla dekoratör bir arada kullanılabilir, böylece ilgili kurallar bir proje sınıfında toplanmadan uygulanabilir.

Standart davranış uygun olmadığında, Aimeos fabrikaları isimlendirilmiş değişimler konusunda da destek verir. Örneğin, controller/frontend/product/name değerini Project olarak ayarlamak, Aimeos\Controller\Frontend\Product\Project sınıfını seçer. Bu, eğer bir dekoratör, orijinal uygulamanın çoğu kısmını değiştirmesi gerekiyorsa kullanılabilir.


Daha Büyük Özelleştirmeleri Tek Bir Pakette Toplayın

Bir özelleştirme birden fazla sınıf, şablon, çeviri veya veritabanı değişikliğini içerdiğinde, bir proje spesifik Aimeos uzantısına dönüşmelidir.

Temel bir tabloyu genişletmeden önce, gereksinimin bir Aimeos özelliği, niteliği veya ilgili alan öğesine uyup uymadığını kontrol edin. Çoğu proje spesifik ürün verisi, çekirdek şemayı değiştirmeden saklanabilir.

Kendi başına dağıtım, zaten packages/*‘ı bir Composer yol deposu olarak beyan eder. Bir uzantı, geliştirme sırasında orada yaşayabilir ve başka bir bağımlılık gibi yüklenebilir:

composer require acme/shop-extension

Tipik bir proje uzantısı şunları içermektedir:

packages/shop-extension/
├── composer.json
├── manifest.php
├── config/
├── i18n/
├── setup/
├── src/
├── templates/
└── themes/

Manifest, paketin katkıda bulunduğu kaynakları kaydeder. setup/ dizini şemayı güncelleyerek taşıyabilir, Composer otomatize eder ve uzantı Laravel ile Aimeos’tan bağımsız olarak versiyonlanabilir.

Tek bir mağaza için, Aimeos’a özgü kodunu tek yerde saklamak sağlar. Birden fazla mağaza çalıştıran kuruluşlar, bir entegrasyon, tema veya iş kuralını uygulama arasında paylaşmak için aynı paketi kullanabilirler.

uzantı belgeleri, manifest ve paket yapısını açıklarken, uzantı oluşturucusu başlangıç dosyalarını oluşturur.


HTML Ön Yüzünü Ne Zaman Değiştireceğinizi Bilin

Şablon aşırı yazmaları, uygulama bileşen modeline uyduğu sürece iyi çalışır. Eğer neredeyse her sayfanın değiştirilmesi gerekiyorsa veya aynı ticaret arka ucu web, mobil ve mağaza istemcilerine hizmet vermek zorundaysa, API’ler genellikle daha temiz bir seçenek sunar.

Aimeos, vitrin verilerini JSON:API üzerinden ve yönetimi GraphQL aracılığıyla açığa çıkarır. Ürün, fiyat, stok, sepet ve sipariş mantığı yerinde kalırken, yeni bir istemci sunumu değiştirebilir.

Bir ekip bu değişikliği bir anda yapmak zorunda değildir. Çalışan vitrin korunabilir, birkaç şablonun aşırı yazılması ve API’lerin yalnızca ayrı bir arayüze ihtiyaç duyan kanallar için kullanılması mümkündür.


Yapının Maliyeti

İlk uzantı, bazı yönler gerektirir. Yapılandırma yolları, sınıf ve şablon yollarına karşılık gelir ve adlandırma kuralı, genel bir Laravel kancasından daha açıktır.

Bir kez controller/frontend/product/decorators/local ürün denetleyicisinin dekoratör dizinine yol açtığında, aynı ilişki platform boyunca tekrar eder. Yollar, davranışın kimin sahip olduğunu ve projenin nasıl bir değişim geçirdiğini görme olanağı tanır.

Ayrım, özel kodu yukarı akış değişikliklerine karşı korumaz. Şablonlar, dekoratörler ve yer değiştirme sınıfları, büyük güncellemeler sırasında hala gözden geçirilmelidir, ancak etkilenen yüzey, açık ve projeye özgü uzantıya hapsedilmiştir.

Yukarı akış kodu vendor/‘da kalır, proje kodu proje uzantısında kalır ve güncellemeler, bir kaynak kodu birleştirmesi yerine belirli bir uyumluluk incelemesi gerektirir.

Her tür değişikliğin net bir evi vardır. Uygun olana en darını kullanarak, bir mağaza Aimeos varsayılanlarından uzaklaşabilir, özelleştirmelerini yaparken bir çatal haline gelmiş olmaz.

Kaynak: Orijinal Makale

Contents
  • En Küçük Genişletme Noktasını Seçin
  • Yapılandırma ile Başlayın
  • Sayfaları Bileşenlerden Oluşturun
  • Sayfa Kabuk Markup’ını ve Temayı Ayrı Tutun
  • İş Kurallarını Dekoratörlerle Ekleyin
  • Daha Büyük Özelleştirmeleri Tek Bir Pakette Toplayın
  • HTML Ön Yüzünü Ne Zaman Değiştireceğinizi Bilin
  • Yapının Maliyeti
Laravel’de HTML’den kurs bitirme sertifikaları nasıl oluşturulur
WhatsApp, uygulamanın kendisinde iş aramalarını ikiye katlıyor
Tema özelleştirilebilir bir CMS yönetim paneli oluşturma: shadcn/ui + Tailwind v4 ile 50’den fazla bileşenden alınan dersler
Kiracılar Arası Artisan Komutlarını Çalıştırma: tenants:run Kılavuzu (stancl/tenancy)
İşçi Çöküşlerini Durdurma: Üretimde Laravel Kuyruk Bellek Sızıntılarını Giderme
Bu Makaleyi Paylaş
Facebook Bağlantıyı Kopyala Yazdır
Paylaş
Önceki Makale Intel, Veri Merkezi Grubu’nda İşten Çıkarma Yapacak
Sonraki Makale Modern Warfare 4’te Efsanevi Desert Eagle ile Yeni Dönem Başlıyor

Sanal Medya

FacebookBeğen
452Takip Et
PinterestSabitle
237Takip Et

Son Eklenenler

Acil: N-Günlerin Sonu! Hızlı Yamanın Tükenişi ve Krizler
Siber Güvenlik
Einride Elektrikli Nakliyat için 38 Milyon Dolar Yatırım Yaptı
Genel
Stanford Öğrencileri Pichai’nin Konuşmasını Neden Terk Etti?
Genel
Peak Design’in modüler Alan Braketi ile Yenilikçi Finder Etiketi!
Liste
Nvidia’nın DLSS 5: Üç AI modu ile gerçek zamanlı detay değişimi
Donanım
Laravel’de Doğrulanabilir PDF Sertifikaları Oluşturma Yöntemi
Yazılım
//

Siber güvenlik, yapay zeka ve savunma sanayiinden; finans ve sinema dünyasına uzanan geniş bir yelpaze. Teknomers; teknoloji, strateji ve yazılım dünyasını sade bir dille sizlerle buluşturuyor.

Kurumsal

  • Hakkımızda
  • Gizlilik politikası
  • Tanıtım Yazısı ve Backlink Hizmeti

Kategoriler

  • Teknoloji
  • Oyun
  • Sinema
  • Siber Güvenlik
  • Bilim
  • Finans
  • Dünyadan Güncel Haberler

Populer

  • TV'de Ücretsiz İzlenebilen Şifresiz Erotik Kanallar (2025 Güncel Frekans Listesi)

  • The Last of Us PC Kontrolleri: Hızlı Silah Değiştirme ve Tüm Tuşlar (2025)

  • Hogwarts Legacy'de Odaklanma İksiri Nasıl Yapılır?

Teknomers | Dünyadan Güncel Teknoloji | Oyun | Müzik | Film | Spor HaberleriTeknomers | Dünyadan Güncel Teknoloji | Oyun | Müzik | Film | Spor Haberleri
Bizi Takip Et
© 2026 Teknomers. All Rights Reserved.
Welcome Back!

Sign in to your account

Kullanıcı Adı veya E-posta Adresi
Şifre

Şifrenizi mi unuttunuz?