Page 1 of 1
Αφαίρεση αντικαταβολής στην αγορά δωροεπιταγής
Posted: Tue Sep 04, 2012 11:06 pm
by geonick
Όταν κάποιος αγοράζει δωροεπιταγή, δε θα έπρεπε να έχει τη δυνατότητα να πληρώσει με αντικαταβολή. Βρήκα ένα vqmod το οποίο απενεργοποιεί την αντικαταβολή (κάτω από συγκεκριμένες συνθήκες όπως μόνο downloadable προϊόντα ή ύπαρξη δωροεπιταγής στο καλάθι), όμως δε λειτουργεί. Γνωρίζει κανείς κάποια μέθοδο για αντιμετώπιση του προβλήματος;
Re: Αφαίρεση αντικαταβολής στην αγορά δωροεπιταγής
Posted: Thu Sep 06, 2012 3:27 pm
by People's Code
Πόσταρε το vqmod να δω αν είναι εύκολο να τροποποιηθεί όπως θες.
Re: Αφαίρεση αντικαταβολής στην αγορά δωροεπιταγής
Posted: Thu Sep 06, 2012 5:54 pm
by geonick
Ευχαριστώ για την πρόθεση βοήθειας. Παραθέτω το xml:
Code: Select all
<modification>
<id>Restrict COD</id>
<version>1.0</version>
<vqmver>2.1.5</vqmver>
<author>Straightlight</author>
<file name="catalog/model/total/voucher.php">
<operation>
<search position="before"><![CDATA[$total_data[] = array(]]></search>
<add trim="true"><![CDATA[
$this->session->data['total_data']['code'] = 'voucher';
]]>
</add>
</operation>
</file>
<file name="catalog/model/payment/cod.php">
<operation>
<search position="before"><![CDATA[} elseif ($query->num_rows) {]]></search>
<add trim="true"><![CDATA[
} elseif ($this->cart->hasDownloadOnly() !== false) {
$status = false;
} elseif (!empty($this->session->data['total_data']['code']) && html_entity_decode($this->session->data['total_data']['code'], ENT_QUOTES, 'UTF-8') == 'voucher') {
$status = false;
]]>
</add>
</operation>
</file>
<file name="system/library/cart.php">
<operation>
<search position="before" offset="1"><![CDATA[?>]]></search>
<add trim="true"><![CDATA[
public function hasDownloadOnly() {
$download = false;
foreach ($this->getProducts() as $product) {
if (!empty($product['download'])) {
$download = true;
break;
} elseif (empty($product['download'])) {
$download = false;
break;
}
}
return $download;
}
]]>
</add>
</operation>
</file>
</modification>
Re: Αφαίρεση αντικαταβολής στην αγορά δωροεπιταγής
Posted: Thu Sep 06, 2012 11:43 pm
by People's Code
Όντως δεν λειτουργεί ...
Το ξαναέγραψα από την αρχή και λειτουργεί ως εξής:
α) Όταν υπάρχουν μόνο vouchers ή και downloads στο καλάθι η αντικαταβολή απενεργοποιείται.
β) Όταν υπάρχουν vouchers ή και downloads στο καλάθι αλλά και κάποιο προϊόν που αποστέλλεται, η αντικαταβολή ενεργοποιείται.
Κάνε τις απαραίτητες δοκιμές με διαφορετικούς συνδυασμούς και πες μου αν όλα είναι οκ.
Re: Αφαίρεση αντικαταβολής στην αγορά δωροεπιταγής
Posted: Thu Sep 06, 2012 11:59 pm
by geonick
Ευχαριστώ για τη βοήθεια. Το δοκίμασα αλλά εξακολουθώ να έχω διαθέσιμη την αντικαταβολή :-(
Η έκδοση του OC που έχω είναι η 1.5.3.1
Το επιπλέον extension που μπορεί να επηρεάζει τη λειτουργία του νέου vqmod για την αντικαταβολή και τις δωροεπιταγές, είναι ένα extension που έχω βάλει για να γίνει χρεώσιμη η αντικαταβολή (όμως επειδή δεν είναι δωρεάν, δεν είμαι σε θέση να αναρτήσω τον κώδικά του)...
Καμιά ιδέα;
Re: Αφαίρεση αντικαταβολής στην αγορά δωροεπιταγής
Posted: Fri Sep 07, 2012 4:35 am
by People's Code
Το ξαναανέβασα με μία μικρή διόρθωση στο vqmod.
Από κεκτημένη ταχύτητα όταν έκανα copy / paste το κώδικα για να στο φτιάξω vqmod, είχα αφήσει "replace" το πρώτο search ενώ ήθελε "before" ...
Αν θες δοκίμασε το ξανά. Σε εμένα πάντως λειτουργεί σωστά σε v1.5.3.1.
Re: Αφαίρεση αντικαταβολής στην αγορά δωροεπιταγής
Posted: Fri Sep 07, 2012 4:49 am
by geonick
Σε σένα δουλεύει; Χμμμ Κάτι παίζει σε μένα τότε! Πάει πουθενά το μυαλό σου;
Code: Select all
REQUEST URI : /index.php?route=checkout/payment_method
MOD DETAILS:
modFile : /home/www/clients/client2/web15/web/vqmod/xml/cod_disable.xml
id : COD Disable for Downloads and / or Vouchers
version : 1.0
vqmver : 2.1.6
author : sugarfreedesign.gr
SEARCH NOT FOUND (ABORTING MOD): $total = $total;
Re: Αφαίρεση αντικαταβολής στην αγορά δωροεπιταγής
Posted: Fri Sep 07, 2012 4:53 am
by People's Code
Ξαναδοκίμασε άλλη μια φορά με την αλλαγή που έκανα τώρα.
Re: Αφαίρεση αντικαταβολής στην αγορά δωροεπιταγής
Posted: Fri Sep 07, 2012 5:27 am
by geonick
Θα το κατεβάσω, όμως δουλεύει με μια αλλαγή που έκανα εγώ:
αντικατέστησα το $total = $total; με το $method_data = array();
Λογικά κάτι τέτοιο έχεις κάνει και εσύ (θα μάθω σε λίγο)...
Ευχαριστώ για το χρόνο και τη βοήθειά σου!
;-)
Re: Αφαίρεση αντικαταβολής στην αγορά δωροεπιταγής
Posted: Fri Sep 07, 2012 6:01 am
by People's Code
Ακριβώς ... Ο κώδικας είναι οκ.
Το vqmod έψαχνε το ανύπαρκτο $total = $total; (ένα "σκουπίδι" κώδικα που είχε ξεμείνει στο cod.php μου από άλλες δοκιμές και ξέχασα να το διαγράψω. ) για να τοποθετήσει το κώδικα που δημιουργούσε τη λογική αφαίρεσης του cod.
Re: Αφαίρεση αντικαταβολής στην αγορά δωροεπιταγής
Posted: Fri Nov 08, 2013 6:52 pm
by petsoukos
Opencart-Hellas wrote:Το ξαναανέβασα με μία μικρή διόρθωση στο vqmod.
Από κεκτημένη ταχύτητα όταν έκανα copy / paste το κώδικα για να στο φτιάξω vqmod, είχα αφήσει "replace" το πρώτο search ενώ ήθελε "before" ...
Αν θες δοκίμασε το ξανά. Σε εμένα πάντως λειτουργεί σωστά σε v1.5.3.1.
Δούλεψε! Δεν βλέπω την αντικαταβολή πλέον!
Πως θα μπορούσα να το κάνω edit να μην βλέπω και την κατάθεση... ή να βλέπω μόνο Paypal στην περιπτωση αγοράς Gift Code?
Ευχαριστώ!
Re: Αφαίρεση αντικαταβολής στην αγορά δωροεπιταγής
Posted: Tue Nov 12, 2013 6:02 am
by zbelts
Καλησπέρα,
Έχω κατασκευάσει ένα extension σχετικό με αυτό που ζητάς. Εκτός αυτού κάνει και πολλά άλλα χρήσιμα πράγματα.
Μπορείς να το δεις εδώ:
http://www.opencart.com/index.php?route ... n_id=14183
Έχει και live demo για να διαπιστώσεις αν πράγματι είναι αυτό ακριβώς που θες.