InstantShop. Корзина. Как сделать нормальный вывод?

(склейка одинаковых товаров, лишние копейки, заметные скидки)

#16 16 апреля 2016 в 00:12

Ошибка Некорректный запрос!

Gumoff
нужно привести функцию к такому виду (\core\classes\user.class.php строка 1636):
  1. public static function checkCsrfToken(){
  2.  
  3. if(isset($_POST['csrf_token'])) {
  4. $user_token = $_POST['csrf_token'];
  5. } else if(isset($_SERVER['HTTP_X_CSRF_TOKEN'])) {
  6. $user_token = $_SERVER['HTTP_X_CSRF_TOKEN'];
  7. }
  8.  
  9. if(isset($user_token)) {
  10. $tokens = self::sessionGet('csrf_tokens', 'security');
  11.  
  12. if (is_array($tokens)) {
  13.  
  14. $key = array_search($user_token, $tokens, true);
  15.  
  16. if ($key !== false) {
  17. //unset($tokens[$key]);
  18. //ksort($tokens);
  19. //self::sessionPut('csrf_tokens', $tokens, 'security');
  20. return true;
  21. }
  22.  
  23. }
  24. }
  25.  
  26. return false;
  27.  
  28. }
#17 16 апреля 2016 в 00:47


Ошибка Некорректный запрос!

Gumoff
нужно привести функцию к такому виду (\core\classes\user.class.php строка 1636):

taleh

Спасибо, ошибка ушла, но товар появляется в корзине только после обновления страницы
#18 16 апреля 2016 в 11:40

но товар появляется в корзине только после обновления страницы

Gumoff
на странице корзины?
после добавления ajax-запросом, возвращаются количество и сумма товаров в корзине.
дальнейшие манипуляции со страницей нужно дописывать внутри условия if (res["status"] == "ok") { }, в примере просто выводится отладочная информация в консоль (в firefox — [ctrl + shift + k]. В chrome — [ctrl + shift + j] ).

например так:
  1.  
  2. <div class="cart_block">
  3. <div class="count"><span>0<span> товаров</div>
  4. <div class="summ">Сумма <span>0</span> р.</div>
  5. </div>
  6.  
  1.  
  2. if (res["status"] == "ok") {
  3. $(".cart_block .count span").text(res['count']);
  4. $(".cart_block .summ span").text(res['summ']);
  5. }
  6.  
#19 16 апреля 2016 в 14:39


но товар появляется в корзине только после обновления страницы

Gumoff
на странице корзины?
после добавления ajax-запросом, возвращаются количество и сумма товаров в корзине.
дальнейшие манипуляции со страницей нужно дописывать внутри условия if (res["status"] == "ok") { }, в примере просто выводится отладочная информация в консоль (в firefox — [ctrl + shift + k]. В chrome — [ctrl + shift + j] ).

например так:
  1.  
  2.  
  3. 0 товаров
  4. Сумма 0 р.
  5.  
  6.  
  1.  
  2. if (res["status"] == "ok") {
  3. $(".cart_block .count span").text(res['count']);
  4. $(".cart_block .summ span").text(res['summ']);
  5. }
  6.  

taleh

Нет — на странице товаров, жму купить один из них, должен появится модуль корзины с этим товаром, но этого не происходит.
Обновляю страницу и тоьлко тогда вижу модуль корзины с этим товаром.
#20 20 апреля 2016 в 17:51
Вопрос по аякс корзине решен благодаря taleh! vза что ему очень низкий поклон smile
Осталось с остатками договорится
#21 7 июня 2016 в 14:35
Добрый день. Не отображается купленный товар в корзине, ветка 1. Корзины стоит, шоп включен, но товар в ней не появляется. Что нужно сделать?
#22 7 июня 2016 в 22:02


Добрый день. Не отображается купленный товар в корзине, ветка 1. Корзины стоит, шоп включен, но товар в ней не появляется. Что нужно сделать?

Заралик

Выяснить оригинальный ли шаблон, и если да -
Обратится в тех поддержку
#23 9 июня 2016 в 09:13

оригинальный ли шаблон

Gumoff
Так понимаю, если шаблон не оригинал, то работать не будет?
#24 25 января 2018 в 23:09


js-код примерно такой:
Код PHP:
 
// добавление товара в корзину
$(".add_cartB a").click(function(e) {
e.preventDefault();
 
var el = $(this);
var variant_art = $("select[name=var_art_no]").val(); // разновидность товара
 
$.ajax({
type: "POST",
url: "/components/shop/ajax.php",
data: {
item_id: el.attr("id").replace("item_", ""),
item_qty: el.parent().find(".qty_input input").val(), // количество товара
var_art_no: variant_art,
action: "add_to_cart"
}

taleh

Не могу понять как добиться чтобы отдавался правильный var_art_no
в категории товаров присутстую товары с вариантами, и ajax передает артикул варианта товара var_art_no первого в списке категории.
Может кто разобрался ?

Также если товар не содержит вариантов — то все равно передается артикул варианта товара var_art_no первого в списке категории.

Как в этом скрипте передать артикул нужного товара и если его нет, то вообще не передавать?
#25 26 января 2018 в 17:36
Никто не знает как преобразовать правильно ?

var variant_art = $("select[name=var_art_no]").val();

в что то типа

var variant_art = $(this).$("select[name=var_art_no]").val();

чтобы нужного товара передать значение var_art_no
#26 26 января 2018 в 17:49

в категории товаров присутстую товары с вариантами, и ajax передает артикул варианта товара var_art_no первого в списке категории.
Может кто разобрался ?

Bubble Gumoff
смотрите правильно ли сделан массив, может массива нет и берется единственное значение
#27 26 января 2018 в 18:35
Массива вроде как нет, это скрипт который со страницы берет данные
#28 26 января 2018 в 18:38
Надо как-то так, но лучше смотреть на конкретной странице
  1. $(this).parent().find("select[name=var_art_no]").val();
#29 26 января 2018 в 19:03

но лучше смотреть на конкретной странице

Loadырь
Да что там смотреть? Корзина, как корзина (зелёная).
[
sick
/spoiler]
#30 26 января 2018 в 19:10


Надо как-то так, но лучше смотреть на конкретной странице

  1. $(this).parent().find("select[name=var_art_no]").val();

Loadырь


Так почему то не передает value аякс

$("a.add_cartB").click(function(e) {
var el = $(this);

$.ajax({
type: "POST",
url: "/components/shop/ajax.php",
data: {
var_art_no: el.parent().find('select[name="var_art_no"]').val()

и так тоже не работает

var_art_no: el.parent().find('select[name="var_art_no"] option:selected').val()


  1.  
  2. <td class="table_item price">
  3. <form action="/addtocart" method="POST">
  4. <input type="hidden" name="add_to_cart_item_id" value="18617">
  5. <div class="price_table">
  6. <select name="var_art_no" class="var_art_no">
  7. <option value="N4414">Нож 4414</option>
  8. <option value="V5608">Вилка 5608</option>
  9. </select>
  10. <div id="add_to_cart_18617">
  11. <div class="qty" style="">
  12. <div class="qty"><input type="number" min="1" max="83" class="amount" name="qty" value="1" size="1"></div>
  13. <div><a id="item_18617" type="submit" class="submit add_cartB" value="Купить"><i class="icon-g-white-shopping-cart"></i>Купить</a></div>
  14. </div>
  15. <button type="button" class="addtocart" onclick="addToCart(18617)" name="addtocart" title="Купить" style="display: none;"><i class="icon-g-white-shopping-cart"></i><br></button>
  16. </div>
  17. </div>
  18.  
  19. </form>
  20. </td>
  21.  
Вы не можете отвечать в этой теме.
Войдите или зарегистрируйтесь, чтобы писать на форуме.
Используя этот сайт, вы соглашаетесь с тем, что мы используем файлы cookie.