Перейти к содержанию
Новая Simpla

Новая Simpla php-8.0.15-3


Рекомендуемые сообщения

  • 1 месяц спустя...

Скриптовая ошибка файла, потому не работает. Пакет перезалит, там уже работает.

Можете в файле /simpla/design/html/import.tpl  вставить код

{if $filename}  
{literal}
<script>
    var in_process=false;
    var count=1;
 
    // On document load
    $(function(){
        Piecon.setOptions({fallback: 'force'});
        Piecon.setProgress(0);
        $("#progressbar").progressbar({ value: 1 });
        in_process=true;
        do_import();        
    });
 
    function do_import(from)
    {
        from = typeof(from) != 'undefined' ? from : 0;
        $.ajax({
             url: "ajax/import.php",
                data: {from:from},
                dataType: 'json',
                success: function(data){
                    for(var key in data.items)
                    {
                        $('ul#import_result').prepend('<li><span class=count>'+count+'</span> <span title='+data.items[key].status+' class="status '+data.items[key].status+'"></span> <a target=_blank href="index.php?module=ProductAdmin&id='+data.items[key].product.id+'">'+data.items[key].product.name+'</a> '+data.items[key].variant.name+'</li>');
                        count++;
                    }
 
                    Piecon.setProgress(Math.round(100*data.from/data.totalsize));
                    $("#progressbar").progressbar({ value: 100*data.from/data.totalsize });
               
                    if(data != false && !data.end)
                    {
                        do_import(data.from);
                    }
                    else
                    {
                        Piecon.setProgress(100);
                        $("#progressbar").hide('fast');
                        in_process = false;
                    }
                },
                error: function(xhr, status, errorThrown) {
                    alert(errorThrown+'\n'+xhr.responseText);
                }              
        });
   
    }
 
</script>
{/literal}
{/if}

вместо

{literal}
<script>
{if $filename}  
    var in_process=false;
    var count=1;
 
    // On document load
    $(function(){
        Piecon.setOptions({fallback: 'force'});
        Piecon.setProgress(0);
        $("#progressbar").progressbar({ value: 1 });
        in_process=true;
        do_import();        
    });
 
    function do_import(from)
    {
        from = typeof(from) != 'undefined' ? from : 0;
        $.ajax({
             url: "ajax/import.php",
                data: {from:from},
                dataType: 'json',
                success: function(data){
                    for(var key in data.items)
                    {
                        $('ul#import_result').prepend('<li><span class=count>'+count+'</span> <span title='+data.items[key].status+' class="status '+data.items[key].status+'"></span> <a target=_blank href="index.php?module=ProductAdmin&id='+data.items[key].product.id+'">'+data.items[key].product.name+'</a> '+data.items[key].variant.name+'</li>');
                        count++;
                    }
 
                    Piecon.setProgress(Math.round(100*data.from/data.totalsize));
                    $("#progressbar").progressbar({ value: 100*data.from/data.totalsize });
               
                    if(data != false && !data.end)
                    {
                        do_import(data.from);
                    }
                    else
                    {
                        Piecon.setProgress(100);
                        $("#progressbar").hide('fast');
                        in_process = false;
                    }
                },
                error: function(xhr, status, errorThrown) {
                    alert(errorThrown+'\n'+xhr.responseText);
                }              
        });
   
    }
{/if}
</script>
{/literal}

 

 

Ссылка на комментарий
Поделиться на другие сайты

Заработало! Супер! Спасибо огромное!!!

Еще такой вопрос возник. В карточке товара есть волшебное окошко с названием "входящая цена". Как бы его в файле экспорта-импорта отражать? По сути  с YML файла входящая цена заходит. вот бы ее сразу в это окошко забабахать. 

Кстати, при изменении курса валюты поставщика цена не меняется. (В версии 8.0.15-2 менялась).

Изменено пользователем Marsell
Ссылка на комментарий
Поделиться на другие сайты

Экспорт тоже кстати не работал. Реализовал это: https://forum.simplacms.ru/topic/5697-экспорт-товаров-с-выбором-категорий/ 

и заработало. С подменой файлов ставил. Возможно что файле экспорта ошибка. Или встал криво. Хотя дважды ставил.

Ссылка на комментарий
Поделиться на другие сайты

По входящей цене импорта. Вот эти файлы надо заменить, должно работать

simpla/design/html/import.tpl

simpla/ajax/import.php

simpla/ajax/export.php

 

import.tpl import.php

export.php

Ссылка на комментарий
Поделиться на другие сайты

Я тоже на форуме нашел примерно такое же решение уважаемого Мишани: https://forum.simplacms.ru/topic/9798-закупочная-цена-в-админке/

Уже переделаные файлы тоже прикреплю. Может кому надо будет. Добавлен еще файл ProductsAdmin.php чтобы входящая цена отображалась в админке в каталоге товаров.

Только проблема осталась: Все товары при экспорте переселились в колонку "Входящая цена". 

При загрузке товаров через YML ссылку в админке в графе "Цена" отображается входящая цена. Поле "Входящая цена" - пустое. На сайте цена отображается корректно (т.е. с учетом наценки проставленной при импорте от поставщика). При экспорте в xls файл все цены с учетом наценки отображаются в поле "Входящая цена". Поле "Цена" пустое. Если вручную прописать входящую цену в карточке товара, то админке в каталоге отображается правильно и в экспорте тоже.

И еще: В пришедших заказах почему то сразу стоит галочка "Заказ оплачен". Может только у меня что-то?

 

Закупочная цена в админке.rar

Ссылка на комментарий
Поделиться на другие сайты

Сделана входящая цена для стандартного CSV импорта симплы. Там надо только в прайсе указать поле входящая цена !!

XML загрузчик - это другой модуль совсем, он сделан по стандарт Яндекса. Но если надо цену из него кидать под входящую, тогда в файле

engine/modules_xml/xml_yandex.php

заменить $variant->price на $variant->entry_price

строки: 206,227

Ссылка на комментарий
Поделиться на другие сайты

1 час назад, admin сказал:

Сделана входящая цена для стандартного CSV импорта симплы. Там надо только в прайсе указать поле входящая цена !!

XML загрузчик - это другой модуль совсем, он сделан по стандарт Яндекса. Но если надо цену из него кидать под входящую, тогда в файле

engine/modules_xml/xml_yandex.php

заменить $variant->price на $variant->entry_price

строки: 206,227

Поменял входящая цена встала на место. Однако в списке товаров окно цена осталось пустым, хотя на сайте отражается корректно. Что примечательно неактивные товары отражаются корректно в списке товаров в админке (см.вложение). В карточке же товара, все осталось прежним.

1.jpg

2.jpg

Ссылка на комментарий
Поделиться на другие сайты

Чтобы заполнялись оба поля, надо добавить $variant->price , чтобы было 3 параметра.

Но тогда параметры поля будут одинаковы входящей цены и цены, т.к. в xml файле яндекса нет входящей цены.

Поэтому изначально и не заполнялось поле входящей цены.

Вы можете добавить $variant->price и потом через курс поставщика устанавливать для него наценку от входящей цены. Тогда цены будут разные.

Ссылка на комментарий
Поделиться на другие сайты

Наценку через курс поставщика я и сделал. Поэтому собственно и говорю, что на сайте цена отображается с учетом наценки, в экспорте тоже. А в админке так и не хочет. 

Сделал как сказали. Получилось. Теперь хоть в карточке товара в обоих графах входная цена, но в списке товаров в розничной цене корректно отображается с учетом курса поставщика. Однако это не постоянная величина. Если производить какие-либо манипуляции с файлом экспорта и залить обратно на сайт, то розничная цена опять изменится на величину курса поставщика (т.к. в файле экспорта розничная цена указывается с учетом курса поставщика). Кстати, редактировать розничную цену тоже невозможно по этой же причине. Возможно ли сделать так, что если заполнить графу входящая цена автоматически заполнялась розничная цена с учетом коэффициента? На форуме предлагалось делать запрос в базу данных увеличить цену на коэффициент, допустим 1,2. Но это с каждой выгрузкой придется делать. Может можно где то прописать этот коэффициент? И потом любой поставщик, или вручную вбитая входная цена покажет розничную. И кстати, можно будет безболезненно округлять-редактировать розничные цены.

И еще такой вопрос: Наличие показывает некорректно. Проверял на сайте поставщика - нет. У меня есть. И количество? В файле YML показывает количество - на входе нет. Возможно решить эту проблему?

Ссылка на комментарий
Поделиться на другие сайты

Сделать возможно все, но это уже под индивидуальный заказ.

По поводу количества. Загрузчик работает по стандарту Яндекса. В прайсе должно стоять available="true" или "false" для количества товара.

Если там стоит конкретно кол-во, то надо знать название параметра, т.к. его кто как хочет, так и пишет.

Загрузчик файла сделан для того, чтобы можно было его взять за основу.

Под конкретного поставщика можно делать отдельный файл загрузчика.

Для этого в поставщике есть:  Ссылка на модуль xml

Вы может написать под пареметры поставщика отдельный файл загрузчика и тогда он будет все грузить от данного поставщика.

Либо попросить нас об этом.

 

Ссылка на комментарий
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...