С помощью плагина "Разные цены для разных витрин" (https://www.webasyst.ru/store/plugin/shop/productp...) задал нужные цены для тех витрин, где необходимо вывести товар, где не нужно поставил цену 1 (0 не воспринимается).
В файле шаблона list-thumbs.html после начала цикла {foreach $products as $p} вставил следующий код:
Можно ли добавить в обработчик нажатия кнопки "Оформить заказ" команду списания баллов равную total (общей сумме заказа), если у меня на этапе выбора оплаты имеется radio с payment_id (способ оплаты), value = 11 (оплатить бонусными баллами). Есть предварительная проверка кол-ва баллов, нужна просто команда списать.
Она как раз отвечает за вывод товаров на витрину. Я ищу эту магическую переменную (а разработчики уже вторую неделю молчат, хотя я настойчиво апаю топик), которая выводит не общий остаток (p.count), а остаток по конкретному складу, типа $current_stock.count.
В базе данных есть таблица спецовая таблица shop_product_stocks и соответствующие стоки по количеству, если оно было задано. Однако я не настолько крут в PHP, чтобы сделать подобающий SQL запрос из Smarty, или создать и использовать новый элемент класса и сделать запрос по правилам разработчиков, описанным здесь: https://developers.webasyst.ru/basics/model/
Я ищу способ скрыть товар с витрины с привязанным к ней складом, если на этом складе данного товара нет (даже, если он присутствует на других складах).
{foreach $wa->shop->stocks() as $current_stock => $mystock}
{/foreach}
Текущий склад: {$current_stock} {$mystock["name"]}
Но как получить остаток только по конкретному складу простым путем я не нашел. В БД есть таблица shop_product_stocks, но у меня не получается сделать SQL запрос, не понимаю почему. Возвращает FALSE на конструкцию такого рода:
{$current_count = mysql_query('SELECT count FROM shop_product_stocks WHERE stock_id = 1')}
Придумал решение, но почему то оно не работает в том виде, в котором нужно.
Я создал склады и привязал их к витринам, выбрал "Не показывать отсутствующие товары", но если у меня хотя бы на одном складе присутствует хотя бы одна единица товара или количество не указано, что соответствует p.count === null, товар отображается на всех витринах.
При нажатии на кнопки "Оформить заказ" в отладчике появляется строка "Synchronous XMLHttpRequest on the main thread is deprecated because of its detrimental effects to the end user's experience". Может ли это как-то влиять на работу скрипта?
Вообще на сайте очень много ошибок, потихоньку исправляю.
UPD к ситуации:
Внутри cart.html присутствуют вот такие скрипты:
<script>
$(document).ready(function(){
var tot = $(".total").text();
tot = tot.replace(/[^\d]/gi, '')*1;
//var price = $(".shipping_pricing").text()*1;
$("#frst_b").click(function(){
//alert(tot);
if(tot < 2000){
$(".pullup").show();
$(this).prop( "disabled", false );
$('.frst_b_h .checkout_holder').css("background", "#B6B693");
$('.frst_b_h .green').css("background", "#B6B693");
return false;
}
})
$("select").change(function(){
var town = $(this).attr("class");
var price = $(this).children("option:selected").attr("dop");
var order = $(this).children("option:selected").attr("rel");
// alert(order);
//var price = $(".shipping_pricing").text();
$("#"+town).children("p").children("b").text(order);
$("#"+town).children("ul").children("li:first-child").children("b").text(order);
$("#"+town).children("ul").children("li:last-child").children("b").text(price);
$("#"+town).show();
if (tot < order){
$("#add_price").val(price);
}
//alert(town)
$("#no-border_ex").show();
})
$("#scnd_b").click(function(){
$(".total").text(tot+price);
//alert(tot+price);
//return false;
})
})
</script>
<script>
$(document).ready(function() {
$("#cart_form").submit(function(){
$("#cart_hld_inner").css('height','630px');
$("#cart_hld_inner").css('overflow-y','scroll');
var form = $(this);
var msng = form.serialize();
msng = msng + '&checkout=Proceed to checkout&inpopup=1';
$.ajax({
type: 'POST',
url: '{$wa_app_url}cart/',
dataType: "html",
data: msng,
success: function(data){ // событие после удачного обращения к серверу и получения ответа
if (data['error']) { // если обработчик вернул ошибку
alert(data['error']); // покажем её текст
} else { // если все прошло ок
//alert(data);
$("#cart_hld_inner").html(data);
//alert(data);
$(".step.current").next("div.step").addClass("current");
//alert('Письмо отвравлено! Чекайте почту! =)'); // пишем что все ок
form.find('input[type="submit"]').prop('disabled', false);
}
},
error: function (xhr, ajaxOptions, thrownError) { // в случае неудачного завершения запроса к серверу
alert(xhr.status); // покажем ответ сервера
alert(thrownError); // и текст ошибки
},
complete: function(data) { // событие после любого исхода
form.find('input[type="submit"]').prop('disabled', false); // в любом случае включим кнопку обратно
}
});
return false; // вырубаем стандартную отправку формы
});
});
</script>
Первая часть кода (включая $("#scnd_b")) генерирует поведение кнопок и промежуточного pullup'а с кнопкой "Оформить заказ" - тут разработчик все таки оставил комментарии...
Вторая часть кода, судя по всему, готовит некие параметры заказа для чекаута
var msng = form.serialize();
msng = msng + '&checkout=Proceed to checkout&inpopup=1';
и передает их в url: '{$wa_app_url}cart/',
И вот какая особенность. При таком варианте во всплывающем окне появляется форма подтверждения заказа (по предустановленному в бекэнде порядку - контактные данные - оплата и т.д), но кнопка "Оформить заказ" отсутствтует, хотя вроде бы, если судить по этому коду
complete: function(data) { // событие после любого исхода
form.find('input[type="submit"]').prop('disabled', false); // в любом случае включим кнопку обратно
присутствовать она должна.
НО! Если мы меняем url: '{$wa_app_url}cart/', на url: '{$wa_app_url}checkout/', то после нажатия кнопки "Оформить заказ" на pullup'е, заказ оформляется без проверки данных, подхватывая их личного кабинета. Тоже не совсем понятное мне поведение..
Дело в том, что у меня в чекауте вообще нигде нет функции использовать баллы, хотя партнерская программа запущена.
Может ли эта функция быть закрыта или не предусмотрена на уровне кода, поскольку изначально тема не типовая и разрабатывалась программистами, с которыми теперь связи нет.
Да, перенос был выполнен по инструкции, кэш очищег. Изначально магазин был построен на SS6, но при переносе и вводе лицензии был обновлено для 7. Может ли быть проблема в этом, потому что исходный код страницы формируется по разному:
Вот это исходник рабочей страницы из бекапа:
Вот это текущий "поехавший" исходиник:
Заметил еще вот какую особенность:
При подключении старой базы данных от версии на SS6 к файлам с SS7 верстка не нарушается.
Можно ли например, чтобы долго не возиться взять из одной базы данных только статистику заказов и перенести их в другую?
Похоже на сервере настроено какое-то кеширование. Проблема решилась заменой htaccess в корневой директорией с парой незначительных правок.
в ответ на Проблемы с админкой
Решил проблему таким образом:
С помощью плагина "Разные цены для разных витрин" (https://www.webasyst.ru/store/plugin/shop/productp...) задал нужные цены для тех витрин, где необходимо вывести товар, где не нужно поставил цену 1 (0 не воспринимается).
В файле шаблона list-thumbs.html после начала цикла {foreach $products as $p} вставил следующий код:
Не самое элегантное, но работающее решение.
в ответ на Видимость товара на витрине
Спасибо! Я уже решил вопрос. На ЛК висел неработающий скрипт, он и мешал..
в ответ на Глюк с сессиями (в личном кабинете)
Можно ли добавить в обработчик нажатия кнопки "Оформить заказ" команду списания баллов равную total (общей сумме заказа), если у меня на этапе выбора оплаты имеется radio с payment_id (способ оплаты), value = 11 (оплатить бонусными баллами). Есть предварительная проверка кол-ва баллов, нужна просто команда списать.
в ответ на Оплата бонусными баллами
Петр, еще раз спасибо за помощь!
в ответ на Многовитринность и склады - гибкая настройка складов
Петр, спасибо за помощь, но это все не то, к сожалению.
В файле list-thumbs.html есть строка
Она как раз отвечает за вывод товаров на витрину. Я ищу эту магическую переменную (а разработчики уже вторую неделю молчат, хотя я настойчиво апаю топик), которая выводит не общий остаток (p.count), а остаток по конкретному складу, типа $current_stock.count.
В базе данных есть таблица спецовая таблица shop_product_stocks и соответствующие стоки по количеству, если оно было задано. Однако я не настолько крут в PHP, чтобы сделать подобающий SQL запрос из Smarty, или создать и использовать новый элемент класса и сделать запрос по правилам разработчиков, описанным здесь: https://developers.webasyst.ru/basics/model/
в ответ на Многовитринность и склады - гибкая настройка складов
Это для SS7 скрипт?
в ответ на Многовитринность и склады - гибкая настройка складов
Можно ли сделать так, чтобы количество товара не суммировалось по всем складам?
в ответ на Скрыть отсутствующий товар и товар с нулевой ценой на Shop-Script 5
Я ищу способ скрыть товар с витрины с привязанным к ней складом, если на этом складе данного товара нет (даже, если он присутствует на других складах).
в ответ на Многовитринность и склады - гибкая настройка складов
Мужики, ну неужели нет такого решения, чтобы не выводить товар на витрину, если на привязанном к ней складе товара нет, но имеется на других?
в ответ на Видимость товара на витрине
Я нашел, как получить id и имя склада на SS7:
Но как получить остаток только по конкретному складу простым путем я не нашел. В БД есть таблица shop_product_stocks, но у меня не получается сделать SQL запрос, не понимаю почему. Возвращает FALSE на конструкцию такого рода:
в ответ на Многовитринность и склады - гибкая настройка складов
Не работает код..
в ответ на список названии и их ид складов
Это для SS6 код?
В 7 не работает(
в ответ на Многовитринность и склады - гибкая настройка складов
Придумал решение, но почему то оно не работает в том виде, в котором нужно.
Я создал склады и привязал их к витринам, выбрал "Не показывать отсутствующие товары", но если у меня хотя бы на одном складе присутствует хотя бы одна единица товара или количество не указано, что соответствует p.count === null, товар отображается на всех витринах.
Помогите разобраться, пожалуйста!
в ответ на Видимость товара на витрине
Решил проблему частичным возвратом к дефолтным функциям cart и checkout и перерисовкой CSS.
в ответ на Исчезла кнопка подтверждения заказа
При нажатии на кнопки "Оформить заказ" в отладчике появляется строка "Synchronous XMLHttpRequest on the main thread is deprecated because of its detrimental effects to the end user's experience". Может ли это как-то влиять на работу скрипта?
в ответ на Исчезла кнопка подтверждения заказа
http://nippon-house.ru/
Вообще на сайте очень много ошибок, потихоньку исправляю.
UPD к ситуации:
Внутри cart.html присутствуют вот такие скрипты:
Первая часть кода (включая $("#scnd_b")) генерирует поведение кнопок и промежуточного pullup'а с кнопкой "Оформить заказ" - тут разработчик все таки оставил комментарии...
Вторая часть кода, судя по всему, готовит некие параметры заказа для чекаута
и передает их в url: '{$wa_app_url}cart/',
И вот какая особенность. При таком варианте во всплывающем окне появляется форма подтверждения заказа (по предустановленному в бекэнде порядку - контактные данные - оплата и т.д), но кнопка "Оформить заказ" отсутствтует, хотя вроде бы, если судить по этому коду
присутствовать она должна.
НО! Если мы меняем url: '{$wa_app_url}cart/', на url: '{$wa_app_url}checkout/', то после нажатия кнопки "Оформить заказ" на pullup'е, заказ оформляется без проверки данных, подхватывая их личного кабинета. Тоже не совсем понятное мне поведение..
в ответ на Исчезла кнопка подтверждения заказа
Спасибо! Мне помогло!
в ответ на Хлебные крошки
Дело в том, что у меня в чекауте вообще нигде нет функции использовать баллы, хотя партнерская программа запущена.
Может ли эта функция быть закрыта или не предусмотрена на уровне кода, поскольку изначально тема не типовая и разрабатывалась программистами, с которыми теперь связи нет.
в ответ на Оплата бонусными баллами
Николай, спасибо за ответ!
Да, перенос был выполнен по инструкции, кэш очищег. Изначально магазин был построен на SS6, но при переносе и вводе лицензии был обновлено для 7. Может ли быть проблема в этом, потому что исходный код страницы формируется по разному:
Вот это исходник рабочей страницы из бекапа:
Вот это текущий "поехавший" исходиник:
Заметил еще вот какую особенность:
При подключении старой базы данных от версии на SS6 к файлам с SS7 верстка не нарушается.
Можно ли например, чтобы долго не возиться взять из одной базы данных только статистику заказов и перенести их в другую?
в ответ на Поехала верстка