Мультивитринность, 1С Синхронизация И Оптовые Цены

Добрый день коллеги, столкнулся с такой проблемой, есть две витрины, товары общие.
На ондой витрине надо показывыать розничные цены, на другой оптовые.
После синхронизации с 1С товаров, с розничной витриной (так как к ней привязаны товары) все цены там появляются, но почему то далеко не у всех товаров на опте появляется та же розничная цена, у одних есть, у других нет.

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

Спасибо.

Проверил в базе данных, запись об оптовых ценах есть у тех товаров у которых она не показывается, странно.

При обмене 1С и CS-Cart связывание товаров выполняется по ИД. При обмене с несколькими витринами товары выгружаются в конкретную витрину. Для того чтобы иметь товары на одной витрине с розничной ценой, а на другой с оптовой, вам необходимо в 1С продублировать товары, для отдельной группы товаров задать розничную цену, для другой оптовою и выполнять выгрузку конкретной группы для конкретной витрины.

А если товары общие? И там есть оптовые скидки которые видны только группе оптовиков. Все равно надо с обоими витринами синхронизировать?

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

Я вас понимаю, и это знаю. НО, товары у нас общие, им присвоена условно категория из обоих витрин, и товар показывется на обьоиз витринах, но цены для ГРУПП (среди них оптовики например) показываютсяы только на первой витирне, почему так?

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

Спасибо, а как сделать цену доступной для обоих витрин?

Если открыть карточку товара - вкладка "Оптовые скидки", то рядом с ценой для группы пользователя будет значок, при нажатии на который цена станет доступной для обоих витрин.

Большое спасибо! Это уже зацепка. Дело в том что у нас 15 000 товаров, на двух витринах, все общие, и примерно половина из них в случайном порядке почему то не имеет общей цены. Вопрос, можно ли как автоматизировать, присвоить все товаром свойство что цены общие? Кака то таблица, какое то знание. Вручную совсем не вариант.

Вам необходимо в модуль обмена "Commerceml" при добавлении цены добавить код, который будет создавать в таблице cscart_ult_product_prices строки с ценой товара для каждой витрины.

А как это сделать не подскажете, какой код?

Мы решили cодержимое таблицы cscart_product_prices продублировать в таблицу cscart_ult_product_prices дважды

первый раз с дополнительным параметром company_id = 1
второй раз с дополнительным параметром company_id = 2

Вроде сработало, цены для всех групп пользователей появились на обоих витринах.


Может кому то пригодится код:

//удаляет все цены из 1-й и 4-й компании
mysql_query('DELETE FROM `cscart_ult_product_prices` WHERE `company_id` = 1 OR `company_id` = 4') or die(__LINE__ . ' ' . print_r(mysql_error(), true));

//выбирает все цены из таблицы cscart_product_prices
$res = mysql_query('SELECT * FROM cscart_product_prices');
if ($res === false)
die(LINE . ’ ’ . print_r(mysql_error(), true));

//для каждой цены в cscart_product_prices сделать дубль в cscart_ult_product_prices для
//компании 1 и 4
while ($a = mysql_fetch_assoc($res))
{
mysql_query(‘INSERT INTO cscart_ult_product_prices SET
product_id = "’ . $a[‘product_id’] . ‘",
price = "’ . $a[‘price’] . ‘",
percentage_discount = "’ . $a[‘percentage_discount’] . ‘",
lower_limit = "’ . $a[‘lower_limit’] . ‘",
company_id = “1”,
usergroup_id = "’ . $a[‘usergroup_id’] . '"
') or die(LINE . ’ ’ . print_r(mysql_error(), true));
mysql_query(‘INSERT INTO cscart_ult_product_prices SET
product_id = "’ . $a[‘product_id’] . ‘",
price = "’ . $a[‘price’] . ‘",
percentage_discount = "’ . $a[‘percentage_discount’] . ‘",
lower_limit = "’ . $a[‘lower_limit’] . ‘",
company_id = “4”,
usergroup_id = "’ . $a[‘usergroup_id’] . '"
') or die(LINE . ’ ’ . print_r(mysql_error(), true));
}

/* Выводит сообщение о завершении */
print date(‘y-m-d H:i:s’) . ’ converted successfully’ . PHP_EOL;

Кстати я не триальный пользователь, почему у меня эта подпись?