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

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

Все доброго вечера!

Прошу помощи. Simpla 1.4. Необходимо вывести артикул варианта заказанного товара в админке на странице заказы.

 

Следующий код вставляю в tpl шаблон (orders)

{foreach item=product from=$order->products}
{$product->sku}
{/foreach}

 

В файле Orders.admin.php вставил следующее

 

$this->db->query("SELECT orders_products.*, products_variants.sku as sku, products_variants.stock as stock, products.url as url, products.large_image as large_image FROM orders_products LEFT JOIN products ON products.product_id = orders_products.product_id LEFT JOIN products_variants ON orders_products.variant_id = products_variants.variant_id WHERE orders_products.order_id = '$order->order_id'");
$products = $this->db->results();

 

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

 

Подскажите пожалуйста что это может быть и как можно исправить?

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

{$product->variant_id} причем тоже выводится но при сохранении никуда не исчезает, исчезает только {$product->sku}

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

Не могу понять что может меняться при сохранении товара без изменений. Т.е. открыли редактирование товара - ничего в нем не изменили и нажали сохранить - что при этом поменяется в базе?

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

То, что создатель CMS запланировал, то и поменяется. Последующие доработки тоже могут от себя что-то добавить.

Меняться может много чего. Например:

1. Дата модификации товара.

2. Сведения от бренде в поле brand_id (если ранее бренд был удален, и в поле сидел старый ID).

 

Если у Вас что-то нештатно пропадает, надо не гадать на авось, задавая общие абстрактные вопросы, а выяснять конкретно и точно. Причины могут быть очень и очень разные...

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

То, что создатель CMS запланировал, то и поменяется. Последующие доработки тоже могут от себя что-то добавить.

Меняться может много чего. Например:

1. Дата модификации товара.

2. Сведения от бренде в поле brand_id (если ранее бренд был удален, и в поле сидел старый ID).

 

Если у Вас что-то нештатно пропадает, надо не гадать на авось, задавая общие абстрактные вопросы, а выяснять конкретно и точно. Причины могут быть очень и очень разные...

1. Нет такого поля, есть только поле created которое не обновляется при сохранении товара

2. При удалении бренда, поле brand_id у товаров с этим брендом становится NULL.

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

1. Нет такого поля, есть только поле created которое не обновляется при сохранении товара

 

1. Есть такое поле.  Я даже об этом  готов поспорить, например, на 200$.

 

2. При удалении бренда, поле brand_id у товаров с этим брендом становится NULL.

 

2. Тут тоже все не так элементарно, как Вы думаете...

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

1. Есть такое поле.  Я даже об этом  готов поспорить, например, на 200$.

 

 

2. Тут тоже все не так элементарно, как Вы думаете...

Во первых спорят только дураки, а так как у тебя участились случаи предложения что-то оспорить на форуме, то ты скорее всего полный дурак, во вторых из стандартного дистрибутива симплы взял SQL в котором нет такого поля, вот содержимое части файла:
CREATE TABLE `s_products` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `url` varchar(255) NOT NULL DEFAULT '',
  `brand_id` int(11) DEFAULT NULL,
  `name` varchar(500) NOT NULL,
  `annotation` text NOT NULL,
  `body` longtext NOT NULL,
  `visible` tinyint(1) NOT NULL DEFAULT '1',
  `position` int(11) NOT NULL DEFAULT '0',
  `meta_title` varchar(500) NOT NULL,
  `meta_keywords` varchar(500) NOT NULL,
  `meta_description` varchar(500) NOT NULL,
  `created` timestamp NULL DEFAULT CURRENT_TIMESTAMP,
  `featured` tinyint(1) DEFAULT NULL,
  `external_id` varchar(36) NOT NULL,
  PRIMARY KEY (`id`),
  KEY `url` (`url`),
  KEY `brand_id` (`brand_id`),
  KEY `visible` (`visible`),
  KEY `position` (`position`),
  KEY `external_id` (`external_id`),
  KEY `hit` (`featured`),
  KEY `name` (`name`(333))
) ENGINE=MyISAM AUTO_INCREMENT=43 DEFAULT CHARSET=utf8;
В третьих последняя фраза мало что объясняет, если это работает не так как я указал выше, то будь добр поясни как это работает, возможно я ошибся.
Ссылка на сообщение
Поделиться на другие сайты

Скорее всего, что-то дорабатывалось. И, возможно, не совсем правильно...

Если бы изначально автор такое сделал, то у всех бы данные пропадали и форум бы бы завален жалобами. Или все бы от такой системы отказались.

Вопрос явно индивидуальный.

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

Нашел код который добавляет единичку...

 

$this->db->query("UPDATE products s1, products s2

                            SET s1.order_num = s2.order_num+1, s2.order_num = s2.order_num
                            WHERE s1.product_id = '$product_id'
                            AND s2.product_id = @id");
 
Как бы теперь понять для чего это надо было...
 
P.S. артикул пропадает не на сайте, а в админке где я его пытаюсь вывести (там его изначально вообще не было). 


Это код поднятия товара в каталоге.

 

Вот его полная версия

 

 # Сдвинуть товар вверх
  	if(isset($_GET['action']) and $_GET['action']=='move_up')
  	{
  	    $this->check_token();  	    
  		$product_id = $_GET['item_id'];
  		
		$current_category_id = $this->param('category');
		$category_filter = '';
		if($current_category_id)
		{
		  $categories = Storefront::get_categories();
		  $current_category = Storefront::category_by_id($categories, $current_category_id);
		  $subcats_list = join($current_category->subcats_ids, ',');  
		  $category_filter = "AND s1.category_id in ($subcats_list)";
		}

  		if($this->param('brand_id')) $filter_brand = ' AND s1.brand_id=s2.brand_id'; else $filter_brand = '';
  	 	$this->db->query("SELECT @id:=s1.product_id
  		                  FROM products s1, products s2
  		                  WHERE s1.order_num>s2.order_num $category_filter $filter_brand
  		                  AND s2.product_id = '$product_id'
  		                  ORDER BY s1.order_num ASC
  		                ");
  		$this->db->query("UPDATE products s1, products s2
  		                  SET s1.order_num = s2.order_num+1, s2.order_num = s2.order_num
  		                  WHERE s1.product_id = '$product_id'
  		                  AND s2.product_id = @id");
  		$get = $this->form_get(array());
        if(isset($_GET['from']))
          header("Location: ".$_GET['from']);
        else
 		  header("Location: index.php$get");
  	}
Ссылка на сообщение
Поделиться на другие сайты

Этот код делался чтобы одним кликом поднять товар на первое место с любой страницы. Подскажите что в нем исправить чтобы и функция поднятия осталась и в админке varian_id не менялся?

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

Во первых ... ты скорее всего полный дурак,

во вторых из стандартного дистрибутива симплы взял SQL в котором нет такого поля, вот содержимое части файла:

 

Я конечно, не так умен, как Вы, поэтому мне видятся большие пробелы в Вашей логике.

Поскольку то, что Вы процитировали из "стандартного дистрибутива симплы", с утверждением "Нет такого поля" (речь про Дата модификации товара) никак не связано...

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

Этот код делался чтобы одним кликом поднять товар на первое место с любой страницы. Подскажите что в нем исправить чтобы и функция поднятия осталась и в админке varian_id не менялся?

 

Это не так просто и вряд ли кто станет бесплатно в этом ковыряться...

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

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

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

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

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

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

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

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

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

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