Перейти до вмісту
Пошук в
  • Детальніше...
Шукати результати, які ...
Шукати результати в ...

Импорт товаров и цен из прайс-листа ЮгКонтракта


kljaver

Recommended Posts

Есть поставщик http://yugcontract.ua. Он предоставляет прайс-лист с товарами, их характеристиками, ценой и описанием (в формате XML и XLS). Нужно сделать скрипт для загрузки этого добра в БД Opencart. Кто-нибудь такое уже делал?

Надіслати
Поділитися на інших сайтах


Проблема в том, что категории из XML-файла не подходят для категорий в готовом магазине на Opencart. В Opencart 4-х уровневая структура категорий, а в прайсе 2-х уровневая и, кроме этого, не совпадают названия категорий.

Пример из XML-файла:

<product id="5953415" cat="Запчасти и узлы к лабораториям" cat_top="Лаборатории и запчасти" brand="MITSUBISHI" artikul="936D317O01" name="lab/det MITSUBISHI ASSY-BRACKET-M8 936D317O01 CP9800DW" price="25.000" status="1" guarant="" scu="1" price_scu="25.00" url="" photo="" ukt=""  qty="1"   RPrice="" barcode="" spec_rate="0">
    <descr>мотор прижима бумаги М8 к модели CP9800DW
</descr>
</product>
Надіслати
Поділитися на інших сайтах


Имеется в виду вложенность категорий?

Да. Но кроме того, названия категорий из XML не совпадают с категориями в БД Opencart.

Структура категорий на сайте магазина opencart такая же почти, как и на сайте поставщика.

Змінено користувачем kljaver
Надіслати
Поділитися на інших сайтах


Попробую объяснить поподробней. Есть только что созданный интернет-магазин на opencart. В него занесены категории с различными уровнями вложенности подобно сайту http://yugcontract.ua/shop/ ЮгКонтракт, как поставщик, предоставляет прайс-лист в различных форматах (XLS, XML). Структура XML такова (кусок прайса в XML):

<?xml version="1.0" encoding="utf-8"?>
<rests>
<product id="5687381" cat="Кабели аудио-видео" cat_top="Аксессуары к аудио-видео" brand="BANDRIDGE" artikul="BAL3302" name="acc/cable BANDRIDGE BLUE BAL3302 Audio 3.5mm 2m" price="7.500" status="1" guarant="12 мес" scu="1" price_scu="7.50" url="http://yugcontract.ua/shop/1546/1547/613135.html" photo="http://yugcontract.ua/img/products/613135/69632.jpg" ukt="8544429091"  qty=">50"   RPrice="7.500" barcode="8717587010903" spec_rate="0">
	<descr>Портативный аудиокабель BAL3302
Коннектор на входе - 3.5 мм "папа"
Коннектор на выходе - 3.5 мм "папа"
Длина кабеля - 2 м
Экранирование - Плетеный металлический экран
Материал проводника - Бескислородная медь
Покрытие разъемов - Никелированное покрытие
Цвет синий</descr>
</product>
<product id="5693157" cat="Кабели аудио-видео" cat_top="Аксессуары к аудио-видео" brand="BANDRIDGE" artikul="BAL3402" name="acc/cable BANDRIDGE BLUE BAL3402 Audio 3.5mm - RCA 2m" price="7.500" status="1" guarant="12 мес" scu="1" price_scu="7.50" url="http://yugcontract.ua/shop/1546/1547/613142.html" photo="http://yugcontract.ua/img/products/613142/69640.jpg" ukt="8544429091"  qty=">50"   RPrice="7.500" barcode="8717587010996" spec_rate="0">
	<descr>Портативный аудиокабель BAL3402
Коннектор на входе - 3.5 мм "папа"
Коннектор на выходе - 2x RCA "папа"
Длина кабеля - 2 м
Экранирование - Плетеный металлический экран
Материал проводника - Бескислородная медь
Покрытие разъемов - Никелированное покрытие
Цвет синий</descr>
</product>

В прайс-листе чуть больше 7000 наименований. Вручную вводить это всё ну никак не получится. Хотелось бы это автоматизировать. Для начала хотя бы занести в БД Opencart товары, что есть в XML.

Вот эти категории из прайса

cat="Кабели аудио-видео" cat_top="Аксессуары к аудио-видео"
неприменимы к категориям на сайте — это основная проблема. Кто может сделать такой скрипт на python (предпочтительней) или на php с дополнительными функциями, такими как конвертация валюты, добавление нового товара или категории, занесение цены с надбавкой и т.д. (это пока приблизительные требования к скрипту).
Надіслати
Поділитися на інших сайтах


Это можно решить путем создания массива соответствия категорий поставщика с вашими категориями (например у вас категория называется "Компьютеры", а в прайсе "Персональные компьюетры").

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

А если похожей категории нет, то создавать новую.

Надіслати
Поділитися на інших сайтах


Поскольку в БД opencart категория каждого товара обозначается одним числом, то можно создать массив соответствия на подобии такого (просто пример):

67 -> cat="Кабели аудио-видео" cat_top="Аксессуары к аудио-видео"

То есть, со стороны БД opencart будет число, а со стороны прайс-листа пара категорий. Всё таки числовую информацию в скрипте будет легче обрабатывать, чем текст. Это правильный ход мыслей?

Надіслати
Поділитися на інших сайтах


Поскольку в БД opencart категория каждого товара обозначается одним числом, то можно создать массив соответствия на подобии такого (просто пример):

67 -> cat="Кабели аудио-видео" cat_top="Аксессуары к аудио-видео"

То есть, со стороны БД opencart будет число, а со стороны прайс-листа пара категорий. Всё таки числовую информацию в скрипте будет легче обрабатывать, чем текст. Это правильный ход мыслей?

Да, будет массив соответствий по типу:

$cats_map = array(
'Кабели аудио-видео' => 69,
'Компьютерные аксессуары' => 35,
);

и т.д.

Надіслати
Поділитися на інших сайтах


Модераторы, нельзя ли перенести эту тему в раздел «Услуги»? Думаю найти человека, который возьмётся создать скрипт за вознаграждение. Скрипт желательно на python или в крайнем случае на php. Более детальные требования к скрипту обозначу.

Надіслати
Поділитися на інших сайтах


Створіть аккаунт або увійдіть для коментування

Ви повинні бути користувачем, щоб залишити коментар

Створити обліковий запис

Зареєструйтеся для отримання облікового запису. Це просто!

Зареєструвати аккаунт

Вхід

Уже зареєстровані? Увійдіть тут.

Вхід зараз
  • Зараз на сторінці   0 користувачів

    • Ні користувачів, які переглядиють цю сторінку
×
×
  • Створити...

Important Information

На нашому сайті використовуються файли cookie і відбувається обробка деяких персональних даних користувачів, щоб поліпшити користувальницький інтерфейс. Щоб дізнатися для чого і які персональні дані ми обробляємо перейдіть за посиланням . Якщо Ви натиснете «Я даю згоду», це означає, що Ви розумієте і приймаєте всі умови, зазначені в цьому Повідомленні про конфіденційність.