Υλοποιώ αυτές τις ημέρες ένα e-shop για ποδήλατα (δουλεύω σε έκδοση 2.0.1.1), έχοντας κατεβάσει (αγορασμένο) ένα Opencart Template, και αντιμετωπίζω ένα πολύ σοβαρό πρόβλημα στην διαδικασία της πώλησης (για την ακρίβεια, στο checkout).
Έστω ότι ο πελάτης έχει κάνει login για να συνδεθεί στο σύστημα (δεν είναι, δηλαδή, guest) και επιλέγει κάποιο προϊόν. Πατώντας το πλήκτρο "Αγορά" εμφανίζεται η φόρμα του checkout.
Εκεί, από την στιγμή που ο πελάτης έχει κάνει login, το σύστημα τον οδηγεί κατευθείαν στις "Λεπτομέρειες Χρέωσης" ώστε να επιλέξει αν θα σταλεί το προϊόν στην διεύθυνση που έχει δηλώσει όταν έκανε την εγγραφή ή αν θα πρέπει να ορίσει μια νέα διεύθυνση.
Μόλις όμως πατήσει το πλήκτρο "Συνέχεια" για να πάει το σύστημα στις "Λεπτομέρειες Αποστολής", βγάζει το παρακάτω μήνυμα σφάλματος στην κονσόλα (και δεν προχωράει καν στο επόμενο βήμα):
Code: Select all
[b]SyntaxError: Unexpected token < in JSON at position 0[/b]
OK
<input type="radio" name="payment_address" value="existing" id="payment-address-existing" checked="checked" />
<label for="payment-address-existing">Θέλω να χρησιμοποιήσω μια υπάρχουσα διεύθυνση</label>
<div id="payment-existing">
<select name="address_id" style="width: 100%; margin-bottom: 15px;" size="5">
<option value="6" selected="selected">[i]Ονοματεπώνυμο, Διεύθυνση, Πόλη, Ελλάδα[/i]</option>
</select>
</div>
<p>
<input type="radio" name="payment_address" value="new" id="payment-address-new" />
<label for="payment-address-new">Θέλω να χρησιμοποιήσω μια νέα διεύθυνση</label>
</p>
<div id="payment-new" style="display: none;">
<table class="form">
<tr>
<td><span class="required">*</span> Όνομα</td>
<td><input type="text" name="firstname" value="" class="large-field" /></td>
</tr>
<tr>
<td><span class="required">*</span> Επώνυμο</td>
<td><input type="text" name="lastname" value="" class="large-field" /></td>
</tr>
<tr>
<td>Επωνυμία</td>
<td><input type="text" name="company" value="" class="large-field" /></td>
</tr>
<tr>
<td><span class="required">*</span> Διεύθυνση 1</td>
<td><input type="text" name="address_1" value="" class="large-field" /></td>
</tr>
<tr>
<td>Διεύθυνση 2</td>
<td><input type="text" name="address_2" value="" class="large-field" /></td>
</tr>
<tr>
<td><span class="required">*</span> Πόλη</td>
<td><input type="text" name="city" value="" class="large-field" /></td>
</tr>
<tr>
<td><span id="payment-postcode-required" class="required">*</span> Τ.Κ.</td>
<td><input type="text" name="postcode" value="" class="large-field" /></td>
</tr>
<tr>
<td><span class="required">*</span> Χώρα</td>
<td><select name="country_id" class="large-field">
<option value=""> --- Επιλέξτε --- </option>
<option value="55">Cyprus</option>
<option value="84" selected="selected">Greece</option>
</select></td>
</tr>
</table>
</div>
<br />
<div class="buttons">
<div class="right">
<a id="button-payment-address" class="button" ><span>Συνέχεια</span></a>
</div>
</div>
<script type="text/javascript"><!--
$('#payment-address input[name=\'payment_address\']').live('change', function() {
if (this.value == 'new') {
$('#payment-existing').hide();
$('#payment-new').show();
} else {
$('#payment-existing').show();
$('#payment-new').hide();
}
});
//--></script>
<script type="text/javascript"><!--
$('#payment-address select[name=\'country_id\']').bind('change', function() {
$.ajax({
url: 'index.php?route=checkout/checkout/country&country_id=' + this.value,
dataType: 'json',
beforeSend: function() {
$('#payment-address select[name=\'country_id\']').after('<span class="wait"> <img src="catalog/view/theme/theme086/image/loading.gif" alt="" /></span>');
},
complete: function() {
$('.wait').remove();
},
success: function(json) {
if (json['postcode_required'] == '1') {
$('#payment-postcode-required').show();
} else {
$('#payment-postcode-required').hide();
}
html = '<option value=""> --- Επιλέξτε --- </option>';
},
error: function(xhr, ajaxOptions, thrownError) {
alert(thrownError + "\r\n" + xhr.statusText + "\r\n" + xhr.responseText);
}
});
});
$('#payment-address select[name=\'country_id\']').trigger('change');
//--></script>
Έχω "κολλήσει" σε αυτό το σημείο και, όσο και αν έχω προσπαθήσει, δεν έχω καταφέρει να βρω λύση! Όποιος μπορεί να με βοηθήσει είναι ευπρόσδεκτος!!!
Ευχαριστώ προκαταβολικά