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

Создание нового заказа в админке


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

Всем доброго дня.

В админке есть функция "Создать новый заказ", при этом открывается окно где предлагается ввести названия или артикул товара.

У меня у товаров есть варианты (42,44,46...) у каждого варианта соответственно свой id, как сделать чтобы товар добавлялся при вводе id варианта товара?

Насколько я понял за эту форму отвечает simpla/ajax/add_order_product.php

Вот его код

<?php
	require_once('../../api/Simpla.php');
	$simpla = new Simpla();
	$limit = 100;
	
	if(!$simpla->managers->access('orders'))
		return false;
	
	$keyword = $simpla->request->get('query', 'string');

	$keywords = explode(' ', $keyword);
	$keyword_sql = '';
	foreach($keywords as $keyword)
	{
				$kw = $simpla->db->escape(trim($keyword));
				$keyword_sql .= $simpla->db->placehold("AND (p.name LIKE '%$kw%' OR p.meta_keywords LIKE '%$kw%' OR p.id in (SELECT product_id FROM __variants WHERE sku LIKE '%$kw%'))");
	}
	
	
	$simpla->db->query('SELECT p.id, p.name, i.filename as image FROM __products p
	                    LEFT JOIN __images i ON i.product_id=p.id AND i.position=(SELECT MIN(position) FROM __images WHERE product_id=p.id LIMIT 1)
	                    LEFT JOIN __variants pv ON pv.product_id=p.id AND (pv.stock IS NULL OR pv.stock>0)
	                    WHERE 1 '.$keyword_sql.' AND pv.id
	                    GROUP BY p.id
	                    ORDER BY p.name LIMIT ?', $limit);
	foreach($simpla->db->results() as $product)
		$products[$product->id] = $product;
	
	$variants = array();
	if(!empty($products))
	{
		$simpla->db->query('SELECT v.id, v.name, v.sku, v.price, IFNULL(v.stock, ?) as stock, (v.stock IS NULL) as infinity, v.product_id FROM __variants v WHERE v.product_id in(?@) AND (v.stock IS NULL OR v.stock>0) AND v.price>0 ORDER BY v.position', $simpla->settings->max_order_amount, array_keys($products));
		$variants = $simpla->db->results();
	}
	
	foreach($variants as $variant)
		if(isset($products[$variant->product_id]))
			$products[$variant->product_id]->variants[] = $variant;
	
	$suggestions = array();
	foreach($products as $product)
	{
		if(!empty($product->variants))
		{
			$suggestion = new stdClass;
			if(!empty($product->image))
				$product->image = $simpla->design->resize_modifier($product->image, 35, 35);
			$suggestion->value = $product->name;		
			$suggestion->data = $product;		
			$suggestions[] = $suggestion;
		}
	}

	$res = new stdClass;
	$res->query = $keyword;
	$res->suggestions = $suggestions;
	header("Content-type: application/json; charset=UTF-8");
	header("Cache-Control: must-revalidate");
	header("Pragma: no-cache");
	header("Expires: -1");		
	print json_encode($res);

 

Подскажите пожалуйста что в нем надо исправить, чтобы заработало добавление товара по v.id?

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

                $keyword_sql .= $simpla->db->placehold("AND (p.id='$kw' OR p.name LIKE '%$kw%' OR p.meta_keywords LIKE '%$kw%' OR p.id in (SELECT product_id FROM __variants WHERE sku LIKE '%$kw%'))");
 

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

Не работает, вы добавили p.id, по этому столбцу форма ищет и без этой записи. Мне нужен поиск по varian id, если добавить просто v.id, то все равно не ищет. 

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

$keyword_sql .= $simpla->db->placehold("AND (p.name LIKE '%$kw%' OR p.meta_keywords LIKE '%$kw%' OR p.id in (SELECT product_id FROM __variants WHERE id='$kw' OR sku LIKE '%$kw%' ))");

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

ищет, находит товар, но добавляет первый вариант, а не тот которому соответствует variant id. Как сделать чтобы добавлялся вариант который соответствует varian id?

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

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

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

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

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

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

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

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

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

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