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

Наследование SEO URL в мультимагазинах для OC 3.0


Recommended Posts

Столкнулся с вопросом по наследованию мультимагазинами SEO URL от основного магазина.

 

Сделал переадресацию главной страницы с  index.php?route=common/home в настройках SEO URL, прописав каждому магазину свои редиректы. Оказалось, что нужно прописать SEO URL для каждого мультимагазина, т.к. для одного правила SEO URL нельзя выбрать несколько магазинов, где оно будет действовать.

 

Но это еще только начало, т.к. все категории, товары, производители, статьи и т.д. тоже не принимают для мультимагазинов настройки SEO URL от основного магазина и для каждой категории и товара придется так же создавать свои SEO URL.

В товаре или категории во вкладке SEO выводиться весь список магазинов и предлагается для каждого магазина заполнить поле SEO URL, но это просто не реально при большом количестве категорий и товаров.

Так же для информационных страниц, корзины, оформления заказа и т.д.

 

Подскажите, как можно сделать, чтобы настройка SEO URL от основного магазина передавалась на мультимагаины?

в версии ОС 2.3 SEO URL передавался наследственно на мультимагазины.

 

Установлен ocStore 3.0, SEO PRO включен, SSL включен.

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


В таблице seo url в 3 версии указывается идентификатор магазина поэтому они не подтягиваются, т.к привязаны только к основному магазину с идентификатором 0. Вобще можно sql запросом вывести все url-ы с основного магазина и добавить их в остальные так же запросом - если это вам нужно сделать разово. В ином случаи можно установить модуль для генерации seo url и дописать туда возможность выбора магазина и потом обновлять их через модуль. Либо разработать функционал при котором все url-ы с основного магазина подтягиваются на остальные. Если что обращайтесь любой из этих вариантов я могу сделать вам.

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

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

Есть ли готовый модуль для генерации SEO URL для ОС 3.0, который работает с мультимагазинами?

Разово генерировать не вариант, т.к. будут добавляются новые товары и категории.

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


7 часов назад, Basto сказал:

Подскажите, как можно сделать, чтобы настройка SEO URL от основного магазина передавалась на мультимагаины?

seo-url-autofill.ocmod.zip

Если в Категориях, Товарах, Производителях и Статьях не указан SEO URL для второго и последующих магазинов - заполняет значениями SEO URL магазина с id 0

  • +1 4
Надіслати
Поділитися на інших сайтах

11 минут назад, Yesvik сказал:

seo-url-autofill.ocmod.zip 577 \u0411 · 1 download

Если в Категориях, Товарах, Производителях и Статьях не указан SEO URL для второго и последующих магазинов - заполняет значениями SEO URL магазина с id 0

благодарности от всея и всех )

555

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


Если надо все имеющиеся SEO URL основного магазина прописать для нового магазина или заполнить недостающие SEO URL в существующих доп.магазинах

INSERT INTO `oc_seo_url` (`store_id`, `language_id`, `query`, `keyword`)
  SELECT
    `s`.`store_id`,
    `u`.`language_id`,
    `u`.`query`,
    `u`.`keyword`
  FROM `oc_store` AS `s`
    LEFT JOIN `oc_seo_url` AS `u`
      ON (1)
    LEFT JOIN `oc_seo_url` AS `su`
      ON (`su`.`store_id` = `s`.`store_id`
      AND `su`.`language_id` = `u`.`language_id`
      AND `su`.`query` = `u`.`query`)
  WHERE `u`.`store_id` = 0
  AND `su`.`query` IS NULL;

И желательно добавить индекс

ALTER TABLE `oc_seo_url` ADD UNIQUE `UK_seo_url` (`store_id`, `language_id`, `query`);

 

  • +1 8
Надіслати
Поділитися на інших сайтах

2 часа назад, chukcha сказал:

хм

 

ну и тебе благодарности ))

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


8 минут назад, AWARO сказал:

ну и тебе благодарности ))

так не благодарности ради.. Просто оно дАААвно есть

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

36 минут назад, bodyau сказал:

то есть вы предлагаете ему заходить в каждый товар и пересохранять его?) а если таких товаров 5000 в каждом мультмагазине?

Нет, конечно, а использовать или приведенный скрипт или генератор

А указннные модули работают при редактировании товара

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

Всем большое спасибо за помощь!

SEO URL с основного магазина перенес на все остальные магазины MySQL запросом указанным выше.

Модуль Генерации SEO URL у меня установлен, но он только для новых товаров работает.

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


On 10/20/2019 at 11:07 AM, Yesvik said:

Если надо все имеющиеся SEO URL основного магазина прописать для нового магазина или заполнить недостающие SEO URL в существующих доп.магазинах


INSERT INTO `oc_seo_url` (`store_id`, `language_id`, `query`, `keyword`)
  SELECT
    `s`.`store_id`,
    `u`.`language_id`,
    `u`.`query`,
    `u`.`keyword`
  FROM `oc_store` AS `s`
    LEFT JOIN `oc_seo_url` AS `u`
      ON (1)
    LEFT JOIN `oc_seo_url` AS `su`
      ON (`su`.`store_id` = `s`.`store_id`
      AND `su`.`language_id` = `u`.`language_id`
      AND `su`.`query` = `u`.`query`)
  WHERE `u`.`store_id` = 0
  AND `su`.`query` IS NULL;

И желательно добавить индекс


ALTER TABLE `oc_seo_url` ADD UNIQUE `UK_seo_url` (`store_id`, `language_id`, `query`);

 

Большое спасибо за скрипт для переноса SEO URL.

 

Чтобы не создавать новую тему, спрошу здесь.

Можете подсказать как исправить этот скрипт для переноса выбранного Макета из основного магазина на все мультимагазины?

 

Существует ли модуль для автоматической подстановки одного Макета для всех мультимагазинов на основании выбранного макета на основном магазине?

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


8 часов назад, Basto сказал:

Можете подсказать как исправить этот скрипт для переноса выбранного Макета из основного магазина на все мультимагазины? 

 

Существует ли модуль для автоматической подстановки одного Макета для всех мультимагазинов на основании выбранного макета на основном магазине?

Написать запрос не проблема, но надо понимать что именно надо сделать.

По сути речь идёт о добавлении route нового магазина в Макет. При создании нового магазина во все Макеты добавляется route нового магазина. Что должен сделать запрос?

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

Есть работающий магазин с категориями, товарами, статьями и т.д. Дополнительно на поддоменах я создал мультимагазины.

После создания магазина в карточках товара, категории, производителе, статьях ... во вкладке ДИЗАЙН макет присвоен только основному магазину, а у созданных мультимагазинов поле МАКЕТ не заполнено. Нужно, чтобы запрос из поля МАКЕТ основного магазина перенес название макета в остальные магазины, где поле МАКЕТ не заполнено.  Это нужно сделать для карточек товара, категорий, производителей, статей.

Ситуация такая же как с SEO URL (скопировать поле основного магазина на новые мультимагазины).

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


-- CATEGORY
REPLACE INTO `oc_category_to_layout` (`category_id`, `store_id`, `layout_id`) 
  SELECT 
    `t1`.`category_id`, 
    `s`.`store_id`, 
    `t1`.`layout_id` 
  FROM `oc_store` AS `s` 
    LEFT JOIN `oc_category_to_layout` AS `t1` 
      ON (1) 
    LEFT JOIN `oc_category_to_layout` AS `t2` 
      ON (`t2`.`store_id` = `s`.`store_id` 
      AND `t2`.`category_id` = `t1`.`category_id`) 
  WHERE `t1`.`store_id` = 0 
  AND IFNULL(`t2`.`layout_id`, 0) = 0;

-- INFORMATION
REPLACE INTO `oc_information_to_layout` (`information_id`, `store_id`, `layout_id`) 
  SELECT 
    `t1`.`information_id`, 
    `s`.`store_id`, 
    `t1`.`layout_id` 
  FROM `oc_store` AS `s` 
    LEFT JOIN `oc_information_to_layout` AS `t1` 
      ON (1) 
    LEFT JOIN `oc_information_to_layout` AS `t2` 
      ON (`t2`.`store_id` = `s`.`store_id` 
      AND `t2`.`information_id` = `t1`.`information_id`) 
  WHERE `t1`.`store_id` = 0 
  AND IFNULL(`t2`.`layout_id`, 0) = 0;

-- MANUFACTURER
REPLACE INTO `oc_manufacturer_to_layout` (`manufacturer_id`, `store_id`, `layout_id`) 
  SELECT 
    `t1`.`manufacturer_id`, 
    `s`.`store_id`, 
    `t1`.`layout_id` 
  FROM `oc_store` AS `s` 
    LEFT JOIN `oc_manufacturer_to_layout` AS `t1` 
      ON (1) 
    LEFT JOIN `oc_manufacturer_to_layout` AS `t2` 
      ON (`t2`.`store_id` = `s`.`store_id` 
      AND `t2`.`manufacturer_id` = `t1`.`manufacturer_id`) 
  WHERE `t1`.`store_id` = 0 
  AND IFNULL(`t2`.`layout_id`, 0) = 0;

-- PRODUCT
REPLACE INTO `oc_product_to_layout` (`product_id`, `store_id`, `layout_id`) 
  SELECT 
    `t1`.`product_id`, 
    `s`.`store_id`, 
    `t1`.`layout_id` 
  FROM `oc_store` AS `s` 
    LEFT JOIN `oc_product_to_layout` AS `t1` 
      ON (1) 
    LEFT JOIN `oc_product_to_layout` AS `t2` 
      ON (`t2`.`store_id` = `s`.`store_id` 
      AND `t2`.`product_id` = `t1`.`product_id`) 
  WHERE `t1`.`store_id` = 0 
  AND IFNULL(`t2`.`layout_id`, 0) = 0;

 

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

  • 9 months later...

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

После создания магазинов в карточках товара во вкладке Связи и в категориях на вкладке Данные в разделе Магазины отмечен чекбокс только у основного магазина! В следствие этого витрина мультимагазинов пустая. Вроде бы как похоже не то что здесь обсуждали, если не сложно помогите пожалуйста.

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


  • 1 month later...
В 23.10.2019 в 03:22, Yesvik сказал:

-- CATEGORY
REPLACE INTO `oc_category_to_layout` (`category_id`, `store_id`, `layout_id`) 
  SELECT 
    `t1`.`category_id`, 
    `s`.`store_id`, 
    `t1`.`layout_id` 
  FROM `oc_store` AS `s` 
    LEFT JOIN `oc_category_to_layout` AS `t1` 
      ON (1) 
    LEFT JOIN `oc_category_to_layout` AS `t2` 
      ON (`t2`.`store_id` = `s`.`store_id` 
      AND `t2`.`category_id` = `t1`.`category_id`) 
  WHERE `t1`.`store_id` = 0 
  AND IFNULL(`t2`.`layout_id`, 0) = 0;

-- INFORMATION
REPLACE INTO `oc_information_to_layout` (`information_id`, `store_id`, `layout_id`) 
  SELECT 
    `t1`.`information_id`, 
    `s`.`store_id`, 
    `t1`.`layout_id` 
  FROM `oc_store` AS `s` 
    LEFT JOIN `oc_information_to_layout` AS `t1` 
      ON (1) 
    LEFT JOIN `oc_information_to_layout` AS `t2` 
      ON (`t2`.`store_id` = `s`.`store_id` 
      AND `t2`.`information_id` = `t1`.`information_id`) 
  WHERE `t1`.`store_id` = 0 
  AND IFNULL(`t2`.`layout_id`, 0) = 0;

-- MANUFACTURER
REPLACE INTO `oc_manufacturer_to_layout` (`manufacturer_id`, `store_id`, `layout_id`) 
  SELECT 
    `t1`.`manufacturer_id`, 
    `s`.`store_id`, 
    `t1`.`layout_id` 
  FROM `oc_store` AS `s` 
    LEFT JOIN `oc_manufacturer_to_layout` AS `t1` 
      ON (1) 
    LEFT JOIN `oc_manufacturer_to_layout` AS `t2` 
      ON (`t2`.`store_id` = `s`.`store_id` 
      AND `t2`.`manufacturer_id` = `t1`.`manufacturer_id`) 
  WHERE `t1`.`store_id` = 0 
  AND IFNULL(`t2`.`layout_id`, 0) = 0;

-- PRODUCT
REPLACE INTO `oc_product_to_layout` (`product_id`, `store_id`, `layout_id`) 
  SELECT 
    `t1`.`product_id`, 
    `s`.`store_id`, 
    `t1`.`layout_id` 
  FROM `oc_store` AS `s` 
    LEFT JOIN `oc_product_to_layout` AS `t1` 
      ON (1) 
    LEFT JOIN `oc_product_to_layout` AS `t2` 
      ON (`t2`.`store_id` = `s`.`store_id` 
      AND `t2`.`product_id` = `t1`.`product_id`) 
  WHERE `t1`.`store_id` = 0 
  AND IFNULL(`t2`.`layout_id`, 0) = 0;

 

Прошу прощения - не подскажите - где это прописать?

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


В MSQL - захотел командой растирожировать в каждом магазине seo url товаров - основного. Но чтото делаю не так, ругается.вот команда:

REPLACE INTO seo_url (seo_url_id, store_id) SELECT store_id, 	2	 FROM seo_url WHERE store_id = 0;

где 2 - это id второго мультимагазина.

 

Что не так?

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


Не забывайте что есть еще и language_id

DELETE FROM seo_url WHERE store_id =2
INSERT INTO seo_url  (quote, keyword,language_id, store_id) SELECT quote, keyword,language_id, 2 FROM seo_url  WHERE store_id = 0

 

1 час назад, wwizard сказал:

Что не так?

Не знание базовых основ  SQL

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

1 час назад, chukcha сказал:

Не знание базовых основ  SQL

Так не заработало:

 

INSERT INTO seo_url  (quote, keyword, language_id, store_id) SELECT quote, keyword,language_id, 2 FROM seo_url  WHERE store_id = 0

 

image.thumb.png.4a67836ab31fe6d48d8ad8e09eaf4d14.png

 

Так тоже: REPLACE INTO seo_url (seo_url_id, store_id, language_id, query, keyword) SELECT store_id, 2 FROM seo_url WHERE store_id = 0;

Хотя дела по аналогии с продуктами - чтоб высвечивались в остальных мультимагах - например:

REPLACE INTO product_to_store (product_id, store_id) SELECT product_id, 2 FROM product_to_store WHERE store_id = 0;

т.е. тут с этой табл - все верно сработало - и товары высветились во всех магах. Какой же MSQL - командой, и как мне вывести ВСЕ SEO URL с магазина с id=0 dj все остальные магазины с разными ID?

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


27 минут назад, chukcha сказал:

а если quote заменить на query?

пробовал, увидел что не с моей таблицы...  - не работает((

 

т.е. ссылка - все товары - не подтягиваются чпу, хотя на основном все работает. ссылка

 

И пока непонятно - как сделать - чтобы скопипастьть все урлы - нормально на мультимагаз с основного сайта((

Хотя что старнно  - тут на мультимаге работает - ссылка, хотя тоже в товаре ничего не прописано.

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


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

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

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

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

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

Вхід

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

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

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

Important Information

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