Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > PHP: Для профи > Интеграция интернет-магазина и 1C


Автор: Rock 7.9.2007, 11:16
Что-то не нашёл форума куда это запостить, поэтому решил здесь.

Есть такая проблема: есть движок магазина, товары там имеют PRIMARY поле productID с auto_incriment. Всё как обычно.
Есть база товаров в 1C, в ней товары имеют символьный артикул, для каждого товара он уникальный, артикул может быть например: 1fa1fjlkjk45
Товары из 1С имортируются в интернет-магазин, с помощью csv, хотя способ здесь не важен.

Проблема в следующем: т.к. магазин использует поле с auto_incriment при очистки таблицы товаров мы получаем, что все по-новому импортированные товары - получают новые ID, следовательно все связаные объекты: заказы, другие товары - они теряют связь с товаром.
Можно конечно сказать, что "не надо очищать таблицу товаров", да и это правильно, но сама ситуация, когда мы имеем две независимых БД товаров, я считаю, неправильна. 

Я придумал следующие решения: 

1. Переделать движок под использование символьного индификатора товаров: переделать все проверки productID, связаные таблицы и многое многое. Получаем полную связь с 1C и одно поле для индификации товаров.

2. Сделать генерацию числового productID на стороне 1С: переделать только скрипт импорта, и всё. Получаем полную связь с 1С и два поля для индификации товаров, одно из которых используется в магазине, другое в 1С.

Может кто поможет советом?

Автор: Rock 7.9.2007, 17:29
Думаю модератор ошибся с форумом, теме больше место в php для профи, чем здесь. 
Я вроде обсуждаю не проблему конкретного движка, а больше проблему проектирования, может стоит перенести сюда: http://forum.vingrad.ru/forum/web-development-ideas-designing.html
либо сюда: http://forum.vingrad.ru/forum/database-sql.html

Но точно не сюда.

Автор: ewolf 8.9.2007, 00:40
я думаю, лучше всего будет использовать какое-то одно поле для однозначной идентификации товара в обеих базах.

как вариант, можно в скриптах импорта/экспорта в 1с использовать идентификацию товаров по артикулу, а в остальном магазине по ID

Автор: Flashdown 10.9.2007, 01:01
раз тебе не нужен числовой ID товара, поменяй тип поля INT AUTO_INCREMENT на VARCHAR и по необходимости подправь движок инет-магазина 

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)