Вход • Регистрация

Всего найдено: 5

  • 20 ноября 2016 г.
  • Вставлю свои пять копеек. У вас не получиться создать удобный каталог для запчастей. Только если частичная выборка. Запчастями занимаюсь более 7 лет знаю о чем говорю. У все сайтов, где вы видели используется tecdoc, более 30 миллионов позиций + своя база кроссов (сейчас уже возможно и больше). Tecdoc ломанный стоит 100 долл, плюс картинки к нему еще где-то 50 долл., перекупщиков дешевле. База весит в сжатом виде гига 4, если распаковать около 30 гиг. MYSQL запросы вам лучше, не видеть, сразу будет паника. Есть готовые типовые их достаточно.

    Плюс картинки около 30 гиг. Оригинальная база Tecdoc сделана на trancebase, спец. для запчастей. Есть api у оригинального tecdoc, но пакет на год с ограниченным количеством бредов в районе 2500 евро,подходит как видите не всем. Если сюда добавить прайсы поставщиков, с каждодневным обновлением, иногда не один раз в день + плюс свои кроссы. Получается весьма не хилый должен быть сервак или vps, vds. Если же вы хотите создать сайт который будет продавать всякую химию, брелки, молдинги, пистоны и тд. Тогда да, диафан вам в помощь. Готовые движки стоят от 100 долл. в месяц аренда или от 40 000 рос руб. во владение. Не пытайтесь прикрутить к диафану эта трата времени, уверяю вас. Это еще не все, прасы у каждого поставщика свои, значит должен быть свой парсер. То что у диафана гибкая настройка это да, но есть ниансы.

    Например бренд LEMFÖRDER, но многие поставщики пишут просто LMI или без немецкой Ö - LEMFORDER, значит у вас должен быть парсер который это все подравняет. Кто дает прайс на почту, кто то только FTP, кто то RAR и тд. Все это надо собирать и обрабатывать. Клиент делает заказ. Если один заказ состоит из 5 позиций, то эти позиции могут быть от 5 поставщиков. Значит каждому надо скинуть по одной позиции. Если заказов уже несколько нужна система для автоматической отправки на сервер поставщику или на мыло.

    Проценка - если пистон стоит 5 рублей наценка 300%, если 300 наценка 30%. Минимальное количество в упаковке. Или у вас закажут 5 пистонов, а привезете мин 50 (10 в каждой пачке, иногда по 25), что делать солить, конечно если вы занимаетесь моно-брендом (например BMW), то да потом продадите, но если на все это это минусовая сделка (значительно). Не каждый поставщик повезет вам пачку пистонов, значит до заказ еще че нить. По итогу это значительный убыток. Онлайн проценка от других поставщиков, как например EXIST.RU. Чел заказывает у вас фильтр, но в реальности вы показали ему фильтр с EXIST.RU или EMEX.RU + своя маржа.

    ПС пример запроса MYSQL

    /* Вывод детальной информации по заданному неоригинальному изделию (ART_ID) */

    SET @ART_ID = 1855662; /* 202-134 [METZGER] - Главный тормозной цилиндр */
    SET @LNG_ID = 16; /* 1 - Немецкий язык; 16 - Русский язык */

    /* Общая информация об изделии */
    /* ART_ARTICLE_NR - Номер артикула */
    /* SUP_BRAND - Название производителя изделия */
    /* ART_COMPLETE_DES_TEXT - Название изделия */
    /* ART_DES_TEXT - Описание изделия */
    /* ART_STATUS_TEXT - Статус изделия (Нормальный, Не поставляется...) */
    SELECT
    ART_ARTICLE_NR,
    SUP_BRAND,
    DES_TEXTS.TEX_TEXT AS ART_COMPLETE_DES_TEXT,
    DES_TEXTS2.TEX_TEXT AS ART_DES_TEXT,
    DES_TEXTS3.TEX_TEXT AS ART_STATUS_TEXT
    FROM
    ARTICLES
    INNER JOIN DESIGNATIONS ON DESIGNATIONS.DES_ID = ART_COMPLETE_DES_ID
    AND DESIGNATIONS.DES_LNG_ID = @LNG_ID
    INNER JOIN DES_TEXTS ON DES_TEXTS.TEX_ID = DESIGNATIONS.DES_TEX_ID
    LEFT JOIN DESIGNATIONS AS DESIGNATIONS2 ON DESIGNATIONS2.DES_ID = ART_DES_ID
    AND DESIGNATIONS2.DES_LNG_ID = @LNG_ID
    LEFT JOIN DES_TEXTS AS DES_TEXTS2 ON DES_TEXTS2.TEX_ID = DESIGNATIONS2.DES_TEX_ID
    INNER JOIN SUPPLIERS ON SUP_ID = ART_SUP_ID
    INNER JOIN ART_COUNTRY_SPECIFICS ON ACS_ART_ID = ART_ID
    INNER JOIN DESIGNATIONS AS DESIGNATIONS3 ON DESIGNATIONS3.DES_ID = ACS_KV_STATUS_DES_ID
    AND DESIGNATIONS3.DES_LNG_ID = @LNG_ID
    INNER JOIN DES_TEXTS AS DES_TEXTS3 ON DES_TEXTS3.TEX_ID = DESIGNATIONS3.DES_TEX_ID
    WHERE
    ART_ID = @ART_ID
    ;

    /* Критерии (характеристики) */
    /* CRITERIA_DES_TEXT - Описание критерия */
    /* CRITERIA_VALUE_TEXT - Значение критерия */
    SELECT
    DES_TEXTS.TEX_TEXT AS CRITERIA_DES_TEXT,
    IFNULL(DES_TEXTS2.TEX_TEXT, ACR_VALUE) AS CRITERIA_VALUE_TEXT
    FROM
    ARTICLE_CRITERIA
    LEFT JOIN DESIGNATIONS AS DESIGNATIONS2 ON DESIGNATIONS2.DES_ID = ACR_KV_DES_ID
    LEFT JOIN DES_TEXTS AS DES_TEXTS2 ON DES_TEXTS2.TEX_ID = DESIGNATIONS2.DES_TEX_ID
    LEFT JOIN CRITERIA ON CRI_ID = ACR_CRI_ID
    LEFT JOIN DESIGNATIONS ON DESIGNATIONS.DES_ID = CRI_DES_ID
    LEFT JOIN DES_TEXTS ON DES_TEXTS.TEX_ID = DESIGNATIONS.DES_TEX_ID
    WHERE
    ACR_ART_ID = @ART_ID AND
    (DESIGNATIONS.DES_LNG_ID IS NULL OR DESIGNATIONS.DES_LNG_ID = @LNG_ID) AND
    (DESIGNATIONS2.DES_LNG_ID IS NULL OR DESIGNATIONS2.DES_LNG_ID = @LNG_ID)
    ;

    /* Дополнительная информация об изделии */
    SELECT
    TMT_TEXT AS AIN_TMO_TEXT
    FROM
    ARTICLE_INFO
    INNER JOIN TEXT_MODULES ON TMO_ID = AIN_TMO_ID
    INNER JOIN TEXT_MODULE_TEXTS ON TMT_ID = TMO_TMT_ID
    WHERE
    AIN_ART_ID = @ART_ID AND
    TMO_LNG_ID = @LNG_ID
    ORDER BY
    AIN_TMO_TEXT
    ;

    /* Аналоги */
    /* ARL_KIND - Тип аналога: 2 - Торговый, 3 - Оригинальный, 4 - Неоригинальный */
    /* BRAND - Название производителя аналога */
    /* ARL_DISPLAY_NR - Номер аналога */
    SELECT
    ARL_KIND,
    IF (ART_LOOKUP.ARL_KIND = 2, SUPPLIERS.SUP_BRAND, BRANDS.BRA_BRAND) AS BRAND,
    ARL_DISPLAY_NR
    FROM
    ART_LOOKUP
    LEFT JOIN BRANDS ON BRA_ID = ARL_BRA_ID
    INNER JOIN ARTICLES ON ARTICLES.ART_ID = ART_LOOKUP.ARL_ART_ID
    INNER JOIN SUPPLIERS ON SUPPLIERS.SUP_ID = ARTICLES.ART_SUP_ID
    WHERE
    ARL_ART_ID = @ART_ID AND
    ARL_KIND IN (2, 3, 4)
    ORDER BY
    ARL_KIND,
    BRA_BRAND,
    ARL_DISPLAY_NR
    LIMIT
    100
    ;

    /* Пути к файлам картинок */
    /* PATH - имя папки/имя файла.расширение */
    SELECT
    CONCAT(
    'images/',
    GRA_TAB_NR, '/',
    GRA_GRD_ID, '.',
    IF(LOWER(DOC_EXTENSION)='jp2', 'jpg', LOWER(DOC_EXTENSION))
    ) AS PATH
    FROM
    LINK_GRA_ART
    INNER JOIN GRAPHICS ON GRA_ID = LGA_GRA_ID
    INNER JOIN DOC_TYPES ON DOC_TYPE = GRA_DOC_TYPE
    WHERE
    LGA_ART_ID = @ART_ID AND
    (GRA_LNG_ID = @LNG_ID OR GRA_LNG_ID = 255) AND
    GRA_DOC_TYPE <> 2
    ORDER BY
    GRA_GRD_ID
    ;

    /* Пути к файлу логотипа неоригинального производителя изделия */
    SELECT
    CONCAT('images/logos/', SLO_ID, '.png') AS PATH
    FROM
    ARTICLES
    INNER JOIN SUPPLIER_LOGOS ON SLO_SUP_ID = ART_SUP_ID
    WHERE
    ART_ID = @ART_ID
    ;

    /* Пути к PDF-файлам */
    /* PATH - имя папки/имя файла.расширение */
    SELECT
    CONCAT(
    'pdf/',
    GRA_ID,
    LPAD(GRA_LNG_ID, 3, '0'),
    '.pdf'
    ) AS PATH
    FROM
    LINK_GRA_ART
    INNER JOIN GRAPHICS ON GRA_ID = LGA_GRA_ID
    WHERE
    LGA_ART_ID = @ART_ID AND
    (GRA_LNG_ID = @LNG_ID OR GRA_LNG_ID = 255) AND
    GRA_DOC_TYPE = 2
    ORDER BY
    LGA_ART_ID,
    GRA_ID,
    GRA_LNG_ID
    ;

    /* Применимость к автомобилям */
    /* MFA_BRAND - Марка автомобиля */
    /* MOD_CDS_TEXT - Модель автомобиля */
    /* TYP_CDS_TEXT - Название типа автомобиля */
    /* TYP_PCON_START - YYYYMM: Год/месяц начала выпуска типа */
    /* TYP_PCON_END - YYYYMM: Год/месяц окончания выпуска типа (NULL - неограничен) */
    /* TYP_CCM - Объём двигателя (куб.см) */
    /* TYP_CCM_TAX - Объём двигателя (куб.см) ("эффективный объём"?) */
    /* TYP_KW_FROM - Мощность двигателя (кВт): ОТ */
    /* TYP_KW_UPTO - Мощность двигателя (кВт): ДО (NULL - неограничен) */
    /* TYP_HP_FROM - Мощность двигателя (л.с.): ОТ */
    /* TYP_HP_UPTO - Мощность двигателя (л.с.): ДО (NULL - неограничен) */
    /* TYP_CYLINDERS - Количество цилиндров */
    /* ENG_CODE - Код двигателя */
    /* TYP_ENGINE_DES_TEXT - Тип двигателя */
    /* TYP_FUEL_DES_TEXT - Тип топлива */
    /* TYP_BODY_DES_TEXT - Вид сборки */
    /* TYP_AXLE_DES_TEXT - Конструкция оси (для грузовых)*/
    /* TYP_MAX_WEIGHT - Тоннаж (для грузовых)*/

    SELECT
    TYP_ID,
    MFA_BRAND,
    DES_TEXTS7.TEX_TEXT AS MOD_CDS_TEXT,
    DES_TEXTS.TEX_TEXT AS TYP_CDS_TEXT,
    TYP_PCON_START,
    TYP_PCON_END,
    TYP_CCM,
    TYP_KW_FROM,
    TYP_KW_UPTO,
    TYP_HP_FROM,
    TYP_HP_UPTO,
    TYP_CYLINDERS,
    ENGINES.ENG_CODE,
    DES_TEXTS2.TEX_TEXT AS TYP_ENGINE_DES_TEXT,
    DES_TEXTS3.TEX_TEXT AS TYP_FUEL_DES_TEXT,
    IFNULL(DES_TEXTS4.TEX_TEXT, DES_TEXTS5.TEX_TEXT) AS TYP_BODY_DES_TEXT,
    DES_TEXTS6.TEX_TEXT AS TYP_AXLE_DES_TEXT,
    TYP_MAX_WEIGHT
    FROM
    LINK_ART
    INNER JOIN LINK_LA_TYP ON LAT_LA_ID = LA_ID
    INNER JOIN TYPES ON TYP_ID = LAT_TYP_ID
    INNER JOIN COUNTRY_DESIGNATIONS ON COUNTRY_DESIGNATIONS.CDS_ID = TYP_CDS_ID
    INNER JOIN DES_TEXTS ON DES_TEXTS.TEX_ID = COUNTRY_DESIGNATIONS.CDS_TEX_ID
    INNER JOIN MODELS ON MOD_ID = TYP_MOD_ID
    INNER JOIN MANUFACTURERS ON MFA_ID = MOD_MFA_ID
    INNER JOIN COUNTRY_DESIGNATIONS AS COUNTRY_DESIGNATIONS2 ON COUNTRY_DESIGNATIONS2.CDS_ID = MOD_CDS_ID
    INNER JOIN DES_TEXTS AS DES_TEXTS7 ON DES_TEXTS7.TEX_ID = COUNTRY_DESIGNATIONS2.CDS_TEX_ID
    LEFT JOIN DESIGNATIONS ON DESIGNATIONS.DES_ID = TYP_KV_ENGINE_DES_ID
    LEFT JOIN DES_TEXTS AS DES_TEXTS2 ON DES_TEXTS2.TEX_ID = DESIGNATIONS.DES_TEX_ID
    LEFT JOIN DESIGNATIONS AS DESIGNATIONS2 ON DESIGNATIONS2.DES_ID = TYP_KV_FUEL_DES_ID
    LEFT JOIN DES_TEXTS AS DES_TEXTS3 ON DES_TEXTS3.TEX_ID = DESIGNATIONS2.DES_TEX_ID
    LEFT JOIN LINK_TYP_ENG ON LTE_TYP_ID = TYP_ID
    LEFT JOIN ENGINES ON ENG_ID = LTE_ENG_ID
    LEFT JOIN DESIGNATIONS AS DESIGNATIONS3 ON DESIGNATIONS3.DES_ID = TYP_KV_BODY_DES_ID
    LEFT JOIN DES_TEXTS AS DES_TEXTS4 ON DES_TEXTS4.TEX_ID = DESIGNATIONS3.DES_TEX_ID
    LEFT JOIN DESIGNATIONS AS DESIGNATIONS4 ON DESIGNATIONS4.DES_ID = TYP_KV_MODEL_DES_ID
    LEFT JOIN DES_TEXTS AS DES_TEXTS5 ON DES_TEXTS5.TEX_ID = DESIGNATIONS4.DES_TEX_ID
    LEFT JOIN DESIGNATIONS AS DESIGNATIONS5 ON DESIGNATIONS5.DES_ID = TYP_KV_AXLE_DES_ID
    LEFT JOIN DES_TEXTS AS DES_TEXTS6 ON DES_TEXTS6.TEX_ID = DESIGNATIONS5.DES_TEX_ID
    WHERE
    LA_ART_ID = @ART_ID AND
    COUNTRY_DESIGNATIONS.CDS_LNG_ID = @LNG_ID AND
    COUNTRY_DESIGNATIONS2.CDS_LNG_ID = @LNG_ID AND
    (DESIGNATIONS.DES_LNG_ID IS NULL OR DESIGNATIONS.DES_LNG_ID = @LNG_ID) AND
    (DESIGNATIONS2.DES_LNG_ID IS NULL OR DESIGNATIONS2.DES_LNG_ID = @LNG_ID) AND
    (DESIGNATIONS3.DES_LNG_ID IS NULL OR DESIGNATIONS3.DES_LNG_ID = @LNG_ID) AND
    (DESIGNATIONS4.DES_LNG_ID IS NULL OR DESIGNATIONS4.DES_LNG_ID = @LNG_ID) AND
    (DESIGNATIONS5.DES_LNG_ID IS NULL OR DESIGNATIONS5.DES_LNG_ID = @LNG_ID)
    ORDER BY
    MFA_BRAND,
    MOD_CDS_TEXT,
    TYP_CDS_TEXT,
    TYP_PCON_START,
    TYP_CCM
    LIMIT
    100
    ;

    /* Рекомендуемые цены */
    /* PRI_PRICE - Цена */
    /* PRICE_UNIT_DES_TEXT - Единица упаковки (1 шт, 100 шт...) */
    /* QUANTITY_UNIT_DES_TEXT - Единица измерения изделия (штуки, метры...)*/
    /* PRI_CURRENCY_CODE - Обозначение валюты */
    SELECT
    PRI_PRICE,
    DES_TEXTS.TEX_TEXT AS PRICE_UNIT_DES_TEXT,
    DES_TEXTS2.TEX_TEXT AS QUANTITY_UNIT_DES_TEXT,
    PRI_CURRENCY_CODE
    FROM
    PRICES
    LEFT JOIN DESIGNATIONS ON DESIGNATIONS.DES_ID = PRI_KV_PRICE_UNIT_DES_ID
    AND DESIGNATIONS.DES_LNG_ID = @LNG_ID
    LEFT JOIN DES_TEXTS ON DES_TEXTS.TEX_ID = DESIGNATIONS.DES_TEX_ID
    LEFT JOIN DESIGNATIONS AS DESIGNATIONS2 ON DESIGNATIONS2.DES_ID = PRI_KV_QUANTITY_UNIT_DES_ID
    AND DESIGNATIONS2.DES_LNG_ID = @LNG_ID
    LEFT JOIN DES_TEXTS AS DES_TEXTS2 ON DES_TEXTS2.TEX_ID = DESIGNATIONS2.DES_TEX_ID
    WHERE
    PRI_ART_ID = @ART_ID
    ;
  • 21 ноября 2016 г. , редакция: 1479679288
  • 1. Держать они могут по 3 основным причинам.
    - API - база не у них у них только кроссы
    - Хороший сервант (сейчас уже не так дорого),
    - Выборка по нужным ходовым запчастям, но если чел вдруг нашел древнюю запчасть и пытается вбить в поиск то ничего не найдет + плюс полнотекстовой поиск сфинск, эластик или облако.
    - Ниже

    Диафан, битрикс, уми - пофиг что. Не выдержит. Точнее залить вы в базу можете это не проблема, проблема будет ее обновлять, если на базе cms и количество посетителей 1 или хотят бы 500 в день. Если прикрутить поиск, то можно, алгоритм такой => ищем через свинкс, потом запрос к нам в базу по текущей позиции. НО это если позиций не много. ах бывает много ОЧЕНЬ МНОГО.

    2. Блин как сложно вам объяснять, какой эксель ребята. он не открывает такие файлы. Канцелярия это сколько позиций - 30 000, со всех складов все России. Файл который я сбрасывал, шатем Подольск, не Минск 106000 позиций. 10 - поставщиков - получается внушительно. Каждодневный апдейт. База лежит диафана, тестил знаю. Так как заливал товары с али там 300 000.

    Ни одна сфера на данный момент не содержит столько данных, ах да вру, ВСЕ книги (название имеется ввиду, а не содержание), игры, фильмы и музыка может сравняемся по количеству позиций. У меня каталоги запчастей для авто, что бы пробивать по вину машины и подбирать запчасти весят около 700 гиг.

    3. Кроссы никто никогда вам просто не даст. Это очень ценные данные. Если текдок сломали. то кроссы надо парсить. Так как появляется очень много брендов (Китайских, Русских) их нет в каталоге tecdoc. Есть только бумажные каталоги или эксель, вот берешь этот каждый каталог крутишь и вертишь его, что б он стал читаем. Когда у тебя есть данные, то можешь гораздо дороже продавать запчасти. Так как нет от чего оттолкнуться.

    4. Я специально привет название бренда. Так как если вы введете просто артикул то могу вас огорчить, у вас будет не 1 единица товара а несколько. По этому сопоставление прайсов по 2 колонкам, а не одной.

    Вот как дополнение http://www.exist.by/price.aspx?pcode=13207 вы ищите номер 13207 - без бренда посмотрите сколько вариантов, бренд ставит все на свои места.

    Сделать все реально, надо ли делать на базе cms.

    Если делать то так.
    - Берем базу тек док, заливаем ее
    - Берем прайсы (предварительно сделанные по нашему стандарту) заливаем в отдельную базу
    - Человек вбивает артикул для поиска
    - Ищем в текдоке
    - Выдаем результат
    - Из найденного артикула пользователь решает, что ему нужен фильтр масляный - например oc47
    - Ищем в прайсе фильтр oc47, параллельно отправляем запрос в тек.док что бы дал аналоги по oc47, находим их и тоже выводим, если они есть прайсе, а они точно есть

    Дифан нужен только для каталога масел, щеток, присадок - это да. А так зачем коню рога.

    Сам сайт будет состоять из 20 страничек, это весь внешний функционал. Дерево запчастей, машин и поиск артикула (Mysql запросы) и тд, продают с ломанным текдоком. Сваять это, ну и по желанию заказы скидывать в админку диафана.

    Фильтр OC 47 по кнехту или мале, имеет вот столько аналогов и оригинальных номеров. То есть это фильтр ставили разные производители и делали то же разные:

    ATLAS COPCO 12028497
    ATLAS COPCO 97076483
    ATLAS COPCO 9709000103
    ATLAS WEYHAUSEN 852931
    BENATI 1835109
    BOMAG 05710632
    CATERPILLAR 9Y4510
    CHRYSLER 3232126
    CHRYSLER 8127168
    CHRYSLER J3250334
    CITROËN 5417584
    CLARK 6511793
    CLARK 6512491
    CRANECARRIER COMPANY 941172
    DEUTZ 1172346
    DEUTZ 117434
    DEUTZ 1174417
    DEUTZ 1A06H4123
    FODEN TRUCKS 0482551026
    FORD 1498016
    FORD 5000184
    FORD 5003460
    FORD 5004928
    FORD 5007124
    FORD 5007365
    FORD A700X6714CA
    FORD A700X6714KA
    FORD A770X6714HA
    FORD A780X6714GA
    GMC 7984778
    GMC 9975233
    GUELDNER 0009830625
    HAKO 76015
    HANOMAG HENSCHEL 860114932124
    KOMATSU 700032431
    KOMATSU 8944637151
    KUBOTA 1542632430
    KUBOTA 7000032431
    LIEBHERR 7616297
    LINDE 0009830625
    PORSCHE 93110770100
    VM 4115064
    VW 0028115351
    VW 0261155613
    VW 035115561
    VW 035115561G
    VW 037115561A
    VW 037115561B
    VW 056115561A
    VW 056115561B
    VW 056115561G
    VW 056999651G
    VW 057115561
    VW 059115661A
    VW 06A115561BDSF
    VW 5120700509
    VW 89201808201
    VW 89201808900
    VW BAT115561A
    VW E5120700509
    VW SE021030288A

    В текдоке нет очень много позиций. Так каталог содержит в себе только то что выгодно производить на вторичный рынок. Если сюда добавить номера оригинальные у которых нет аналогов, то количество запчастей, думаю будет за 100 миллионов.

    Как то много тут получилось моих 5 копеек.

    Есть еще славная особенность, есть oc47 который перебивается на OP526, но O526 на oc47 не бъется. Так как на одну машину можно поставить 2 практический одинаковых фильтра у них посадочный размер одинаков, а на другую только один из них так как он короче на 3 см. Большой туда не станет.

Новости

  • 24 апреля, среда
  • В новой сборке совершили революцию в структурировании кастомизированной информации в шаблонах, добавили авторегистрацию пользователей, усовершенствовали защиту от спама, актуализировали накопительную скидку, а также улучшили производительность и стабильность работы системы.
  • 12 января
  • После выхода сборки 7.1 мы выпустили уже три патча, в каждом из которых улучшаем административную часть сайта. Сборка DIAFAN.CMS 7.1.3 уже доступна к установке. 
  • 15 декабря 2023 г.
  • Подводим итоги 2023 года. Выпустили новую сборку DIAFAN.CMS 7.1.1, вводим новые тарифы на аренду сайта и коммерческую поддержку и автообновления с января 2024 г., строим планы на будущий год.