WooCommerce, WooShop

WooCommerce μέιωση Φ.Π.Α για νησιά, σε σενάριο τιμολόγησης και χονδρικής.

Πολλοί πελάτες μας ρωτούν για λύση στο θέμα των τιμολογίων, στα νησιά, όπου υπάρχει μείωση συντελεστών Φ.Π.Α. Συγκεκριμένα το 24% -> 17%, το 13% -> 9% και το 6% -> 3%. Παρακάτω δίνουμε τον κώδικα που χρειάζεται για να μπορέσετε να λύσετε το θέμα αυτό. To Fix αυτό γίνεται σε συνεργασία με το Timologia for WooCommerce, θα πρέπει να το έχετε εγκαταστήσει στο eshop σας. Αν δεν δουλέψει η παρακάτω λύση, θα οφείλεται στο meta value του plugin Timologia for WooCommerce, που μπορεί να το έχετε αλλάξει σε Y ή Ν ή Ναι και Όχι. Θα πρέπει να γίνει η αλλαγή και στον παρακάτω κώδικα βάσει της τιμής αυτής, σε αυτό το σημείο του κώδικα if ( ‘YES’ === $timologio ). Για τους πελάτες του WooShop παρέχουμε και επιπλέον κώδικα για την ίδια διαδικασία, όταν η παραγγελία γίνεται μέσω API.

Σημείωση: Πριν κάνετε κάποια αλλαγή, κρατήστε ένα backup των funtcions του θέματος σας, για καλό και για κακό. Ιδανικά προχωρήστε στις αλλαγές σε κάποιο staging eshop. Αν δεν ασθάνεστε άνετα ή δεν υπάρχει η βασική οικιότητα με τα παρακάτω, μπορούμε να το κάνουμε εμείς εγκατάσταση στο site σας, με επιπλέον χρέωση. 

Βήμα 1

Πηγαίνετε στο WooCommerce – Ρυθμίσεις – Invoice Settings (Αυτό θα εμφανιστεί, αφού έχετε εγκαταστήσει το Timologia for WooCommerce). Συμπληρώνετε YES (= Τιμολόγιο) και NO (= Απόδειξη)

 

Βήμα 2

Πηγαίνετε στο WooCommerce – Ρυθμίσεις – Φόρος – Επιπρόσθετες κατηγορίες φόρου και δημιουργείτε, αυτές που δεν υπάρχουν, από την παρακάτω λίστα. Στο σενάριο μας, ο βασικός συντελεστής είναι 24%, ο 13 είναι 13% και ο 6 είναι 6%. Θα πρέπει για τον κάθε συντελεστή να υπάρχει ο αντίστοιχος invoice του, όπως βλέπετε και κάτω δηλαδή invoice24, invoice13, invoice6.

13
6
invoice24
invoice13
invoice6
Zero rate

Βήμα 3

Μετά το βήμα 2, πηγαίνουμε και ρυθμίζουμε τις συνθήκες των διάφορων συντελεστών μας, όπως πιο κάτω. Στους συντελεστές invoice βάζουμε τους Τ.Κ νησιών (ενδέχεται να υπάρχουν και άλλοι) – Για λόγους copy – paste τους παραθέτουμε και εδώ: 

85301; 82300; 82150; 82132; 82131; 82104; 82103; 82101; 83400; 83302; 83301; 83300; 83200; 83104; 83103; 83102; 83101; 83100; 85300; 81500; 81401; 81400; 81300; 81200; 81150; 81132; 81131; 81109; 81108; 81107; 81106; 81105; 81104; 81103; 81102; 81101; 81100; 85400; 85401; 85600

Βήμα 4

Ανοίγετε τα functions του θέματος σας και εισάγετε τον παρακάτω κώδικα. Με πολύ προσοχή!!

// ————————
// DSDC START
// ————————

/**
* @snippet Switch tax rate @ checkout
* @author DIMITRIOS KALANTZIS
*/

add_action( ‘woocommerce_checkout_update_order_review’, ‘dsdc_checkout_invoice_set_session’ );

function dsdc_checkout_invoice_set_session( $posted_data ) {
parse_str( $posted_data, $output );
if ( isset( $output[‘billing_timologio’] ) ) {
WC()->session->set( ‘timologio’, $output[‘billing_timologio’] );
}
}

add_action( ‘woocommerce_before_calculate_totals’, ‘dsdc_tax_switcher_totals’ );

function dsdc_tax_switcher_totals( $cart ) {
if ( is_admin() && ! defined( ‘DOING_AJAX’ ) ) return;
if ( did_action( ‘woocommerce_before_calculate_totals’ ) >= 2 ) return;
$timologio = WC()->session->get( ‘timologio’ );
if ( ‘YES’ === $timologio ) {
foreach ( $cart->get_cart() as $cart_item_key => $cart_item ) {
if ( ” == $cart_item[‘data’]->get_tax_class() ) {
$cart_item[‘data’]->set_tax_class( ‘invoice24′ );
} elseif ( ’13’ == $cart_item[‘data’]->get_tax_class() ) {
$cart_item[‘data’]->set_tax_class( ‘invoice13’ );
} elseif ( ‘6’ == $cart_item[‘data’]->get_tax_class() ) {
$cart_item[‘data’]->set_tax_class( ‘invoice6’ );
}

}
} else {
foreach ( $cart->get_cart() as $cart_item_key => $cart_item ) {
if ( ‘invoice24’ == $cart_item[‘data’]->get_tax_class() ) {
$cart_item[‘data’]->set_tax_class( ” );
} elseif ( ‘ivnoice13’ == $cart_item[‘data’]->get_tax_class() ) {
$cart_item[‘data’]->set_tax_class( ’13’ );
} elseif ( ‘ivnoice6’ == $cart_item[‘data’]->get_tax_class() ) {
$cart_item[‘data’]->set_tax_class( ‘6’ );
}
}
}
}

// ————————
// DSDC END
// ————————

Αφήστε μια απάντηση

Η ηλ. διεύθυνση σας δεν δημοσιεύεται. Τα υποχρεωτικά πεδία σημειώνονται με *