Перейти к содержанию
Официальный форум поддержки Simpla

Загрузка товара при импорте


Перейти к решению Решено chocolate_moles,

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

Есть такая проблема, после того как импортировал со старого сайта и загрузил на новый, товары все встали задом наперед, из за этого выводятся старые новинки и прочее. Можно как то сделать чтоб товары были загружены также как на старом сайте? Вручную перетаскивать конечно муторно ,может как то можно по базе провести запросом? или на стороне экселя попробовать перекинуть поля. Товаров 9 тыс.

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

Например, открываете phpmyadmin старого сайта, делаете запрос(вкладка SQL)

SELECT position FROM s_products

- внизу выбираете "отметить все", далее "экспорт"

- метод экспорта - обычный

- использовать оператор при сохранении данных - UPDATE

- вперед

- открываете полученный файл, выбираете все строки типа

UPDATE `s_products` SET `position` = 1 WHERE `s_products`.`position` = 1;
UPDATE `s_products` SET `position` = 2 WHERE `s_products`.`position` = 2;
UPDATE `s_products` SET `position` = 3 WHERE `s_products`.`position` = 3;
... 

и на новом сайте вставляете их в запрос

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

 

Например, открываете phpmyadmin старого сайта, делаете запрос(вкладка SQL)

SELECT position FROM s_products

- внизу выбираете "отметить все", далее "экспорт"

- метод экспорта - обычный

- использовать оператор при сохранении данных - UPDATE

- вперед

- открываете полученный файл, выбираете все строки типа

UPDATE `s_products` SET `position` = 1 WHERE `s_products`.`position` = 1;
UPDATE `s_products` SET `position` = 2 WHERE `s_products`.`position` = 2;
UPDATE `s_products` SET `position` = 3 WHERE `s_products`.`position` = 3;
... 

и на новом сайте вставляете их в запрос

 

а уже на текущем сайте не получится их перевернуть?

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

а уже на текущем сайте не получится их перевернуть?

 

в Sql не важен порядок строк. этот порядок задается в запросе  ORDER BY

Изменено пользователем shooroop
Ссылка на сообщение
Поделиться на другие сайты
  • Решение

а уже на текущем сайте не получится их перевернуть?

 

создаете .php файл в корне сайта и запускаете

<?php

require_once('api/Simpla.php');

class Ajax extends Simpla
{
    function fetch()
    {
        $this->db->query('SELECT id, position FROM __products');
        
        $results = array();
        foreach($this->db->results() as $r)
            $results[$r->id] = $r->position;

        $keys = array_keys($results);
        $values = array_values($results);
        $reversed = array_reverse($values);
        $new_positions = array_combine($keys, $reversed);

        foreach($new_positions as $id=>$position)
            $this->db->query('UPDATE __products SET position=? WHERE id=? LIMIT 1', $position, $id);
    }
}

$ajax = new Ajax();
$result = $ajax->fetch();

header("Content-type: application/json; charset=UTF-8");
header("Cache-Control: no-store, no-cache, must-revalidate, max-age=0");
header("X-Robots-Tag: noindex");
header("Pragma: no-cache");
header("Expires: -1");
exit;
Ссылка на сообщение
Поделиться на другие сайты

 

создаете .php файл в корне сайта и запускаете

<?php

require_once('api/Simpla.php');

class Ajax extends Simpla
{
    function fetch()
    {
        $this->db->query('SELECT id, position FROM __products');
        
        $results = array();
        foreach($this->db->results() as $r)
            $results[$r->id] = $r->position;

        $keys = array_keys($results);
        $values = array_values($results);
        $reversed = array_reverse($values);
        $new_positions = array_combine($keys, $reversed);

        foreach($new_positions as $id=>$position)
            $this->db->query('UPDATE __products SET position=? WHERE id=? LIMIT 1', $position, $id);
    }
}

$ajax = new Ajax();
$result = $ajax->fetch();

header("Content-type: application/json; charset=UTF-8");
header("Cache-Control: no-store, no-cache, must-revalidate, max-age=0");
header("X-Robots-Tag: noindex");
header("Pragma: no-cache");
header("Expires: -1");
exit;

 

Спасибо!

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

Спасибо!

Вам это не поможет потому как новинки сортируются не по позиции, а по дате создания товара, то есть у вас всегда будет наоборот.

По этому рекомендую отсортировать товары в экселе, после импортировать на сайт.

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

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

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

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

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

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

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

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

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

Загрузка...
×
×
  • Создать...