Merhaba arkadaşlar, woocommerce altın ve gümüş satışı yaptğımız bir e-ticaret sitemiz var. altın ve gümüş satarken faturalandırma kısmında manuel yapmak zorunda kalıyoruz. şu an normal ürün gibi faturalandırılıyor. Ancak bize sipariş geldiğinde şu şekilde olması gerekiyor ki faturada da bu şekilde gözüksün; Sitede altın ürünün fiyatı 100tl ise, faturada kdv dahil 90 + kdv dahil %10 işçilik olarak kalemlendirilmesi gerekiyor.
Yani sipariş görüntüleme ve fatura ekranında şu şekilde gözükecek:
altın ürün: 88,24tl + %2 kdv
işçilik: 8,33tl + %20 kdv
müşteri sadece sepet kısmında görebilir. ürün kataloğunda böyle bir ayrımı görmemesi daha sağlıklı. sepette ayrılabilir kalem kalem.
Bunu başta bundle ürün olarak yapmak istedim fakat çok zorlardı. çünkü fazla ürün var. bunu ürün tipi olarak seçtiğimizde doğrudan bu şekilde fiyatlandırılır gibi bişeyler düşündüm. fakat yardımlarınıza ve önerilerinize açığım. Ücretli destek sağlayabilecekler için de bana pmden ulaşabilir. Ücret tutarlarıyla birlikte.
Woocommerce ürün fiyatında sepette işçiliği ayırma
5
●170
- 24-06-2024, 08:29:46
- 24-06-2024, 08:35:44Kolay Gelsin,
WooCommerce PDF Invoices & Packing Slips: Bu eklenti, faturalarda özel kalemler eklemenizi ve bu kalemlerin detaylarını düzenlemenizi sağlar.
WooCommerce Product Add-Ons: Ürünlere ek maliyetler (örneğin işçilik ücreti) eklemenize olanak tanır.
Bu tür özel faturalandırma işlemleri için WooCommerce'de çeşitli eklentiler kullanabilirsiniz. Eğer bunlar işimi çözmüyor diyorsan da;
add_filter('woocommerce_get_item_data', 'customize_checkout_item_data', 10, 2); function customize_checkout_item_data($item_data, $cart_item) { $product = wc_get_product($cart_item['product_id']); if ($product->is_type('your_custom_product_type')) { $gold_price = $product->get_price() * 0.9; $labor_cost = $product->get_price() * 0.1; $item_data[] = array( 'name' => 'Altın Ürün', 'value' => wc_price($gold_price) ); $item_data[] = array( 'name' => 'İşçilik', 'value' => wc_price($labor_cost) ); } return $item_data; }Sipariş ve fatura ekranlarında ürün fiyatlarını ve işçilik maliyetlerini ayrı ayrı gösterecek bu kodu kullanabilirsin. Kodu test etmedim ama %99 çalışacaktır.
Diğer bir çözüm yöntemi ise faturaların özelleştirilmesi için kullanılan eklentiler üzerinden fatura şablonlarını düzenleyebilir ve ihtiyacınıza uygun hale getirebilirsiniz. Bu sayede altın ve işçilik maliyetlerini ayrı kalemler olarak gösterebilirsiniz.
Saygılarımla. - 24-06-2024, 08:56:32munkererkadam adlı üyeden alıntı: mesajı görüntüle
Hocam çok teşekkür ederim, kodu denedim fakat çalışmadı açıkcası. ekran aşağıdaki gibi. Bahsettiğiniz eklentiler de işimi görmedi. benim bu ayrıştırmayı kategori bazlı da yapmam lazım aslında. sitede sadece altın ürün yok. normal ürün de mevcut. ücretli tekliflerinizi bekliyorum.
- 24-06-2024, 09:05:08Ücretli teklif vermek isteseydim direk yazardımyusufyuxel adlı üyeden alıntı: mesajı görüntüle
Eğer işin içerisine kategori de girecekse biraz komplike işlemler meydana gelir. Aslında size ilettiğim 2 eklenti işinizi rahatlıkla çözecektir. İnternetten biraz araştırmanızı tavsiye ederim. Çünkü benzer şekilde bir problemi bu eklentiler sayesinde çözmüştük. 1 saatlik vaktinizi harcayarak bence kolayca çözüm sağlayabilirsiniz. - 24-06-2024, 09:37:19
- 24-06-2024, 12:07:37Merhaba
Ürün ekleme sayfası için
// WooCommerce Ürün Düzenleme Sayfasına İşçilik Maliyeti Alanı Eklemek add_action('woocommerce_product_options_general_product_data', 'custom_product_field'); function custom_product_field() { woocommerce_wp_text_input( array( 'id' => 'labour_cost', 'label' => __('Labour Cost', 'woocommerce'), 'desc_tip' => 'true', 'description' => __('Enter the labour cost for this product.', 'woocommerce'), 'type' => 'number', 'custom_attributes' => array( 'step' => 'any', 'min' => '0' ) ) ); } // İşçilik Maliyetini Kaydetmek add_action('woocommerce_process_product_meta', 'save_custom_product_field'); function save_custom_product_field($post_id) { $product = wc_get_product($post_id); $labour_cost = isset($_POST['labour_cost']) ? $_POST['labour_cost'] : ''; $product->update_meta_data('labour_cost', sanitize_text_field($labour_cost)); $product->save(); }Fiyat ayrıştırma
// Fiyatları Ayrıştırmak function split_product_price($price, $labour_cost, $vat_rate_product, $vat_rate_labour) { $product_price = ($price - $labour_cost) / (1 + $vat_rate_product); $labour_price = $labour_cost / (1 + $vat_rate_labour); return array( 'product_price' => $product_price, 'labour_price' => $labour_price ); }
Fatura sayfası
// Sepet Görünümünü Özelleştirmek add_filter('woocommerce_get_item_data', 'display_custom_price_breakdown_in_cart', 10, 2); function display_custom_price_breakdown_in_cart($item_data, $cart_item) { $product_id = $cart_item['product_id']; $product = wc_get_product($product_id); $labour_cost = $product->get_meta('labour_cost'); if ($labour_cost) { $price = $product->get_price(); $split_price = split_product_price($price, $labour_cost, 0.02, 0.20); $item_data[] = array( 'name' => __('Product Price', 'woocommerce'), 'value' => wc_price($split_price['product_price']) . ' + %2 KDV' ); $item_data[] = array( 'name' => __('Labour Cost', 'woocommerce'), 'value' => wc_price($split_price['labour_price']) . ' + %20 KDV' ); } return $item_data; } // Fatura Görünümünü Özelleştirmek add_action('woocommerce_order_item_meta_end', 'display_custom_price_breakdown_in_order', 10, 3); function display_custom_price_breakdown_in_order($item_id, $item, $order) { $product_id = $item->get_product_id(); $product = wc_get_product($product_id); $labour_cost = $product->get_meta('labour_cost'); if ($labour_cost) { $price = $product->get_price(); $split_price = split_product_price($price, $labour_cost, 0.02, 0.20); echo '<p><strong>' . __('Product Price', 'woocommerce') . ':</strong> ' . wc_price($split_price['product_price']) . ' + %2 KDV</p>'; echo '<p><strong>' . __('Labour Cost', 'woocommerce') . ':</strong> ' . wc_price($split_price['labour_price']) . ' + %20 KDV</p>'; } }
