Оптовые Цены При Обмене С 1С

Добрый день!

У меня настроен обмен с 1С. Если я задаю товару оптовые цены, например при количестве 2+ делать скидку в процентах, то при очередном обмене эти оптовые цены удаляются. Можно ли каким-то образом загружать из 1С оптовые цены или формировать их на стороне CS Cart при обмене каждый раз?

1 лайк

Добрый день!

У меня настроен обмен с 1С. Если я задаю товару оптовые цены, например при количестве 2+ делать скидку в процентах, то при очередном обмене эти оптовые цены удаляются. Можно ли каким-то образом загружать из 1С оптовые цены или формировать их на стороне CS Cart при обмене каждый раз?

Вот тут теоритически есть https://www.cs-cart.ru/docs/4.2.x/rus/1c/instruction/#id14но честно не пробовали, самостоятельно делали выгрузку цен.

С помощью этого функционала я могу реализовать различные цены для различных групп, но не для различного количества товаров в заказе.

С помощью этого функционала я могу реализовать различные цены для различных групп, но не для различного количества товаров в заказе.

Понял о чем вы теперь. Вообще менять цены из 1с неправильно и просто неудобно (не понимаю зачем это сделано в модуле обмена). Я бы на вашем месте убрал просто - вам правда нужно выставлять розничные цены в 1с? При оформлении заказы вы будете отдавать цену продажи в 1с, а она просто проводить реализации.

На стороне сайта возможностей больше по работе с ценами. А то что вы хотите, скорее всего доработка с двух сторон - сайт и 1с, это мне кажется того не стоит.

Дело в том, что у меня много поставщиков и они автоматом загружаются в 1С, а потом цены и наличие на сайт.

Дело в том, что у меня много поставщиков и они автоматом загружаются в 1С, а потом цены и наличие на сайт.

Я примерно понимаю о чем вы говорите. То же было с характеристиками: если у меня товар уже имеет характеристики, то я не могу сделать файл для импорта просто с одной какой-то характеристикой, которую хочу добавить, мне надо сначала экспортировать уже имеющиеся, десериализовать массив, добавить свою новую, сериализовать, и потом уже импортировать обратно. Иначе прежние просто сотрутся. Согласен с a.shishkin у нас небольшая обработка для 1С написана, которая при запуске собирает файл с количеством, ценами и другой информацией, которая через POST передает эти данные скрипту самописному, и он все это дело обрабатывыет и рассовывает по таблицам. Там это не так сложно.

Добрый день!

У меня настроен обмен с 1С. Если я задаю товару оптовые цены, например при количестве 2+ делать скидку в процентах, то при очередном обмене эти оптовые цены удаляются. Можно ли каким-то образом загружать из 1С оптовые цены или формировать их на стороне CS Cart при обмене каждый раз?

Добрый день. У меня была та же проблема, но используется интеграция не с 1С, а с MoySklad по тому же CML.

А что еще более важно, раньше при обмене по CML, оптовые скидки не трогались.

Я эту задачу поборол с помощью техподдержки. Теперь у меня не обноляются оптовые скидки, настроенные на стороне CS-Cart при обмене через CML.

Привожу решение:

Для того, что бы сохранялись существующие оптовые скидки, можно внести следующие изменения в файл app/addons/rus_exim_1c/Tygh/Commerceml/RusEximCommerceml.php

Был заменён код:

        }
    fn_update_product_prices($product_id, $fake_product_data);

    if (fn_ult_is_shared_product($product_id) == 'Y') {
        fn_update_product_prices($product_id, $fake_product_data, $this->company_id);
    }

На следующий код:

 }
        //ioryol
        $stored_qty_discounts = db_get_array("SELECT * FROM ?:product_prices WHERE product_id = ?i AND lower_limit > ?i", $product_id, 1);
        $array_counter = 1;
        if (!empty($stored_qty_discounts) && is_array($stored_qty_discounts)) {
	    foreach ($stored_qty_discounts as $stored_qty_discount) {
		$fake_product_data['prices'][$array_counter] = $stored_qty_discount;
		$array_counter++;
	    }
	}
fn_update_product_prices($product_id, $fake_product_data);

    if (fn_ult_is_shared_product($product_id) == 'Y') {
    //ioryol
    $ult_stored_qty_discounts = db_get_array("SELECT * FROM ?:ult_product_prices WHERE product_id = ?i AND lower_limit > ?i AND company_id = ?i", $product_id, 1, $this->company_id);
    $array_counter = 1;

if (!empty($ult_stored_qty_discounts) && is_array($ult_stored_qty_discounts)) {
foreach ($ult_stored_qty_discounts as $ult_stored_qty_discount) {
$fake_product_data[‘prices’][$array_counter] = $ult_stored_qty_discount;
$array_counter++;
}
}
fn_update_product_prices($product_id, $fake_product_data, $this->company_id);
}

Будьте аккуратны. И применяйте на свой страх и риск.

У меня работало в 4.7.1, работает в 4.7.2. Но при обновлении не забудьте отключать синхронизацию и вручную переносить изменения в файл RusEximCommerceml.php, если он был переписан при обновлении. Ну и бэкапы!!!!

Ранее также использовали данный метод для сохранения оптовых цен. В новой версии CommercML , данный вариант как я понял не работает. Покрайней маре ТП ответила вот что
''Спасибо, что написали нам.

С нашей стороны не заявлялось, что логика работы нового модуля с оптовыми скидками будет изменена. Для нового модуля CommereML потребуется совершенно новая модификация. Мы оцениваем создание такой модификации в 20 кредитов технической поддержки. Пожалуйста, сообщите нам, если вы заинтересованы.’’

Ну те для того что бы корректно работал весь функционал( commerceml+ оптовые цены) просят 20 кредитов.