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

Обновление товара при импорте за исключением заказанного


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

Помогите дополнить запрос на импорт товаров при которых существующие товары которые в заказах (s_orders) не обновляются, а то клиенты из-заказа заходят на сайт, а там цена то выше то ещё страшнее ниже. Simpla последняя редкация. Обновление товара происходить по следующей схеме.

 

// Если задан артикул варианта, найдем этот вариант и соответствующий товар
        if(!empty($variant['sku'])) {
            $this->db->query('SELECT v.id as variant_id, v.product_id, p.choose as choose FROM __variants v, __products p WHERE v.sku=? AND v.product_id = p.id LIMIT 1', $variant['sku']);
            $result = $this->db->result();
            if($result) {
				 $choose  = $result->choose; 
				
                // и обновим товар
                if(!empty($product) && $choose != 1 ) {
                    $this->products->update_product($result->product_id, $product);
                }
                // и вариант
                if(!empty($variant) && $choose != 1 ) {
                    $this->variants->update_variant($result->variant_id, $variant);
                }
                
                $product_id = $result->product_id;
                $variant_id = $result->variant_id;
                // Обновлен
                $imported_item->status = 'updated';
            }
        }
        
        // Если на прошлом шаге товар не нашелся, и задано хотя бы название товара
        if((empty($product_id) || empty($variant_id)) && isset($item['name'])) {
            if(!empty($variant['sku']) && empty($variant['name'])) {
                $this->db->query('SELECT v.id as variant_id, p.id as product_id, p.choose as choose FROM __products p LEFT JOIN __variants v ON v.product_id=p.id WHERE v.sku=? LIMIT 1', $variant['sku']);
            } elseif(isset($item['variant'])) {
                $this->db->query('SELECT v.id as variant_id, p.id as product_id, p.choose as choose FROM __products p LEFT JOIN __variants v ON v.product_id=p.id AND v.name=? WHERE p.name=? LIMIT 1', $item['variant'], $item['name']);
            } else {
                $this->db->query('SELECT v.id as variant_id, p.id as product_id, p.choose as choose FROM __products p LEFT JOIN __variants v ON v.product_id=p.id WHERE p.name=? LIMIT 1', $item['name']);
            }
            
            $r =  $this->db->result();
            if($r) {
                $product_id = $r->product_id;
                $variant_id = $r->variant_id;
				 $choose     = $r->choose; 
            }
            // Если вариант найден - обновляем,
            if(!empty($variant_id)) {
				 if ($choose != 1) { 
                $this->variants->update_variant($variant_id, $variant);
                $this->products->update_product($product_id, $product);
				} 
                $imported_item->status = 'updated';
            }

 

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

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

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

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

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

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

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

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

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

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