Можно ли оживить 4.3.4 (службы доставки)?

А, вот, вспомнил. Есть ли объяснение:

Глобальные/индивидуальные настройки товаров

Это что? В CS-Cart есть опции глобальные и индивидуальные. А в бесплатной как урезан этот функционал? Есть только глобальные? Или только индивидуальные? Или что это?

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

По умолчанию админка в CS-Cart и CS-Cart Free стала проще. Некоторые настройки стали глобальными, а администраторы в CS-Cart могут их включить для отдельных товаров.

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

В CS-Cart теперь вместо “комбинаций опций” используются “вариации товаров” (основаны не на опциях, а на характеристиках). Вариациям можно задавать по несколько картинок (у комбинаций опций была одна), ставить свои цены напрямую (а не через модификаторы опций) и импортировать в одном файле (как отдельные товары, а не как доп. сущность). Появились фильтры по вариациям, и т.п.

1 лайк

Ийййэх… Мои самые продающие магазины (1 Российский и 7 шт во вражеских странах - Финляндия, Швеция, Германия, Бельгия, Нидерланды, Франция и скоро Польша) работают на РНР 5.3, ибо register_globals…

1 лайк

Спасибо за подробные объяснения.

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

1 лайк

Спасибо за оценку :slight_smile:

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

Заметил, что одна из ссылок в моём старом посте была битой. Вот две вещи, актуальные именно для 4.3.6:

Решился апгрейдить, но сначала на тестовом и сразу - печалька. У меня РНР 7.0 (ну все же не 5.3, ведь правда?).
Да, я такой вот - мы занимаемся одним и тем же 16 лет и возиться с апгрейдами РНР считаю нафиг не нужным, есть дела поважнее.
Но тут я даже апгрейдил до 7.2, но блин что-то почтовый сервер в итоге заглючил и я плюнул и откатился до обратного состояния, некогда возиться.

ВОПРОС: запустить на 7.0 возможно ли (например, отключив проверку гденето) и насколько критично 7.1?

Сам острю - сам смеюсь. Попробую запустить путем

if (version_compare($php_value, ‘7.1.0’) == -1) {

на

if (version_compare($php_value, ‘7.0.0’) == -1) {

Не понос - так золотуха… Не взлетело.

Эх, ребята, какими вы были - такими и остались. Вы - отличные программисты, но никудышные продавцы. Что с e-mail что теперь вот с версиями.

Вашу позицию прекрасно понимаю. Принцип “Работает — не трогай” никто не отменял, особенно если для ваших покупателей это никаких изменений и пользы не несёт.

Поэтому мы обычно не гонимся за новыми версиями PHP. Точно не ради того “чтобы было”. Мы бы и PHP 5.6 до сих пор поддерживали, если бы была такая возможность. От неё и отказались только в начале 2022 года (намного позже, чем сами разработчики PHP).

Основная причина отказа от старых версий PHP — их поддержка вызывала проблемы у клиентов, которые использовали актуальные версии PHP (а таких за несколько лет стало большинство).

Такие решения не принимаются одномоментно. Сначала мы изучаем и какими версиями пользуются клиенты, и какие у нас есть варианты.

Ещё пример: сейчас многие хостинги уже изначально с PHP 8.1, а CS-Cart пока поддерживает только 8.0. Чтобы в будущей CS-Cart 4.16.1 была поддержка PHP 8.1, в ближайшее время возможно придётся поднять минимальную требуемую версию PHP до 7.2. Просто потому, что некоторые нужные вещи уже не поддерживают 7.2. Безопасность в этом случае — просто дополнительный (хотя и важный) аргумент.

Да, жаль что не заработало. Но на новые версии PHP переходить приходится, просто для того, чтобы у большинства клиентов установка проходила без проблем. К счастью, для старых версий PHP у нас остались старые версии, а для новых есть вариант не только с обновлением, но ещё и CS-Cart Free.

Попробую ночью побороть exim, ибо все заработало - он что-то заглючил поле апгрейда версии.

Годы идут - ничего не меняется. Вы свой почтовый сервер так и не удосужились настроить? При попытке восстановить пароль от хелпдеска exim:

2022-12-02 17:51:14 H=(helpdesk.cs-cart.com) [108.170.27.50] X=TLSv1.2:ECDHE-RSA-AES256-GCM-SHA384:256 CV=no F=sales@cs-cart.com rejected RCPT akn@trafaret.net: X-Host-Lookup-Failed: Reverse DNS lookup failed for 108.170.27.50 (failed)

Блин, там делов-то на пять минут.

PS: и еще, нет ли мануала про копирование тем, макетов и содержимого 4.3.4 -> 4.15?

Короче и это не взлетело. Сначала я попробовал товары импортировать из 4.3.4… Получил 500. Ну думаю - несовместимость. Потом попробовал товар отредактировать и сохранить уже в 4.15. Опять 500. Ну, думаю, чтожделать. Убил все товары. Очистил кэш. Вручную ввел товар. Получил опять 500.

А, да. Я еще версию попробовал РНР сменить 8.1 -> 7.4. Не помогло.

<!--

SmartyCompilerException

Message
Syntax error in template "tygh:/home/diapaint/web/zakaz3d.ru/public_html/design/themes/diapaint/templates/common/product_data.tpl"  on line 421 "{foreach name="`$a_name`" from=$product.qty_content item="var"}" 'name' attribute/variable has illegal value

Error at
app/lib/vendor/smarty/smarty/libs/sysplugins/smarty_internal_templatecompilerbase.php, line: 421

Backtrace
File:app/lib/vendor/smarty/smarty/libs/sysplugins/smarty_internal_compile_foreach.php
Line:115
Function:trigger_template_error

File:app/lib/vendor/smarty/smarty/libs/sysplugins/smarty_internal_templatecompilerbase.php
Line:752
Function:compile

File:app/lib/vendor/smarty/smarty/libs/sysplugins/smarty_internal_templatecompilerbase.php
Line:1481
Function:callTagCompiler

File:app/lib/vendor/smarty/smarty/libs/sysplugins/smarty_internal_templatecompilerbase.php
Line:553
Function:compileTag2

File:app/lib/vendor/smarty/smarty/libs/sysplugins/smarty_internal_templateparser.php
Line:2234
Function:compileTag

File:app/lib/vendor/smarty/smarty/libs/sysplugins/smarty_internal_templateparser.php
Line:2777
Function:yy_r41

File:app/lib/vendor/smarty/smarty/libs/sysplugins/smarty_internal_templateparser.php
Line:2872
Function:yy_reduce

File:app/lib/vendor/smarty/smarty/libs/sysplugins/smarty_internal_smartytemplatecompiler.php
Line:128
Function:doParse

File:app/lib/vendor/smarty/smarty/libs/sysplugins/smarty_internal_templatecompilerbase.php
Line:469
Function:doCompile

File:app/lib/vendor/smarty/smarty/libs/sysplugins/smarty_internal_templatecompilerbase.php
Line:395
Function:compileTemplateSource

File:app/lib/vendor/smarty/smarty/libs/sysplugins/smarty_template_compiled.php
Line:184
Function:compileTemplate

File:app/lib/vendor/smarty/smarty/libs/sysplugins/smarty_template_compiled.php
Line:141
Function:compileTemplateSource

File:app/lib/vendor/smarty/smarty/libs/sysplugins/smarty_template_compiled.php
Line:105
Function:process

File:app/lib/vendor/smarty/smarty/libs/sysplugins/smarty_internal_template.php
Line:216
Function:render

File:app/lib/vendor/smarty/smarty/libs/sysplugins/smarty_internal_template.php
Line:385
Function:render

File:var/cache/templates/diapaint/8b48d10509813d1ca1b9b490b05cf111e2779ead_2.tygh.grid_list.tpl.php
Line:244
Function:_subTemplateRender

File:app/lib/vendor/smarty/smarty/libs/sysplugins/smarty_template_resource_base.php
Line:123
Function:content_638a4767cc4b50_58988739

File:app/lib/vendor/smarty/smarty/libs/sysplugins/smarty_template_compiled.php
Line:114
Function:getRenderedTemplateCode

File:app/lib/vendor/smarty/smarty/libs/sysplugins/smarty_internal_template.php
Line:216
Function:render

File:app/lib/vendor/smarty/smarty/libs/sysplugins/smarty_internal_template.php
Line:385
Function:render

File:var/cache/templates/diapaint/edbdc5758188da0630e99218f25d903d6586563c_2.tygh.products_multicolumns.tpl.php
Line:38
Function:_subTemplateRender

File:app/lib/vendor/smarty/smarty/libs/sysplugins/smarty_template_resource_base.php
Line:123
Function:content_638a4767c38266_98133929

File:app/lib/vendor/smarty/smarty/libs/sysplugins/smarty_template_compiled.php
Line:114
Function:getRenderedTemplateCode

File:app/lib/vendor/smarty/smarty/libs/sysplugins/smarty_internal_template.php
Line:216
Function:render

File:app/lib/vendor/smarty/smarty/libs/sysplugins/smarty_internal_template.php
Line:385
Function:render

File:var/cache/templates/diapaint/8e601105779063c3e5440702604b84284b120c42_2.tygh.view.tpl.php
Line:187
Function:_subTemplateRender

File:app/lib/vendor/smarty/smarty/libs/sysplugins/smarty_template_resource_base.php
Line:123
Function:content_638a4767bf92b1_46548495

File:app/lib/vendor/smarty/smarty/libs/sysplugins/smarty_template_compiled.php
Line:114
Function:getRenderedTemplateCode

File:app/lib/vendor/smarty/smarty/libs/sysplugins/smarty_internal_template.php
Line:216
Function:render

File:app/lib/vendor/smarty/smarty/libs/sysplugins/smarty_internal_templatebase.php
Line:238
Function:render

File:app/lib/vendor/smarty/smarty/libs/sysplugins/smarty_internal_templatebase.php
Line:116
Function:_execute

File:app/Tygh/SmartyEngine/Core.php
Line:81
Function:fetch

File:app/Tygh/BlockManager/RenderManager.php
Line:785
Function:fetch

File:app/Tygh/BlockManager/RenderManager.php
Line:639
Function:_renderMainContent

File:app/Tygh/BlockManager/RenderManager.php
Line:493
Function:renderBlockContent

File:app/Tygh/BlockManager/RenderManager.php
Line:415
Function:renderBlock

File:app/Tygh/BlockManager/RenderManager.php
Line:373
Function:renderBlocks

File:app/Tygh/BlockManager/RenderManager.php
Line:230
Function:renderGrid

File:app/Tygh/BlockManager/RenderManager.php
Line:200
Function:renderGrids

File:app/Tygh/BlockManager/RenderManager.php
Line:164
Function:_renderContainer

File:app/functions/smarty_plugins/function.render_location.php
Line:52
Function:render

File:var/cache/templates/diapaint/e709aac955c59bc1f148eb9127e35183bf6c409d_2.tygh.index.tpl.php
Line:138
Function:smarty_function_render_location

File:app/lib/vendor/smarty/smarty/libs/sysplugins/smarty_template_resource_base.php
Line:123
Function:content_638a47667ff1e2_27891272

File:app/lib/vendor/smarty/smarty/libs/sysplugins/smarty_template_compiled.php
Line:114
Function:getRenderedTemplateCode

File:app/lib/vendor/smarty/smarty/libs/sysplugins/smarty_internal_template.php
Line:216
Function:render

File:app/lib/vendor/smarty/smarty/libs/sysplugins/smarty_internal_templatebase.php
Line:238
Function:render

File:app/lib/vendor/smarty/smarty/libs/sysplugins/smarty_internal_templatebase.php
Line:116
Function:_execute

File:app/Tygh/SmartyEngine/Core.php
Line:81
Function:fetch

File:app/functions/fn.control.php
Line:632
Function:fetch

File:index.php
Line:25
Function:fn_dispatch


-->

Кажется где-то в хуках у Вас ошибка в smarty (кэп на связи).

Найдите этот форич на который ругается и смените его на форму записи вот такую примерно:

{foreach $product.qty_content as $var}

Папа! А с кем ты сейчас разговариваешь?

— Цитата из анекдота про тупого сына.

Нет, я похоже что-то где-то поломал импортом из 4.3.4. Ибо чистая установка, нетронутого дистрибутива - так НЕ должно быть. Сегодня снесу все к чертям и заново поставлю и руками все повбиваю.

Но я не ропщу. Зато я перешел рубикон и теперь у меня место CentOS 7 -> Debian 11, вместо умершей (и многократно допиленной мною вручную что концов не найдешь) VestaCP - HestiaCP с нормальным интерфейсом и без дыр.

Да и ping-admin на боевом сайте с 4.3.6 (который я не трогаю - он приносит деньги хоть какие) не знаю почему стал выдавать 0.5 сек суммарное время вместо прежних 0.8 (что тоже было неплохо для 4.3.6 с 3000 товаров).

1 лайк

Короче с вводом товара вручную каталог работает. Однако тут же споткнулся (надеюсь, просто не понял!)

Если есть ОПЦИЯ и она ОБЯЗАТЕЛЬНАЯ, то в старом 4.3.4 все было логично - по дефолту выбирался первый вариант. Тут же - не выбрано НИЧЕГО.

Ну как так можно? Это грубейшая ошибка, напрямую мешающая продавать…

Сам острю - сам смеюсь. Методом исключения решил попробовать отключить ОБЯЗАТЕЛЬНОСТЬ опции - и ВУАЛЯ! Появился дефолтный вариант. То есть выходит что “обязательно” относится к самому выбору варианта, а не к наличию опции.

Короче товары тут не при чем, опять словил 500 на этот раз ПСС установлена - после импорта макетов.

Ура. Установку я победил. Теперь придется вспоминать молодость - я настолько туп, что настроить доставку в CS-Cart для меня сложнейшая задача.
Ну почему блин не сделать это как-то просто? Почему если для способа доставки выбрана тарифная зона “Все страны” и больше ничего, ну почему тогда этот способ не отображается ВСЕГДА???

PS: сам острю - сам смеюсь есть мое кредо. Похоже я вспомнил логику. Если есть некая глобальная тарифная зона, то любая созданная меньшая, которая является подзоной глобальной, автоматически из глобальной зоны свое содержимое исключает.

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

1 лайк

На всякий случай вставлю ещё 5 копеек (т.к. отвечать на вопросы сразу на форуме не могу, но иногда полезная информация у меня есть):

  • На форуме раньше публиковал более подробное техническое пояснение работы тарифных зон. Там то, о чём вы сказали, но со схемой для наглядности.

    Мы с тех пор упростили интерфейс — теперь явно видно, в какие тарифные зоны доставка есть, а в какие — нет. И в настройках способа доставки можно включить ему одной кнопкой все тарифные зоны.

    Если тарифная зона включена в способ доставки, но цена для неё не задана, то доставка будет бесплатной (исключение: способы доставки, которые сами считают стоимость).


  • Со времён старых версий есть одно важное улучшение — тарифные зоны влияют ещё и на способы доставки с расчётом в реальном времени. Раньше какой-нибудь условный СДЭК (если настроен в магазине) предлагался всегда, если серверы отвечали, что доставка от исходного до нужного адреса возможна. Теперь же у СДЭКа (и у любых других способов с автоматическим расчёмом) можно убрать какие-то тарифные зоны и не предлагать в них.

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

Три раза все перерыл - не нашел этой настройки. Где она?