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

maxrambov    0

Необходимо настроить двухстороннюю синхронизацию между магазином diko-obraz.ru на Opencart (1.5.6.1) и сервисом Мой склад.
1. Передача информации по заказам (включая быстрые заказы): номер заказа, имя клиента, телефон, название товара (товары с модификациями), количество;
2. Привязка между товарами на сайте и товарами в Моем складе через внешний код (названия на сайте и на складе не совпадают);
3. Передача актуальных остатков товаров (учитывая модификации товаров) из Моего склада на сайт.

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

 

Знаю, что есть полуготовое решение данного вопроса, но не всё там реализовано, что требуется.

Поделиться сообщением


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

надо более подробное ТЗ.

особенно по первому пункту (вплоть до описания связей "эти данные из opencart должны заноситься в это поле/столбец в мой-склад" (и наоборот)).

Поделиться сообщением


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

Необходимо настроить двухстороннюю синхронизацию между магазином diko-obraz.ru на Opencart (1.5.6.1) и сервисом Мой склад.

1. Передача информации по заказам (включая быстрые заказы): номер заказа, имя клиента, телефон, название товара (товары с модификациями), количество;

2. Привязка между товарами на сайте и товарами в Моем складе через внешний код (названия на сайте и на складе не совпадают);

3. Передача актуальных остатков товаров (учитывая модификации товаров) из Моего склада на сайт.

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

 

Знаю, что есть полуготовое решение данного вопроса, но не всё там реализовано, что требуется.

Задачу-то решили?

Поделиться сообщением


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

Также интересует подобная интеграция, выслушаю предложения.

Поделиться сообщением


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

Также интересует подобная интеграция, выслушаю предложения.

Реализую.

Поделиться сообщением


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

У них есть синхронизация через рест апи.

Здесь где-то был модуль синхронизации заказов.

Написал класс синхронизации остатков как по товарам так и по модификациям с модулем связанные опции через rest может кому пригодиться.

код прилагаю.

else if ($request->get['type'] == 'import') {
	$headerget = array(
	            'http'=>array( 'method'=>"GET",
	                           'header'=>"Accept-language: en\r\n" . "Authorization: Basic " . base64_encode("логинмойсклад:парольмойсклад") . "\r\n"
	                         )
	        );
	$context = stream_context_create($headerget);
	$allgood = file_get_contents('https://online.moysklad.ru/exchange/rest/stock/json', false, $context);
	$allgood = json_decode($allgood);
	foreach ($allgood as $good)
	    {
	        if($good->quantity > 0)
	        {
	            $goods[] = array(
	                            'quantity' => $good->quantity,
	                            'price' => ($good->salePrice/100),
	                            'code' => $good->externalCode,
	                            'name' => $good->consignmentName
	                            );
	        }
	    }
	$result = file_get_contents('https://online.moysklad.ru/exchange/rest/stock/json?showConsignments=true', false, $context);
	$result = json_decode($result);
	foreach ($result as $dataitems)
	    {
	        $dataitem[] = array(
	                            'quantity' => $dataitems->quantity,
	                            'price' => $dataitems->salePrice,
	                            'uuid' => $dataitems->consignmentUuid,
	                            'name' => $dataitems->consignmentName
	                           );
	    }
	$result = file_get_contents('https://online.moysklad.ru/exchange/rest/ms/xml/Consignment/list?start=0&count=1000', false, $context);
	$alloption = simplexml_load_string($result);
	$alloption = json_encode($alloption);
	$alloption = json_decode($alloption,TRUE);
	$alloption1 = $alloption;
	$getoption = array_shift($alloption1);
	$optiongood =array();
	foreach ($alloption as $options)
	    {
	    foreach ($options as $option)
	        {
	        foreach($dataitem as $gooddata)
	            {

	            if($gooddata['uuid'] == $option['uuid'] && $gooddata['quantity'] > 0)
	                {
	                    $optiongood[] = array(
	                                            'quantity' => $gooddata['quantity'],
	                                            'price' => ($gooddata['price']/100),
	                                            'code' => $option['feature']['externalcode'],
	                                            'name' => $gooddata['name']
	                                         );
	                }
	            }
	        }
	    }
	if($getoption['total'] > '1000')
	{
	    $i = ceil($getoption['total']/1000);
	    $d = 2;
	    do
	    {
	        $result = file_get_contents('https://online.moysklad.ru/exchange/rest/ms/xml/Consignment/list?start='.(($d-1) * 1000).'&count=1000', false, $context);
	        $alloption = simplexml_load_string($result);
	        $alloption = json_encode($alloption);
	        $alloption = json_decode($alloption,TRUE);
	        foreach ($alloption as $options)
	            {
	            foreach ($options as $option)
	                {
	                foreach($dataitem as $gooddata)
	                    {

	                    if($gooddata['uuid'] == $option['uuid'] && $gooddata['quantity'] > 0)
	                      {
	                        $optiongood[] = array(
	                                                'quantity' => $gooddata['quantity'],
	                                                'price' => ($gooddata['price']/100),
	                                                'code' => $option['feature']['externalcode'],
	                                                'name' => $gooddata['name']
	                                             );
	                      }
	                    }
	                }
	            }
	        $d++;
	    }while($i >= $d);
	}
	$query = $db->query("UPDATE " . DB_PREFIX . "product SET `quantity` = 0, `stock_status_id` = 5;");
	foreach ($goods as $updategood)
	{
		$query = $db->query("UPDATE " . DB_PREFIX . "product SET `quantity`='".$updategood['quantity']."',`price`='".$updategood['price']."',`stock_status_id`=7 WHERE `model`='".$updategood['code']."';");
	}
	$query = $db->query("UPDATE " . DB_PREFIX . "relatedoptions SET `quantity` = 0;");
	foreach ($optiongood as $updategood)
	{
		$query = $db->query("UPDATE " . DB_PREFIX . "relatedoptions SET `quantity`='".$updategood['quantity']."',`price`='".$updategood['price']."' WHERE `model`='".$updategood['code']."';");
		$query = $db->query("SELECT `relatedoptions_id` FROM " . DB_PREFIX . "relatedoptions WHERE `model`='".$updategood['code']."';");
		foreach ($query->rows as $resultdata)
		{

			$queryid = $db->query("SELECT `product_id`, `option_id`, `option_value_id` FROM " . DB_PREFIX . "relatedoptions_option WHERE `relatedoptions_id`='".$resultdata['relatedoptions_id']."';");
			foreach ($queryid->rows as $resultdataid)
			{
				$queryupdate = $db->query("UPDATE " . DB_PREFIX . "product_option_value SET `quantity`='".$updategood['quantity']."' WHERE `product_id`='".$resultdataid['product_id']."' AND `option_value_id`='".$resultdataid['option_value_id']."' AND `option_id`='".$resultdataid['option_id']."';");
			}
		}
	}
}
Изменено пользователем look2009

Поделиться сообщением


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

  • Похожий контент

    • От GeorgyM

      500.00 руб
      Скачать/Купить дополнение


      Парсинг для Opencart : загрузка товаров / статей, для Опенкарт, OcStore, v.1.x, 2.x, 3.x
      Парсинг и загрузка на Ваш сайт, товаров для Opencart, каталогов, статей, блогов, галерей, отзывов, всего, что угодно.
      Парсинг Яндекс Маркет, Авито, Юлы, любого сайта Вашего конкурента.
      Я могу собрать любые данные в интернете и импортировать их на Ваш сайт.
       
      Как начать работать со мной: 
       
      1) Напишите мне  в личку - КЛИНУТЬ ЧТОБЫ НАПИСАТЬ МНЕ
      2) Укажите сайт, с которого нужно собрать данные (Домен)
      3) Укажите дополнительные пожелания
       
      НЕ НУЖНО ЗАПОЛНЯТЬ СЛОЖНОЕ ТЕХНИЧЕСКОЕ ЗАДАНИЕ
       
      В переписке согласуем Все детали.
       
       
      Загрузка на Ваш сайт или передача Вам файла в формате Вашего модуля импорта.
       
      Быстро, конфиденциально 
      Указана базовая стоимость.
      В зависимости от сложности проекта цена может быть изменена по согласованию.
       
      Чтобы сэкономить время на переписке, прошу внимательно отнестись к строкам ниже, по поводу ТЗ для Парсинга. Я должен понимать какие, работы мне для Вас делать, а без ТЗ я этого понять не смогу.
       
      Для понимания ТЗ мне нужно получить краткое ТЗ:
       
      Если Вам нужно получить от меня только файл для импорта и каталог картинок: дайте мне адрес сайта-донора, пример файла, который Вам нужно получить с заполненными 2-3 строками, комментарии, этого будет достаточно.  
      Если Вы хотите, чтобы я для Вас спарсил и загрузил товары: напишите мне адрес сайта-донора. Можете схематично показать какие данные со страницы донора, должны быть перенесены на Ваши страницы (в виде простых рисунков)  
      Часто возникает вопрос как скопировать товары с одного интернет магазина и загрузить товары в свой интернет магазин.
       
      Особенно Важно парсить товары если нужно перенести большой каталог на свой сайт интернет магазина, так как руками копировать товары очень долго. 
       
      Я могу спарсить самые сложные сайты: со скриптами, защитами, различными Post запросами, и предоставить Вам данные в CSV или Excel файле, нужного Вам формата.
       
      Могу загрузить опции товаров, атрибуты товаров, дополнительные картинки и тексты, отзывы.
       
      Провести нужные манипуляции с ценами и скидками на товары и прочие сложные операции.
       
      Могу привести каталог категорий к нужному виду, скопировав картинки и описания категорий.
       
      От Вас потребуется только, домены сайтов откуда копировать каталог, и если Вы планируете загружать самостоятельно данные в Ваш интернет магазин, пример файла в который Вам записать данные.
      Добавил GeorgyM Добавлено 22.08.2017 Категория Услуги  
    • От GeorgyM
      Парсинг и загрузка на Ваш сайт, товаров для Opencart, каталогов, статей, блогов, галерей, отзывов, всего, что угодно.
      Парсинг Яндекс Маркет, Авито, Юлы, любого сайта Вашего конкурента.
      Я могу собрать любые данные в интернете и импортировать их на Ваш сайт.
       
      Как начать работать со мной: 
       
      1) Напишите мне  в личку - КЛИНУТЬ ЧТОБЫ НАПИСАТЬ МНЕ
      2) Укажите сайт, с которого нужно собрать данные (Домен)
      3) Укажите дополнительные пожелания
       
      НЕ НУЖНО ЗАПОЛНЯТЬ СЛОЖНОЕ ТЕХНИЧЕСКОЕ ЗАДАНИЕ
       
      В переписке согласуем Все детали.
       
       
      Загрузка на Ваш сайт или передача Вам файла в формате Вашего модуля импорта.
       
      Быстро, конфиденциально 
      Указана базовая стоимость.
      В зависимости от сложности проекта цена может быть изменена по согласованию.
       
      Чтобы сэкономить время на переписке, прошу внимательно отнестись к строкам ниже, по поводу ТЗ для Парсинга. Я должен понимать какие, работы мне для Вас делать, а без ТЗ я этого понять не смогу.
       
      Для понимания ТЗ мне нужно получить краткое ТЗ:
       
      Если Вам нужно получить от меня только файл для импорта и каталог картинок: дайте мне адрес сайта-донора, пример файла, который Вам нужно получить с заполненными 2-3 строками, комментарии, этого будет достаточно.  
      Если Вы хотите, чтобы я для Вас спарсил и загрузил товары: напишите мне адрес сайта-донора. Можете схематично показать какие данные со страницы донора, должны быть перенесены на Ваши страницы (в виде простых рисунков)  
      Часто возникает вопрос как скопировать товары с одного интернет магазина и загрузить товары в свой интернет магазин.
       
      Особенно Важно парсить товары если нужно перенести большой каталог на свой сайт интернет магазина, так как руками копировать товары очень долго. 
       
      Я могу спарсить самые сложные сайты: со скриптами, защитами, различными Post запросами, и предоставить Вам данные в CSV или Excel файле, нужного Вам формата.
       
      Могу загрузить опции товаров, атрибуты товаров, дополнительные картинки и тексты, отзывы.
       
      Провести нужные манипуляции с ценами и скидками на товары и прочие сложные операции.
       
      Могу привести каталог категорий к нужному виду, скопировав картинки и описания категорий.
       
      От Вас потребуется только, домены сайтов откуда копировать каталог, и если Вы планируете загружать самостоятельно данные в Ваш интернет магазин, пример файла в который Вам записать данные.
    • От master1961
      Установка  opencart 2 требует cURL.  Хостинг по умолчанию не поддерживает. что делать?
    • От Siteapp
      Добрый день, имеется опенкарт Version 3.0.2.0.
      Пытаюсь вывести 3 уровень в каталоге. но чёт не выходит
      В контроле в меню имеется 
      <?php class ControllerCommonMenu extends Controller { public function index() { $this->load->language('common/menu'); // Menu $this->load->model('catalog/category'); $this->load->model('catalog/product'); $data['categories'] = array(); $categories = $this->model_catalog_category->getCategories(0); foreach ($categories as $category) { if ($category['top']) { // Level 2 $children_data = array(); $children = $this->model_catalog_category->getCategories($category['category_id']); foreach ($children as $child) { $children_data2 = array(); $children2 = $this->model_catalog_category->getCategories($child['category_id']); foreach ($children2 as $child2) { $children_data2[] = array( 'name' => $child2['name'] . ($this->config->get('config_product_count') ? ' (' . $this->model_catalog_product->getTotalProducts($filter_data) . ')' : ''), 'href' => $this->url->link('product/category', 'path=' . $child['category_id'] . '_' . $child2['category_id']), ); } $filter_data = array( 'filter_category_id' => $child['category_id'], 'filter_sub_category' => true ); $children_data[] = array( 'name' => $child['name'] . ($this->config->get('config_product_count') ? ' (' . $this->model_catalog_product->getTotalProducts($filter_data) . ')' : ''), 'href' => $this->url->link('product/category', 'path=' . $category['category_id'] . '_' . $child['category_id']), 'children' => $children_data2, ); } // Level 1 $data['categories'][] = array( 'name' => $category['name'], 'children' => $children_data, 'column' => $category['column'] ? $category['column'] : 1, 'href' => $this->url->link('product/category', 'path=' . $category['category_id']) ); } } return $this->load->view('common/menu', $data); } } А в шаблоне меню
      {% if categories %} <div class="container"> <nav id="menu" class="navbar"> <div class="navbar-header"><span id="category" class="visible-xs">{{ text_category }}</span> <button type="button" class="btn btn-navbar navbar-toggle" data-toggle="collapse" data-target=".navbar-ex1-collapse"><i class="fa fa-bars"></i></button> </div> <div class="collapse navbar-collapse navbar-ex1-collapse"> <ul class="nav navbar-nav"> {% for category in categories %} {% if category.children %} <li class="dropdown"><a href="{{ category.href }}" class="dropdown-toggle" data-toggle="dropdown">{{ category.name }}</a> <div class="dropdown-menu"> <div class="dropdown-inner"> {% for children in category.children|batch(category.children|length / category.column|round(1, 'ceil')) %} <ul class="list-unstyled"> {% for child in children %} <li><a href="{{ child.href }}">{{ child.name }}</a> {% for child in child.children|batch(category.children|length / category.column|round(1, 'ceil')) %} <div class="child"> <ul class="list-unstyled"> {% for child2 in category.children_date|batch(category.child2|length / category.column|round(1, 'ceil')) %} <li><a href="{{ child2.href }}">{{ child2.name }}</a></li> {% endfor %} </ul></div> {% endfor %} </li> {% endfor %} </ul> {% endfor %}</div> <a href="{{ category.href }}" class="see-all">{{ text_all }} {{ category.name }}</a> </div> </li> {% else %} <li><a href="{{ category.href }}">{{ category.name }}</a></li> {% endif %} {% endfor %} </ul> </div> </nav> </div> {% endif %} Ошибка:
      Warning: array_chunk() expects parameter 1 to be array, null given in /home/user1094101/www/ps4games.by/system/library/template/Twig/Extension/Core.phpon line 1535
      На скрине вот так.
      Поставьте меня на путь пожалуйста

    • От albryana
      Здравствуйте, ищу исполнителя по задачкам на сайт harica.ru
      Был создан по шаблону, теперь нужен программист, который сможет поддерживать сайт, настраивать доп. модули, консультировать по доработкам.
      На данный момент стоит задача настройки веб аналитики и небольшие настройки модулей, страниц.
      Очень хочется найти специалиста, заинтересованного в продолжительном сотрудничестве.
  • Последние посетители   0 пользователей онлайн

    Ни одного зарегистрированного пользователя не просматривает данную страницу