Перейти к содержанию
View in the app

A better way to browse. Learn more.

Новая Simpla

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

Новая 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

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

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

 

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

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

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

Аккаунт

Навигация

Поиск

Поиск

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.