Jump to content

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


Go to solution Solved by chocolate_moles,

Recommended Posts

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

Link to post
Share on other sites

Например, открываете 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;
... 

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

Link to post
Share on other sites

 

Например, открываете 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;
... 

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

 

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

Link to post
Share on other sites

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

 

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

Edited by shooroop
Link to post
Share on other sites
  • Solution

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

 

создаете .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;
Link to post
Share on other sites

 

создаете .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;

 

Спасибо!

Link to post
Share on other sites

Спасибо!

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

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

Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
×
×
  • Create New...