Neden profesyonel bir WooCommerce ürün içe aktarma aracına ihtiyaç var?
Çevrimiçi mağazaların büyümesiyle birlikte, ürünleri manuel olarak tek tek eklemek giderek daha az pratik hale geliyor. Mevcut mağaza verilerinin aktarılması, stok fiyatlarının toplu olarak güncellenmesi veya tedarikçilerden ürün listelerinin alınması gibi işlemler için veri aktarımı işlemleri çok önemlidir. WooCommerce’un kendisi sunduğu temel veri aktarım araçları basit senaryolar için yeterlidir; ancak karmaşık ürün türleri, özelleştirilmiş alanlar ve büyük miktarda veriyle çalışırken, geliştiricilerin daha sistemli ve güçlü yöntemler kullanmaları gerekmektedir.
Doğru araçları ve yöntemleri kullanarak ürünleri içe aktarmak, sadece çok zaman tasarrufu sağlamakla kalmaz, aynı zamanda insan hatalarını en aza indirir ve veri tutarlılığını da garanti eder. Standart ve basit ürünlerden, değişken ürünlere, abonelik ve paket satışları gibi daha gelişmiş ürün türlerine kadar, iyi yapılandırılmış bir içe aktarma süreci e-ticaret operasyonlarının otomasyonunun temel taşıdır. Bu makalede, standart CSV dosyalarının hazırlanmasından, özel ürünlerin programlama yoluyla işlenmesine kadar olan tam süreci derinlemesine inceleyeceğiz.
Standart bir CSV dosyası hazırlayarak toplu olarak içe aktarma işlemi yapın.
WooCommerce, ürünleri CSV dosyaları aracılığıyla içe aktarma özelliğine sahiptir ve bu, en yaygın ve en doğrudan toplu işlem yöntemidir. Önemli olan, WooCommerce’un beklentilerine uygun bir CSV dosyası hazırlamaktır.
Tavsiye edilen okuma WooCommerce e-ticaret web sitesi geliştirme: Online mağazanızı sıfırdan oluşturun.。
“Anlamak için temel ürün veri sütunlarını”
Temel bir CSV dosyasının içermesi gereken bazı kritik sütunlar vardır. Bunlar arasında…ID和TypeSütunlar en önemlidir.IDMevcut ürünlerle eşleşmek ve güncellemeler yapmak için kullanılır; boş bırakılırsa yeni bir ürün oluşturulur.TypeBu durumda, ürün türleri tanımlanmıştır, örneğin…simple(Basit ürünler),variableDeğişken ürünlergrouped(Gruplandırılmış ürünler) vb. Diğer temel sütunlar arasında…SKU(Stok Birimi)Name(Ürün Adı),Published(Yayın Durumu; 1 = Yayınlanmış)Description(Açıklama)Regular price(Normal Fiyat) ve ayrıcaStock(Stok miktarı).
Değişken ürünler için ithalat süreci iki adımdan oluşur: Öncelikle ana ürün ithal edilir, ardından onun alt varyantları ithal edilir. Ana ürün…TypeListelenmişvariableAlt varyantlarTypeListelenmişvariationVe bunu şu yolla gerçekleştirin:ParentSütun, ilişki kurmak için üst ürünün SKU’sunu belirtir.
Kategorileri, etiketleri ve resimleri işleme
Kategorilerin ve etiketlerin içe aktarılması belirli bir formata göre yapılmalıdır. Ürün kategorileri için…CategoriesSütunlarda “Ana Kategori > Alt Kategori” formatı kullanılmalıdır ve birden fazla kategori İngilizce virgül (;) ile ayrılmalıdır. Örneğin: “Giyim > Gömlekler; Yaz Yeni Ürünleri”. Etiketler ise…TagsSütunlar, İngilizce virgüllerle ayrılmıştır.
Ürün resimlerinin ithali oldukça esnektir. Bunu şu yollarla gerçekleştirebilirsiniz:ImagesSütunlara resimlerin URL’leri yazılmalıdır; birden fazla URL, İngilizce virgül (,) ile ayrılmalıdır. İlk URL, ana resim olarak kullanılacaktır. WooCommerce, içe aktarma sırasında bu resimleri indirmeye ve medya kütüphanesine kaydetmeye çalışacaktır. Başka bir yöntem ise, resimleri önceden FTP yoluyla sunucunun belirli bir dizinine yüklemek ve ardından CSV dosyasında göreceli path’leri kullanmaktır.
Aşağıda, standart ve basit bir ürünün CSV (Comma Separated Values) dosyasına ait bir örnek verilmiştir:
Tavsiye edilen okuma WooCommerce eğitimi: Profesyonel e-ticaret web sitesi oluşturmanın sıfırdan başlamak için kapsamlı bir rehber.。
ID,Type,SKU,Name,Published,Description,Regular price,Stock,Categories,Images
,simple,T-SHIRT-SM,纯棉简约T恤,1,这是一件舒适的纯棉T恤。,29.99,100,服饰 > 上衣,https://example.com/tshirt.jpg WP CLI kullanarak gelişmiş içe aktarma işlemlerini otomatikleştirme
Geliştiriciler ve ileri düzey kullanıcılar için WordPress komut satırı araçlarıWP-CLIDaha güçlü ve betiklenebilir bir içe aktarma yöntemi sunulmuştur. Özellikle dağıtım süreçlerine entegrasyon veya çok büyük veri kümelerinin işlenmesi için uygundur.
Temel bir geçiş yöntemi…wp-cliCSV dosyasını içe aktarmak için kullanılan komut şu şekildedir:
wp import products.csv --authors=skip Ancak daha yaygın bir yöntem, özel betikler kullanmaktır. Bir PHP betiği yazabilir ve bunu kullanarak…WP-CLI的wp eval-fileKomutlar, belirtilen işlemlerin gerçekleştirilmesi için kullanılır. Bir senaryonun (script) temeli, bu komutların doğru bir şekilde kullanılmasına dayanır.wc_get_product_objectFonksiyon, bir ürün nesnesi oluşturur ve bu nesnenin özelliklerini ayarlar.
Aşağıda, basit bir ürünü programlama yoluyla oluşturmak için kullanılan bir PHP script örneği bulunmaktadır:
<?php
// 读取CSV数据
$csvFile = 'products.csv';
if (($handle = fopen($csvFile, 'r')) !== FALSE) {
$header = fgetcsv($handle); // 读取标题行
while (($data = fgetcsv($handle)) !== FALSE) {
$productData = array_combine($header, $data);
// 创建产品对象
$product = new WC_Product_Simple();
$product->set_name($productData['Name']);
$product->set_sku($productData['SKU']);
$product->set_regular_price($productData['Regular price']);
$product->set_description($productData['Description']);
$product->set_stock_quantity($productData['Stock']);
$product->set_status($productData['Published'] == 1 ? 'publish' : 'draft');
// 处理分类
$categoryNames = explode(';', $productData['Categories']);
$categoryIds = [];
foreach ($categoryNames as $catName) {
$term = term_exists(trim($catName), 'product_cat');
if (!$term) {
$term = wp_insert_term(trim($catName), 'product_cat');
}
if (!is_wp_error($term)) {
$categoryIds[] = (int)$term['term_id'];
}
}
$product->set_category_ids($categoryIds);
$product->save();
echo "产品已创建/更新: " . $productData['Name'] . " (ID: " . $product->get_id() . ")n";
}
fclose($handle);
}
?> Yukarıdaki komut dosyasını kaydedin.import_products.phpDaha sonra, komut aracılığıyla bunu yapabilirsiniz.wp eval-file import_products.phpYürüt.
WP CLI’yi kullanarak karmaşık ilişkileri yönetin.
WP-CLIGüçlü yanı, karmaşık mantığı işleyebilmesidir. Örneğin, değişken ürünler ve bunların özelliklerini içe aktarırken, önce genel özellikler oluşturulabilir, ardından bu özellikler ürünlere atanabilir ve çeşitler oluşturulabilir. Betikler yazarak, her adımdaki hata işleme ve günlük kaydını hassas bir şekilde kontrol edebilir ve tamamen otomatikleştirilmiş bir içe aktarma süreci gerçekleştirebilirsiniz. Dış API’lerle (örneğin ERP veya tedarikçi sistemleri) senkronizasyon gerektiren durumlarda, bu özellikler kullanılabilir.WP-CLIPlanlanmış görevler (Cron Job’lar) en ideal çözümdür.
Programlama ile özel ürünlerin ve meta verilerin işlenmesi
Standart CSV sütunları ihtiyaçları karşılayamadığında – örneğin, ilişkili özel alanların, üçüncü parti eklentiler tarafından oluşturulan ürün türlerinin (rezervasyon ürünleri gibi) veya karmaşık meta verilerin içe aktarılması gerektiğinde – programlama yöntemlerine başvurulmak zorundadır.
Özel alanlı ürünlerin oluşturulması ve güncellenmesi
WooCommerce ürünlerinin tüm standart verileri (fiyat, stok vb.) ve özel verileri (ACF veya diğer yollarla eklenenler), sonunda meta veri (Post Meta) olarak saklanır. Programatik olarak veri içe aktarmanın temeli, bu meta verilerin doğru bir şekilde kullanılmasındadır.set_Seri yöntemler ve…update_post_metaİşlev.
Diyelim ki elimizde “” adında bir şey var.custom_batch_numberAşağıdaki kod, bir ürün oluşturulurken özel bir alanın (custom field) nasıl ayarlanacağını göstermektedir:
// 假设 $product 是一个 WC_Product 对象
$product->set_name('高级定制产品');
$product->set_regular_price(99.99);
$product->save(); // 必须先保存产品以获得ID
// 更新自定义字段(产品元数据)
$product_id = $product->get_id();
update_post_meta($product_id, 'custom_batch_number', 'BATCH-2026-001');
update_post_meta($product_id, '_custom_field', 'value'); // 下划线开头表示隐藏的元数据 Dikkat edilmesi gereken bir nokta, bazı üçüncü parti eklentilerin kendi ürün türü sınıflarını tanımlamasıdır. Bu tür ürünler oluşturulurken, ilgili sınıfların kullanılması gerekir. Örneğin…new WC_Product_Booking()Ve eklentinin sağladığı belirli bir metodu çağırın.
WooCommerce hook’larını kullanarak ithalat işlemlerini genişletin.
İthalat sürecinde özel mantık eklemek için WooCommerce, birçok “hook” (düğüm) sunar. İki önemli eylem hook’u şunlardır:woocommerce_new_product和woocommerce_update_productBunlar sırasıyla ürün oluşturulduğunda ve güncellendiğinde tetiklenir.
Örneğin, bir ürünü içe aktardıktan sonra, ona otomatik olarak bir iç denetim durumu atayabiliriz:
add_action('woocommerce_new_product', 'my_post_import_actions', 10, 2);
add_action('woocommerce_update_product', 'my_post_import_actions', 10, 2);
function my_post_import_actions($product_id, $product) {
// 自动为所有新导入的产品添加“待审核”标记
update_post_meta($product_id, '_internal_review_status', 'pending');
// 或者根据特定条件进行处理
if (strpos($product->get_sku(), 'PREMIUM') !== false) {
wp_set_object_terms($product_id, 'premium', 'product_tag', true);
}
} Ayrıca, filtre hook’ları (filter hooks)woocommerce_product_import_pre_insert_product_objectAynı zamanda son derece faydalıdır; ürün nesneleri veritabanına eklendikten önce verilerini değiştirmemize olanak tanır. Fiyatların birleşik bir şekilde biçimlendirilmesi, ölçüm birimlerinin dönüştürülmesi veya veri uygunluğunun doğrulanması gibi işlemler için uygundur.
Özetle.
WooCommerce ürünlerinin içe aktarılması, basitten karmaşığa doğru ilerleyen ve birçok aşamadan oluşan bir beceridir. Standart CSV formatını kullanarak ürünleri içe aktarmayı öğrenmek temeldir ve bu yöntem, çoğu toplu güncelleme veya veri aktarımı senaryosu için uygundur. Ancak tekrarlayan görevlerle karşılaşıldığında veya geliştirme süreçleriyle entegrasyon gerektiğinde, daha karmaşık yöntemlerin kullanılması gerekebilir.WP-CLIKomut satırı otomasyonu, WooCommerce’un gücünü göstermektedir. Özellikle özelleştirilmiş mağazalar için, özel alanlar, üçüncü parti eklenti verileri veya karmaşık iş mantığı söz konusu olduğunda, programlama yöntemleri ile WooCommerce hook’larının birleştirilmesi nihai esneklik ve kontrol sağlar. Başarılı bir veri aktarım stratejisi genellikle bu araçların bir kombinasyonunu kullanır: CSV dosyaları günlük toplu işlemler için, karmaşık ve özelleştirilmiş ihtiyaçlar için ise betikler kullanılır. Önemli olan, WooCommerce’un veri yapısını derinlemesine anlamak ve işlemlerden önce mevcut verilerin her zaman tam olarak yedeklenmesidir.
Sıkça Sorulan Sorular.
CSV dosyalarındaki özel karakterler ve kodlama sorunlarıyla nasıl başa çıkılır?
CSV dosyasının UTF-8 kodlamasıyla kaydedildiğinden emin olun; bu, WooCommerce’un resmi içe aktarma aracının tamamen desteklediği tek kodlamadır. Verilerde virgül, tırnak işareti veya satır sonu karakteri gibi özel karakterler bulunuyorsa, tüm alan değerlerini İngilizce çift tırnak işaretleriyle sarmanız gerekir.
Örneğin, açıklamada virgüller bulunuyorsa, bunlar şu şekilde yazılmalıdır:“这是一件优质,舒适的产品”Metin düzenleyicisinde tüm alanların tırnak işaretlerinin eşleşik şekilde kullanıldığını kontrol etmenizi ve bunu sağlamanızı öneririz; bu, içe aktarma sırasında hataları önlemenin önemli bir adımıdır.
Değişken ürünler ithal edilirken özellikler görünmüyorsa veya varyant oluşturma işlemi başarısız olursa ne yapmalıyım?
Bu genellikle CSV formatı veya veri import sırasıyla ilgili bir sorundur. Öncelikle, genel ayarların doğru şekilde yapılandırıldığından emin olun. Ana ürünü import ederken…Type: variableBu durumda, gereken adımları atmanız gerekmektedir.Attribute 1 name和Attribute 1 value(s)Örneğin, sütunlar içinde özellikler tanımlayabilirsiniz.颜色和红色,蓝色。
İkincisi, varyantların içe aktarılması…Type: variationBu durumda, mutlaka şu yolu izlemelisiniz:ParentÜrünler, ebeveyn ürünlerin SKU (Ürün Kimliği) değerlerini doğru bir şekilde içermelidir ve bunlar listelenmelidir.Attribute: 颜色Bu tür sütunlarda, söz konusu varyantın belirli özellik değerleri belirtilir (örneğin…)红色Son olarak, import işlemi tamamlandıktan sonra ürünün “Varyantlar” (Variants) sekmesine gidin ve “Varyant Oluştur” (Create Variant) veya “Değişiklikleri Kaydet” (Save Changes) butonlarına tıklayın. Sistem, belirtilen özelliklere göre tüm olası varyant kombinasyonlarını oluşturacaktır.
Ürün resimlerini programlama yoluyla nasıl doğru bir şekilde ayarlayabilirsiniz?
Programlama aracılığıyla ürün resimlerini ayarlamak, CSV dosyasında URL belirtmekten biraz daha karmaşıktır. Temel adımlar şunlardır: Öncelikle resim dosyasını WordPress medya kütüphanesine yükleyin, ardından bu dosyanın bağlantı ID’sini alın ve bu ID’yi ürüne atayın.
Kullanılabilir.media_sideload_imageFonksiyon, bir resmi bir URL’den indirir ve bunu bir ek olarak oluşturur. Örnek kod aşağıdaki gibidir:
$image_url = 'https://example.com/product.jpg';
$attach_id = media_sideload_image($image_url, $product_id, '产品图片描述', 'id');
if (!is_wp_error($attach_id)) {
// 设置为主图
set_post_thumbnail($product_id, $attach_id);
// 如需加入产品图库
// $gallery_ids = array($attach_id);
// update_post_meta($product_id, '_product_image_gallery', implode(',', $gallery_ids));
} Büyük miktarda ürün yüklerken web sitesi zaman aşımına uğrarsa veya bellek tükenirse ne yapmalı?
Bu durum, sunucunun çalışma süresi sınırlamaları ve bellek kısıtlamalarından kaynaklanmaktadır. Büyük ölçekli veri importları için kesinlikle WordPress arayüzü üzerinden işlem yapmamalı, bunun yerine uygun araçlar veya yöntemler kullanılmalıdır.WP-CLIKomut satırı araçları, PHP’nin zaman aşımı ayarlarından etkilenmediği için tercih edilir.
Senaryo düzeyinde, işlemleri parti parti gerçekleştirme stratejisi benimsenebilir. Örneğin, her seferinde 100 CSV kaydını okuyup işleyebilir ve işlemler tamamlandıktan sonra devam edilebilir.sleep(1)Biraz duraklayın ve eşlik edin.wp_cache_flush()Önbelleği temizleyerek belleği boşaltın. Ayrıca, içe aktarma betiğini çalıştırmadan önce…wp-config.phpGeçici olarak bellek sınırlamaları eklenmiştir:define('WP_MEMORY_LIMIT', '512M');On binlerce hatta yüz binlerce ürünün içe aktarılması durumunda, doğrudan veritabanı üzerinde işlem yapılması veya daha profesyonel veri taşıma araçlarından yararlanılması önerilir.
Bir sonraki adım, bundan sonra ne yapmalıyım?
Daha fazla okuma ve pratik bilgiler.
Aşağıdaki içerikler bu makalenin konusuyla ilgilidir ve daha fazla okumak için uygundur. Öncelikle mevcut sorununuza en yakın makaleden başlayın, sonra çevresel konulara doğru ilerleyin, genellikle daha iyi sonuçlar alırsınız.
- WooCommerce ile Web Sitesi Kurma Kılavuzu: Sıfırdan Kendi Özel Çevrimiçi Mağazanızı Oluşturun
- WooCommerce kurulumu ve site taşıma kılavuzu: Sıfırdan başlayarak ölçeklenebilir bir e-ticaret sitesi oluşturma
- WooCommerce Kapsamlı Web Sitesi Kurma Kılavuzu: Kurulum ve Ayarlamadan E-Ticaret Yönetimine Kadar Pratik Rehber
- WooCommerce’e Giriş: İlk Çevrimiçi Mağazanızı Oluşturun
- WooCommerce Eğitimi: Sıfırdan Başlayarak Güçlü Bir WordPress Bağımsız E-Ticaret Sitesi Kurmak