Перейти к публикации
Поиск в
  • Дополнительно...
Искать результаты, содержащие...
Искать результаты в...

Разное количество товаров в мультимагазине


Focto
 Поделиться

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

Доброго времени суток!

 

Есть мультимагазин (2 магазина на одной БД). Нужно сделать чтобы в каждом магазине отображались разные остатки товаров.

 

В таблице oc_product создал столбец quantity_2 по аналогии с quantity.

 

Подскажите, пожалуйста, как реализовать выгрузку данных из столбца quantity_2 во второй сайт?

Изменять нужно файлы: 2.mysite.com/system/database/mysql.php, 2.mysite.com/catalog/model/catalog/product.php, 2.mysite.com/catalog/model/catalog/category.php ?

Ссылка на комментарий
Поделиться на других сайтах


Сделайте связку с ID магазина и все

 

Таблица товаров одна, столбец отвечающий за количество тоже один.

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

А если их 50000?

К сожалению это вариант не подходит.

 

В столбец quantity_2 данные заносятся автоматом из вне.

Ссылка на комментарий
Поделиться на других сайтах


но менять надо с умом. если делать неправильно, будут дебри. если правильно, будет красивое решение

 В /catalog/model/catalog/product.php есть 13 месть где встречается слово quantity. 

Ссылка на комментарий
Поделиться на других сайтах


Проще говоря, нужно сделать так, чтобы кол-во товара назначалась в зависимости указанного мульти-магазина.

Пример, в карточке товара, выбор магазина в котором будет отображаться данный товар.

По этой же технологии, делается то, что Вам нужно.

Ваш вариант, который вы изначально предложили не подходит не с той и не с другой стороны.

Что то я плохо представляю как это будет происходить на уровне БД. Товар должен быть один и тот же на всех магазинах.

 

Если я правильно понял нужно писать модуль.

Ссылка на комментарий
Поделиться на других сайтах


не нужно писать никакого модуля

 

Нужно переделывать модель

 

наподобие

 

SELECT CASE WHEN ps.store_id =0
THEN p.quantity
ELSE p.quantity_2
END AS quantity
FROM `oc_product` p
LEFT JOIN `oc_product_to_store` ps ON p.product_id = ps.product_id
WHERE store_id = 'ID_текущий магазин'

 

 

или же сформировать динамическое название поля

 

$quantity = 'quantity_'. ID вашего магазина

 

$sql = 'SELECT p.'.$quantity . ' as quantity

FROM `oc_product` p
LEFT JOIN `oc_product_to_store` ps ON p.product_id = ps.product_id
WHERE store_id = ' .  ID_текущий магазин;

Ссылка на комментарий
Поделиться на других сайтах

Поменял в catalog/model/catalog/product.php 

 

if ($query->num_rows) {
return array('quantity'         => $query->row['quantity_2'],

Количество на втором сайте берется из столбца quantity_2.

 

Теперь нужно проделать тоже самое с /catalog/model/catalog/category.php и моделями в /catalog/model/checkout/ ?

Ссылка на комментарий
Поделиться на других сайтах


В /catalog/model/catalog/category.php ничего менять не нужно.

 

Если сортировка товара в категориях (по умолчанию) по количеству, то нужно менять в catalog/model/catalog/product.php

$sort_data = array(
'pd.name',
'p.model',
'p.quantity_2', 
'p.price',
'rating',
'p.sort_order',
'p.date_added'
); 
а затем в catalog/controller/catalog/product/category.php
 
if (isset($this->request->get['sort'])) {
$sort = $this->request->get['sort'];
$this->document->setRobots('noindex,follow');
} else {


$sort = 'p.quantity_2';
}
Ссылка на комментарий
Поделиться на других сайтах


никто не скажет точно, сколько будет этих мест. А еще ведь и всякие модули дополнительные. А если модуль еще и под ионкубом.

Только тестировать.

Из модулей, которых будут касаться изменения, волнует только Simple (упрощенная регистрация и заказ).

 

Кроме этого думаю нужно поменять модель стандартного checkout и модель mail.

Ссылка на комментарий
Поделиться на других сайтах


все данные о товаре, в том числе и количество, должны браться из модели product, где основной и являтся oc_product

Если и существуют другие запросы к таблице product, то их нужно вычислять

Ссылка на комментарий
Поделиться на других сайтах

  • 5 лет спустя...

Актуально!
Странно в OC общее кол-во по позиции распределяется по магазинам.
Как сделать для каждого магазина свое кол-во по позиции?

Ссылка на комментарий
Поделиться на других сайтах


23 минуты назад, BB30 сказал:

Актуально!
Странно в OC общее кол-во по позиции распределяется по магазинам.
Как сделать для каждого магазина свое кол-во по позиции?

можно "хакнуть"

создать поле quantity в product_to_store а там же и цену.. :)
Но часть движка переделать, для того, чтобы
значения брать из этой таблицы
 

Ссылка на комментарий
Поделиться на других сайтах

23 минуты назад, BB30 сказал:

@chukcha у товара есть поле расположение, через него может можно?

Увы нет, это поле как характеристика товра - оно не сериализовано

конечно можно наверное типа

0=10,1=40 и тд. но єто будет огормным костылем

Можно конечно созлать еще одну свзяанную табл

product_quantity
product_id

stotre_id

quantity

price

но все упрется

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

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

 

Ссылка на комментарий
Поделиться на других сайтах

Создайте аккаунт или войдите в него для комментирования

Вы должны быть пользователем, чтобы оставить комментарий

Создать аккаунт

Зарегистрируйтесь для получения аккаунта. Это просто!

Зарегистрировать аккаунт

Войти

Уже зарегистрированы? Войдите здесь.

Войти сейчас
 Поделиться

×
×
  • Создать...

Важная информация

На нашем сайте используются файлы cookie и происходит обработка некоторых персональных данных пользователей, чтобы улучшить пользовательский интерфейс. Чтобы узнать для чего и какие персональные данные мы обрабатываем перейдите по ссылке. Если Вы нажмете «Я даю согласие», это означает, что Вы понимаете и принимаете все условия, указанные в этом Уведомлении о Конфиденциальности.