O sarcină frecventă pentru întreținerea magazinelor virtuale este cea de modificare a prețurilor tuturor produselor din magazin.
De regulă aceste prețuri și tarife noi vin într-un fișier excell sau csv.
Sarcina unui program de rutină ca cel dezvoltat de noi la Sector web este să aplice noile prețuri prezente în fișierul de intrare .csv în câteva secunde pentru sute și mii de produse.
Modificarea automată a prețurilor produselor din magazinul online Woocommerce
Programul încarcă în primul rând fișierul cu noile tarife undeva pe serverul pe care este găzduit magazinul online.
Apoi citește fișierul .csv și salvează într-o matrice (vector) aceste prețuri cu/fără discount pentru fiecare produs și variație de produs.
Ne rămâne de parcurs prin program toată baza de produse și variații de produse și pentru fiecare să modificăm/setăm prețul standard și prețul de vânzare (cel obținut după aplicarea discount-ului).
În exemplul următor, prețurile produselor Woocommerce sunt păstrate în baza de date cu TVA (includ TVA).
Funcția de aplicare de noi tarife este similară cu cea prezentată de noi cu ceva timp în urmă în articolul Modificare prețuri produse Woocommerce prin program..
Funcția de parcurgere a fișierului csv
/**
* @return array
*/
function import_csv_tarife_noi()
{
$file_to_read = fopen('/cale-catre-fisier-tarife/data.csv', 'r');
$tarife = [];
if ($file_to_read !== FALSE) {
$r = 1;
while (($data = fgetcsv($file_to_read, 0, ';')) !== FALSE) {
$tarife[$r] = [];
for ($i = 0; $i < count($data); $i++) {
if ($i == 0) {
$tarife[$r][$i] = $data[$i];
} else {
$tarife[$r][$i] = $data[$i];
$data[$i] = str_replace(".", "", $data[$i]);//eliminam separatorul de mii
$data[$i] = str_replace(",", ".", $data[$i]);//inlocuim separatorul de zecimale "," cu "."
$tarife[$r][$i] = $data[$i];
}
}
$r++;
}
fclose($file_to_read);
}
return $tarife;
}
$tarife_noi = import_csv_tarife_noi();
/**
* Setarea preturilor pentru tarife functie de numarul de zile: pret normal, pret de vanzare
* Este o functie care se aplica doar la modificarea tarifelor de vanzare rezervare loc parcare
*
* @param [array] $tarife_noi
* @return void
*/
function modific_preturi_per_zile_din_csv($tarife_noi)
{
//produsul unic rezervare loc parcare
$product_id = 17730;
$product = wc_get_product($product_id);
$atribute = $product->get_attributes();
$terms = $atribute['pa_numar-zile']->get_slugs();
$data_store = WC_Data_Store::load('product');
foreach ($terms as $t => $t_slug) {
$match_attributes = array(
"attribute_pa_numar-zile" => $t_slug
);
$variation_id = $data_store->find_matching_product_variation(
$product,
$match_attributes
);
if ($variation_id) {
$nrz = (int) $t_slug;
$variable_product = wc_get_product($variation_id);
$regular_price = $tarife_noi[$nrz][1];
$sale_price = $tarife_noi[$nrz][2];
$variable_product->set_regular_price($regular_price);
//set discount incepand cu ziua a doua
if ($nrz >= 2) {
$variable_product->set_sale_price($sale_price);
}
$variable_product->set_price($sale_price);
$variable_product->save();
}
}
Modificarea prețurilor în masă la toate variațiile de produs Woocommerce prin program
Modificarea prețurilor prin import de fișier .csv a fost modificată recent la parcareautopeni.ro.
Tabelele de prețuri afișate utilizatorilor în front-end pe site-ul parcareautopeni.ro sunt generate automat după parcurgerea bazei de date de produse/variații de produse și preluarea prețurilor.
Află detalii privind realizarea site-urilor pe WordPress
Creare site WordPress
Sau ia legatura cu noi aici