Salve a tutti,
ho da poco aperto il mio negozio online, al quale lavoro dallo scorso maggio.
Ho installato varie contribuzioni e fatto qualche personalizzazione, tipo caricare 3 immagini invece che 1, attivare una quantità di riordino valorizzabile per ogni prodotto invece che usare il campo generico uguale per tutti i prodotti (ancora devo fare il report però).
Sono un programmatore di altri linguaggi, non conosco il PHP. Qualcosa ci capisco leggendolo, diciamo le cose basilari.
Ora mi trovo a dover affrontare questo problema:
ho dei prodotti voluminosi che non posso spedire con prioritaria o raccomandata in quanto superano i 5cm di altezza.
Ho già predisposto nella creazione/modifica del prodotto un campo checkbox che attivo quando il prodotto è appunto voluminoso.
Adesso però non so bene dove intervenire per bloccare o meno la prioritaria, tenendo conto che:
- basta che 1 solo prodotto del carrello sia voluminoso per scartarla
- se la spedizione va all'estero invece posso usare la prioritaria (ci son solo dei limiti nella dimensione della scatola).
Così a naso mi pare che il punto dove intervenire sia nella classe 'shopping_chart.php', perchè mi pare scorra tutti i prodotti per calcolarne il peso. Forse mi basterebbe impostare lì una variabile che poi leggo nel modulo prioritaria e se attiva scarto il metodo di spedizione !?!?!
Cosa mi consigliate ?
grazie
Roby
Prodotto voluminoso : no posta prioritaria
Moderatore: mod Generali
-
- membro Baby
- Messaggi: 73
- Iscritto il: 10/09/2008, 23:31
Re: Prodotto voluminoso : no posta prioritaria
La soluzione è piuttosto semplice in questo caso.robysoldtamiya ha scritto: Così a naso mi pare che il punto dove intervenire sia nella classe 'shopping_chart.php', perchè mi pare scorra tutti i prodotti per calcolarne il peso. Forse mi basterebbe impostare lì una variabile che poi leggo nel modulo prioritaria e se attiva scarto il metodo di spedizione !?!?!
Cosa mi consigliate ?
grazie
Roby
Nel metodo check() della classe del modulo postaprioritaria utilizza come spunto un codice di questo tipo:
Codice: Seleziona tutto
function check() {
global $cart;
..................
$productsArray = $cart->get_products();
for ($i = 0; $i < count($productsArray); $i++) {
if ($productsArray[$i]['voluminoso'] == '1') {
.....
}
}
............
//Controllo zona
}
Naturalmente devi modificare anche il metodo get_products della classe shopping_cart per effettuare la query anche sul nuovo campo "prodotto_voluminoso" che mi pare di aver capito hai inserito nella tabella products.
Saluti
Marcus
Nuovo pacchetto osCommercePRO (osCPRO) + Modulo Interfacciamento Gestionale Danea.
Visita la demo: http://oscpro.oscommercedev.com/index.php
Visita la demo: http://oscpro.oscommercedev.com/index.php
-
- membro Baby
- Messaggi: 73
- Iscritto il: 10/09/2008, 23:31
Re: Prodotto voluminoso : no posta prioritaria
Ok, sono riuscito nel mio intento 
Nella function 'quote' dei moduli shipping postepostaprioritaria.php e postepostaraccomandata.php ho inserito questa parte di codice
grazie per i suggerimenti

Nella function 'quote' dei moduli shipping postepostaprioritaria.php e postepostaraccomandata.php ho inserito questa parte di codice
Codice: Seleziona tutto
if ($shipping == -1) {
$shipping_cost = 0;
$error = true;
$error_text = MODULE_SHIPPING_POSTEPOSTAPRIORITARIA_UNDEFINED_RATE;
} else {
//Roby no spedizione prodotti voluminosi ITALIA
if ($dest_country == 'IT') {
$productsArray = $cart->get_products();
for ($i = 0; $i < count($productsArray); $i++) {
if ($productsArray[$i]['voluminous'] == '1') {
$error = true;
$error_text = MODULE_SHIPPING_POSTEPOSTAPRIORITARIA_NO_VOLUMINOUS;
}
}
}
if ($error != true) {
$shipping_cost = ($shipping * $shipping_num_boxes) + constant('MODULE_SHIPPING_POSTEPOSTAPRIORITARIA_HANDLING_' . $dest_zone);
}
}