• 24-06-2024, 08:29:46
    #1
    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.
  • 24-06-2024, 08:35:44
    #2
    Kolay 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:32
    #3
    munkererkadam adlı üyeden alıntı: mesajı görüntüle
    Kolay 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.

    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
    #4
    yusufyuxel 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.
    Ücretli teklif vermek isteseydim direk yazardım

    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
    #5
    Merhabalar,
    Uygun fiyata sorununuzu giderebilirim.
    Whatsapp: https://wa.me/905318154620
  • 24-06-2024, 12:07:37
    #6
    Merhaba

    Ü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>';
        }
    }